diff options
133 files changed, 12302 insertions, 1511 deletions
diff --git a/.guix-authorizations b/.guix-authorizations index 52773b63af..486798359d 100644 --- a/.guix-authorizations +++ b/.guix-authorizations @@ -25,6 +25,8 @@ (;; primary: "34FF 38BC D151 25A6 E340 A0B5 3453 2F9F AFCA 8B8E" "A0C5 E352 2EF8 EF5C 64CD B7F0 FD73 CAC7 19D3 2566" (name "bavier")) + ("45CC 63B8 5258 C9D5 5F34 B239 D37D 0EA7 CECC 3912" + (name "biscuolo")) ("7988 3B9F 7D6A 4DBF 3719 0367 2506 A96C CF63 0B21" (name "boskovits")) ("E82A C026 95D6 FF02 43CA 1E5C F6C5 2DD1 BA27 CB87" @@ -113,6 +115,8 @@ (name "pgarlick")) ("3A86 380E 58A8 B942 8D39 60E1 327C 1EF3 8DF5 4C32" (name "phant0mas")) + ("CD2D 5EAA A98C CB37 DA91 D6B0 5F58 1664 7F8B E551" + (name "raghavgururajan")) ("74D6 A930 F44B 9B84 9EA5 5606 C166 AA49 5F7F 189C" (name "reepca")) ("BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC" diff --git a/Makefile.am b/Makefile.am index 1c2d45527c..17ad236655 100644 --- a/Makefile.am +++ b/Makefile.am @@ -126,6 +126,7 @@ MODULES = \ guix/cache.scm \ guix/cve.scm \ guix/workers.scm \ + guix/ipfs.scm \ guix/build-system.scm \ guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index d1a15cb28b..1069a5d296 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -38,7 +38,7 @@ Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* -Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* +Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020, 2021 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* @@ -87,6 +87,7 @@ Copyright @copyright{} 2020 Daniel Brooks@* Copyright @copyright{} 2020 John Soo@* Copyright @copyright{} 2020 Jonathan Brielmaier@* Copyright @copyright{} 2020 Edgar Vincent@* +Copyright @copyright{} 2021 Maxime Devos@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -342,7 +343,7 @@ Services * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. -* Continuous Integration:: The Cuirass service. +* Continuous Integration:: Cuirass and Laminar services. * Power Management Services:: Extending battery life. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. @@ -652,7 +653,7 @@ If that command fails because you do not have the required public key, then run this command to import it: @example -$ wget @value{OPENPGP-SIGNING-KEY-URL} \ +$ wget '@value{OPENPGP-SIGNING-KEY-URL}' \ -qO - | gpg --import - @end example @@ -1428,7 +1429,7 @@ the Guix daemon. @code{guix_daemon_socket_t} isn’t actually used. None of the socket operations involve contexts that have anything to do with @code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, -but it would be preferrable to define socket rules for only this label. +but it would be preferable to define socket rules for only this label. @item @code{guix gc} cannot access arbitrary links to profiles. By design, @@ -7297,55 +7298,7 @@ standards, GNU Coding Standards}). In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence. In practice, a few additional steps are often needed. -All these steps are split up in separate @dfn{phases}, -notably@footnote{Please see the @code{(guix build gnu-build-system)} -modules for more details about the build phases.}: - -@table @code -@item unpack -Unpack the source tarball, and change the current directory to the -extracted source tree. If the source is actually a directory, copy it -to the build tree, and enter that directory. - -@item patch-source-shebangs -Patch shebangs encountered in source files so they refer to the right -store file names. For instance, this changes @code{#!/bin/sh} to -@code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}. - -@item configure -Run the @file{configure} script with a number of default options, such -as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified -by the @code{#:configure-flags} argument. - -@item build -Run @code{make} with the list of flags specified with -@code{#:make-flags}. If the @code{#:parallel-build?} argument is true -(the default), build with @code{make -j}. - -@item check -Run @code{make check}, or some other target specified with -@code{#:test-target}, unless @code{#:tests? #f} is passed. If the -@code{#:parallel-tests?} argument is true (the default), run @code{make -check -j}. - -@item install -Run @code{make install} with the flags listed in @code{#:make-flags}. - -@item patch-shebangs -Patch shebangs on the installed executable files. - -@item strip -Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} -is false), copying them to the @code{debug} output when available -(@pxref{Installing Debugging Files}). -@end table - -@vindex %standard-phases -The build-side module @code{(guix build gnu-build-system)} defines -@code{%standard-phases} as the default list of build phases. -@code{%standard-phases} is a list of symbol/procedure pairs, where the -procedure implements the actual phase. - +All these steps are split up in separate @dfn{phases}. @xref{Build Phases}, for more info on build phases and ways to customize them. @@ -7355,6 +7308,84 @@ Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list). We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them. + +This build system supports a number of keyword arguments, which can be +passed @i{via} the @code{arguments} field of a package. Here are some +of the main parameters: + +@table @code +@item #:phases +This argument specifies build-side code that evaluates to an alist of +build phases. @xref{Build Phases}, for more information. + +@item #:configure-flags +This is a list of flags (strings) passed to the @command{configure} +script. @xref{Defining Packages}, for an example. + +@item #:make-flags +This list of strings contains flags passed as arguments to +@command{make} invocations in the @code{build}, @code{check}, and +@code{install} phases. + +@item #:out-of-source? +This Boolean, @code{#f} by default, indicates whether to run builds in a +build directory separate from the source tree. + +When it is true, the @code{configure} phase creates a separate build +directory, changes to that directory, and runs the @code{configure} +script from there. This is useful for packages that require it, such as +@code{glibc}. + +@item #:tests? +This Boolean, @code{#t} by default, indicates whether the @code{check} +phase should run the package's test suite. + +@item #:test-target +This string, @code{"check"} by default, gives the name of the makefile +target used by the @code{check} phase. + +@item #:parallel-build? +@itemx #:parallel-tests? +These Boolean values specify whether to build, respectively run the test +suite, in parallel, with the @code{-j} flag of @command{make}. When +they are true, @code{make} is passed @code{-j@var{n}}, where @var{n} is +the number specified as the @option{--cores} option of +@command{guix-daemon} or that of the @command{guix} client command +(@pxref{Common Build Options, @option{--cores}}). + +@cindex RUNPATH, validation +@item #:validate-runpath? +This Boolean, @code{#t} by default, determines whether to ``validate'' +the @code{RUNPATH} of ELF binaries (@code{.so} shared libraries as well +as executables) previously installed by the @code{install} phase. + +This validation step consists in making sure that all the shared +libraries needed by an ELF binaries, which are listed as +@code{DT_NEEDED} entries in its @code{PT_DYNAMIC} segment, appear in the +@code{DT_RUNPATH} entry of that binary. In other words, it ensures that +running or using those binaries will not result in a ``file not found'' +error at run time. @xref{Options, @option{-rpath},, ld, The GNU +Linker}, for more information on @code{RUNPATH}. + +@item #:substitutable? +This Boolean, @code{#t} by default, tells whether the package outputs +should be substitutable---i.e., whether users should be able to obtain +substitutes for them instead of building locally (@pxref{Substitutes}). + +@item #:allowed-references +@itemx #:disallowed-references +When true, these arguments must be a list of dependencies that must not +appear among the references of the build results. If, upon build +completion, some of these references are retained, the build process +fails. + +This is useful to ensure that a package does not erroneously keep a +reference to some of it build-time inputs, in cases where doing so +would, for example, unnecessarily increase its size (@pxref{Invoking +guix size}). +@end table + +Most other build systems support these keyword arguments. @end defvr Other @code{<build-system>} objects are defined to support other @@ -7769,7 +7800,7 @@ after the wrapped library followed by @code{_jll.jl}. To add the binary path @code{_jll.jl} packages, you need to patch the files under @file{src/wrappers/}, replacing the call to the macro -@code{JLLWrappers.@@generate_wrapper_header}, adding as a secound +@code{JLLWrappers.@@generate_wrapper_header}, adding as a second argument containing the store path the binary. As an example, in the MbedTLS Julia package, we add a build phase @@ -8249,16 +8280,53 @@ exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems}). As discussed in the previous section, those build systems provide a -standard list of phases. For @code{gnu-build-system}, the standard -phases include an @code{unpack} phase to unpack the source code tarball, -a @command{configure} phase to run @code{./configure}, a @code{build} -phase to run @command{make}, and (among others) an @code{install} phase -to run @command{make install}; @pxref{Build Systems}, for a more -detailed view of these phases. Likewise, @code{cmake-build-system} -inherits these phases, but its @code{configure} phase runs -@command{cmake} instead of @command{./configure}. Other build systems, -such as @code{python-build-system}, have a wholly different list of -standard phases. All this code runs on the @dfn{build side}: it is +standard list of phases. For @code{gnu-build-system}, the main build +phases are the following: + +@table @code +@item unpack +Unpack the source tarball, and change the current directory to the +extracted source tree. If the source is actually a directory, copy it +to the build tree, and enter that directory. + +@item patch-source-shebangs +Patch shebangs encountered in source files so they refer to the right +store file names. For instance, this changes @code{#!/bin/sh} to +@code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}. + +@item configure +Run the @file{configure} script with a number of default options, such +as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified +by the @code{#:configure-flags} argument. + +@item build +Run @code{make} with the list of flags specified with +@code{#:make-flags}. If the @code{#:parallel-build?} argument is true +(the default), build with @code{make -j}. + +@item check +Run @code{make check}, or some other target specified with +@code{#:test-target}, unless @code{#:tests? #f} is passed. If the +@code{#:parallel-tests?} argument is true (the default), run @code{make +check -j}. + +@item install +Run @code{make install} with the flags listed in @code{#:make-flags}. + +@item patch-shebangs +Patch shebangs on the installed executable files. + +@item strip +Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} +is false), copying them to the @code{debug} output when available +(@pxref{Installing Debugging Files}). +@end table + +Other build systems have similar phases, with some variations. For +example, @code{cmake-build-system} has same-named phases but its +@code{configure} phases runs @code{cmake} instead of @code{./configure}. +Others, such as @code{python-build-system}, have a wholly different list +of standard phases. All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon}). @@ -8269,6 +8337,7 @@ is a procedure that accepts an arbitrary number of arguments. By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore. +@vindex %standard-phases For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but @@ -11553,13 +11622,13 @@ Select the given repository (a repository name). Possible values include: Import metadata for a Go module using @uref{https://proxy.golang.org, proxy.golang.org}. -This importer is highly experimental. See the source code for more info -about the current state. - @example guix import go gopkg.in/yaml.v2 @end example +It is possible to use a package specification with a @code{@@VERSION} +suffix to import a specific version. + Additional options include: @table @code @@ -11568,6 +11637,14 @@ Additional options include: Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix. +@item --pin-versions +When using this option, the importer preserves the exact versions of the +Go modules dependencies instead of using their latest available +versions. This can be useful when attempting to import packages that +recursively depend on former versions of themselves to build. When +using this mode, the symbol of the package is made by appending the +version to its name, so that multiple versions of the same package can +coexist. @end table @end table @@ -13510,6 +13587,14 @@ following expression returns a list that contains all the services in %desktop-services) @end lisp +Alternatively, the @code{modify-services} macro can be used: + +@lisp +(modify-services %desktop-services + (delete avahi-service-type)) +@end lisp + + @unnumberedsubsec Instantiating the System Assuming the @code{operating-system} declaration @@ -14820,7 +14905,7 @@ declaration. * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. -* Continuous Integration:: The Cuirass service. +* Continuous Integration:: Cuirass and Laminar services. * Power Management Services:: Extending battery life. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. @@ -16417,7 +16502,7 @@ netfilter project that aims to replace the existing iptables, ip6tables, arptables and ebtables framework. It provides a new packet filtering framework, a new user-space utility @command{nft}, and a compatibility layer for iptables. This service comes with a default ruleset -@code{%default-nftables-ruleset} that rejecting all incomming connections +@code{%default-nftables-ruleset} that rejecting all incoming connections except those to the ssh port 22. To use it, simply write: @lisp @@ -16820,7 +16905,7 @@ Data type representing the configuration for @code{syncthing-service-type}. List of command-line arguments passing to @code{syncthing} binary. @item @code{logflags} (default: @var{0}) -Sum of loging flags, see +Sum of logging flags, see @uref{https://docs.syncthing.net/users/syncthing.html#cmdoption-logflags, Syncthing documentation logflags}. @item @code{user} (default: @var{#f}) @@ -17490,6 +17575,37 @@ address, delete everything except these options: @end table @end deftp +@cindex IPFS +@defvr {Scheme Variable} ipfs-service-type +The service type for connecting to the @uref{https://ipfs.io,IPFS network}, +a global, versioned, peer-to-peer file system. Pass it a +@code{ipfs-configuration} to change the ports used for the gateway and API. + +Here's an example configuration, using some non-standard ports: + +@lisp +(service ipfs-service-type + (ipfs-configuration + (gateway "/ip4/127.0.0.1/tcp/8880") + (api "/ip4/127.0.0.1/tcp/8881"))) +@end lisp +@end defvr + +@deftp {Data Type} ipfs-configuration +Data type representing the configuration of IPFS. + +@table @asis +@item @code{package} (default: @code{go-ipfs}) +Package object of IPFS. + +@item @code{gateway} (default: @code{"/ip4/127.0.0.1/tcp/8082"}) +Address of the gateway, in ‘multiaddress’ format. + +@item @code{api} (default: @code{"/ip4/127.0.0.1/tcp/5001"}) +Address of the API endpoint, in ‘multiaddress’ format. +@end table +@end deftp + @cindex keepalived @deffn {Scheme Variable} keepalived-service-type This is the type for the @uref{https://www.keepalived.org/, Keepalived} @@ -17779,9 +17895,8 @@ and tty8. (service slim-service-type (slim-configuration (display ":1") (vt "vt8"))) - (remove (lambda (service) - (eq? (service-kind service) gdm-service-type)) - %desktop-services)))) + (modify-services %desktop-services + (delete gdm-service-type))))) @end lisp @end defvr @@ -19715,12 +19830,15 @@ configuration. @item @code{ident-file} (default: @code{%default-postgres-ident}) Filename or G-expression for the user name mapping configuration. -@item @code{socket-directory} (default: @code{"/var/run/postgresql"}) +@item @code{socket-directory} (default: @code{#false}) Specifies the directory of the Unix-domain socket(s) on which PostgreSQL -is to listen for connections from client applications. If set to -@code{#false} PostgreSQL does not listen on any Unix-domain sockets, in +is to listen for connections from client applications. If set to +@code{""} PostgreSQL does not listen on any Unix-domain sockets, in which case only TCP/IP sockets can be used to connect to the server. +By default, the @code{#false} value means the PostgreSQL default value +will be used, which is currently @samp{/tmp}. + @item @code{extra-config} (default: @code{'()}) List of additional keys and values to include in the PostgreSQL config file. Each entry in the list should be a list where the first element @@ -25905,7 +26023,7 @@ this amount of time. After this period, resolvers will invalidate their cache and check again that it still exists. @item @code{nx} (default: @code{3600}) -Default TTL of inexistant records. This delay is usually short because you want +Default TTL of inexistent records. This delay is usually short because you want your new domains to reach everyone quickly. @end table @@ -27329,6 +27447,64 @@ the store items being published. @end table @end deftp +@subsubheading Laminar + +@uref{https://laminar.ohwg.net/, Laminar} is a lightweight and modular +Continuous Integration service. It doesn't have a configuration web UI +instead uses version-controllable configuration files and scripts. + +Laminar encourages the use of existing tools such as bash and cron +instead of reinventing them. + +@defvr {Scheme Procedure} laminar-service-type +The type of the Laminar service. Its value must be a +@code{laminar-configuration} object, as described below. + +All configuration values have defaults, a minimal configuration to get +Laminar running is shown below. By default, the web interface is +available on port 8080. + +@lisp +(service laminar-service-type) +@end lisp +@end defvr + +@deftp {Data Type} laminar-configuration +Data type representing the configuration of Laminar. + +@table @asis +@item @code{laminar} (default: @code{laminar}) +The Laminar package to use. + +@item @code{home-directory} (default: @code{"/var/lib/laminar"}) +The directory for job configurations and run directories. + +@item @code{bind-http} (default: @code{"*:8080"}) +The interface/port or unix socket on which laminard should listen for +incoming connections to the web frontend. + +@item @code{bind-rpc} (default: @code{"unix-abstract:laminar"}) +The interface/port or unix socket on which laminard should listen for +incoming commands such as build triggers. + +@item @code{title} (default: @code{"Laminar"}) +The page title to show in the web frontend. + +@item @code{keep-rundirs} (default: @code{0}) +Set to an integer defining how many rundirs to keep per job. The +lowest-numbered ones will be deleted. The default is 0, meaning all run +dirs will be immediately deleted. + +@item @code{archive-url} (default: @code{#f}) +The web frontend served by laminard will use this URL to form links to +artefacts archived jobs. + +@item @code{base-url} (default: @code{#f}) +Base URL to use for links to laminar itself. + +@end table +@end deftp + @node Power Management Services @subsection Power Management Services @@ -31048,7 +31224,7 @@ coordinator. @deftp {Data Type} guix-build-coordinator-agent-dynamic-auth Data type representing an agent authenticating with a coordinator via a -dyanmic auth token and agent name. +dynamic auth token and agent name. @table @asis @item @code{agent-name} @@ -31065,7 +31241,7 @@ database, and is used by the agent to authenticate. @deftp {Data Type} guix-build-coordinator-agent-dynamic-auth-with-file Data type representing an agent authenticating with a coordinator via a -dyanmic auth token read from a file and agent name. +dynamic auth token read from a file and agent name. @table @asis @item @code{agent-name} @@ -33463,7 +33639,7 @@ $(guix system vm config.scm) -nic user,model=virtio-net-pci,hostfwd=tcp::10022-: To connect to the VM you can run @example -ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 +ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 localhost @end example The @command{-p} tells @command{ssh} the port you want to connect to. @@ -34219,7 +34395,7 @@ This service represents PID@tie{}1. @cindex man pages @cindex manual pages In most cases packages installed with Guix come with documentation. -There are two main documentation formats: ``Info'', a browseable +There are two main documentation formats: ``Info'', a browsable hypertext format used for GNU software, and ``manual pages'' (or ``man pages''), the linear documentation format traditionally found on Unix. Info manuals are accessed with the @command{info} command or with Emacs, @@ -34629,7 +34805,7 @@ traditional bootstrap of the rest of the Guix System. The only significant binary bootstrap seeds that remain@footnote{ Ignoring the 68KB @code{mescc-tools}; that will be removed later, -together with @code{mes}.} are a Scheme intepreter and a Scheme +together with @code{mes}.} are a Scheme interpreter and a Scheme compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the static binaries for @file{bash}, @code{tar}, and @code{xz} that are used to get Guile running.}. diff --git a/etc/committer.scm.in b/etc/committer.scm.in index 801b5d195e..1f19ccfd6d 100755 --- a/etc/committer.scm.in +++ b/etc/committer.scm.in @@ -89,8 +89,7 @@ LINE-NO in PORT." (define (diff-info) "Read the diff and return a list of <hunk> values." (let ((port (open-pipe* OPEN_READ - "git" "diff" - "--no-color" + "git" "diff-files" "--no-prefix" ;; Only include one context line to avoid lumping in ;; new definitions with changes to existing @@ -154,8 +153,9 @@ LINE-NO in PORT." corresponding to the top-level definition containing the staged changes." ;; TODO: We can't seek with a pipe port... (let* ((port (open-pipe* OPEN_READ - "git" "show" (string-append "HEAD:" - (hunk-file-name hunk)))) + "git" "cat-file" "-p" (string-append + "HEAD:" + (hunk-file-name hunk)))) (contents (get-string-all port))) (close-pipe port) (call-with-input-string contents @@ -254,7 +254,7 @@ modifying." (define (main . args) (match (diff-info) (() - (display "Nothing to be done." (current-error-port))) + (display "Nothing to be done.\n" (current-error-port))) (hunks (let-values (((definitions changes) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 13ee695909..ce146aba3c 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -666,7 +666,7 @@ relatively form MOUNT-POINT/TARGET/SUBDIR/grub.cfg to MOUNT-POINT/boot/grub/grub.cfg, and the second symlink points relatively from MOUNT-POINT/TARGET/%store-prefix to MOUNT-POINT/%store-prefix. -It is important to note that these symlinks need to be relativ, as the absolute +It is important to note that these symlinks need to be relative, as the absolute paths on the TFTP server side are unknown. It is also important to note that both symlinks will point outside the TFTP root diff --git a/gnu/ci.scm b/gnu/ci.scm index ff76ffde57..5ab1b51d82 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -317,25 +317,25 @@ SYSTEM." #:key source commit) "Return a list of jobs for the system tests." (define (->job test) - (parameterize ((current-guix-package - (channel-source->package source #:commit commit))) - (let ((name (string-append "test." (system-test-name test) - "." system)) - (drv (run-with-store store - (mbegin %store-monad - (set-current-system system) - (set-grafting #f) - (set-guile-for-build (default-guile)) - (system-test-value test))))) + (let ((name (string-append "test." (system-test-name test) + "." system)) + (drv (run-with-store store + (mbegin %store-monad + (set-current-system system) + (set-grafting #f) + (set-guile-for-build (default-guile)) + (system-test-value test))))) - (derivation->job name drv)))) + (derivation->job name drv))) (if (member system %guix-system-supported-systems) ;; Override the value of 'current-guix' used by system tests. Using a ;; channel instance makes tests that rely on 'current-guix' less ;; expensive. It also makes sure we get a valid Guix package when this ;; code is not running from a checkout. - (map ->job (all-system-tests)) + (parameterize ((current-guix-package + (channel-source->package source #:commit commit))) + (map ->job (all-system-tests))) '())) (define (tarball-jobs store system) diff --git a/gnu/local.mk b/gnu/local.mk index 1e95be50b3..b69be3a179 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -40,6 +40,7 @@ # Copyright © 2020 Malte Frank Gerdes <mate.f.gerdes@gmail.com> # Copyright © 2020 Vinicius Monego <monego@posteo.net> # Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +# Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> # # This file is part of GNU Guix. # @@ -1265,6 +1266,7 @@ dist_patch_DATA = \ %D%/packages/patches/libffi-float128-powerpc64le.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ + %D%/packages/patches/lksctp-tools-1.0.18-fix-header-file-name.patch \ %D%/packages/patches/localed-xorg-keyboard.patch \ %D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \ %D%/packages/patches/kiki-level-selection-crash.patch \ @@ -1558,7 +1560,6 @@ dist_patch_DATA = \ %D%/packages/patches/pybugz-stty.patch \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pyqt-configure.patch \ - %D%/packages/patches/pyqt-public-sip.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2.7-adjust-tests.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ @@ -1638,6 +1639,7 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ + %D%/packages/patches/racket-sh-via-rktio.patch \ %D%/packages/patches/racket-store-checksum-override.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f331503f99..807c3b44ab 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -39,6 +39,7 @@ ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2021 qblade <qblade@protonmail.com> ;;; Copyright © 2021 Hyunseok Kim <lasnesne@lagunposprasihopre.org> +;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1052,6 +1053,36 @@ recursive runs on the generated subnets. (also IPv6) @end itemize\n") (license license:bsd-3))) +(define-public prips + (package + (name "prips") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://devel.ringlet.net/files/sys/" + name "/" name "-" version ".tar.xz")) + (sha256 + (base32 "1a33vbl4w603mk6mm5r3vhk87fy3dfk5wdpch0yd3ncbkg3fmvqn")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list (string-append "CC=" ,(cc-for-target))) + #:test-target "test" + #:phases (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "prips" + (string-append out "/bin")))))))) + (native-inputs `(("perl-test-harness" ,perl-test-harness))) + (synopsis "Tool that prints the IP addresses in a given range") + (description "Prips can be used to print all of the IP addresses in + a given range. This allows the enhancement of tools only work + on one host at a time (e.g. whois).") + (home-page "https://devel.ringlet.net/sysutils/prips/") + (license license:gpl2+))) + (define-public alive (package (name "alive") @@ -1996,7 +2027,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") (define-public acpica (package (name "acpica") - (version "20210105") + (version "20210331") (source (origin (method url-fetch) (uri (string-append @@ -2004,7 +2035,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") version ".tar.gz")) (sha256 (base32 - "1gi7qzfywg118g5nlqn5lawxk25pg2sz01gmbz40vvmikks4ri9r")))) + "1h98pvc9iy1c49cid0ppjwk5zsy2m1xbvfqb72pkwkrd4rn35arx")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) ("bison" ,bison))) diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm index 29763f3452..9bcfe52126 100644 --- a/gnu/packages/antivirus.scm +++ b/gnu/packages/antivirus.scm @@ -44,14 +44,14 @@ (define-public clamav (package (name "clamav") - (version "0.103.1") + (version "0.103.2") (source (origin (method url-fetch) (uri (string-append "https://www.clamav.net/downloads/production/" "clamav-" version ".tar.gz")) (sha256 (base32 - "0mz2aq8dh4i7mh59r71scczgyjbsj8l0a51nkwxsys5ji5xw823k")) + "1lhv4xw89sszi519agvc9mi6jz5aiivm9yr6lciy8qk2csnd1dfl")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 6105ef2590..4660e141a4 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -118,7 +118,7 @@ for reading and writing.") (define-public erfa (package (name "erfa") - (version "1.7.2") + (version "1.7.3") (source (origin (method git-fetch) @@ -127,7 +127,7 @@ for reading and writing.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vsqwvzlk7r8q7nwyb7i710blcfdl5kwcm2va9km07a820nsp84a")))) + (base32 "0nh12dr7gk4ki55lz95pkm4fpf7kazirra3zax9pab6v4qql4hlw")))) (build-system gnu-build-system) (native-inputs `(("automake" ,automake) @@ -137,8 +137,10 @@ for reading and writing.") (home-page "https://github.com/liberfa/erfa") (synopsis "Essential Routines for Fundamental Astronomy") (description - "ERFA is a C library containing key algorithms for astronomy, and is based -on the SOFA library published by the International Astronomical Union (IAU).") + "The @acronym{ERFA, Essential Routines for Fundamental Astronomy} C library +contains key algorithms for astronomy, and is based on the @acronym{SOFA, +Standards of Fundamental Astronomy} library published by the @acronym{IAU, +International Astronomical Union}.") (license license:bsd-3))) (define-public eye @@ -399,7 +401,7 @@ deconvolution). Such post-processing is not performed by Stackistry.") (define-public stellarium (package (name "stellarium") - (version "0.20.4") + (version "0.21.0") (source (origin (method url-fetch) @@ -407,7 +409,7 @@ deconvolution). Such post-processing is not performed by Stackistry.") "/releases/download/v" version "/stellarium-" version ".tar.gz")) (sha256 - (base32 "1253zlr0mi4kdbj119spxk7spg4rkahb4rlpd0hz1d81mnv3n0v3")))) + (base32 "04vg2asj9gygwnrs32scqc8192ln2lyqa9v7cjqk8zd4frkwszwp")))) (build-system cmake-build-system) (inputs `(("qtbase" ,qtbase) @@ -1009,13 +1011,13 @@ astronomical images, especially when there is no WCS information available.") (define-public python-skyfield (package (name "python-skyfield") - (version "1.36") + (version "1.38") (source (origin (method url-fetch) (uri (pypi-uri "skyfield" version)) (sha256 - (base32 "1dm1327a4qv3klj9blrvddbhl72v1fqz52ym9km8qjj9vdkpywh6")))) + (base32 "1qi1l8qn6irdv6w41qq30s2yjwak7h6ayywr1pry9gwcm2c25bv5")))) (build-system python-build-system) (arguments ;; NOTE: (Sharlatan-20210207T163305+0000): tests depend on custom test diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index eff45af80f..c9a9ebf32d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot> -;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019, 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net> @@ -78,6 +78,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnunet) ; libmicrohttpd #:use-module (gnu packages gperf) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) @@ -567,11 +568,11 @@ streams from live audio.") (define-public ardour (package (name "ardour") - (version "5.12") + (version "6.6") (source (origin (method git-fetch) (uri (git-reference - (url "https://git.ardour.org/ardour/ardour.git") + (url "git://git.ardour.org/ardour/ardour.git") (commit version))) (snippet ;; Ardour expects this file to exist at build time. The revision @@ -581,15 +582,16 @@ streams from live audio.") "libs/ardour/revision.cc" (lambda (port) (format port ,(string-append "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"" version "\" ; }")) +namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \"\"; }")) #t))) (sha256 (base32 - "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr")) + "0k5rxh8b3d8si3lj01gfqj0pmd448d8sj4asnb205mwhwbfgn0cp")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments `(#:configure-flags '("--cxx11" ; required by gtkmm + "--optimize" "--no-phone-home" ; don't contact ardour.org "--freedesktop" ; build .desktop file "--test") ; build unit tests @@ -619,8 +621,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }")) ver ".appdata.xml") (string-append share "/appdata/"))) #t))) - #:test-target "test" - #:python ,python-2)) + #:test-target "test")) (inputs `(("alsa-lib" ,alsa-lib) ("atkmm" ,atkmm) @@ -628,6 +629,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }")) ("boost" ,boost) ("cairomm" ,cairomm) ("curl" ,curl) + ("dbus" ,dbus) ("eudev" ,eudev) ("fftw" ,fftw) ("fftwf" ,fftwf) @@ -644,17 +646,21 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }")) ("libsndfile" ,libsndfile) ("libusb" ,libusb) ("libvorbis" ,libvorbis) + ("libwebsockets" ,libwebsockets) ("libxml2" ,libxml2) ("lilv" ,lilv) ("lrdf" ,lrdf) ("lv2" ,lv2) + ("openssl" ,openssl) ; Required by libwebsockets. ("pangomm" ,pangomm) ("python-rdflib" ,python-rdflib) + ("pulseaudio" ,pulseaudio) ("readline" ,readline) ("redland" ,redland) ("rubberband" ,rubberband) ("serd" ,serd) ("sord" ,sord) + ("soundtouch" ,soundtouch) ("sratom" ,sratom) ("suil" ,suil) ("taglib" ,taglib) @@ -4088,7 +4094,7 @@ kbps at 24 bit/96 kHz.") (home-page "https://github.com/Arkq/bluez-alsa") (synopsis "Bluetooth ALSA backend") (description "This project is a rebirth of a direct integration between -Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed +Bluez and ALSA. Since Bluez >= 5, the built-in integration has been removed in favor of 3rd party audio applications. From now on, Bluez acts as a middleware between an audio application, which implements Bluetooth audio profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth @@ -4255,7 +4261,7 @@ the following features: (home-page "https://github.com/werman/noise-suppression-for-voice") (synopsis "Speech denoise LV2 plugin based on Xiph's RNNoise library") (description "RNNoise is a library that uses deep learning to apply -noise supression to audio sources with voice presence. This package provides +noise suppression to audio sources with voice presence. This package provides an LV2 audio plugin.") (license license:lgpl3+)))) @@ -4460,7 +4466,7 @@ library.") (define-public faudio (package (name "faudio") - (version "19.11") + (version "21.04") (source (origin (method git-fetch) @@ -4469,19 +4475,24 @@ library.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0ckpr6ffz8ssfh1y850dhip5s5jv0j6n90qz5yx1v9d6gpwf08rp")))) + (base32 "1g3zp7igh4ns31sqnxddxqhgibijngkbcqqsj23i9d1lah6k4747")))) (arguments '(#:tests? #f ; No tests. - #:configure-flags '("-DFFMPEG=ON"))) + #:configure-flags '("-DGSTREAMER=ON"))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("ffmpeg" ,ffmpeg) + (inputs `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) ("sdl2" ,sdl2))) (home-page "https://github.com/FNA-XNA/FAudio") (synopsis "XAudio reimplementation") (description "FAudio is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries.") - (license license:zlib))) + (license + (list license:zlib + ;; stb & utils/{ui,wav}common are dual-licenced under either of: + license:expat + license:public-domain)))) (define-public gnaural (package diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 12a36a4709..33e1905a25 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -537,7 +537,7 @@ complexity of working with shared libraries across platforms.") (native-inputs `(("help2man" ,help2man))) (home-page "https://savannah.gnu.org/projects/config") - (synopsis "Ubiquitious config.guess and config.sub scripts") + (synopsis "Ubiquitous config.guess and config.sub scripts") (description "The `config.guess' script tries to guess a canonical system triple, and `config.sub' validates and canonicalizes. These are used as part of configuration in nearly all GNU packages (and many others).") diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 88dca552e0..171736064c 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -619,6 +619,32 @@ as provided by UCSC (hg38, Dec. 2013) and stored in Biostrings objects.") "This package exposes an annotation database generated from Ensembl.") (license license:artistic2.0))) +(define-public r-txdb-dmelanogaster-ucsc-dm6-ensgene + (package + (name "r-txdb-dmelanogaster-ucsc-dm6-ensgene") + (version "3.12.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "TxDb.Dmelanogaster.UCSC.dm6.ensGene" + version 'annotation)) + (sha256 + (base32 + "0yij7zyqkmmr13389rs2gfa5anvvw648nnl1kjbsgvyxkggif8q4")))) + (properties + `((upstream-name . "TxDb.Dmelanogaster.UCSC.dm6.ensGene"))) + (build-system r-build-system) + (propagated-inputs + `(("r-annotationdbi" ,r-annotationdbi) + ("r-genomicfeatures" ,r-genomicfeatures))) + (home-page + "https://bioconductor.org/packages/TxDb.Dmelanogaster.UCSC.dm6.ensGene") + (synopsis "Annotation package for TxDb object(s)") + (description + "This package exposes an annotation databases generated from UCSC by +exposing these as TxDb objects.") + (license license:artistic2.0))) + (define-public r-txdb-hsapiens-ucsc-hg19-knowngene (package (name "r-txdb-hsapiens-ucsc-hg19-knowngene") @@ -1087,7 +1113,7 @@ package @code{affy}.") (properties `((upstream-name . "gageData"))) (build-system r-build-system) (home-page "https://bioconductor.org/packages/gageData") - (synopsis "Auxillary data for gage package") + (synopsis "Auxiliary data for the gage package") (description "This is a supportive data package for the software package @code{gage}. However, the data supplied here are also useful for gene set or pathway @@ -10528,8 +10554,8 @@ experiments, and visualize de influence of the involved factors.") by spectral counts, to discover differentially expressed proteins between two biological conditions. Three tests are available: Poisson GLM regression, quasi-likelihood GLM regression, and the negative binomial of the edgeR -package.The three models admit blocking factors to control for nuissance -variables.To assure a good level of reproducibility a post-test filter is +package. The three models admit blocking factors to control for nuisance +variables. To assure a good level of reproducibility a post-test filter is available, where we may set the minimum effect size considered biologicaly relevant, and the minimum expression of the most abundant condition.") (license license:gpl2))) @@ -11065,7 +11091,7 @@ the earlier snpMatrix package, allowing for uncertainty in genotypes.") (description "This package implements functions for combinatorial and differential analysis of ChIP-seq data. It includes uni- and multivariate peak-calling, -export to genome browser viewable files, and functi ons for enrichment +export to genome browser viewable files, and functions for enrichment analyses.") (license license:artistic2.0))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 908916ebf3..475aa019d0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6799,9 +6799,9 @@ of these reads to align data quickly through a hash-based indexing scheme.") (synopsis "Biological sequence analysis tool for NGS reads") (description "SortMeRNA is a biological sequence analysis tool for filtering, mapping -and operational taxonomic unit (OTU) picking of next generation -sequencing (NGS) reads. The core algorithm is based on approximate seeds and -allows for fast and sensitive analyses of nucleotide sequences. The main +and @acronym{OTU, operational taxonomic unit} picking of @acronym{NGS, next +generation sequencing} reads. The core algorithm is based on approximate seeds +and allows for fast and sensitive analyses of nucleotide sequences. The main application of SortMeRNA is filtering rRNA from metatranscriptomic data.") ;; The source includes x86 specific code (supported-systems '("x86_64-linux" "i686-linux")) diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 1323e28278..a59bb01f3d 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> +;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages shells) + #:use-module (gnu packages mpi) #:use-module (srfi srfi-1)) (define (version-with-underscores version) @@ -347,6 +349,30 @@ Boost.Thread.") signals and slots system.") (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))) + +(define-public boost-mpi + (package + (inherit boost) + (name "boost-mpi") + (native-inputs + `(("perl" ,perl) + ,@(if (%current-target-system) + '() + `(("python" ,python-wrapper))) + ("openmpi" , openmpi))) + (arguments + (substitute-keyword-arguments (package-arguments boost) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'configure 'update-jam + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((output-port (open-file "project-config.jam" "a"))) + (display "using mpi ;" output-port) + (newline output-port) + (close output-port)))))))) + (home-page "https://www.boost.org") + (synopsis "Message Passing Interface (MPI) library for C++"))) + (define-public mdds (package (name "mdds") diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index c9a3d2c217..6093e0d9e6 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -478,15 +478,15 @@ tree binary files. These are board description files used by Linux and BSD.") (define u-boot (package (name "u-boot") - (version "2021.01") + (version "2021.04") (source (origin (method url-fetch) (uri (string-append - "ftp://ftp.denx.de/pub/u-boot/" + "https://ftp.denx.de/pub/u-boot/" "u-boot-" version ".tar.bz2")) (sha256 (base32 - "0m04glv9kn3bhs62sn675w60wkrl4m3a4hnbnnw67s3l198y21xl")))) + "06p1vymf0dl6jc2xy5w7p42mpgppa46lmpm2ishmgsycnldqnhqd")))) (native-inputs `(("bc" ,bc) ("bison" ,bison) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index b5cebf0f9b..87f393cf5c 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -317,7 +317,7 @@ resembles Python.") (define-public meson-next (package (inherit meson) - (version "0.57.1") + (version "0.57.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -325,7 +325,7 @@ resembles Python.") version ".tar.gz")) (sha256 (base32 - "19n8alcpzv6npgp27iqljkmvdmr7s2c7zm8y997j1nlvpa1cgqbj")))))) + "1iac7p99zfgkznq4qlnkk7b8xwwlilcrnkf33sczm56yqnqyg0rs")))))) (define-public meson-for-build (package diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 429ff94070..36a9366554 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -546,7 +546,7 @@ portability.") (define-public aws-c-common (package (name "aws-c-common") - (version "0.5.2") + (version "0.5.3") (source (origin (method git-fetch) (uri (git-reference @@ -555,7 +555,7 @@ portability.") (file-name (git-file-name name version)) (sha256 (base32 - "0rd2qzaa9mmn5f6f2bl1wgv54f17pqx3vwyy9f8ylh59qfnilpmg")))) + "03fcvh3l1l6fkzkcbaprk10qmy8l77zhmh60h1px2ik09sqd9p72")))) (build-system cmake-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 7c95ea6950..2ad4de55f8 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -24,11 +24,11 @@ ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017, 2019 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Nikita <nikita@n0.is> -;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> -;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> @@ -1132,6 +1132,37 @@ supports coverage of subprocesses.") (define-public python2-pytest-cov (package-with-python2 python-pytest-cov)) +(define-public python-pytest-httpserver + (package + (name "python-pytest-httpserver") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest_httpserver" version)) + (sha256 + (base32 + "0vbls0j570l5my83j4jnk5blmnir44i0w511azlh41nl6k8rac5f")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-werkzeug" ,python-werkzeug))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-library-loading + (lambda _ + (setenv "PYTHONPATH" (string-append (getenv "PYTHONPATH") ":.")))) + (replace 'check + (lambda _ + (invoke "pytest" "tests" "-vv") + (invoke "pytest" "tests" "-vv" "--ssl")))))) + (home-page "https://github.com/csernazs/pytest-httpserver") + (synopsis "HTTP server for pytest") + (description "Pytest plugin library to test http clients without +contacting the real http server.") + (license license:expat))) + (define-public python-pytest-runner (package (name "python-pytest-runner") @@ -1738,7 +1769,7 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.") (define-public python-testpath (package (name "python-testpath") - (version "0.2") + (version "0.4.4") (source (origin (method git-fetch) @@ -1748,7 +1779,7 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.") (file-name (git-file-name name version)) (sha256 (base32 - "0r4iiizjql6ny1ln7ciw7rrbjadz1s9zrf2hl0xkgnh3ypd8936f")))) + "1fwv4d3p54xx1x942s104irr35lszvv6jnr4nn1scsfvc0m1qmbk")))) (build-system python-build-system) (arguments `(#:tests? #f ; this package does not even have a setup.py @@ -1757,19 +1788,25 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.") (srfi srfi-1)) #:phases (modify-phases %standard-phases - (delete 'install) (replace 'build + (lambda _ + ;; A ZIP archive should be generated, but it fails with "ZIP does + ;; not support timestamps before 1980". Luckily, + ;; SOURCE_DATE_EPOCH is respected, which we set to some time in + ;; 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "flit" "build"))) + (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((version (last - (string-split (assoc-ref inputs "python") #\-))) - (x.y (string-join (take (string-split version #\.) 2) - ".")) - (dir (string-append - (assoc-ref outputs "out") - "/lib/python" x.y "/site-packages/testpath"))) - (mkdir-p dir) - (copy-recursively "testpath" dir)) - #t))))) + (add-installed-pythonpath inputs outputs) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (wheel) + (format #true wheel) + (invoke "python" "-m" "pip" "install" + wheel (string-append "--prefix=" out))) + (find-files "dist" "\\.whl$")))))))) + (native-inputs + `(("python-flit" ,python-flit))) (home-page "https://github.com/takluyver/testpath") (synopsis "Test utilities for code working with files and commands") (description diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index de7c887061..835e9e2050 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -21,8 +21,6 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix gexp) - #:use-module (guix store) - #:use-module (guix monads) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) @@ -305,7 +303,7 @@ (string-append "ungoogled-chromium-" category "-" name)))) (sha256 (base32 hash)))) -(define %ungoogled-revision "89.0.4389.90-1") +(define %ungoogled-revision "89.0.4389.114-1") (define %debian-revision "debian/84.0.4147.105-1") (define %debian-patches @@ -325,7 +323,7 @@ %ungoogled-revision))) (sha256 (base32 - "0pr756d1b4wc67d61b21yszi7mx1hsjy14i44j0kvcwm05pgnf79")))) + "0cr2i51gxhgl55c8f9w0ra3m5q2dk03sf7p2qn4bqq1l1l72hw6s")))) (define %guix-patches (list (local-file @@ -466,7 +464,7 @@ ".tar.xz")) (sha256 (base32 - "16i7bgk2jbcqs2p28nk5mlf0k6wah594pcsfm8b154nxbyf0iihi")) + "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index eaf32d9739..030fc73ef9 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -25,31 +25,38 @@ #:use-module ((guix licenses) #:prefix l:) #:use-module (gnu packages) #:use-module (guix packages) + #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix download) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) #:use-module (gnu packages docbook) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages gnupg) + #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages mail) #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages perl-compression) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages serialization) + #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages texinfo) #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xml) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) (define-public cuirass - (let ((commit "1b35a7785627f3e8c5b6d8f37bf11eb4a470b4c4") - (revision "7")) + (let ((commit "d601fe0e4c85ab7b37f0571e898448c9fadde715") + (revision "9")) (package (name "cuirass") (version (git-version "1.0.0" revision commit)) @@ -62,7 +69,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1hy8inhwpi9i92yg5alvmqgp1vjnrhinckywkv9kgyjlskzshib3")))) + "09d05bqy7wqz9175b4nv3sqasibx4175kmiz75id05ipr0vn0j12")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build utils) @@ -70,6 +77,11 @@ (ice-9 rdelim) (ice-9 popen)) #:configure-flags '("--localstatedir=/var") ;for /var/log/cuirass + ;; XXX: HTTP tests fail on aarch64 due to Fibers errors, disable them + ;; on that architecture for now. + #:tests? ,(let ((s (or (%current-target-system) + (%current-system)))) + (not (string-prefix? "aarch64" s))) #:parallel-tests? #f #:phases (modify-phases %standard-phases @@ -177,3 +189,118 @@ intended as a replacement for Hydra.") (home-page "https://guix.gnu.org/cuirass/") (license l:gpl3+)))) + +(define-public laminar + (package + (name "laminar") + (version "1.0") + (source + (origin (method url-fetch) + (uri (string-append "https://github.com/ohwgiles/laminar/archive/" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "11m6h3rdmj2rsmsryy7r40gqccj4gg1cnqwy6blscs87gx4s423g")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; TODO Can't build tests + #:configure-flags + (list "-DCMAKE_CXX_STANDARD=17" + ;; "-DBUILD_TESTS=true" TODO: objcopy: js/stPskyUS: can't add + ;; section '.note.GNU-stack': file format not recognized + (string-append "-DLAMINAR_VERSION=" ,version)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-CMakeLists.txt + (lambda _ + (substitute* "CMakeLists.txt" + (("file\\(DOWNLOAD.*\n$") + "# file download removed by Guix --") + (("install\\(FILES etc/laminar.service DESTINATION \\$\\{SYSTEMD\\_UNITDIR\\}\\)") + "") + (("install\\(FILES \\$\\{CMAKE\\_CURRENT\\_BINARY\\_DIR\\}\\/laminar\\.service DESTINATION \\$\\{SYSTEMD\\_UNITDIR\\}\\)") + "") + (("install\\(FILES etc/laminar\\.conf DESTINATION \\/etc\\)") "") + (("\\/usr\\/") "")) + #t)) + (add-after 'configure 'copy-in-javascript-and-css + (lambda* (#:key inputs outputs #:allow-other-keys) + (use-modules (ice-9 popen)) + + (mkdir-p "../build/js") + (for-each (lambda (name) + (let* ((file + (assoc-ref inputs (string-append name ".js"))) + (port + (open-pipe* OPEN_READ "uglify-js" file)) + (destination + (string-append + "../build/js/" name ".min.js"))) + + (call-with-output-file destination + (lambda (output-port) + (dump-port port output-port))) + + (let ((exit (close-pipe port))) + (unless (zero? exit) + (error "uglify-js failed" exit))))) + + '("vue" + "vue-router" + "Chart")) + + ;; ansi_up.js isn't minified + (copy-file (assoc-ref inputs "ansi_up.js") + "../build/js/ansi_up.js") + + #t))))) + (inputs + `(("capnproto" ,capnproto) + ("rapidjson" ,rapidjson) + ("sqlite" ,sqlite) + ("boost" ,boost) + ("zlib" ,zlib))) + (native-inputs + `(("googletest" ,googletest) + ("uglify-js" ,uglify-js) + + ("vue.js" + ,(origin (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/" + "vuejs/vue/v2.6.12/dist/vue.js")) + (sha256 + (base32 + "1mq2dn6yqbmzar77xf4x2bvvanf9xc9nwfq06sksl5zmr300m7qm")))) + ("vue-router.js" + ,(origin (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/" + "vuejs/vue-router/v3.4.8/dist/vue-router.js")) + (sha256 + (base32 + "1hkrbgzhpnrsb4zdafslqagy1vkac6bkdj7kh49js2lhkp9z4nj5")))) + ("ansi_up.js" + ,(origin (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/" + "drudru/ansi_up/v1.3.0/ansi_up.js")) + (sha256 + (base32 + "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r")))) + ("Chart.js" + ,(origin (method url-fetch) + (uri (string-append "https://github.com/chartjs/Chart.js/" + "releases/download/v2.7.2/Chart.js")) + (sha256 + (base32 + "05m3gk6hqjx92j20drnk7q075qpjraywqaf25lnglmsgsgpiqsr7")))))) + (synopsis "Lightweight continuous integration service") + (description + "Laminar is a lightweight and modular continuous integration service. It +doesn't have a configuration web UI instead uses version-controllable +configuration files and scripts. + +Laminar encourages the use of existing tools such as bash and cron instead of +reinventing them.") + (home-page "https://laminar.ohwg.net/") + (license l:gpl3+))) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 2a00d3838a..58345e7c33 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -273,7 +273,7 @@ combination of these streams.") (define-public xsimd (package (name "xsimd") - (version "7.4.9") + (version "7.4.10") (source (origin (method git-fetch) @@ -281,7 +281,7 @@ combination of these streams.") (url "https://github.com/QuantStack/xsimd") (commit version))) (sha256 - (base32 "11by8gbshm4vv6flqp0ihff8c6nmbaqq7ms93b38rrq68bigcply")) + (base32 "097yvxrxdldi5s5m4nsxv8f4gwv9xj42mqig98a1z3hkjj1j2gn5")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 61de48e08e..6f931f06c2 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> -;;; Copyright © 2016, 2017, 2018, 2020 Roel Janssen <roel@gnu.org> +;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Raoul Bonnal <ilpuccio.febo@gmail.com> ;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com> @@ -1059,6 +1059,25 @@ the embedded @code{RapidXML} C++ library.") into a pipeline of data manipulation and visualisation.") (license license:gpl3))) +(define-public r-hmm + (package + (name "r-hmm") + (version "1.0") + (source (origin + (method url-fetch) + (uri (cran-uri "HMM" version)) + (sha256 + (base32 + "0z0hcqfixx1l2a6d3lpy5hmh0n4gjgs0jnck441akpp3vh37glzw")))) + (properties `((upstream-name . "HMM"))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/HMM/") + (synopsis "Hidden Markov Models") + (description "This package provides an easy to use library to setup, apply +and make inference with discrete time and discrete space hidden Markov +models.") + (license license:gpl2+))) + (define-public r-httpuv (package (name "r-httpuv") @@ -9538,10 +9557,10 @@ singular or ill-conditioned Jacobian.") `((upstream-name . "PhysicalActivity"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/PhysicalActivity/") - (synopsis "Procesing accelerometer data for physical activity measurement") + (synopsis "Processing accelerometer data for physical activity measurement") (description "This @code{r-physicalactivity} package provides a function @code{wearingMarking} -for classification of monitor wear and nonwear time intervals in accelerometer +for classification of monitored wear and nonwear time intervals in accelerometer data collected to assess physical activity. The package also contains functions for making plots of accelerometer data and obtaining the summary of various information including daily monitor wear time and the mean monitor wear time @@ -16376,7 +16395,7 @@ sets of URLs.") (description "The aim of the ggplot2 package is to aid in visual data investigations. This focus has led to a lack of facilities for composing specialized plots. -Thi package aims to be a collection of mainly new statistics and geometries +This package aims to be a collection of mainly new statistics and geometries that fills this gap.") (license license:expat))) @@ -28317,3 +28336,29 @@ indicator, a quantitative variable or a survival time.") differential expression analysis, RNAseq data and related problems.") ;; Any version of the LGPL (license license:lgpl3+))) + +(define-public r-randomforestsrc + (package + (name "r-randomforestsrc") + (version "2.9.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "randomForestSRC" version)) + (sha256 + (base32 + "05ifvj49jv0n5p6k46milpgj9r10sc5aw23fypyyibdgwpwvwixw")))) + (properties + `((upstream-name . "randomForestSRC"))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/randomForestSRC/") + (synopsis "Random forests for survival, regression, and classification") + (description + "This package implements fast OpenMP parallel computing of Breiman's +random forests for survival, competing risks, regression and classification +based on Ishwaran and Kogalur's popular random survival forests (RSF) package. +It handles missing data and now includes multivariate, unsupervised forests, +quantile regression and solutions for class imbalanced data. It provides a +fast interface using subsampling and confidence regions for variable +importance.") + (license license:gpl3+))) diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index 3485e53938..cd1712dc13 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -1934,6 +1934,7 @@ interactive applications.") ("rust-arbitrary" ,rust-arbitrary-0.4) ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3) ("rust-arrayvec" ,rust-arrayvec-0.5) + ("rust-assert-cmd" ,rust-assert-cmd-1) ("rust-av-metrics" ,rust-av-metrics-0.6) ("rust-backtrace" ,rust-backtrace-0.3) ("rust-bitstream-io" ,rust-bitstream-io-1) @@ -1942,6 +1943,7 @@ interactive applications.") ("rust-cfg-if" ,rust-cfg-if-1) ("rust-clap" ,rust-clap-2) ("rust-console" ,rust-console-0.14) + ("rust-criterion" ,rust-criterion-0.3) ("rust-crossbeam" ,rust-crossbeam-0.8) ("rust-dav1d-sys" ,rust-dav1d-sys-0.3) ("rust-fern" ,rust-fern-0.6) @@ -1957,6 +1959,7 @@ interactive applications.") ("rust-num-derive" ,rust-num-derive-0.3) ("rust-num-traits" ,rust-num-traits-0.2) ("rust-paste" ,rust-paste-1) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.6) ("rust-rand" ,rust-rand-0.8) ("rust-rand-chacha" ,rust-rand-chacha-0.3) ("rust-rayon" ,rust-rayon-1) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 5d2ccc0731..9d9781683b 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -13969,7 +13969,7 @@ supported in purely NFA-based implementations.") (synopsis "Find the physical space used by a file") (description "@code{filesize} abstracts platform-specific methods of determining the -real space used by files, taking into account filesystem compression and +real space used by files, taking into account file system compression and sparse files.") (license license:expat))) @@ -18080,8 +18080,8 @@ Hash-based Message Authentication Code}.") (home-page "https://github.com/pantsman0/rust-hmac-sha1") (synopsis "Minimal implementation of HMAC-SHA1 in Rust") (description - "This package is a pure Rust implementation of the Hash-based Message -Authentication Code Algoritm (HMAC) for SHA1.") + "This package is a pure Rust implementation of the @acronym{HMAC, +Hash-based Message Authentication Code algorithm} for SHA1.") (license license:bsd-3))) (define-public rust-hostname-0.3 @@ -35802,8 +35802,9 @@ with one of the implemented strategies.") (("rust-fs2" ,rust-fs2-0.4)))) (home-page "https://github.com/dtolnay/scratch") (synopsis "Compile-time temporary directory") - (description "This crate exposes a compile-time temporary directory sharable -by multiple crates in a build graph and erased by @code{cargo clean}.") + (description "This crate exposes a compile-time temporary directory +shareable by multiple crates in a build graph and erased by @code{cargo +clean}.") (license (list license:expat license:asl2.0)))) (define-public rust-scrypt-0.3 diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 3cff4d0f32..fb3ac05f44 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -48,6 +48,7 @@ ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021 Greg Hogan <code@greghogan.com> +;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1002,6 +1003,31 @@ as a drop-in replacement of MySQL.") developed in C/C++ to MariaDB and MySQL databases.") (license license:lgpl2.1+))) +(define-public galera + (package + (name "galera") + (version "26.4.7") + (source (origin + (method git-fetch) + (uri (git-reference + (commit "bac8171266cb982fe013ce496d78085438c6f23e") + (url "https://github.com/codership/galera") + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0h7s670pcasq8wzprhyxqfca2cghi62b8xz2kikb2a86wd453qil")))) + (build-system cmake-build-system) + (inputs + `(("check" ,check) + ("boost" ,boost) + ("openssl" ,openssl))) + (home-page "https://github.com/codership/galera/") + (synopsis "Extension to the MariaDB database server") + (description + "Galera is a wsrep-provider that is used with MariaDB for load-balancing +and high-availability (HA).") + (license license:gpl2))) ;'COPYING' says "version 2" only + ;; Don't forget to update the other postgresql packages when upgrading this one. (define-public postgresql-13 (package @@ -3795,14 +3821,14 @@ PostreSQL, SQLite, ODBC and MySQL.") (define-public freetds (package (name "freetds") - (version "1.2.18") + (version "1.2.19") (source (origin (method url-fetch) (uri (string-append "https://www.freetds.org/files/stable/" "freetds-" version ".tar.gz")) (sha256 - (base32 "1hspvwxwdd1apadsy2b40dpjik8kfwcvdamvhpg3lnm15n02fb50")))) + (base32 "11xf2w8gh2p9cq4i38jfvdiwgig8wqbg098xjc08kx4iii8lxy3m")))) (build-system gnu-build-system) (arguments ;; NOTE: (Sharlatan-20210110213908+0000) some tests require DB connection, diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 6b9a9e4812..bf0897b083 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -351,7 +351,7 @@ to disk. It should be stressed that gpart does a very heuristic job. It can easily be right in its guesswork but it can also be terribly wrong. Never believe its -output without any plausability checks.") +output without any plausibility checks.") (license license:gpl2+)))) (define-public gptfdisk diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index c940657ce9..3cf88febae 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -278,7 +278,7 @@ prompt the user with the option to go with insecure DNS only.") (define-public dnsmasq (package (name "dnsmasq") - (version "2.84") + (version "2.85") (source (origin (method url-fetch) (uri (string-append @@ -286,7 +286,7 @@ prompt the user with the option to go with insecure DNS only.") version ".tar.xz")) (sha256 (base32 - "0305a0c3snwqcv77sipyynr55xip1fp2843yn04pc4vk9g39acb0")))) + "1yhjwgz8g5qrqvxh6bbmg3443zi8qqjks3q872wyb1zn7n0d765d")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index dfc3d9f2e6..504171ca8b 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2017, 2019, 2020, 2021 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> @@ -58,10 +58,14 @@ #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-compression) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) + #:use-module (gnu packages speech) #:use-module (gnu packages sqlite) #:use-module (gnu packages time) #:use-module (gnu packages tls) @@ -88,10 +92,30 @@ (description "CHMLIB is a library for dealing with ITSS/CHM format files.") (license license:lgpl2.1+))) +(define-public python-pychm + (package + (name "python-pychm") + (version "0.8.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pychm" version)) + (sha256 + (base32 + "0wpn9ijlsmrpyiwg3drmgz4dms1i1i347adgqw37bkrh3vn6yq16")))) + (build-system python-build-system) + (inputs + `(("chmlib" ,chmlib))) + (home-page "https://github.com/dottedmag/pychm") + (synopsis "Handle CHM files") + (description "This package provides a Python module for interacting +with Microsoft Compiled HTML (CHM) files") + (license license:gpl2+))) + (define-public calibre (package (name "calibre") - (version "4.18.0") + (version "5.14.0") (source (origin (method url-fetch) @@ -100,7 +124,7 @@ version ".tar.xz")) (sha256 (base32 - "0w9pcfvskjh4v00vjw3i6hzrafy863pgsmmqdx4lffip3p856brw")) + "0w8j9r9qa56r8gm9b10dwh8zrzqlv79s2br82jqg02lrnrbwwv0q")) (modules '((guix build utils))) (snippet '(begin @@ -112,8 +136,6 @@ "")) ;; Remove unneeded resources. - (delete-file "resources/viewer.js") - (delete-file "resources/viewer.html") (delete-file "resources/mozilla-ca-certs.pem") (delete-file "resources/calibre-portable.bat") (delete-file "resources/calibre-portable.sh") @@ -125,57 +147,60 @@ (native-inputs `(("pkg-config" ,pkg-config) ("qtbase" ,qtbase) ; for qmake - ("python2-flake8" ,python2-flake8) + ("python-flake8" ,python-flake8) + ("python-pyqt-builder" ,python-pyqt-builder) ("xdg-utils" ,xdg-utils))) (inputs - `(("chmlib" ,chmlib) - ("fontconfig" ,fontconfig) + `(("fontconfig" ,fontconfig) ("font-liberation" ,font-liberation) ("glib" ,glib) ("hunspell" ,hunspell) ("hyphen" ,hyphen) ("icu4c" ,icu4c) - ("js-mathjax" ,js-mathjax) ("libmtp" ,libmtp) ("libpng" ,libpng) + ("libjpeg" ,libjpeg-turbo) + ("libjxr" ,libjxr) ("libusb" ,libusb) ("openssl" ,openssl) ("optipng" ,optipng) ("podofo" ,podofo) ("poppler" ,poppler) - ("python" ,python-2) - ("python2-apsw" ,python2-apsw) - ("python2-beautifulsoup4" ,python2-beautifulsoup4) - ("python2-chardet" ,python2-chardet) - ("python2-cssselect" ,python2-cssselect) - ("python2-css-parser" ,python2-css-parser) - ("python2-dateutil" ,python2-dateutil) - ("python2-dbus" ,python2-dbus) - ("python2-dnspython" ,python2-dnspython-1.16) - ("python2-dukpy" ,python2-dukpy) - ("python2-feedparser" ,python2-feedparser) - ("python2-html2text" ,python2-html2text) - ("python2-html5-parser" ,python2-html5-parser) - ("python2-html5lib" ,python2-html5lib) - ("python2-lxml" ,python2-lxml) - ("python2-markdown" ,python2-markdown) - ("python2-mechanize" ,python2-mechanize) - ;; python2-msgpack is needed for the network content server to work. - ("python2-msgpack" ,python2-msgpack) - ("python2-netifaces" ,python2-netifaces) - ("python2-odfpy" ,python2-odfpy) - ("python2-pillow" ,python2-pillow) - ("python2-psutil" ,python2-psutil) - ("python2-pygments" ,python2-pygments) - ("python2-pyqtwebengine" ,python2-pyqtwebengine) - ("python2-pyqt" ,python2-pyqt) - ("python2-sip" ,python2-sip) - ("python2-regex" ,python2-regex) + ("python-apsw" ,python-apsw) + ("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-cchardet" ,python-cchardet) + ("python-css-parser" ,python-css-parser) + ("python-cssselect" ,python-cssselect) + ("python-dateutil" ,python-dateutil) + ("python-dbus" ,python-dbus) + ("python-dnspython" ,python-dnspython-1.16) + ("python-dukpy" ,python-dukpy) + ("python-feedparser" ,python-feedparser) + ("python-html2text" ,python-html2text) + ("python-html5-parser" ,python-html5-parser) + ("python-html5lib" ,python-html5lib) + ("python-lxml" ,python-lxml) + ("python-markdown" ,python-markdown) + ("python-mechanize" ,python-mechanize) + ;; python-msgpack is needed for the network content server to work. + ("python-msgpack" ,python-msgpack) + ("python-netifaces" ,python-netifaces) + ("python-odfpy" ,python-odfpy) + ("python-pillow" ,python-pillow) + ("python-psutil" ,python-psutil) + ("python-py7zr" ,python-py7zr) + ("python-pychm" ,python-pychm) + ("python-pycryptodome" ,python-pycryptodome) + ("python-pygments" ,python-pygments) + ("python-pyqt" ,python-pyqt) + ("python-pyqtwebengine" ,python-pyqtwebengine) + ("python-regex" ,python-regex) + ("python-speechd" ,speech-dispatcher) + ("python-zeroconf" ,python-zeroconf) ("qtwebengine" ,qtwebengine) ("sqlite" ,sqlite))) (arguments - `(#:python ,python-2 - ;; Calibre is using setuptools by itself, but the setup.py is not + `(;; Calibre is using setuptools by itself, but the setup.py is not ;; compatible with the shim wrapper (taken from pip) we are using. #:use-setuptools? #f #:phases @@ -207,18 +232,27 @@ (add-before 'build 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((podofo (assoc-ref inputs "podofo")) - (pyqt (assoc-ref inputs "python2-pyqt")) - (python-sip (assoc-ref inputs "python2-sip")) + (pyqt (assoc-ref inputs "python-pyqt")) + (python-sip (assoc-ref inputs "python-sip")) (out (assoc-ref outputs "out"))) - (substitute* "setup/build_environment.py" - (("= get_sip_dir\\(\\)") - (string-append "= '" pyqt "/share/sip'"))) - + (substitute* "setup/build.py" + (("\\[tool.sip.bindings.pictureflow\\]") + "[tool.sip.bindings.pictureflow] +tags = [\"WS_X11\"]") + (("\\[tool.sip.project\\]") + (string-append "[tool.sip.project] +sip-include-dirs = [\"" pyqt "/share/sip" "\"]"))) (substitute* "src/calibre/ebooks/pdf/pdftohtml.py" (("PDFTOHTML = 'pdftohtml'") (string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler") "/bin/pdftohtml\""))) - + ;; get_exe_path looks in poppler's output for these binaries. Make + ;; it not do that. + (substitute* "src/calibre/utils/img.py" + (("get_exe_path..jpegtran..") (string-append "'" (which "jpegtran") "'")) + (("get_exe_path..cjpeg..") (string-append "'" (which "cjpeg") "'")) + (("get_exe_path..optipng..") (string-append "'" (which "optipng") "'")) + (("get_exe_path..JxrDecApp..") (string-append "'" (which "JxrDecApp") "'"))) ;; Calibre thinks we are installing desktop files into a home ;; directory, but here we butcher the script in to installing ;; to calibres /share directory. @@ -237,7 +271,6 @@ "/share/fonts") "/tmp/.fonts") - (setenv "SIP_BIN" (string-append python-sip "/bin/sip")) (setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo")) (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib")) ;; This informs the tests we are a continuous integration @@ -248,13 +281,11 @@ ;; fix it, so I'm not sure how to fix it. TODO: Fix test and remove this. (setenv "SKIP_QT_BUILD_TEST" "true") #t))) - (add-after 'build 'build-extra + (add-after 'install 'install-rapydscript (lambda* (#:key inputs #:allow-other-keys) - (invoke "python2" "setup.py" "mathjax""--system-mathjax" - "--path-to-mathjax" (string-append - (assoc-ref inputs "js-mathjax") - "/share/javascript/mathjax")) - (invoke "python2" "setup.py" "rapydscript") + ;; Unset so QtWebengine doesn't dump temporary files here. + (unsetenv "XDG_DATA_HOME") + (invoke "python" "setup.py" "rapydscript") #t)) (add-after 'install 'install-man-pages (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 8e80ccbb56..4def3d802f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -85,7 +85,7 @@ ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io> ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com> ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net> -;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> +;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 André A. Gomes <andremegafone@gmail.com> ;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com> ;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me> @@ -96,6 +96,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -140,6 +141,7 @@ #:use-module (gnu packages djvu) #:use-module (gnu packages ebook) #:use-module (gnu packages emacs) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) @@ -938,6 +940,29 @@ Files with the @file{.graphql} and @file{.gql} extensions are automatically opened with this mode.") (license license:gpl3+)))) +(define-public emacs-ghq + (package + (name "emacs-ghq") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rcoedo/emacs-ghq") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628")))) + (build-system emacs-build-system) + (propagated-inputs + `(("ghq" ,ghq))) + (home-page "https://github.com/rcoedo/emacs-ghq") + (synopsis "Emacs interface for @code{ghq} tool") + (description + "This package provides a set of functions wrapping @code{ghq}, a tool for +organizing remote Go repository clones.") + (license license:gpl3+))) + (define-public emacs-ghub (package (name "emacs-ghub") @@ -1783,14 +1808,14 @@ incrementally confined in Isearch manner.") (define emacs-emms-print-metadata (package (name "emacs-emms-print-metadata") - (version "6.3") + (version "7.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "emms-" version ".tar")) (sha256 - (base32 "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf")))) + (base32 "1hryagy2mkx9zgc33mb773ckp5p9bisnny0r78l0h2vc43wanmhz")))) (build-system gnu-build-system) (arguments `(#:make-flags '("emms-print-metadata") @@ -4680,6 +4705,32 @@ Also included are keybindings for spec files and Dired buffers, as well as snippets for yasnippet.") (license license:gpl3+)))) +(define-public emacs-mode-line-idle + ;; Package has no release. Version is extracted from "Version:" keyword in + ;; main file. + (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241") + (revision "1")) + (package + (name "emacs-mode-line-idle") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (file-name (git-file-name name version)) + (uri (git-reference + (url "https://gitlab.com/ideasman42/emacs-mode-line-idle") + (commit commit))) + (sha256 + (base32 "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/ideasman42/emacs-mode-line-idle") + (synopsis "Simple delayed text evaluation for the mode-line") + (description + "Mode Line Idle provides a convenient way to defer text evaluation +which integrates into existing mode-line without requiring a minor mode or +configuration.") + (license license:gpl3+)))) + (define-public emacs-smart-mode-line (package (name "emacs-smart-mode-line") @@ -9183,6 +9234,30 @@ duplicated a lot. Org-mode makes the book keeping of tags and feeds much easier.") (license license:gpl3+)))) +(define-public emacs-elfeed-protocol + (package + (name "emacs-elfeed-protocol") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fasheng/elfeed-protocol") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07r1qlldgd0kfikd0y737y5n42ab3nkw2s5jx7frimj41yandbdp")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-elfeed" ,emacs-elfeed))) + (home-page "https://github.com/fasheng/elfeed-protocol") + (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed") + (description + "Elfeed-protocol provides extra protocols to make self-hosting RSS +readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work +with Elfeed.") + (license license:gpl3+))) + (define-public emacs-elfeed-score (package (name "emacs-elfeed-score") @@ -12575,14 +12650,14 @@ shuangpin, wubi and cangjie.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "0.9.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "posframe-" version ".tar")) (sha256 - (base32 "14x63713lbvmp24733j7pqkwvcnhpcgv7pprr8sykan3jnjnnzh3")))) + (base32 "1k06dbh9xqn2vix5qkcapl57v0c21b344r8dx6j5qr4jxirsn2x5")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info. (arguments @@ -25435,21 +25510,21 @@ current buffer.") (define-public emacs-repl-toggle (package (name "emacs-repl-toggle") - (version "0.6.1") + (version "0.7.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tomterl/repl-toggle") + (url "https://git.sr.ht/~tomterl/repl-toggle") (commit version))) (sha256 (base32 - "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd")) + "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs `(("emacs-fullframe" ,emacs-fullframe))) - (home-page "https://github.com/tomterl/repl-toggle") + (home-page "https://git.sr.ht/~tomterl/repl-toggle") (synopsis "Switch to and from current major mode's REPL") (description "This package provides a function to switch to and from a REPL appropriate to the current major mode.") @@ -25554,14 +25629,14 @@ interface.") (define-public emacs-ivy-posframe (package (name "emacs-ivy-posframe") - (version "0.5.5") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ivy-posframe-" version ".tar")) (sha256 - (base32 "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95")))) + (base32 "07dzglrcdl54lkznyphw97xwd9bcwzdcgzkav0vqfk7f5cwh1wkf")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy) @@ -27479,7 +27554,7 @@ rules about where space should be left to separate words and parentheses.") (description "This mode allows to paste whole buffers or parts of buffers to pastebin-like services. It supports more than one service and will failover if one service fails. More services can easily be added over time -and prefered services can easily be configured.") +and preferred services can easily be configured.") (license license:gpl3+))) (define-public emacs-keystore-mode @@ -27541,6 +27616,39 @@ and prefered services can easily be configured.") "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.") (license license:gpl3+))) +(define-public emacs-vertico + (package + (name "emacs-vertico") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minad/vertico") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1r2p09y3ag14dqd46nyy1pa2j2cvn4gn9pji47mzmwydsm2f8hv1")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'build-doc + (lambda _ + (invoke "makeinfo" "vertico.texi")))))) + (native-inputs + `(("texinfo" ,texinfo))) + (home-page "https://github.com/minad/vertico") + (synopsis "Vertical interactive completion") + (description + "Vertico provides a minimalistic vertical completion UI, which is based +on Emacs' default completion system. By reusing the default system, it +achieves full compatibility with built-in Emacs commands and completion +tables. Vertico is pretty bare-bone and only provides a minimal set of +commands. Additional optional enhancements can be provided externally by +complementary packages.") + (license license:gpl3+))) + (define-public emacs-ivy-hydra (package (name "emacs-ivy-hydra") @@ -27564,3 +27672,4 @@ and prefered services can easily be configured.") quasi-prefix map, with many useful bindings. These bindings are shorter than usual, using mostly unprefixed keys.") (license license:gpl3+))) + diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index a3f1d85580..480bbf7835 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -229,7 +230,41 @@ usable on embedded products.") "--enable-lite-exit" "--enable-newlib-global-atexit" "--enable-newlib-nano-formatted-io" - "--disable-nls")))) + "--disable-nls")) + ((#:phases phases) + `(modify-phases ,phases + ;; XXX: Most arm toolchains offer both *.a and *_nano.a as newlib + ;; and newlib-nano respectively. The headers are usually + ;; arm-none-eabi/include/newlib.h for newlib and + ;; arm-none-eabi/include/newlib-nano/newlib.h for newlib-nano. We + ;; have two different toolchain packages for each which works but + ;; is a little strange. + (add-after 'install 'hardlink-newlib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; The nano.specs file says that newlib-nano files should end + ;; in "_nano.a" instead of just ".a". Note that this applies + ;; to all the multilib folders too. + (for-each + (lambda (file) + (link file + (string-append + ;; Strip ".a" off the end + (substring file 0 (- (string-length file) 2)) + ;; Add "_nano.a" onto the end + "_nano.a"))) + (find-files + out + "^(libc.a|libg.a|librdimon.a|libstdc\\+\\+.a|libsupc\\+\\+.a)$")) + + ;; newlib.h is usually in this location instead so both + ;; newlib and newlib-nano can be in the toolchain at the same + ;; time + (mkdir (string-append out "/arm-none-eabi/include/newlib-nano")) + (symlink + "../newlib.h" + (string-append out "/arm-none-eabi/include/newlib-nano/newlib.h")) + #t))))))) (synopsis "Newlib variant for small systems with limited memory"))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 57464e1834..b5568b8563 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -266,7 +266,7 @@ plans and designs.") suite grouped together under the gEDA name. gEDA/gaf is a collection of tools which currently includes: gschem, a schematic capture program; gnetlist, a netlist generation program; gsymcheck, a syntax checker for schematic symbols; -gattrib, a spreadsheet programm that manipulates the properties of symbols of +gattrib, a spreadsheet programme that manipulates the properties of symbols of a schematic; libgeda, libraries for gschem gnetlist and gsymcheck; gsch2pcb, a tool to forward annotation from your schematic to layout using PCB; some minor utilities.") diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index cae8a74289..a01eacb7cb 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -172,14 +172,14 @@ client.") (define-public libime (package (name "libime") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-" version "_dict.tar.xz")) (sha256 - (base32 "1w3cxk11kbfmz7snivxq948zfav6dy2245j12ghlxcmdxjshrlhq")))) + (base32 "1s8gzpzyn16pg9gm7kw1nhl09drdndi6j4mjam14ymqsrfsdqr1r")))) (build-system cmake-build-system) (inputs `(("fcitx5" ,fcitx5) @@ -190,7 +190,7 @@ client.") ("python" ,python))) ;needed to run test (home-page "https://github.com/fcitx/libime") (synopsis "Library for implementing generic input method") - (description "Libime is a library for implmenting various input methods + (description "Libime is a library for implementing various input methods editors.") (license license:lgpl2.1+))) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index d7c34cd188..d970fe7198 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -184,7 +184,7 @@ large and/or frequently changing (network) environment.") (home-page "https://bindfs.org") (synopsis "Bind mount a directory and alter permission bits") (description - "@command{bindfs} is a FUSE filesystem for mounting a directory to + "@command{bindfs} is a FUSE file system for mounting a directory to another location, similar to @command{mount --bind}. It can be used for: @itemize @item Making a directory read-only. @@ -251,9 +251,9 @@ another location, similar to @command{mount --bind}. It can be used for: (description "The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension to the HTTP protocol defines a standard way to author resources on a remote Web -server. Davfs2 exposes such resources as a typical filesystem which can be used -by standard applications with no built-in support for WebDAV, such as the GNU -coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor. +server. Davfs2 exposes such resources as a typical file system which can be +used by standard applications with no built-in support for WebDAV, such as the +GNU coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor. Davfs2 works with most WebDAV servers with no or little configuration. It supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and @@ -1195,10 +1195,10 @@ local file system using FUSE.") `(("go-github-com-mattn-go-sqlite3" ,go-github-com-mattn-go-sqlite3) ("go-github-com-hanwen-fuse" ,go-github-com-hanwen-fuse))) (home-page "https://github.com/oniony/TMSU") - (synopsis "Tag files and access them through a virtual filesystem") + (synopsis "Tag files and access them through a virtual file system") (description "TMSU is a tool for tagging your files. It provides a simple -command-line utility for applying tags and a virtual filesystem to give you a +command-line utility for applying tags and a virtual file system to give you a tag-based view of your files from any other program. TMSU does not alter your files in any way: they remain unchanged on disk, or on the network, wherever your put them. TMSU maintains its own database and you simply gain an diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 3c9da6ff18..61e49845a3 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -601,6 +601,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") ("python-hidapi" ,python-hidapi) ("python-jsonrpclib-pelix" ,python-jsonrpclib-pelix) ("python-keepkey" ,python-keepkey) + ("python-pathvalidate" ,python-pathvalidate) ("python-protobuf" ,python-protobuf) ("python-pyaes" ,python-pyaes) ("python-pyqt" ,python-pyqt) @@ -653,7 +654,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch ;; the system's dynamically linked library. (package (name "monero") - (version "0.17.1.9") + (version "0.17.2.0") (source (origin (method git-fetch) @@ -673,7 +674,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch "external/unbound")) #t)) (sha256 - (base32 "0jqss4csvkcrhrmaa3vrnyv6yiwqpbfw7037clx9xcfm4qrrfiwy")))) + (base32 "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6")))) (build-system cmake-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -763,7 +764,7 @@ the Monero command line client and daemon.") (define-public monero-gui (package (name "monero-gui") - (version "0.17.1.9") + (version "0.17.2.0") (source (origin (method git-fetch) @@ -780,7 +781,7 @@ the Monero command line client and daemon.") (delete-file-recursively "monero") #t)) (sha256 - (base32 "0vpvpvsbbj547yir15g84qy9l9lwbip795zlliz79i7d66l23b1w")))) + (base32 "17il26gh0g69x7lqkyb461x1712959wajg3iadx0p08djr3m13mf")))) (build-system qt-build-system) (native-inputs `(,@(package-native-inputs monero) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index a9e96c9928..40d41350ac 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1920,6 +1921,26 @@ encoding names are iconv-compatible.") ;; combination is GPL 2.0+. (license license:gpl2+))) +(define-public python-cchardet + (package + (name "python-cchardet") + (version "2.1.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cchardet" version)) + (sha256 + (base32 + "1bqfz85cd51sw0bvhvdq9ikccxi2ld7g5jpni4jkq1a5clrvca64")))) + (build-system python-build-system) + (inputs + `(("uchardet" ,uchardet))) + (home-page "https://github.com/PyYoshi/cChardet") + (synopsis "High-performance character encoding detection for Python") + (description "cChardet is a character encoding detector, written in +Python, that binds to the C library @code{uchardet} to increase performance.") + (license license:gpl2+))) + (define-public udiskie (package (name "udiskie") diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 07a17763f8..679da99e63 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1092,7 +1092,7 @@ to create fully featured games and multimedia programs in the python language.") (define-public python2-pygame-sdl2 (let ((real-version "2.1.0") - (renpy-version "7.4.2")) + (renpy-version "7.4.4")) (package (inherit python2-pygame) (name "python2-pygame-sdl2") @@ -1102,7 +1102,7 @@ to create fully featured games and multimedia programs in the python language.") (method url-fetch) (uri (string-append "https://www.renpy.org/dl/" renpy-version "/pygame_sdl2-" version ".tar.gz")) - (sha256 (base32 "1lpk69nh379x5pdlr838x5b49spzksn9hyqiq2g0q28k0xk4lm67")) + (sha256 (base32 "1lj5c3kfnl8s824j3hs47dg3g5rlabscmwrbb0lgpyy4633pv9ka")) (modules '((guix build utils))) (snippet '(begin @@ -1145,13 +1145,13 @@ developed mainly for Ren'py.") (define-public python2-renpy (package (name "python2-renpy") - (version "7.4.2") + (version "7.4.4") (source (origin (method url-fetch) (uri (string-append "https://www.renpy.org/dl/" version "/renpy-" version "-source.tar.bz2")) - (sha256 (base32 "1mlrq9q3r36izyskq674qhp8s32iirvvfb4r8z6hi26189aaydsw")) + (sha256 (base32 "1cbbvsk1snjrsh59blb8q2h86555gi23pylmwlnk9dx0jxckdi21")) (modules '((guix build utils))) (patches (search-patches diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 048784ab2c..dbc72446b2 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -743,7 +743,7 @@ battlestar (explore the world around, starting from dying spaceship), phantasia (role-play as an rogue), trek (hunt the Klingons, and save the Federation), and wump (hunt the big smelly Wumpus in a dark cave). -Quizes: arithmetic, and quiz.") +Quizzes: arithmetic and quiz.") ;; "Auxiliary and data files, distributed with the games in NetBSD, but ;; not bearing copyright notices, probably fall under the terms of the UCB ;; or NetBSD copyrights and licences. The file "fortune/Notes" contains a @@ -3454,7 +3454,7 @@ match, cannon keep, and grave-itation pit.") (define-public minetest (package (name "minetest") - (version "5.4.0") + (version "5.4.1") (source (origin (method git-fetch) (uri (git-reference @@ -3463,7 +3463,7 @@ match, cannon keep, and grave-itation pit.") (file-name (git-file-name name version)) (sha256 (base32 - "1a17g6cmxrscnqwpwrd4w2ck3dgvplyfq4kzyimilfpqar1q69j9")) + "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8")) (modules '((guix build utils))) (snippet '(begin @@ -3551,7 +3551,7 @@ in different ways.") (file-name (git-file-name name version)) (sha256 (base32 - "11dz36z0pj2r7i8xm8v5lskzws81ckj6sc0avlmvdl8qdc9x83w5")))) + "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4")))) (build-system trivial-build-system) (native-inputs `(("source" ,source))) @@ -5849,7 +5849,7 @@ for Un*x systems with X11.") (define-public freeciv (package (name "freeciv") - (version "2.6.3") + (version "2.6.4") (source (origin (method url-fetch) @@ -5861,7 +5861,7 @@ for Un*x systems with X11.") (version-major+minor version) "/" version "/freeciv-" version ".tar.bz2"))) (sha256 - (base32 "1lgq7wcbhwpy2yqdw4biwfmp5q8fh7lhlwxcgm0fpaapfl12whvp")))) + (base32 "1kn122f57wn5a8ryxaz73dlbd5m93mqx3bqmmz2lkgdccrvrbns0")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -8740,7 +8740,7 @@ where the player draws runes in real time to effect the desired spell.") (define-public edgar (package (name "edgar") - (version "1.33") + (version "1.34") (source (origin (method url-fetch) @@ -8748,7 +8748,7 @@ where the player draws runes in real time to effect the desired spell.") (string-append "https://github.com/riksweeney/edgar/releases/download/" version "/edgar-" version "-1.tar.gz")) (sha256 - (base32 "1mbx7dvizdca4g1blcv3bdh6yxd13k47rkya4rdzg0nvvz24m175")))) + (base32 "1121rq5wk3g8rs413av84s2kcy6qj6maspgy2vsxs36c2jd3yygl")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; there are no tests #:make-flags diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5f84d28551..a412c93c29 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -583,14 +583,14 @@ It also includes runtime support libraries for these languages."))) (define-public gcc-10 (package (inherit gcc-8) - (version "10.2.0") + (version "10.3.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.xz")) (sha256 (base32 - "130xdkhmz1bc2kzx061s3sfwk36xah1fw5w332c0nzwwpdl47pdq")) + "0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34")) (patches (search-patches "gcc-9-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))))) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 8095148fcd..3cd80a3ccf 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -2082,7 +2082,21 @@ growing set of geoscientific methods.") (("sip_dir = cfg.default_sip_dir") (string-append "sip_dir = \"" (assoc-ref inputs "python-pyqt+qscintilla") - "/share/sip\""))) + "/share/sip\"")) + ;; Fix building with python-sip@5. + ;; + ;; The reason for this is that python-sip@5 introduces some + ;; changes such as a new build system 'sip-build' as well as the + ;; use of the path "/lib/pythonX.X/site-packages/*/bindings/" + ;; instead of "/share/sip/" for .sip files. However, we do not + ;; actually use that those yet. QGIS detects SIP5 and assumes we + ;; are, messing up the build. The long term solution is to fully + ;; upgrade SIP, use sip-build and fix all failing packages, but + ;; for now I just want to get the build working. + ((".pyqt_sip_dir...os.path.join.*,") + (string-append "'pyqt_sip_dir': \"" + (assoc-ref inputs "python-pyqt+qscintilla") + "/share/sip" "\","))) (substitute* (list "scripts/prepare_commit.sh" "scripts/qstringfixup.sh" "scripts/release.pl" diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index dec2835ca6..0d2e71cc72 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -720,7 +720,7 @@ OpenGL graphics API.") (description "libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors. It allows multiple drivers from -different vendors to coexist on the same filesystem, and determines which +different vendors to coexist on the same file system, and determines which vendor to dispatch each API call to at runtime. Both GLX and EGL are supported, in any combination with OpenGL and OpenGL ES.") @@ -775,7 +775,7 @@ OpenGL.") (define-public glfw (package (name "glfw") - (version "3.3.3") + (version "3.3.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/glfw/glfw" @@ -783,7 +783,7 @@ OpenGL.") "/glfw-" version ".zip")) (sha256 (base32 - "0xrrahhbs4sn7sgvdk9sgz5zla4sw3ajq6kxpqrx635l8nnqfc3j")))) + "1kcrpl4d6b6h23ib5j9q670d9w3knd07whgbanbmwwhbcqnc9lmv")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no test target diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index f73001f64b..d8997ac538 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -950,9 +950,9 @@ feature-set for programming Vala effectively.") #:exclude ("README.md" "LICENSE" "Art/" "package.json" "package-lock.json" "Gulpfile.js"))))) (home-page "https://github.com/EliverLara/Nordic") - (synopsis "Dark Gtk3.20+ theme using the Nord color pallete") + (synopsis "Dark Gtk3.20+ theme using the Nord color palette") (description "Nordic is a Gtk3.20+ theme created using the Nord color -pallete.") +palette.") (license license:gpl3)))) (define-public tiramisu diff --git a/gnu/packages/gnu-doc.scm b/gnu/packages/gnu-doc.scm index b64d8ac454..9fb746ee97 100644 --- a/gnu/packages/gnu-doc.scm +++ b/gnu/packages/gnu-doc.scm @@ -56,7 +56,7 @@ list.") (define-public gnu-standards (package (name "gnu-standards") - (version "2018-02-18") + (version "2020-11-25") (source (origin (method cvs-fetch) @@ -64,11 +64,11 @@ list.") (root-directory ":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards") (module "gnustandards") - (revision "2018-02-18"))) + (revision version))) (sha256 (base32 - "03yh25fpvfn5pnd0d4x7a2wkh01ffk6vbs1vjnzqicqkgc2g33sd")) - (file-name "gnu-standards-src"))) + "1xlwmgcnvp81ipgfir4ckpgl922mbckvxy1x758r0lksq5vrpglj")) + (file-name (string-append name "-" version "-checkout")))) (build-system trivial-build-system) (native-inputs `(("gzip" ,gzip) ("source" ,source) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 278a2efa00..6502740220 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3965,7 +3965,7 @@ without requiring a real database connection.") (home-page "https://github.com/go-sql-driver/mysql") (synopsis "MySQL driver for golang") (description - "This is a pure Go implementaton of the MySQL API, compatible with + "This is a pure Go implementation of the MySQL API, compatible with golang's database/sql package.") (license license:mpl2.0))) @@ -5827,7 +5827,7 @@ which produce colorized output using github.com/fatih/color.") (synopsis "Write handsome command-line tools with glamour") (description "@code{glamour} lets you render markdown documents and templates on ANSI compatible terminals. You can create your own stylesheet or -use one of our glamourous default themes.") +use one of our glamorous default themes.") (license license:expat))) (define-public go-github-com-coreos-go-semver @@ -6911,7 +6911,7 @@ atomic access.") (propagated-inputs `(("go-go-uber-org-atomic" ,go-go-uber-org-atomic))) (home-page "https://go.uber.org/multierr") - (synopsis "Error combination fo Go") + (synopsis "Error combination for Go") (description "@code{multierr} allows combining one or more Go errors together.") (license license:expat))) diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm index 44c356e2ff..c4dc50c2f9 100644 --- a/gnu/packages/gpodder.scm +++ b/gnu/packages/gpodder.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -25,6 +25,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) @@ -38,7 +39,7 @@ (define-public gpodder (package (name "gpodder") - (version "3.10.17") + (version "3.10.18") (source (origin (method git-fetch) @@ -46,18 +47,23 @@ (url "https://github.com/gpodder/gpodder") (commit version))) (sha256 - (base32 "0wrk8d4q6ricbcjzlhk10vrk1qg9hi323kgyyd0c8nmh7a82h8pd")) + (base32 "1d73q46sqandzbn74nfw9bzzah99z91wsxq2hcivwdgnsv2g2d8y")) (file-name (git-file-name name version)) (patches (search-patches "gpodder-disable-updater.patch")))) (build-system python-build-system) (native-inputs `(("intltool" ,intltool) ("python-coverage" ,python-coverage) - ("python-minimock" ,python-minimock))) + ("python-minimock" ,python-minimock) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-httpserver" ,python-pytest-httpserver) + ("which" ,which))) (inputs `(("gtk+" ,gtk+) ("python-pygobject" ,python-pygobject) ("python-pycairo" ,python-pycairo) + ("python-requests" ,python-requests) ("python-dbus" ,python-dbus) ("python-html5lib" ,python-html5lib) ("python-mygpoclient" ,python-mygpoclient) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3c9cf18bbc..f9f19cc28d 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net> ;;; Copyright © 2021 Andy Tai <atai@atai.org> +;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; ;;; This file is part of GNU Guix. ;;; @@ -463,6 +464,42 @@ Embree is meant to increase performance of photo-realistic rendering applications.") (license license:asl2.0))) +(define-public openvdb + (package + (name "openvdb") + (version "8.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AcademySoftwareFoundation/openvdb/") + (commit (string-append "v" version)) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qzx6l5c183k6j9zki31gg9aixf5s1j46wdi7wr1h3bz7k53syg9")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")))) + (inputs + `(("boost" ,boost) + ("c-blosc" ,c-blosc) + ("ilmbase" ,ilmbase) + ("tbb" ,tbb) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.openvdb.org/") + (synopsis "Sparse volume data structure and tools") + (description "OpenVDB is a C++ library comprising a hierarchical data +structure and a large suite of tools for the efficient storage and +manipulation of sparse volumetric data discretized on three-dimensional grids. +It was developed by DreamWorks Animation for use in volumetric applications +typically encountered in feature film production.") + (license license:mpl2.0))) + (define-public blender (package (name "blender") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index fc0ee7be53..dd92cd649c 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> -;;; Coypright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index e2ee5454a0..21b39abf62 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -28,7 +28,7 @@ ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2020 Julien Lepiler <julien@lepiller.eu> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> -;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo> +;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo> ;;; Copyright © 2020 Jesse Gibbons <jgibbons2357@gmail.com> ;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> @@ -2649,8 +2649,8 @@ format is also supported.") (deprecated-package "guile3.0-mcron" mcron)) (define-public guile-picture-language - (let ((commit "291a746a1d3b4784d38b05239bdd7b8e796ce761") - (revision "4")) + (let ((commit "a1322bf11945465241ca5b742a70893f24156d12") + (revision "5")) (package (name "guile-picture-language") (version (git-version "0.0.1" revision commit)) @@ -2662,7 +2662,7 @@ format is also supported.") (file-name (git-file-name name version)) (sha256 (base32 - "0rnhf13ds92sbdicshy4sy4kl2kc431fy9vzm1divw974p7v57sd")))) + "03i528z92ainccgm28shg4haxiav5x4cyhyi5dggq1rm027vbm99")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-3.0))) @@ -3519,7 +3519,7 @@ feature-set, fully programmable in Guile Scheme.") texlive-fonts-iwona))) ("pkg-config" ,pkg-config))) (propagated-inputs - `(("guile-lib" ,guile-lib))) + `(("guile-lib" ,guile2.2-lib))) (home-page "https://www.gnu.org/software/guile-cv/") (synopsis "Computer vision library for Guile") (description "Guile-CV is a Computer Vision functional programming library @@ -4449,7 +4449,7 @@ tools.") (synopsis "Guile implementation of the Encoding for Robust Immutable Storage (ERIS)") (description "Guile-ERIS is the reference implementation of the Encoding for Robust -Immutable Storage (ERIS). ERIS allows arbirtary content to be encoded into +Immutable Storage (ERIS). ERIS allows arbitrary content to be encoded into uniformly sized, encrypted blocks that can be reassembled using a short read-capability.") (home-page "https://inqlab.net/git/eris.git") diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 10672f52f3..d5941b6c0f 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Evgeny Pisemsky <evgeny@pisemsky.com> @@ -61,14 +61,14 @@ (define-public ddcutil (package (name "ddcutil") - (version "0.9.9") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "https://www.ddcutil.com/tarballs/" "ddcutil-" version ".tar.gz")) (sha256 - (base32 "0anyxy53k2613hq9glaad16llqlv6iim5p8gz0rs5pnpp8p00dg1")))) + (base32 "19kkwb9ijzn6ya3mvjanggh1c96fcc0lkbk7xnyi2qp6wsr4nhxp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 0be9890d23..a250bb4262 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -2266,7 +2266,7 @@ server no longer receives pings, it shuts down.") ("ghc-websockets" ,ghc-websockets))) (home-page "https://github.com/larskuhtz/wai-cors") (synopsis "Cross-Origin Resource Sharing (CORS) for WAI") - (description "This package provides an implemenation of Cross-Origin + (description "This package provides an implementation of Cross-Origin Resource Sharing (CORS) for the Web Application Framework (WAI) that aims to be compliant with @url{https://www.w3.org/TR/cors}.") (license license:expat))) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 2795eaf130..ce2242a658 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -622,14 +622,14 @@ due to its architecture which automatically parallelises the image workflows.") (define-public gmic (package (name "gmic") - (version "2.9.6") + (version "2.9.7") (source (origin (method url-fetch) (uri (string-append "https://gmic.eu/files/source/gmic_" version ".tar.gz")) (sha256 - (base32 "06n1dcskky7aqg3a0cp7biwz8agc4xqvr8091l2wsvgib98yhbyj")))) + (base32 "05kzaplsl5qvxs7v6g73q0lq8dii8g6v77ap609188m7gr43f9cl")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;there are no tests diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 5fba72b576..3953c55a20 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -144,7 +144,7 @@ irssi, but graphical.") (define-public irssi (package (name "irssi") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/irssi/irssi/" @@ -152,7 +152,7 @@ irssi, but graphical.") version ".tar.xz")) (sha256 (base32 - "0y3mhnyr7x8ir8dlj83vbnchpfld28vdfni9yhpvls45j460c9v7")))) + "17vninwcdfxw39xl2q55qircckckjk2xlvkvlwgj5lhlxppvyix6")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 42b15cee9b..0adc3ed81e 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -585,25 +585,13 @@ decentralized calling using P2P-DHT.") (outputs '("out" "debug")) (arguments `(#:tests? #f ;no test suite - #:phases - (modify-phases %standard-phases - ;; TODO: Uncomment after switching back to the tarball source. - ;; (add-after 'unpack 'change-directory - ;; (lambda _ - ;; (chdir "client-qt"))) - (add-after 'install 'wrap - ;; The program fails to find the QtWebEngineProcess program, so we - ;; set QTWEBENGINEPROCESS_PATH to help it. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin")) - (qtwebengineprocess (string-append - (assoc-ref inputs "qtwebengine") - "/lib/qt5/libexec/QtWebEngineProcess"))) - (for-each (lambda (program) - (wrap-program program - `("QTWEBENGINEPROCESS_PATH" = - (,qtwebengineprocess)))) - (find-files bin ".*")))))))) + ;; TODO: Uncomment after switching back to the tarball source. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (add-after 'unpack 'change-directory + ;; (lambda _ + ;; (chdir "client-qt")))) + )) (native-inputs `(("pkg-config" ,pkg-config) ("qttools" ,qttools) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 85949ec9e8..d79acf0b17 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -844,7 +844,7 @@ that let you do deep transformations of code.") (home-page "https://github.com/JuliaLang/MbedTLS.jl") (synopsis "Apache's mbed TLS library wrapper") (description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed -TLS} and cryptography C libary for Julia.") +TLS} and cryptography C library for Julia.") (license license:expat))) (define-public julia-mbedtls-jll diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm index f826ebd171..52869dbeeb 100644 --- a/gnu/packages/jupyter.scm +++ b/gnu/packages/jupyter.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,9 +30,12 @@ #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-xyz) #:use-module (gnu packages time) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages xml)) (define-public python-jupyter-protocol (package @@ -184,3 +188,125 @@ Several Jupyter kernels are built upon @code{xeus}, such as @code{xeus-cling}, a kernel for the C++ programming language, and @code{xeus-python}, an alternative Python kernel for Jupyter.") (license license:bsd-3))) + +(define-public python-jupyterlab-pygments + (package + (name "python-jupyterlab-pygments") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "jupyterlab_pygments" version)) + (sha256 + (base32 + "0ij14mmnc39nmf84i0av6j9glazjic7wzv1qyhr0j5966s3s1kfg")))) + (build-system python-build-system) + (arguments '(#:tests? #false)) ; there are no tests + (propagated-inputs + `(("python-pygments" ,python-pygments))) + (home-page "https://jupyter.org") + (synopsis "Pygments theme using JupyterLab CSS variables") + (description + "This package contains a syntax coloring theme for pygments making use of +the JupyterLab CSS variables.") + (license license:bsd-3))) + +(define-public python-jupyter-packaging + (package + (name "python-jupyter-packaging") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "jupyter_packaging" version)) + (sha256 + (base32 + "0r015c0m713d19asmpimsw6bk2sqv2lpd2nccgjzjdj5h1crg0bg")))) + (build-system python-build-system) + (propagated-inputs + `(("python-deprecation" ,python-deprecation) + ("python-packaging" ,python-packaging) + ("python-setuptools" ,python-setuptools) + ("python-tomlkit" ,python-tomlkit) + ("python-wheel" ,python-wheel))) + (native-inputs + `(("python-pypa-build" ,python-pypa-build) + ("python-coverage" ,python-coverage) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-mock" ,python-pytest-mock))) + (home-page "https://jupyter.org") + (synopsis "Jupyter packaging utilities") + (description "This package provides tools to help build and install +Jupyter Python packages that require a pre-build step that may include +JavaScript build steps.") + (license license:bsd-3))) + +(define-public python-jupyterlab-widgets + (package + (name "python-jupyterlab-widgets") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "jupyterlab_widgets" version)) + (sha256 + (base32 + "0y7vhhas3qndiypcpcfnhrj9n92v2w4hdc86nn620s9h9nl2j6jw")))) + (build-system python-build-system) + (native-inputs + `(("python-jupyter-packaging" ,python-jupyter-packaging) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/jupyter-widgets/ipywidgets") + (synopsis "Interactive widgets for Jupyter Notebooks") + (description "ipywidgets, also known as jupyter-widgets or simply widgets, +are interactive HTML widgets for Jupyter notebooks and the IPython kernel.") + (license license:bsd-3))) + +(define-public python-nbclient + (package + (name "python-nbclient") + (version "0.5.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "nbclient" version)) + (sha256 + (base32 + "172q4r6mq0lg394di0pc6ipvniy14jg38wkdsj48r366609jf5yv")))) + (build-system python-build-system) + ;; Tests require a kernel via python-ipykernel, and also tools from + ;; nbconvert. + (arguments '(#:tests? #false)) + (propagated-inputs + `(("python-async-generator" ,python-async-generator) + ("python-jupyter-client" ,python-jupyter-client) + ("python-nbformat" ,python-nbformat) + ("python-nest-asyncio" ,python-nest-asyncio) + ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-black" ,python-black) + ("python-bumpversion" ,python-bumpversion) + ("python-check-manifest" ,python-check-manifest) + ("python-codecov" ,python-codecov) + ("python-coverage" ,python-coverage) + ("python-flake8" ,python-flake8) + ;; ("python-ipykernel" ,python-ipykernel) + ;; ("python-ipython" ,python-ipython) + ;; ("python-ipywidgets" ,python-ipywidgets) + ("python-mypy" ,python-mypy) + ("python-pip" ,python-pip) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-setuptools" ,python-setuptools) + ("python-testpath" ,python-testpath) + ("python-tox" ,python-tox) + ("python-twine" ,python-twine) + ("python-wheel" ,python-wheel) + ("python-xmltodict" ,python-xmltodict))) + (home-page "https://jupyter.org") + (synopsis "Client library for executing notebooks") + (description + "This package provides a client library for executing notebooks. Formerly +nbconvert's @code{ExecutePreprocessor.}") + (license license:bsd-3))) diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm index d790e94c87..74e8bdb8fd 100644 --- a/gnu/packages/kde-pim.scm +++ b/gnu/packages/kde-pim.scm @@ -1112,7 +1112,7 @@ and retrieving certificates from LDAP servers.") (synopsis "Full featured graphical email client") (description "KMail supports multiple accounts, mail filtering and email encryption. The program let you configure your workflow and it has good -integration into KDE (Plasma Desktop) but is also useable with other Desktop +integration into KDE (Plasma Desktop) but is also usable with other Desktop Environments. KMail is the email component of Kontact, the integrated personal information diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 5325445a24..55a1b72d74 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -197,7 +197,7 @@ (synopsis "Lightweight input method framework") (description "Nimf is a lightweight, fast and extensible input method framework. This package provides a fork of the original nimf project, that -focusses especially on Korean input (Hangul, Hanja, ...).") +focuses especially on Korean input (Hangul, Hanja, ...).") (home-page "https://github.com/hamonikr/nimf/") (license license:lgpl3+))) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index a8c2ac5c4b..39867a1994 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -714,14 +714,14 @@ text documents, vector drawings, presentations and spreadsheets.") (define-public libmwaw (package (name "libmwaw") - (version "0.3.17") + (version "0.3.18") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libmwaw/libmwaw/libmwaw-" version "/libmwaw-" version ".tar.xz")) (sha256 - (base32 "074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf")))) + (base32 "03qyxp8hkcc7jcwyq0v0y2diqsvib060pg7y9zk0n07qh0b0apgw")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c09b9a4511..55ba22bd46 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -354,7 +354,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.11-version "5.11.11") +(define-public linux-libre-5.11-version "5.11.13") (define deblob-scripts-5.11 (linux-libre-deblob-scripts linux-libre-5.11-version @@ -362,7 +362,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0yvr80g200hdryz54gdnzj4fl38pf7g4qbgj475rhcfwixhp1j7n"))) (define-public linux-libre-5.11-pristine-source (let ((version linux-libre-5.11-version) - (hash (base32 "1fc3yl4srzla3cbihgnry0pqmgcc17zv0zlkk9zpx99371hpay0a"))) + (hash (base32 "0yvgkc1fmmd4g06sydn51q4l3g5785q9yaaq04lv3kgj4hyijqgs"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.11))) @@ -370,7 +370,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-5.10-version "5.10.27") +(define-public linux-libre-5.10-version "5.10.29") (define deblob-scripts-5.10 (linux-libre-deblob-scripts linux-libre-5.10-version @@ -378,12 +378,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hh27ccqimagr3aij7ygwikxw66y63sqwd0xlf49bhpjd090r9a7"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "1nb95ll66kxiz702gs903n3gy5ialz8cin58l19rqaai55kck7fr"))) + (hash (base32 "1v79wylb2kd9gadiqf7dr7jcgynr970bbga09mdn940sq536g30m"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.109") +(define-public linux-libre-5.4-version "5.4.111") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version @@ -391,12 +391,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1vmpc6yrr2zm4m3naflwik5111jr8hy0mnyddwk31l0p4xbg8smc"))) + (hash (base32 "00qs4y4d9adffwysdh8sly81hxc3rw7bi9vs3fs4rhwdclr62qi1"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.184") +(define-public linux-libre-4.19-version "4.19.186") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version @@ -404,12 +404,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0z5pgal8775rf7pvpxq47dnghr42al2k9py0s9jl3js2wamgdyix"))) + (hash (base32 "0cg6ja7plry1l2mg6hx16lsw0gzn4xpj7xdrrs2hwl8l8a2dgifq"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.228") +(define-public linux-libre-4.14-version "4.14.230") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version @@ -417,12 +417,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0nw1jf6x5a990n69aw2da4s4lc1c7mnwiwcda40bl2rkmd24s1qm"))) + (hash (base32 "1gn5cs1ss4bfsnnv0b2s4g5ibiigpzsx0i3qfswchdbxvdag75cw"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.264") +(define-public linux-libre-4.9-version "4.9.266") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version @@ -430,12 +430,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "1df2dv26c9z6zsdlqzbcc60f2pszh0hx1n94v65jswlb72a2mipc"))) + (hash (base32 "0qzigcslfp714vaswwlw93xj0h2f8laikppw6krrhfnh5wwrp5dr"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.264") +(define-public linux-libre-4.4-version "4.4.266") (define deblob-scripts-4.4 (linux-libre-deblob-scripts linux-libre-4.4-version @@ -443,7 +443,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "1b0d735qnk0bcqn9gdsjqxhk8pkb3597ya9f34lv1vjfaqkkxk7l"))) + (hash (base32 "00x2dmjiiv9zpc0vih9xqmf78kynqzj9q9v1chc2q2hcjpqfj31c"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -8026,8 +8026,8 @@ kernel side implementation.") ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/") - (synopsis "User-space tools for EROFS filesystem") + (synopsis "User-space tools for EROFS file system") (description "EROFS (Enhanced Read-Only File System) is a compressed, -read-only filesystem optimized for resource-scarce devices. This package -provides user-space tools for creating EROFS filesystems.") +read-only file system optimized for resource-scarce devices. This package +provides user-space tools for creating EROFS file systems.") (license license:gpl2+))) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 8d527005e9..f340360dba 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2021 Matthew Kraai <kraai@ftbfs.org> ;;; Copyright © 2021 André A. Gomes <andremegafone@gmail.com> ;;; Copyright © 2021 Cage <cage-dev@twistfold.it> +;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -160,6 +161,36 @@ collection.") (define-public cl-bodge-utilities (sbcl-package->cl-source-package sbcl-bodge-utilities)) +(define-public sbcl-bodge-queue + (let ((commit "948c9a501dcd412689952d09eb7453ec2722336a") + (revision "0")) + (package + (name "sbcl-bodge-queue") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/borodust/bodge-queue") + (commit commit))) + (file-name (git-file-name "bodge-queue" version)) + (sha256 + (base32 "148hjikqk8v2m30mj15xh89zni6szf9z3prav580qk9dqr8djjdr")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (home-page "https://github.com/borodust/bodge-queue") + (synopsis "Simple queue for Common Lisp") + (description "This Common Lisp library provides a simple FIFO +implementation with no external dependencies.") + (license license:expat)))) + +(define-public cl-bodge-queue + (sbcl-package->cl-source-package sbcl-bodge-queue)) + +(define-public ecl-bodge-queue + (sbcl-package->ecl-package sbcl-bodge-queue)) + (define-public sbcl-golden-utils (let ((commit "62a5cb948a011eb26e7a89f56d5839a3334b4100") (revision "2")) @@ -7296,10 +7327,10 @@ of C+GObject libraries without the need of writing dedicated bindings.") (inputs `(("ppcre" ,sbcl-cl-ppcre))) (home-page "https://github.com/EuAndreh/cl-slug") - (synopsis "Multi-language slug formater") + (synopsis "Multi-language slug formatter") (description "This is a small Common Lisp library to make slugs, mainly for URIs, -from english and beyond.") +from English and beyond.") (license license:llgpl)))) (define-public ecl-cl-slug @@ -13315,7 +13346,7 @@ and lean bindings to C libraries.") (home-page "https://github.com/borodust/claw-utils") (synopsis "Utilities for easier autowrapping") (description - "This Common Lisp library contains various handy utilties to help + "This Common Lisp library contains various handy utilities to help autowrapping with @code{claw}.") (license license:expat)))) @@ -15718,3 +15749,109 @@ shader functions, written with @code{Shadow}.") (define-public cl-umbra (sbcl-package->cl-source-package sbcl-umbra)) + +(define-public sbcl-abstract-classes + (let ((commit "7fa74f1e057f9ba7c1ffecff14f049f979e45267") + (revision "1")) + (package + (name "sbcl-abstract-classes") + (version (git-version "1.7.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://bitbucket.org/eeeickythump/cl-abstract-classes") + (commit commit))) + (file-name (git-file-name "cl-abstract-classes" version)) + (sha256 + (base32 "06lby4i6xbbgs7kgb0f3fqybvyskyg6djhrf967lnysv7hn3zpg9")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("closer-mop" ,sbcl-closer-mop))) + (arguments + `(#:asd-systems '("abstract-classes" "singleton-classes"))) + (home-page "https://bitbucket.org/eeeickythump/cl-abstract-classes") + (synopsis "Abstract, final, and singleton metaclasses for CLOS") + (description + "This package provides Common Lisp extension to the MOP to allow +abstract, final and singleton classes.") + (license license:public-domain)))) + +(define-public ecl-abstract-classes + (sbcl-package->ecl-package sbcl-abstract-classes)) + +(define-public cl-abstract-classes + (sbcl-package->cl-source-package sbcl-abstract-classes)) + +(define-public sbcl-coalton + (let ((commit "4a42ffb4222fde3abfd1b50d96e455ff2eef9fe8") + (revision "1")) + (package + (name "sbcl-coalton") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stylewarning/coalton") + (commit commit))) + (file-name (git-file-name "coalton" version)) + (sha256 + (base32 "0aidwwam7cnhb3p9212zbv5w2dl6kr5iklzanypzr1a9lqaxwdlk")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiasco" ,sbcl-fiasco))) + (inputs + `(("abstract-classes" ,sbcl-abstract-classes) + ("alexandria" ,sbcl-alexandria) + ("global-vars" ,sbcl-global-vars) + ("optima" ,sbcl-optima) + ("trivial-garbage" ,sbcl-trivial-garbage))) + (home-page "https://github.com/stylewarning/coalton") + (synopsis "Dialect of ML in Common Lisp") + (description + "Coalton is a dialect of ML embedded in Common Lisp. It emphasizes +practicality and interoperability with Lisp, and is intended to be a DSL that +allows one to gradually make their programs safer.") + (license license:expat)))) + +(define-public ecl-coalton + (sbcl-package->ecl-package sbcl-coalton)) + +(define-public cl-coalton + (sbcl-package->cl-source-package sbcl-coalton)) + +(define-public sbcl-clip + (let ((commit "7afa68702fbb99c47ed115ea0faccd97a29d9b2e") + (revision "1")) + (package + (name "sbcl-clip") + (version (git-version "0.7.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shinmera/clip") + (commit commit))) + (file-name (git-file-name "clip" version)) + (sha256 + (base32 "13kkajkva2shm19fvn4yashsw18l6imv2rmy3hmpcky7g5ay7bv3")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("array-utils" ,sbcl-array-utils) + ("lquery" ,sbcl-lquery))) + (home-page "https://shinmera.github.io/clip/") + (synopsis "Common Lisp HTML templating engine") + (description + "Clip is an attempt at a templating library that allows you to write +templates in a way that is both accessible to direct webdesign and +flexible. The main idea is to incorporate transformation commands into an HTML +file through tags and attributes. Clip is heavily dependant on Plump and +lQuery.") + (license license:zlib)))) + +(define-public ecl-clip + (sbcl-package->ecl-package sbcl-clip)) + +(define-public cl-clip + (sbcl-package->cl-source-package sbcl-clip)) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 0a1b6c84ce..d35c20e17c 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -790,17 +790,6 @@ of programming tools as well as libraries with equivalent functionality.") (base32 "153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn")))))) -(define-public clang-runtime-3.6 - (clang-runtime-from-llvm - llvm-3.6 - "11qx8d3pbfqjaj2x207pvlvzihbs1z2xbw4crpz7aid6h1yz6bqg" - '("clang-runtime-asan-build-fixes.patch"))) - -(define-public clang-3.6 - (clang-from-llvm llvm-3.6 clang-runtime-3.6 - "1wwr8s6lzr324hv4s1k6na4j5zv6n9kdhi14s4kb9b13d93814df" - #:patches '("clang-3.5-libc-search-path.patch"))) - (define-public llvm-3.5 (package (inherit llvm-3.6) (version "3.5.2") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 56fae3fcba..c8f29b80d6 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -36,7 +36,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de> -;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> +;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 divoplade <d@divoplade.fr> @@ -167,6 +167,51 @@ #:use-module (srfi srfi-1) #:use-module (ice-9 match)) +(define-public abook + (package + (name "abook") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://abook.sourceforge.io/devel/abook-" version ".tar.gz")) + (sha256 + (base32 "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Fix "undefined reference to `field_id'" errors. + (add-after 'unpack 'fix-build-with-recent-gcc + (lambda _ + (substitute* '("database.c" "database.h") + (("^inline int" all) (string-append "extern " all))))) + ;; Fix following error during bootstrap: "gettext infrastructure + ;; mismatch: using a Makefile.in.in from gettext version 0.18 but the + ;; autoconf macros are from gettext version 0.20". + (add-before 'bootstrap 'fix-gettext-macro-version + (lambda _ + (substitute* "po/Makefile.in.in" + (("0.18") "0.20")))) + (replace 'bootstrap + (lambda _ + (invoke "aclocal") + (invoke "automake" "--add-missing") + (invoke "autoconf")))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gettext-minimal))) + (inputs + `(("ncurses" ,ncurses) + ("readline" ,readline))) + (home-page "https://abook.sourceforge.io/") + (synopsis "Text-based addressbook") + (description + "Abook is a text-based addressbook program designed to use with Mutt mail +client.") + (license license:gpl2))) + (define-public anubis (package (name "anubis") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ff1b46f095..758f0a5c32 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -44,6 +44,7 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com> ;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr> +;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2290,7 +2291,8 @@ ASCII text files using Gmsh's own scripting language.") (native-inputs `(("pkg-config" ,pkg-config) ;;("python-astropy" ,python-astropy) ;; FIXME: Package this. - ("qttools" ,qttools))) + ("qttools" ,qttools) + ("python-sip" ,python-sip-4))) (inputs `(("ghostscript" ,ghostscript) ;optional, for EPS/PS output ("python-dbus" ,python-dbus) @@ -3824,52 +3826,94 @@ parts of it.") (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 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>." +(define-public blis (package - (name (if (string=? implementation "reference") - "blis" - (string-append "blis-" implementation))) - (version "0.2.2") + (name "blis") + (version "0.8.1") (home-page "https://github.com/flame/blis") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit version))) (sha256 (base32 - "1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh")) + "05ifil6jj9424sr8kmircl8k4bmxnl3y12a79vwj1kxxva5gz50g")) (file-name (git-file-name "blis" version)))) + (native-inputs + `(("python" ,python) + ("perl" ,perl))) (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"))) - (invoke "./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))))) + `(#:modules + ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs + target + system + (configure-flags '()) + #:allow-other-keys) + ;; This is a home-made 'configure' script. + (let* ((out (assoc-ref outputs "out")) + ;; Guix-specific support for choosing the configuration + ;; via #:configure-flags: see below for details. + (config-flag-prefix "--blis-config=") + (maybe-config-flag (find + (lambda (s) + (string-prefix? config-flag-prefix s)) + configure-flags)) + (configure-flags (if maybe-config-flag + (delete maybe-config-flag + configure-flags) + configure-flags)) + ;; Select the "configuration" to build. + ;; The "generic" configuration is non-optimized but + ;; portable (no assembly). + ;; The "x86_64" configuration family includes + ;; sub-configurations for all supported + ;; x86_64 microarchitectures. + ;; BLIS currently lacks runtime hardware detection + ;; for other architectures: see + ;; <https://github.com/flame/blis/commit/c534da6>. + ;; Conservatively, we stick to "generic" on armhf, + ;; aarch64, and ppc64le for now. (But perhaps + ;; "power9", "cortexa9", and "cortexa57" might be + ;; general enough to use?) + ;; Another approach would be to use the "auto" + ;; configuration and make this package + ;; non-substitutable. + ;; The build is fairly intensive, though. + (blis-config + (cond + (maybe-config-flag + (substring maybe-config-flag + (string-length config-flag-prefix))) + ((string-prefix? "x86_64" (or target system)) + "x86_64") + (else + "generic"))) + (configure-args + `("-p" ,out + "-d" "opt" + "--disable-static" + "--enable-shared" + "--enable-threading=openmp" + "--enable-verbose-make" + ,@configure-flags + ,blis-config))) + (format #t "configure args: ~s~%" configure-args) + (apply invoke + "./configure" + configure-args) + #t))) + (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 @@ -3881,35 +3925,12 @@ 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-public blis-sandybridge (deprecated-package "blis-sandybridge" blis)) +(define-public blis-haswell (deprecated-package "blis-haswell" blis)) +(define-public blis-knl (deprecated-package "blis-knl" blis)) (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/messaging.scm b/gnu/packages/messaging.scm index e8b67c03bc..1cb78aa9b3 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2015, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016, 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org> @@ -788,7 +788,7 @@ authentication.") (define-public pidgin (package (name "pidgin") - (version "2.14.2") + (version "2.14.3") (source (origin (method url-fetch) @@ -796,7 +796,7 @@ authentication.") (string-append "mirror://sourceforge/pidgin/Pidgin/" version "/pidgin-" version ".tar.gz")) (sha256 - (base32 "19r297ynxizdj357ihmy0sgpgfikdzblkszlwlqnsr3lvbjhhsg1")) + (base32 "0vdfnm96m1kh4gm6xn6i7s9c5zjh1p18jg4595k4p5bplvd6fmm8")) (patches (search-patches "pidgin-add-search-path.patch")) (modules '((guix build utils))) @@ -875,7 +875,16 @@ authentication.") "/lib") (string-append "--with-tkconfig=" (assoc-ref %build-inputs "tk") - "/lib")))) + "/lib")) + #:phases + (modify-phases %standard-phases + (add-before 'check 'eat-leftovers + ;; XXX Remove when updating beyond 2.14.3. Equivalent to + ;; <https://keep.imfreedom.org/pidgin/pidgin/rev/d4d72fde60c2>. + (lambda _ + ;; Remove a lingering [broken] oscar reference. + (substitute* "libpurple/tests/check_libpurple.c" + ((".*oscar_util_suite.*") ""))))))) (native-search-paths (list (search-path-specification @@ -2419,7 +2428,13 @@ QMatrixClient project.") ;; Relax overly strict package version specifications. (lambda _ (substitute* "setup.py" - (("==") ">=")) + (("==") ">=") + ((",<.*'") "'")) + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "hangups")) #t))))) (propagated-inputs `(("python-aiohttp" ,python-aiohttp) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 89a8a56965..2b5f43cb14 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -716,7 +716,7 @@ settings (aliasing, linear interpolation and cubic interpolation).") (define-public hydrogen (package (name "hydrogen") - (version "1.0.1") + (version "1.0.2") (source (origin (method git-fetch) @@ -725,7 +725,7 @@ settings (aliasing, linear interpolation and cubic interpolation).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1")))) + (base32 "0nhn2njs8yyxcijxv5zgymf3211y6anzm0v9kn4vnd8kai7zwxxp")))) (build-system cmake-build-system) (arguments `(#:test-target "tests" diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 133f525cb9..f7557fc331 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> ;;; Copyright © 2020 Hamzeh Nasajpour <h.nasajpour@pantherx.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2021 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -448,6 +449,8 @@ performance across unpredictable networks, such as the Internet.") (url "https://github.com/sctp/lksctp-tools") (commit (string-append "v" version)))) (file-name (git-file-name name version)) + (patches + (search-patches "lksctp-tools-1.0.18-fix-header-file-name.patch")) (sha256 (base32 "1x4fwzrlzvfa3vcpja97m8w5g9ir2zrh4zs7zksminrnmdrs0dsr")))) (build-system gnu-build-system) @@ -471,6 +474,38 @@ sockets, and also some helper utilities around SCTP.") ;; Others. license:gpl2+)))) +(define-public python-pysctp + (package + (name "python-pysctp") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pysctp" version)) + (sha256 + (base32 "14h2qlmfi24bizhvvqkfqfa78pzm3911ibrzy9k94i97xy1978dy")))) + (build-system python-build-system) + (inputs + `(("lksctp-tools" ,lksctp-tools))) + (arguments + `(#:tests? #f ;; tests require network + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-setup.py + (lambda _ + (substitute* "setup.py" + (("include_dirs\\s*=.*") + (string-append "include_dirs = ['.'] + '" + (getenv "C_INCLUDE_PATH") "'.split(':'),")) + (("library_dirs\\s*=.*") + (string-append "library_dirs = '" + (getenv "LIBRARY_PATH") "'.split(':'),")))))))) + (home-page "https://github.com/p1sec/pysctp") + (synopsis "Python module for the SCTP protocol stack and library") + (description "@code{pysctp} implements the SCTP socket API. You need a +SCTP-aware kernel (most are).") + (license license:lgpl2.1+))) + (define-public knockd (package (name "knockd") @@ -2494,7 +2529,7 @@ networks.") (define-public speedtest-cli (package (name "speedtest-cli") - (version "2.1.2") + (version "2.1.3") (source (origin (method git-fetch) @@ -2503,7 +2538,7 @@ networks.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1456yly6iym2c9bl6pi4sz8xbw34bm2dxm1vzpydsd6jazwpmy26")))) + (base32 "10fazl4kwf41mk7pnwpfms16n0ii0kg9pf8r3mz9xwnl9y04mv9x")))) (build-system python-build-system) (home-page "https://github.com/sivel/speedtest-cli") (synopsis "Internet bandwidth tester") @@ -3834,14 +3869,14 @@ thousands of connections is clearly realistic with today's hardware.") (define-public lldpd (package (name "lldpd") - (version "1.0.9") + (version "1.0.10") (source (origin (method url-fetch) (uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-" version ".tar.gz")) (sha256 - (base32 "1xa9953hl2c94zi4ngaxyi2yw3dax1ab16118wriwawm4lqynr3b")) + (base32 "08kppk49f9wmdf2gw29sm8pi027g54gzrqa07p8fpwvy0dv2sns4")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 0948377d08..44ca0c67e2 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -159,7 +159,7 @@ (properties `((max-silent-time . 14400))) ; 4 hours, expected even on x86_64 (home-page "https://github.com/Ekdohibs/camlboot") - (synopsis "OCaml souce bootstrap") + (synopsis "OCaml source bootstrap") (description "OCaml is written in OCaml. Its sources contain a pre-compiled bytecode version of @command{ocamlc} and @command{ocamllex} that are used to build the next version of the compiler. Camlboot implements a bootstrap for diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a6469e133d..6df46aa35f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -132,8 +132,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.2.0") - (commit "8f9052d5434a3a11e7b4ff14d6b0090256e08aa4") - (revision 19)) + (commit "2d73086262e1fb33cd0f0f16f74a495fe06b38aa") + (revision 20)) (package (name "guix") @@ -149,7 +149,7 @@ (commit commit))) (sha256 (base32 - "0jqxabl9sqn7dd1l9q62zm9f7w274q44dya24akina8wwfi5yc4k")) + "070frsjcbrdqh68rhrck6w3cprbq1hjpd24z44qd017zaicix1f0")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1049,8 +1049,8 @@ environments.") (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (define-public guix-build-coordinator - (let ((commit "6e7e63f356cb88e3e5fe1a55a0390a1366205c9c") - (revision "21")) + (let ((commit "6fb5eafc33efa109b220efe71594cfcdb2efe133") + (revision "24")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1061,7 +1061,7 @@ environments.") (commit commit))) (sha256 (base32 - "01l4f0h9r864dbq4fg38fr2pdm5c7q2dysxcv8bx1clxilm58kd5")) + "1lf7jry18kwglvyakfkmi8bif8ppsdinl0xjgmkgkp4mvmymh2gj")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1088,14 +1088,18 @@ environments.") (for-each (lambda (file) (simple-format (current-error-port) "wrapping: ~A\n" file) - (let ((guile-inputs `("guile-json" - "guile-gcrypt" - "guix" - "guile-prometheus" - "guile-lib" - "guile-lzlib" - "guile-zlib" - "gnutls"))) + (let ((guile-inputs (list + "guile-json" + "guile-gcrypt" + "guix" + "guile-prometheus" + "guile-lib" + "guile-lzlib" + "guile-zlib" + "gnutls" + ,@(if (hurd-target?) + '() + '("guile-fibers"))))) (wrap-program file `("PATH" ":" prefix (,bin diff --git a/gnu/packages/patches/calibre-no-updates-dialog.patch b/gnu/packages/patches/calibre-no-updates-dialog.patch index 1d8d79660e..66ac913cb5 100644 --- a/gnu/packages/patches/calibre-no-updates-dialog.patch +++ b/gnu/packages/patches/calibre-no-updates-dialog.patch @@ -1,11 +1,17 @@ -Taken from debian. +From 19e8d7701c302b0eca4c638705a6db625352caa3 Mon Sep 17 00:00:00 2001 +From: Brendan Tildesley <mail@brendan.scot> +Date: Thu, 25 Feb 2021 12:17:30 +1100 +Subject: [PATCH] Don't check for updates. -# Description: Disable update check by default. -Index: calibre/src/calibre/gui2/main.py -=================================================================== ---- calibre.orig/src/calibre/gui2/main.py 2014-02-02 10:41:28.470954623 +0100 -+++ calibre/src/calibre/gui2/main.py 2014-02-02 10:41:56.546954247 +0100 -@@ -37,8 +37,8 @@ +--- + src/calibre/gui2/main.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py +index 776f8bebfb..4302716d7e 100644 +--- a/src/calibre/gui2/main.py ++++ b/src/calibre/gui2/main.py +@@ -59,8 +59,8 @@ def option_parser(): help=_('Start minimized to system tray.')) parser.add_option('-v', '--verbose', default=0, action='count', help=_('Ignored, do not use. Present only for legacy reasons')) @@ -16,3 +22,5 @@ Index: calibre/src/calibre/gui2/main.py parser.add_option('--ignore-plugins', default=False, action='store_true', help=_('Ignore custom plugins, useful if you installed a plugin' ' that is preventing calibre from starting')) +-- +2.30.1 diff --git a/gnu/packages/patches/calibre-remove-test-sqlite.patch b/gnu/packages/patches/calibre-remove-test-sqlite.patch index 7bdd90874d..fc2b237ef2 100644 --- a/gnu/packages/patches/calibre-remove-test-sqlite.patch +++ b/gnu/packages/patches/calibre-remove-test-sqlite.patch @@ -1,20 +1,20 @@ -From a92e26359bd07743ab105819ed0b619e27e14017 Mon Sep 17 00:00:00 2001 +From d8225e83c3b73f0e0da73874910f50ca652f48cf Mon Sep 17 00:00:00 2001 From: Brendan Tildesley <mail@brendan.scot> -Date: Sat, 27 Apr 2019 03:30:53 +1000 -Subject: [PATCH] Disable test_sqlite. +Date: Thu, 25 Feb 2021 00:48:00 +1100 +Subject: [PATCH] Remove test_sqlite --- src/calibre/test_build.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py -index 07bdffd3e5..740588c95b 100644 +index 0ab7aa0646..87fdfabd9a 100644 --- a/src/calibre/test_build.py +++ b/src/calibre/test_build.py -@@ -162,12 +162,6 @@ class BuildTest(unittest.TestCase): - au(x, 'strftime') - self.assertEqual(unicode_type(time.strftime(fmt.replace('%e', '%#d'), t)), x) - +@@ -273,12 +273,6 @@ def read_changes(): + m.close() + self.assertEqual(winutil.parse_cmdline('"c:\\test exe.exe" "some arg" 2'), ('c:\\test exe.exe', 'some arg', '2')) + - def test_sqlite(self): - import sqlite3 - conn = sqlite3.connect(':memory:') @@ -24,6 +24,5 @@ index 07bdffd3e5..740588c95b 100644 def test_apsw(self): import apsw conn = apsw.Connection(':memory:') --- -2.21.0 - +-- +2.30.1 diff --git a/gnu/packages/patches/calibre-remove-test-unrar.patch b/gnu/packages/patches/calibre-remove-test-unrar.patch index 4e5572d1a6..961cc3eba7 100644 --- a/gnu/packages/patches/calibre-remove-test-unrar.patch +++ b/gnu/packages/patches/calibre-remove-test-unrar.patch @@ -1,28 +1,26 @@ -Unrar contains security vulnerabilities and has thus been removed from Guix. -From a16f97b02bd8afd0ec05c471e156f631f2cc6eec Mon Sep 17 00:00:00 2001 +From 9edf67191cc3655480b6fd418247709ade930b1a Mon Sep 17 00:00:00 2001 From: Brendan Tildesley <mail@brendan.scot> -Date: Tue, 26 Mar 2019 22:17:03 +1100 -Subject: [PATCH] Remove test_unrar. +Date: Thu, 25 Feb 2021 00:33:10 +1100 +Subject: [PATCH] Remove test_unrar --- src/calibre/test_build.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py -index d67afd20a6..709132ef17 100644 +index b37fb1bcfb..0ab7aa0646 100644 --- a/src/calibre/test_build.py +++ b/src/calibre/test_build.py -@@ -220,10 +220,6 @@ class BuildTest(unittest.TestCase): +@@ -369,10 +369,6 @@ def test_file_dialog_helper(self): from calibre.gui2.win_file_dialogs import test test() - + - def test_unrar(self): - from calibre.utils.unrar import test_basic - test_basic() - - @unittest.skipUnless(iswindows, 'WPD is windows only') - def test_wpd(self): - wpd = plugins['wpd'][0] --- -2.21.0 - + def test_7z(self): + from calibre.utils.seven_zip import test_basic + test_basic() +-- +2.30.1 diff --git a/gnu/packages/patches/lksctp-tools-1.0.18-fix-header-file-name.patch b/gnu/packages/patches/lksctp-tools-1.0.18-fix-header-file-name.patch new file mode 100644 index 0000000000..1ebe6c803d --- /dev/null +++ b/gnu/packages/patches/lksctp-tools-1.0.18-fix-header-file-name.patch @@ -0,0 +1,32 @@ +From 378560050a8f93786c590cc99a55461666205b61 Mon Sep 17 00:00:00 2001 +From: Xin Long <lucien.xin@gmail.com> +Date: Fri, 24 Aug 2018 01:13:32 +0800 +Subject: [PATCH] build: fix netinet/sctp.h not to be installed + +After libcnetinet_HEADERS was set to sctp.h.in, netinet/sctp.h can +no longer be installed into ${includedir}. + +Since "AC_CONFIG_HEADERS([src/include/netinet/sctp.h])" is already +added into configure.ac, there's no need to generate sctp.h by +automake. + +So we simply set libcnetinet_HEADERS back to sctp.h. + +Fixes: 9607dd85e70a ("netinet/sctp.h: dynamically build based on system setup") +Signed-off-by: Xin Long <lucien.xin@gmail.com> +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +--- + src/include/netinet/Makefile.am | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/include/netinet/Makefile.am b/src/include/netinet/Makefile.am +index ca0aac2..965db8c 100644 +--- a/src/include/netinet/Makefile.am ++++ b/src/include/netinet/Makefile.am +@@ -11,5 +11,4 @@ libcnetinetdir = $(includedir)/netinet + # API. + include_HEADERS = + +-libcnetinet_HEADERS = sctp.h.in +-BUILT_SOURCES = sctp.h ++libcnetinet_HEADERS = sctp.h diff --git a/gnu/packages/patches/pyqt-public-sip.patch b/gnu/packages/patches/pyqt-public-sip.patch deleted file mode 100644 index 44cdcb6371..0000000000 --- a/gnu/packages/patches/pyqt-public-sip.patch +++ /dev/null @@ -1,55 +0,0 @@ -https://sources.debian.org/data/main/p/pyqt5/5.11.3+dfsg-1/debian/patches/public_sip.diff - -From: Dmitry Shachnev <mitya57@debian.org> -Date: Tue, 3 Jul 2018 09:46:42 +0300 -Subject: Use the public version of sip module - -Per https://www.debian.org/doc/debian-policy/#convenience-copies-of-code. ---- - configure.py | 2 +- - designer/pluginloader.cpp | 2 +- - qmlscene/pluginloader.cpp | 4 ++-- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/configure.py b/configure.py -index 32d03a0..3c43a14 100644 ---- a/configure.py -+++ b/configure.py -@@ -2440,7 +2440,7 @@ def get_sip_flags(target_config): - the target configuration. - """ - -- sip_flags = ['-n', 'PyQt5.sip'] -+ sip_flags = ['-n', 'sip'] - - # If we don't check for signed interpreters, we exclude the 'VendorID' - # feature -diff --git a/designer/pluginloader.cpp b/designer/pluginloader.cpp -index f41d391..3ca8b11 100644 ---- a/designer/pluginloader.cpp -+++ b/designer/pluginloader.cpp -@@ -167,7 +167,7 @@ bool PyCustomWidgets::importPlugins(const QString &dir, const QStringList &plugi - // Make sure we have sip.unwrapinstance. - if (!sip_unwrapinstance) - { -- sip_unwrapinstance = getModuleAttr("PyQt5.sip", "unwrapinstance"); -+ sip_unwrapinstance = getModuleAttr("sip", "unwrapinstance"); - - if (!sip_unwrapinstance) - return true; -diff --git a/qmlscene/pluginloader.cpp b/qmlscene/pluginloader.cpp -index e14b946..140e80c 100644 ---- a/qmlscene/pluginloader.cpp -+++ b/qmlscene/pluginloader.cpp -@@ -412,9 +412,9 @@ PyObject *PyQt5QmlPlugin::getModuleAttr(const char *module, const char *attr) - void PyQt5QmlPlugin::getSipAPI() - { - #if defined(SIP_USE_PYCAPSULE) -- sip = (const sipAPIDef *)PyCapsule_Import("PyQt5.sip._C_API", 0); -+ sip = (const sipAPIDef *)PyCapsule_Import("sip._C_API", 0); - #else -- PyObject *c_api = getModuleAttr("PyQt5.sip", "_C_API"); -+ PyObject *c_api = getModuleAttr("sip", "_C_API"); - - if (c_api) - { diff --git a/gnu/packages/patches/racket-sh-via-rktio.patch b/gnu/packages/patches/racket-sh-via-rktio.patch new file mode 100644 index 0000000000..b4fefd1514 --- /dev/null +++ b/gnu/packages/patches/racket-sh-via-rktio.patch @@ -0,0 +1,87 @@ +From 3574b567c486d264d680a37586436c3b5a8cb978 Mon Sep 17 00:00:00 2001 +From: Philip McGrath <philip@philipmcgrath.com> +Date: Thu, 4 Mar 2021 04:11:50 -0500 +Subject: [PATCH] patch rktio_process for "/bin/sh" on Guix + +Racket provides the functions `system` and `process`, +which execute shell commands using `sh` (or `cmd` on Windows). +Racket assumes that `sh` can be found at "/bin/sh", +which is not necessarily true on Guix. + +This patch adds a special case for "/bin/sh" to `rktio_process`, +the C function that implements the core of `system`, `process`, +and related Racket functions. + +Guix should enable the special case by defining the C preprocessor +macro `GUIX_RKTIO_PATCH_BIN_SH` with the path to `sh` in the store. +If: + + 1. The `GUIX_RKTIO_PATCH_BIN_SH` macro is defined; and + + 2. `rktio_process` is called with the exact path "/bin/sh"; and + + 3. The path specified by `GUIX_RKTIO_PATCH_BIN_SH` does exists; + +then `rktio_process` will execute the file specified +by `GUIX_RKTIO_PATCH_BIN_SH` instead of "/bin/sh". + +Compared to previous attempts to patch the Racket sources, +making this change at the C level is both: + + - More comprehensive: it catches all attempts to execute "/bin/sh", + without having to track down the source of every occurance; and + + - Less intrusive: by guarding the special case with a C preprocessor + conditional and a runtime check that the file in the store exists, + we make it much less likely that it will "leak" out of Guix. +--- + src/rktio/rktio_process.c | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/src/rktio/rktio_process.c b/src/rktio/rktio_process.c +index 89202436c0..465ebdd5c5 100644 +--- a/src/rktio/rktio_process.c ++++ b/src/rktio/rktio_process.c +@@ -1224,12 +1224,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) + /*========================================================================*/ + + rktio_process_result_t *rktio_process(rktio_t *rktio, +- const char *command, int argc, rktio_const_string_t *argv, ++ /* PATCHED for Guix (next line) */ ++ const char *_guix_orig_command, int argc, rktio_const_string_t *argv, + rktio_fd_t *stdout_fd, rktio_fd_t *stdin_fd, rktio_fd_t *stderr_fd, + rktio_process_t *group_proc, + const char *current_directory, rktio_envvars_t *envvars, + int flags) + { ++ const char *command; /* PATCHED for Guix */ + rktio_process_result_t *result; + intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2]; + int pid; +@@ -1255,6 +1257,23 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, + int i; + #endif + ++/* BEGIN PATCH for Guix */ ++#if defined(GUIX_RKTIO_PATCH_BIN_SH) ++# define GUIX_AS_a_STR_HELPER(x) #x ++# define GUIX_AS_a_STR(x) GUIX_AS_a_STR_HELPER(x) ++ /* A level of indirection makes `#` work as needed: */ ++ command = ++ ((0 == strcmp(_guix_orig_command, "/bin/sh")) ++ && rktio_file_exists(rktio, GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH))) ++ ? GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH) ++ : _guix_orig_command; ++# undef GUIX_AS_a_STR ++# undef GUIX_AS_a_STR_HELPER ++#else ++ command = _guix_orig_command; ++#endif ++/* END PATCH for Guix */ ++ + /* avoid compiler warnings: */ + to_subprocess[0] = -1; + to_subprocess[1] = -1; +-- +2.21.1 (Apple Git-122.3) + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 0768c6f413..752e9d50df 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -339,7 +339,7 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("python-sip" ,python-sip) + `(("python-sip" ,python-sip-4) ("python-pyqt" ,python-pyqt) ("poppler-qt5" ,poppler-qt5) ("qtbase" ,qtbase))) diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm index 11d2b1827d..1c325e0c3d 100644 --- a/gnu/packages/popt.scm +++ b/gnu/packages/popt.scm @@ -91,7 +91,7 @@ similar to getopt(3), it contains a number of enhancements, including: - popt allows users to alias command line arguments; - - popt provides convience functions for parsing strings into argv[] style + - popt provides convenience functions for parsing strings into argv[] style arrays.") (license x11))) diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm index 15e671b2c2..13acbca355 100644 --- a/gnu/packages/python-build.scm +++ b/gnu/packages/python-build.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -89,6 +90,23 @@ installed with a newer @code{pip} or with wheel's own command line utility.") Language (TOML) configuration files.") (license license:expat))) +(define-public python-pytoml + (package + (name "python-pytoml") + (version "0.1.21") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytoml" version)) + (sha256 + (base32 + "1rv1byiw82k7mj6aprcrqi2vdabs801y97xhfnrz7kxds34ggv4f")))) + (build-system python-build-system) + (home-page "https://github.com/avakar/pytoml") + (synopsis "Parser for TOML") + (description "This package provides a Python parser for TOML-0.4.0.") + (license license:expat))) + (define-public python-pep517-bootstrap (hidden-package (package diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 7f27966796..bde836a931 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -10,6 +10,8 @@ ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1183,6 +1185,28 @@ any Python VM with basically no runtime overhead.") ;; mypyc/lib-rt/getargs.c (license (list license:expat license:psfl)))) +(define-public python-pyannotate + (package + (name "python-pyannotate") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyannotate" version)) + (sha256 + (base32 + "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84")))) + (build-system python-build-system) + (propagated-inputs + `(("python-mypy-extensions" ,python-mypy-extensions) + ("python-six" ,python-six))) + (home-page + "https://github.com/dropbox/pyannotate") + (synopsis "Auto-generate PEP-484 annotations") + (description "This package, PyAnnotate, is used to auto-generate PEP-484 +annotations.") + (license license:asl2.0))) + (define-public python-eradicate (package (name "python-eradicate") @@ -1287,3 +1311,26 @@ help in debugging failures and optimizing the scheduler to improve speed.") (description "A pytest plugin for Sanic. It helps you to test your code asynchronously.") (license license:expat))) + +(define-public python-allpairspy + (package + (name "python-allpairspy") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "allpairspy" version)) + (sha256 + (base32 "1c987h13dly9919d15w3h747rgn50ilnv7dginhlprxbj564hn4k")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/thombashi/allpairspy") + (synopsis "Pairwise test combinations generator") + (description + "This is a Python library for test combinations generator. The generator +allows one to create a set of tests using @emph{pairwise combinations} method, +reducing a number of combinations of variables into a lesser set that covers +most situations.") + (license license:expat))) diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index 2065e6e38f..30062f43c5 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,14 +31,141 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages libffi) #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages maths) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-check) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sphinx)) +(define-public python-multivolumefile + (package + (name "python-multivolumefile") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "multivolumefile" version)) + (sha256 + (base32 + "0j46wab4b09s3favjzp3zs1cn2sn8pr7qyngs5wn31hpqqxbbz76")))) + (build-system python-build-system) + (native-inputs + `(("python-pep517" ,python-pep517) + ("python-setuptools" ,python-setuptools) + ("python-setuptools-scm" ,python-setuptools-scm/next) + ("python-coverage" ,python-coverage) + ("python-coveralls" ,python-coveralls) + ("python-pyannotate" ,python-pyannotate) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov))) + (home-page "https://github.com/miurahr/multivolume") + (synopsis "Treat multiple files as one") + (description "MultiVolumefile is a Python library that provides a +file-object abstraction, making it possible to use multiple files as if they +were a single file.") + (license license:lgpl2.1+))) + +(define-public python-bcj-cffi + (package + (name "python-bcj-cffi") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bcj-cffi" version)) + (sha256 + (base32 + "1jcczrb8zgg6w7v76w1wpz3nw75fghk3xwxkn09ll7kck7sdf68d")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cffi" ,python-cffi) + ("python-toml" ,python-toml) + ("python-setuptools-scm" ,python-setuptools-scm/next))) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-coverage" ,python-coverage) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov))) + (home-page "https://github.com/miurahr/bcj-cffi") + (synopsis "Branch / Call /Jump CFFI library in Python") + (description "This package provides an implementation of the Branch / Call / +Jump conversion filter by CFFI for Python.") + (license license:lgpl2.1+))) + +(define-public python-ppmd-cffi + (package + (name "python-ppmd-cffi") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ppmd-cffi" version)) + (sha256 + (base32 + "01wcd9l6pp6hivdmd275qh9dhcwficjqfl67hxix5n07vvq7jzz0")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cffi" ,python-cffi))) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-setuptools-scm" ,python-setuptools-scm/next) + ("python-pep517" ,python-pep517) + ("python-coverage" ,python-coverage) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov))) + (home-page "https://github.com/miurahr/ppmd") + (synopsis "Prediction by Partial Matching compression library") + (description "PPMd is a compression algorithm library using the Prediction +by Partial Matching statistical technique. It is used in RAR and 7-Zip as one of +several possible methods.") + (license license:lgpl2.1+))) + +(define-public python-py7zr + (package + (name "python-py7zr") + (version "0.14.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "py7zr" version)) + (sha256 + (base32 + "1zmgp7yax328fj8yj8pj4l7yh78hp727j6wk12vfi6nmi82wl32i")))) + (build-system python-build-system) + (propagated-inputs + `(("python-bcj-cffi" ,python-bcj-cffi) + ("python-multivolumefile" ,python-multivolumefile) + ("python-ppmd-cffi" ,python-ppmd-cffi) + ("python-pycryptodome" ,python-pycryptodome) + ("python-pyzstd" ,python-pyzstd) + ("python-texttable" ,python-texttable) + ("python-zstandard" ,python-zstandard))) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-setuptools-scm" ,python-setuptools-scm/next) + ("python-coverage" ,python-coverage) + ("python-coveralls" ,python-coveralls) + ("python-libarchive-c" ,python-libarchive-c) + ("python-py-cpuinfo" ,python-py-cpuinfo) + ("python-pyannotate" ,python-pyannotate) + ("python-pytest" ,python-pytest) + ("python-pytest-benchmark" ,python-pytest-benchmark) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-remotedata" ,python-pytest-remotedata) + ("python-pytest-timeout" ,python-pytest-timeout))) + (home-page "https://github.com/miurahr/py7zr") + (synopsis "7-zip in Python") + (description "This package provides py7zr, which implements 7-zip +archive compression, decompression, encryption and decryption in +Python.") + (license license:lgpl2.1+))) + (define-public python-lzo (package (name "python-lzo") @@ -288,13 +416,13 @@ wrapper. It provides a backport of the @code{Path} object.") (define-public python-zstandard (package (name "python-zstandard") - (version "0.13.0") + (version "0.15.2") (source (origin (method url-fetch) (uri (pypi-uri "zstandard" version)) (sha256 - (base32 "0q9msi00s93iqm8vzd839r7yc51gz54z90h5bckqyjdxa6vxijz5")))) + (base32 "0by9z7nxnkzhmza075q6q91rs8lnpf91129k8ppv7kymbwshipjj")))) (build-system python-build-system) (native-inputs `(("python-hypothesis" ,python-hypothesis))) @@ -304,3 +432,21 @@ wrapper. It provides a backport of the @code{Path} object.") the Zstandard compression library. A C extension and CFFI interface are provided.") (license license:bsd-3))) + +(define-public python-pyzstd + (package + (name "python-pyzstd") + (version "0.14.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyzstd" version)) + (sha256 + (base32 + "1d3mngs45w2p490vrq5ymd2wz4lp15phmks1ilcx4k7amgibml3d")))) + (build-system python-build-system) + (home-page "https://github.com/animalize/pyzstd") + (synopsis "Zstandard bindings for Python") + (description "This package provides Python bindings to the Zstandard (zstd) +compression library. The API is similar to Python's bz2/lzma/zlib module.") + (license license:bsd-3))) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index c7dd18ad19..1e57165509 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> @@ -40,6 +40,7 @@ ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> +;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; ;;; This file is part of GNU Guix. ;;; @@ -795,29 +796,26 @@ object graph to and from JSON.") (define-public python-mechanicalsoup (package (name "python-mechanicalsoup") - (version "0.11.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "MechanicalSoup" version)) (sha256 - (base32 "0k59wwk75q7nz6i6gynvzhagy02ql0bv7py3qqcwgjw7607yq4i7")))) + (base32 "01sddjxy3rznh63hnl5lbv1hhk6xyiviwmkiw4x7v4ap35fb3lrp")))) (build-system python-build-system) - (arguments - ;; TODO: Enable tests when python-flake8@3.5 hits master. - `(#:tests? #f)) (propagated-inputs `(("python-beautifulsoup4" ,python-beautifulsoup4) ("python-lxml" ,python-lxml) ("python-requests" ,python-requests) ("python-six" ,python-six))) - ;; (native-inputs - ;; ;; For tests. - ;; `(("python-pytest-flake8" ,python-pytest-flake8) - ;; ("python-pytest-httpbin" ,python-pytest-httpbin) - ;; ("python-pytest-mock" ,python-pytest-mock) - ;; ("python-pytest-runner" ,python-pytest-runner) - ;; ("python-requests-mock" ,python-requests-mock))) + (native-inputs + `(("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-flake8" ,python-pytest-flake8) + ("python-pytest-httpbin" ,python-pytest-httpbin) + ("python-pytest-mock" ,python-pytest-mock) + ("python-pytest-runner" ,python-pytest-runner) + ("python-requests-mock" ,python-requests-mock))) (home-page "https://mechanicalsoup.readthedocs.io/") (synopsis "Python library for automating website interaction") (description @@ -1102,7 +1100,9 @@ storage.") (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six) - ("python-webencodings" ,python-webencodings))) + ("python-webencodings" ,python-webencodings) + ;; Required by Calibre 5. + ("python-chardet" ,python-chardet))) (arguments `(#:test-target "check")) (home-page @@ -1749,26 +1749,26 @@ web framework, either via the basic or digest authentication schemes.") (define-public python-terminado (package (name "python-terminado") - (version "0.8.1") + (version "0.9.4") (source (origin (method url-fetch) (uri (pypi-uri "terminado" version)) (sha256 (base32 - "0yh69k6579g848rmjyllb5h75pkvgcy27r1l3yzgkf33wnnzkasm")))) + "1glqyw97rddyzvisz8rihsn3x2nrm5xbyq82nzp3123pqbxvqzcs")))) (build-system python-build-system) (propagated-inputs - `(("python-tornado" ,python-tornado) + `(("python-tornado" ,python-tornado-6) ("python-ptyprocess" ,python-ptyprocess))) (native-inputs - `(("python-nose" ,python-nose))) + `(("python-pytest" ,python-pytest))) (arguments `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ (invoke "nosetests") #t))))) - (home-page "https://github.com/takluyver/terminado") + (lambda _ (invoke "pytest" "-vv")))))) + (home-page "https://github.com/jupyter/terminado") (synopsis "Terminals served to term.js using Tornado websockets") (description "This package provides a Tornado websocket backend for the term.js Javascript terminal emulator library.") @@ -2523,6 +2523,53 @@ than Python’s urllib2 library.") (define-public python2-requests (package-with-python2 python-requests)) +(define-public python-requests-unixsocket + (package + (name "python-requests-unixsocket") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "requests-unixsocket" version)) + (sha256 + (base32 + "1sn12y4fw1qki5gxy9wg45gmdrxhrndwfndfjxhpiky3mwh1lp4y")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "test-requirements.txt" + (("(.*)==(.*)" _ name) (string-append name "\n"))))) + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv")))))) + (propagated-inputs + `(("python-pbr" ,python-pbr) + ("python-requests" ,python-requests) + ("python-urllib3" ,python-urllib3))) + (native-inputs + `(("python-apipkg" ,python-apipkg) + ("python-appdirs" ,python-appdirs) + ("python-execnet" ,python-execnet) + ("python-packaging" ,python-packaging) + ("python-pep8" ,python-pep8) + ("python-py" ,python-py) + ("python-pyparsing" ,python-pyparsing) + ("python-pytest" ,python-pytest) + ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-pep8" ,python-pytest-pep8) + ("python-six" ,python-six) + ("python-waitress" ,python-waitress))) + (home-page "https://github.com/msabramo/requests-unixsocket") + (synopsis "Talk HTTP via a UNIX domain socket") + (description + "This Python package lets you use the @code{requests} library to talk +HTTP via a UNIX domain socket.") + (license license:asl2.0))) + (define-public python-requests_ntlm (package (name "python-requests_ntlm") @@ -4516,18 +4563,47 @@ library to create slugs from unicode strings while keeping it DRY.") (version "1.1.0") (source (origin - (method url-fetch) - (uri (pypi-uri "tinycss2" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Kozea/tinycss2") + (commit (string-append "v" version)) + (recursive? #true))) + (file-name (git-file-name name version)) (sha256 - (base32 "12p16k8x8ig51gpfcwz3k3kxpxrwwkn41a1avdgvh3nn8hqarp7v")))) + (base32 "0zyc48vbmczpqj7f3f0d7zb3bz29fyj50dg0m6bbwbr5i88kq3sq")))) (build-system python-build-system) (arguments - ;; Test data is missing from the PyPI archive, and the build system is - ;; based on Flit, which wants an unmaintained and unpackaged - ;; python-pytoml dependency. - `(#:tests? #f)) + `(#:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + ;; A ZIP archive should be generated, but it fails with "ZIP does + ;; not support timestamps before 1980". Luckily, + ;; SOURCE_DATE_EPOCH is respected, which we set to some time in + ;; 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "flit" "build"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (wheel) + (format #true wheel) + (invoke "python" "-m" "pip" "install" + wheel (string-append "--prefix=" out))) + (find-files "dist" "\\.whl$"))))) + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv")))))) (propagated-inputs `(("python-webencodings" ,python-webencodings))) + (native-inputs + `(("python-flit" ,python-flit) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-flake8" ,python-pytest-flake8) + ("python-pytest-isort" ,python-pytest-isort))) (home-page "https://tinycss2.readthedocs.io/") (synopsis "Low-level CSS parser for Python") (description "@code{tinycss2} can parse strings, return Python objects diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 79289b1c23..39ec05cbbf 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -43,7 +43,7 @@ ;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> -;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2017, 2019, 2021 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com> @@ -60,7 +60,7 @@ ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019 Sam <smbaines8@gmail.com> ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> -;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> @@ -151,6 +151,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages jupyter) #:use-module (gnu packages kerberos) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) @@ -1985,7 +1986,7 @@ human-friendly syntax.") (build-system python-build-system) (home-page "https://github.com/scour-project/scour") (synopsis "Scour is an SVG optimizer/cleaner written in Python") - (description "The goal of Scour is to output a file that renderes + (description "The goal of Scour is to output a file that renders identically at a fraction of the size by removing a lot of redundant information created by most SVG editors. Optimization options are typically lossless but can be tweaked for more aggressive cleaning.") @@ -3722,6 +3723,25 @@ text styles of documentation.") (base32 "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q"))))))) +(define-public python-pygments-github-lexers + (package + (name "python-pygments-github-lexers") + (version "0.0.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pygments-github-lexers" version)) + (sha256 + (base32 + "0cz14clcc9z4pn79ll8hp3xzgsrfjscak5zfsvlgrz6ngkkmgjma")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pygments" ,python-pygments))) + (home-page "https://github.com/liluo/pygments-github-lexers") + (synopsis "Pygments Github custom lexers") + (description "This package installs Github custom lexers to Pygments.") + (license license:bsd-3))) + (define-public python-bump2version (package (name "python-bump2version") @@ -4469,14 +4489,13 @@ provides additional functionality on the produced Mallard documents.") (define-public python-cython (package (name "python-cython") - (version "0.29.21") + (version "0.29.22") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 - (base32 - "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5")))) + (base32 "01jl3544qwsi8lp6anbl55566xqkjd53x452i7m6gnfilv3q6syz")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so @@ -5420,14 +5439,6 @@ toolkits.") (description (package-description python-matplotlib)) (license (package-license python-matplotlib)))) -(define-public python2-matplotlib-documentation - (let ((parent (package-with-python2 python-matplotlib-documentation))) - (package - (inherit parent) - (native-inputs - (alist-delete "python-sphinx-copybutton" - (package-native-inputs parent)))))) - (define-public python-matplotlib-venn (package (name "python-matplotlib-venn") @@ -7101,13 +7112,6 @@ CLI scripts: @end enumerate") (license license:bsd-3))) -(define-public python2-ipyparallel - (let ((ipyparallel (package-with-python2 python-ipyparallel))) - (package/inherit ipyparallel - (propagated-inputs - `(("python2-futures" ,python2-futures) - ,@(package-propagated-inputs ipyparallel)))))) - (define-public python-ipython-cluster-helper (package (name "python-ipython-cluster-helper") @@ -7199,14 +7203,14 @@ without using the configuration machinery.") (define-public python-jupyter-core (package (name "python-jupyter-core") - (version "4.4.0") + (version "4.7.1") (source (origin (method url-fetch) (uri (string-append (pypi-uri "jupyter_core" version))) (sha256 (base32 - "1dy083rarba8prn9f9srxq3c7n7vyql02ycrqq306c40lr57aw5s")))) + "1d12j5hkff0xiax87pnhmzbsph3jqqzhz16h8xld7z2y4armq0kr")))) (build-system python-build-system) ;; FIXME: not sure how to run the tests (arguments `(#:tests? #f)) @@ -7218,27 +7222,23 @@ without using the configuration machinery.") "Jupyter core is the base package on which Jupyter projects rely.") (license license:bsd-3))) -(define-public python2-jupyter-core - (package-with-python2 python-jupyter-core)) - (define-public python-jupyter-client (package (name "python-jupyter-client") - (version "5.2.4") + (version "6.1.12") (source (origin (method url-fetch) (uri (pypi-uri "jupyter_client" version)) (sha256 (base32 - "0l9mh7ccrpl3lppym3dnky8n1nk7xarzzdcxf4q2s7aw203cpydm")))) + "10p7fcgvv9hvz9zical9wk68ks5ssak2ykbzx65wm1k1hk8a3g64")))) (build-system python-build-system) ;; Tests fail because of missing native python kernel which I assume is ;; provided by the ipython package, which we cannot use because it would ;; cause a dependency cycle. (arguments `(#:tests? #f - #:phases (modify-phases %standard-phases (add-after 'unpack 'set-tool-file-names (lambda* (#:key inputs #:allow-other-keys) @@ -7250,9 +7250,13 @@ without using the configuration machinery.") (inputs `(("iproute" ,iproute))) (propagated-inputs - `(("python-pyzmq" ,python-pyzmq) - ("python-traitlets" ,python-traitlets) - ("python-jupyter-core" ,python-jupyter-core))) + `(("python-dateutil" ,python-dateutil) + ("python-jupyter-core" ,python-jupyter-core) + ("python-pyzmq" ,python-pyzmq) + ("python-tornado" ,python-tornado-6) + ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://jupyter.org/") (synopsis "Jupyter protocol implementation and client libraries") (description @@ -7268,13 +7272,13 @@ installing @code{kernelspec}s for use with Jupyter frontends.") (define-public python-ipykernel (package (name "python-ipykernel") - (version "5.1.3") + (version "5.5.3") (source (origin (method url-fetch) (uri (pypi-uri "ipykernel" version)) (sha256 - (base32 "1a08y677lpn80qzvv7z0smgggmr5m5ayf0bs6vds47xpxl9sss5k")))) + (base32 "02f55cjkp5q64x7ikjxznbxwjpkdmfy237b9kg7dk1pxmzvy90m6")))) (build-system python-build-system) (arguments `(#:phases @@ -7306,38 +7310,6 @@ installing @code{kernelspec}s for use with Jupyter frontends.") (synopsis "IPython Kernel for Jupyter") (description "This package provides the IPython kernel for Jupyter.") - (properties `((python2-variant . ,(delay python2-ipykernel)))) - (license license:bsd-3))) - -;; Version 5.x and above no longer support Python 2. -(define-public python2-ipykernel - (package - (name "python2-ipykernel") - (version "4.10.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "ipykernel" version)) - (sha256 - (base32 "1yzmdiy1djsszqp54jzd8ym8h4hpl67zjq83j2kxbkp0rwmlpdzf")))) - (build-system python-build-system) - (arguments - `(#:python ,python-2)) - (propagated-inputs - `(("python2-ipython" ,python2-ipython) - ;; imported at runtime during connect - ("python2-jupyter-client" ,python2-jupyter-client) - ("python2-tornado" ,python2-tornado) - ("python2-traitlets" ,python2-traitlets))) - (native-inputs - `(("python2-mock" ,python2-mock) - ("python2-nose" ,python2-nose) - ("python2-pytest" ,python2-pytest) - ("python2-pytest-cov" ,python2-pytest-cov))) - (home-page "https://ipython.org") - (synopsis "IPython Kernel for Jupyter") - (description - "This package provides the IPython kernel for Jupyter.") (license license:bsd-3))) (define-public python-pari-jupyter @@ -8959,14 +8931,14 @@ Python.") (define-public python-markdown (package (name "python-markdown") - (version "3.2.1") + (version "3.3.4") (source (origin (method url-fetch) (uri (pypi-uri "Markdown" version)) (sha256 (base32 - "00k91gwhxnm8jdnm2v5xjz9irj6dbi7afywz2hpakqdbxs1ydzlh")))) + "0jbs73nincha8fkfxx267sfxac6pl0ckszjbqbb8gk4dhs8v9d9i")))) (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose) @@ -10175,29 +10147,42 @@ Debian-related files, such as: (define-public python-nbformat (package (name "python-nbformat") - (version "4.4.0") + (version "5.1.3") (source (origin (method url-fetch) (uri (pypi-uri "nbformat" version)) (sha256 (base32 - "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp")))) + "1j6idwsw59cslsssvlkg2bkfpvd6ri7kghbp14jwcw87sy57h5mm")))) (build-system python-build-system) - (arguments `(#:tests? #f)) ; no test target (propagated-inputs `(("python-ipython-genutils" ,python-ipython-genutils) ("python-jsonschema" ,python-jsonschema) ("python-jupyter-core" ,python-jupyter-core) ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://jupyter.org") (synopsis "Jupyter Notebook format") (description "This package provides the reference implementation of the Jupyter Notebook format and Python APIs for working with notebooks.") + (properties `((python2-variant . ,(delay python2-nbformat)))) (license license:bsd-3))) (define-public python2-nbformat - (package-with-python2 python-nbformat)) + (let ((parent (package-with-python2 + (strip-python2-variant python-nbformat)))) + (package + (inherit parent) + (version "4.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "nbformat" version)) + (sha256 + (base32 + "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp"))))))) (define-public python-bleach (package @@ -10348,36 +10333,57 @@ time.") (define-public python-nbconvert (package (name "python-nbconvert") - (version "5.0.0b1") + (version "6.0.7") (source (origin (method url-fetch) (uri (pypi-uri "nbconvert" version)) (sha256 (base32 - "0brclbb18l4nmd5qy3dl9wn05rjdh1fz4rmzdlfqacj12rcdvdgp")))) + "00lhqaxn481qvk2w5568asqlsnvrw2fm61p1vssx3m7vdnl17g6b")))) (build-system python-build-system) (arguments - `(;; The "bdist_egg" target is disabled by default, causing the installation - ;; to fail. - #:configure-flags (list "bdist_egg") - ;; FIXME: 5 failures, 40 errors. - #:tests? #f)) - ;; #:phases - ;; (modify-phases %standard-phases - ;; (replace 'check - ;; (lambda _ - ;; (zero? (system* "py.test" "-v"))))) + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + + ;; This seems to require Chromium. + (delete-file "nbconvert/exporters/tests/test_webpdf.py") + + ;; This depends on the python3 kernel, which is provided by a + ;; package that depends on nbconvert. + (delete-file "nbconvert/preprocessors/tests/test_execute.py") + + ;; Most of these tests fail because nbconvert fails to execute + ;; itself. + (delete-file "nbconvert/tests/test_nbconvertapp.py") + + ;; One test here fails with an unclear error. It looks like + ;; "%%pylabprint" is supposed to be expanded to some other + ;; code, but isn't. + (delete-file "nbconvert/filters/tests/test_strings.py") + + ;; Some tests need HOME + (setenv "HOME" "/tmp") + (invoke "pytest"))))))) (native-inputs `(("python-pytest" ,python-pytest))) (propagated-inputs `(("python-bleach" ,python-bleach) + ("python-defusedxml" ,python-defusedxml) ("python-entrypoints" ,python-entrypoints) ("python-jinja2" ,python-jinja2) ("python-jupyter-core" ,python-jupyter-core) ("python-mistune" ,python-mistune) + ("python-nbclient" ,python-nbclient) ("python-nbformat" ,python-nbformat) + ("python-pandocfilters" ,python-pandocfilters) ("python-pygments" ,python-pygments) + ("python-jupyterlab-pygments" ,python-jupyterlab-pygments) + ("python-testpath" ,python-testpath) ("python-traitlets" ,python-traitlets))) (home-page "https://jupyter.org") (synopsis "Converting Jupyter Notebooks") @@ -10394,48 +10400,88 @@ convert an @code{.ipynb} notebook file into various static formats including: @item ReStructured Text (rst) @item executable script @end enumerate\n") - (license license:bsd-3))) + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-nbconvert)))))) (define-public python2-nbconvert - (package-with-python2 python-nbconvert)) + (let ((parent + (package-with-python2 + (strip-python2-variant python-nbconvert)))) + (package + (inherit parent) + (version "5.0.0b1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "nbconvert" version)) + (sha256 + (base32 + "0brclbb18l4nmd5qy3dl9wn05rjdh1fz4rmzdlfqacj12rcdvdgp")))) + (arguments + `(;; The "bdist_egg" target is disabled by default, causing the installation + ;; to fail. + #:configure-flags (list "bdist_egg") + ;; FIXME: 5 failures, 40 errors. + #:tests? #f)) + (propagated-inputs + `(("python-bleach" ,python-bleach) + ("python-entrypoints" ,python-entrypoints) + ("python-jinja2" ,python-jinja2) + ("python-jupyter-core" ,python-jupyter-core) + ("python-mistune" ,python-mistune) + ("python-nbformat" ,python-nbformat) + ("python-pygments" ,python-pygments) + ("python-traitlets" ,python-traitlets)))))) (define-public python-notebook (package (name "python-notebook") - (version "5.7.4") + (version "6.3.0") (source (origin (method url-fetch) (uri (pypi-uri "notebook" version)) (sha256 (base32 - "0jm7324mbxljmn9hgapj66q7swyz5ai92blmr0jpcy0h80x6f26r")))) + "0zfwr87ndjzmdp9adpc9lby1hdqdkjp2q7c9vff3wiw1dj6kkjfb")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ + (lambda* (#:key tests? inputs outputs #:allow-other-keys) ;; These tests require a browser (delete-file-recursively "notebook/tests/selenium") - ;; Some tests need HOME - (setenv "HOME" "/tmp") - ;; This file contains "warningfilters", which are not supported - ;; by this version of nose. - (delete-file "setup.cfg") - (with-directory-excursion "/tmp" - (invoke "nosetests" "-v")) - #t))))) + (when tests? + (add-installed-pythonpath inputs outputs) + ;; Some tests need HOME + (setenv "HOME" "/tmp") + (with-directory-excursion "/tmp" + (invoke "pytest" "-vv" + ;; TODO: This tests fails because nbconvert does not + ;; list "python" as a format. + "-k" "not test_list_formats")))))))) (propagated-inputs - `(("python-jupyter-core" ,python-jupyter-core) - ("python-nbformat" ,python-nbformat) + `(("python-argon2-cffi" ,python-argon2-cffi) + ("python-ipykernel" ,python-ipykernel) + ("python-ipython-genutils" ,python-ipython-genutils) + ("python-jinja2" ,python-jinja2) + ("python-jupyter-client" ,python-jupyter-client) + ("python-jupyter-core" ,python-jupyter-core) ("python-nbconvert" ,python-nbconvert) + ("python-nbformat" ,python-nbformat) ("python-prometheus-client" ,python-prometheus-client) + ("python-pyzmq" ,python-pyzmq) ("python-send2trash" ,python-send2trash) - ("python-terminado" ,python-terminado))) + ("python-terminado" ,python-terminado) + ("python-tornado" ,python-tornado-6) + ("python-traitlets" ,python-traitlets))) (native-inputs - `(("python-nose" ,python-nose) - ("python-sphinx" ,python-sphinx) - ("python-requests" ,python-requests))) + `(("python-coverage" ,python-coverage) + ("python-nbval" ,python-nbval) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-requests" ,python-requests) + ("python-requests-unixsocket" ,python-requests-unixsocket))) (home-page "https://jupyter.org/") (synopsis "Web-based notebook environment for interactive computing") (description @@ -10477,11 +10523,7 @@ interactive computing.") "1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7")))) (build-system python-build-system) (propagated-inputs - `(("python-ipykernel" ,python-ipykernel) - ("python-notebook" ,python-notebook))) - (native-inputs - `(("python-certifi" ,python-certifi) - ("python-nose" ,python-nose))) + `(("python-notebook" ,python-notebook))) (home-page "https://ipython.org") (synopsis "IPython HTML widgets for Jupyter") (description "This package provides interactive HTML widgets for Jupyter @@ -10491,22 +10533,26 @@ notebooks.") (define-public python-ipywidgets (package (name "python-ipywidgets") - (version "7.5.1") + (version "7.6.3") (source (origin (method url-fetch) (uri (pypi-uri "ipywidgets" version)) (sha256 (base32 - "15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9")))) + "1w217j8i53x14l7b05fk300k222zs9vkcjaa1rbrw3sk43k466lz")))) (build-system python-build-system) (propagated-inputs - `(("python-ipython" ,python-ipython) + `(("python-ipykernel" ,python-ipykernel) + ("python-ipython" ,python-ipython) + ("python-jupyterlab-widgets" ,python-jupyterlab-widgets) + ("python-nbformat" ,python-nbformat) ("python-traitlets" ,python-traitlets) ("python-widgetsnbextension" ,python-widgetsnbextension))) (native-inputs - `(("python-nose" ,python-nose) - ("python-pytest" ,python-pytest))) + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov))) (home-page "https://ipython.org") (synopsis "IPython HTML widgets for Jupyter") (description "Ipywidgets are interactive HTML widgets for Jupyter @@ -10539,36 +10585,6 @@ in the data.") (description "This package provides a terminal-based console frontend for Jupyter kernels. It also allows for console-based interaction with non-Python Jupyter kernels such as IJulia and IRKernel.") - (properties `((python2-variant . ,(delay python2-jupyter-console)))) - (license license:bsd-3))) - -(define-public python2-jupyter-console - (package - (name "python2-jupyter-console") - (version "5.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "jupyter_console" version)) - (sha256 - (base32 - "1kam1qzgwr7srhm5r6aj90di5sws4bq0jmiw15452ddamb9yspal")))) - (build-system python-build-system) - (arguments - `(#:python ,python-2 - #:tests? #f)) ; Tests only run in a TTY. - (propagated-inputs - `(("python2-ipykernel" ,python2-ipykernel) - ("python2-jupyter-client" ,python2-jupyter-client) - ("python2-prompt-toolkit" ,python2-prompt-toolkit-1) - ("python2-pygments" ,python2-pygments))) - (native-inputs - `(("python2-nose" ,python2-nose))) - (home-page "https://jupyter.org") - (synopsis "Jupyter terminal console") - (description "This package provides a terminal-based console frontend for -Jupyter kernels. It also allows for console-based interaction with non-Python -Jupyter kernels such as IJulia and IRKernel.") (license license:bsd-3))) ;; The python-ipython and python-jupyter-console require each other. To get @@ -11602,6 +11618,56 @@ Pytest but stripped of Pytest specific details.") (propagated-inputs `(("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)))))) +(define-public python-plumbum + (package + (name "python-plumbum") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "plumbum" version)) + (sha256 + (base32 "1kidj821k79dw064rlxh84xamb9h79ychg3pgj81jlvm5hs48xri")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;no tests + (native-inputs + ;; XXX: Not actually used since there are no tests but required for + ;; build. + `(("python-pytest" ,python-pytest))) + (home-page "https://plumbum.readthedocs.io") + (synopsis "Python shell combinators library") + (description + "Plumbum is a library of tools for replacing shell scripts with Python +code.") + (license license:expat))) + +(define-public python-deprecation + (package + (name "python-deprecation") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "deprecation" version)) + (sha256 + (base32 + "1zqqjlgmhgkpzg9ss5ki8wamxl83xn51fs6gn2a8cxsx9vkbvcvj")))) + (build-system python-build-system) + (propagated-inputs + `(("python-packaging" ,python-packaging))) + (native-inputs + `(("python-unittest2" ,python-unittest2))) + (home-page "https://deprecation.readthedocs.io/") + (synopsis "Python library to handle automated deprecations") + (description + "This is a library that enables automated deprecations. It offers the +@code{deprecated()} decorator to wrap functions, providing proper warnings +both in documentation and via Python’s warnings system, as well as the +@code{deprecation.fail_if_not_removed()} decorator for test methods to ensure +that deprecated code is eventually removed.") + (license license:asl2.0))) + (define-public python-tox (package (name "python-tox") @@ -13253,13 +13319,13 @@ graphviz.") (define-public python-fastimport (package (name "python-fastimport") - (version "0.9.8") + (version "0.9.9") (source (origin (method url-fetch) (uri (pypi-uri "fastimport" version)) (sha256 - (base32 "1fb3b7y3sw55f6wykxx478ybkirz0l52lgdqmbhmc0h0jzmyiwmj")))) + (base32 "06gk14qgm9dxx3pzjn0ckdbywc8ial2bjfzddqwlr4bn1nnqkbll")))) (build-system python-build-system) (home-page "https://github.com/jelmer/python-fastimport") (synopsis "VCS fastimport parser and generator in Python") @@ -15623,7 +15689,7 @@ specified to apply on the key before comparison (e.g. @code{string.lower})).") ;;https://bitbucket.org/fdik/pypeg/issues/36/test-failures-on-py35 '(#:tests? #f)) (home-page "https://fdik.org/pyPEG/") - (synopsis "Parsering Expression Grammars in Python") + (synopsis "Parsing Expression Grammars in Python") (description "PyPEG is an intrinsic parser interpreter framework for Python. It is based on Parsing Expression Grammars, PEG. With pyPEG you can parse many formal languages.") @@ -18369,13 +18435,13 @@ user's @file{~/Trash} directory.") (define-public python-yamllint (package (name "python-yamllint") - (version "1.26.0") + (version "1.26.1") (source (origin (method url-fetch) (uri (pypi-uri "yamllint" version)) (sha256 - (base32 "11qhs1jk9pwvyk5k3q5blh9sq42dh1ywdf1f3i2zixf7hncwir5h")))) + (base32 "090krlxj7az0d9yl8i20vjrqi66dfxx7y5xakjhxzsfp7qmldnc7")))) (build-system python-build-system) (propagated-inputs `(("python-pathspec" ,python-pathspec) @@ -20976,6 +21042,64 @@ by Igor Pavlov.") (define-public python2-pylzma (package-with-python2 python-pylzma)) +(define-public python-ifaddr + (package + (name "python-ifaddr") + (version "0.1.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ifaddr" version)) + (sha256 + (base32 + "150sxdlicwrphmhnv03ykxplyd2jdrxz0mikgnivavgilrn8m7hz")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ (invoke "nosetests")))))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/pydron/ifaddr") + (synopsis "Network interface and IP address enumeration library") + (description "This package provides a network interface and IP address +enumeration library in Python.") + (license license:expat))) + +(define-public python-zeroconf + (package + (name "python-zeroconf") + (version "0.28.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zeroconf" version)) + (sha256 + (base32 + "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-ifaddr" ,python-ifaddr))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ ;; Networking isn't available for these tests. + (invoke "nosetests" "-v" + "--exclude" "test_integration_with_listener_ipv6" + "--exclude" "test_launch_and_close_v6_only" + "--exclude" "test_launch_and_close_v4_v6" + "--exclude" "test_launch_and_close")))))) + (home-page "https://github.com/jstasiak/python-zeroconf") + (synopsis "Pure Python mDNS service discovery") + (description + "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi +compatible).") + (license license:lgpl2.1+))) + (define-public python2-zeroconf (package (name "python2-zeroconf") @@ -21621,17 +21745,85 @@ the syntactic logic to configure and launch jobs in an execution environment.") (define-public python-flit (package (name "python-flit") - (version "3.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flit" version)) - (sha256 - (base32 - "14q8qa48bli2mniznc8b54qkwvhbik4kw99y01fi5gzzl620zzml")))) + (version "3.2.0") + ;; We fetch the sources via git because on pypi the package is split into + ;; two parts: flit and flit_core; flit_core cannot be built without flit. + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/takluyver/flit") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fpqxpz5bv2xpv1akmc0c8yfss6sj09wdzxrlf3qw1lp1jhbzpyc")))) (build-system python-build-system) (arguments - `(#:tests? #f)) ; XXX: Check requires network access. + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'bootstrap + (lambda* (#:key inputs #:allow-other-keys) + (let ((home (string-append (getcwd) "/home"))) + (mkdir-p home) + (setenv "HOME" home)) + (for-each make-file-writable (find-files ".")) + (copy-recursively (assoc-ref inputs "python-testpath") + (string-append (getcwd) "/testpath")) + (substitute* "pyproject.toml" + (("\"testpath\",") "")) + (invoke "python" "bootstrap_dev.py"))) + (replace 'build + (lambda _ + ;; A ZIP archive should be generated, but it fails with "ZIP does + ;; not support timestamps before 1980". Luckily, + ;; SOURCE_DATE_EPOCH is respected, which we set to some time in + ;; 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (for-each (lambda (toml) + (invoke "python3" "-m" "flit" + "--debug" "--ini-file" toml + "build")) + '("testpath/pyproject.toml" + "pyproject.toml")) + (with-directory-excursion "flit_core" + (invoke "python" "build_dists.py")))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (let ((out (assoc-ref outputs "out"))) + (delete-file-recursively "./home") + (for-each (lambda (wheel) + (format #true wheel) + (invoke "python" "-m" "pip" "install" + wheel (string-append "--prefix=" out))) + (append + (find-files "flit_core/dist" "\\.whl$") + (find-files "dist" "\\.whl$"))))))) + #:tests? #f)) ; XXX: Check requires network access. + (propagated-inputs + `(("python-pytoml" ,python-pytoml) + ("python-toml" ,python-toml))) + (native-inputs + `(("python-docutils" ,python-docutils) + ("python-responses" ,python-responses) + ("python-pygments-github-lexers" ,python-pygments-github-lexers) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-sphinx" ,python-sphinx) + ("python-sphinxcontrib-github-alt" ,python-sphinxcontrib-github-alt) + ;; This package needs testpath, but testpath also needs flit... + ("python-testpath" + ,(let ((name "python-testpath") + (version "0.4.4")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jupyter/testpath") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fwv4d3p54xx1x942s104irr35lszvv6jnr4nn1scsfvc0m1qmbk"))))))) (home-page "https://flit.readthedocs.io/") (synopsis "Simple packaging tool for simple packages") @@ -23512,12 +23704,12 @@ dates in almost any string formats commonly found on web pages.") ;; This invokation is taken from tox.ini. (invoke "nosetests" "-d" "-v" "tests/")))))) (home-page "https://github.com/akesterson/dpath-python") - (synopsis "Filesystem-like pathing and searching for dictionaries") + (synopsis "File-system-like pathing and searching for dictionaries") (description "@code{python-dpath} is a library for accessing and searching dictionaries via /slashed/paths ala xpath. -Basically it lets you glob over a dictionary as if it were a filesystem. It +Basically it lets you glob over a dictionary as if it were a file system. It allows you to specify globs (ala the bash eglob syntax, through some advanced fnmatch.fnmatch magic) to access dictionary elements, and provides some facility for filtering those results.") @@ -23735,12 +23927,34 @@ cleanly print different types of messages.") "NestedText is a file format for holding data that is to be entered, edited, or viewed by people. It allows data to be organized into a nested collection of dictionaries, lists, and strings. In this way it is similar to JSON and YAML, but -without the complexity and risk of YAML and without the syntatic clutter of JSON. +without the complexity and risk of YAML and without the syntactic clutter of JSON. NestedText is both simple and natural. Only a small number of concepts and rules must be kept in mind when creating it. It is easily created, modified, or viewed with a text editor and easily understood and used by both programmers and non-programmers.") (license license:expat))) ; MIT license +(define-public python-nest-asyncio + (package + (name "python-nest-asyncio") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "nest_asyncio" version)) + (sha256 + (base32 + "1anha29fcijminn5bh2icnx8x7nk39lna9wkc72262i12p2s3idg")))) + (build-system python-build-system) + (home-page "https://github.com/erdewit/nest_asyncio") + (synopsis "Patch asyncio to allow nested event loops") + (description + "By design @code{asyncio} does not allow its event loop to be nested. +This presents a practical problem: when in an environment where the event loop +is already running it's impossible to run tasks and wait for the result. This +module patches @code{asyncio} to allow nested use of @code{asyncio.run} and +@code{loop.run_until_complete}.") + (license license:bsd-3))) + (define-public python-parallel (package (name "python-parallel") @@ -24391,3 +24605,31 @@ apply various transformations to plain text in order to yield typographically-improved HTML. While often used in conjunction with Jinja and Django template systems, the filters can be used in any environment.") (license license:bsd-3))) + +(define-public python-pathvalidate + (package + (name "python-pathvalidate") + (version "2.4.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathvalidate" version)) + (sha256 + (base32 "0s14ycjgb44lxr2wg8lrq3b7kybmmrbf7yqz47xrqgn2gr6dk6rw")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) + ;; Tests disabled because of circular dependencies. + ;; pathvalidate tests depend on pytest-md-report, which + ;; depends on pathvalidate. + (native-inputs + `(("python-allpairspy" ,python-allpairspy) + ("python-click" ,python-click) + ("python-faker" ,python-faker) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/thombashi/pathvalidate") + (synopsis "Sanitize strings representing paths") + (description + "@code{pathvalidate} is a Python library to sanitize/validate strings +representing paths or filenames.") + (license license:expat))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 21ccf15dc3..fb1a3b598e 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) @@ -1807,6 +1809,42 @@ and binaries removed, and adds modular support for using system libraries.") (define-public python-sip (package (name "python-sip") + (version "5.5.0") + (source + (origin + (method url-fetch) + (uri (list (pypi-uri "sip" version) + (string-append "https://www.riverbankcomputing.com/static/" + "Downloads/sip/" version + "/sip-" version ".tar.gz"))) + (sha256 + (base32 + "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx")))) + (build-system python-build-system) + (native-inputs + `(("python" ,python-wrapper))) + (propagated-inputs + `(("python-toml" ,python-toml) + ("python-packaging" ,python-packaging))) + (home-page "https://www.riverbankcomputing.com/software/sip/intro") + (synopsis "Python binding creator for C and C++ libraries") + (description + "SIP is a tool to create Python bindings for C and C++ libraries. It +was originally developed to create PyQt, the Python bindings for the Qt +toolkit, but can be used to create bindings for any C or C++ library. + +SIP comprises a code generator and a Python module. The code generator +processes a set of specification files and generates C or C++ code, which +is then compiled to create the bindings extension module. The SIP Python +module provides support functions to the automatically generated code.") + ;; There is a choice between a python like license, gpl2 and gpl3. + ;; For compatibility with pyqt, we need gpl3. + (license license:gpl3))) + +(define-public python-sip-4 + (package + (inherit python-sip) + (name "python-sip") (version "4.19.24") (source (origin @@ -1821,6 +1859,7 @@ and binaries removed, and adds modular support for using system libraries.") (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) + (propagated-inputs `()) (arguments `(#:tests? #f ; no check target #:imported-modules ((guix build python-build-system) @@ -1843,27 +1882,8 @@ and binaries removed, and adds modular support for using system libraries.") "--bindir" bin "--destdir" lib "--incdir" include))))))) - (home-page "https://www.riverbankcomputing.com/software/sip/intro") - (synopsis "Python binding creator for C and C++ libraries") - (description - "SIP is a tool to create Python bindings for C and C++ libraries. It -was originally developed to create PyQt, the Python bindings for the Qt -toolkit, but can be used to create bindings for any C or C++ library. - -SIP comprises a code generator and a Python module. The code generator -processes a set of specification files and generates C or C++ code, which -is then compiled to create the bindings extension module. The SIP Python -module provides support functions to the automatically generated code.") - ;; There is a choice between a python like license, gpl2 and gpl3. - ;; For compatibility with pyqt, we need gpl3. (license license:gpl3))) -(define-public python2-sip - (package/inherit python-sip - (name "python2-sip") - (native-inputs - `(("python" ,python-2))))) - (define-public python-pyqt (package (name "python-pyqt") @@ -1877,17 +1897,17 @@ module provides support functions to the automatically generated code.") (string-append "https://www.riverbankcomputing.com/static/" "Downloads/PyQt5/" version "/PyQt5-" version ".tar.gz"))) - (file-name (string-append "PyQt5-"version ".tar.gz")) + (file-name (string-append "PyQt5-" version ".tar.gz")) (sha256 (base32 "1z74295i69cha52llsqffzhb5zz7qnbjc64h8qg21l91jgf0harp")) - (patches (search-patches "pyqt-configure.patch" - "pyqt-public-sip.patch")))) + (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs `(("qtbase" ,qtbase))) ; for qmake (propagated-inputs - `(("python-sip" ,python-sip))) + `(("python-sip" ,python-sip) + ("python-pyqt5-sip" ,python-pyqt5-sip))) (inputs `(("python" ,python-wrapper) ("qtbase" ,qtbase) @@ -1956,6 +1976,25 @@ framework. The bindings are implemented as a set of Python modules and contain over 620 classes.") (license license:gpl3))) +(define-public python-pyqt5-sip + (package + (name "python-pyqt5-sip") + (version "12.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyQt5_sip" version)) + (sha256 + (base32 + "1gg032ys4pccwkdzmdryadc9a4lq85nr05pag9swrsdykbdl9s9h")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;; No test code. + (home-page "https://www.riverbankcomputing.com/software/sip/") + (synopsis "Sip module support for PyQt5") + (description "Sip module support for PyQt5") + (license license:lgpl2.1+))) + (define-public python-pyqtwebengine (package (name "python-pyqtwebengine") @@ -2049,38 +2088,28 @@ itself.") (inputs (alist-delete "qtwebkit" (package-inputs python-pyqt))))) -(define-public python2-pyqt - (package/inherit python-pyqt - (name "python2-pyqt") - (propagated-inputs - `(("python-enum34" ,python2-enum34) - ("python-sip" ,python2-sip))) - (native-inputs - `(("python-sip" ,python2-sip) - ("qtbase" ,qtbase))) - (inputs - `(("python" ,python-2) - ("python2-enum34" ,python2-enum34) - ,@(alist-delete "python" (package-inputs python-pyqt)))))) - -(define-public python2-pyqtwebengine - (package/inherit - python-pyqtwebengine - (name "python2-pyqtwebengine") - (native-inputs - `(("python" ,python-2) - ("python-sip" ,python2-sip) - ;; qtbase is required for qmake - ("qtbase" ,qtbase))) +(define-public python-pyqt-builder + (package + (name "python-pyqt-builder") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyQt-builder" version)) + (sha256 + (base32 + "0nh0054c54ji3sm6d268fccf0y5f613spswwgwqd3rnn816hnljl")))) + (build-system python-build-system) (inputs - `(("python" ,python-2) - ("python-sip" ,python2-sip) - ("python-pyqt" ,python2-pyqt) - ("qtbase" ,qtbase) - ("qtsvg" ,qtsvg) - ("qtdeclarative" ,qtdeclarative) - ("qtwebchannel" ,qtwebchannel) - ("qtwebengine" ,qtwebengine))))) + `(("python-sip" ,python-sip))) + (home-page "https://www.riverbankcomputing.com/static/Docs/PyQt-builder/") + (synopsis "PEP 517 compliant PyQt build system") + (description "PyQt-builder is a tool for generating Python bindings for C++ +libraries that use the Qt application framework. The bindings are built on +top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.") + ;; Either version 2 or 3, but no other version. See the file + ;; 'pyqtbuild/builder.py' in the source distribution for more information. + (license (list license:gpl2 license:gpl3)))) (define-public python-qtpy (package diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index afe93081b3..e6d5ef0203 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -172,6 +172,53 @@ To install the rtl-sdr udev rules, you must extend 'udev-service-type' with this package. E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}") (license license:gpl2+))) +(define-public airspyhf + (package + (name "airspyhf") + (version "1.6.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/airspy/airspyhf") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n699i5a9fzzhf80fcjlqq6p2a013rzlwmwv4nmwfafy6c8cr924")))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libusb" ,libusb))) + (arguments + '(#:configure-flags '("-DINSTALL_UDEV_RULES=ON") + #:tests? #f ; No tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "tools/CMakeLists.txt" + (("DESTINATION \"/etc/udev/") + (string-append "DESTINATION \"" + (assoc-ref outputs "out") + "/lib/udev/"))))) + (add-after 'fix-paths 'fix-udev-rules + (lambda _ + (substitute* "tools/52-airspyhf.rules" + ;; The plugdev group does not exist; use dialout as in + ;; the hackrf package. + (("GROUP=\"plugdev\"") + "GROUP=\"dialout\""))))))) + (home-page "https://github.com/airspy/airspyhf") + (synopsis "Software defined radio driver for Airspy HF+") + (description + "This package provides the driver and utilities for controlling the Airspy +HF+ Software Defined Radio (SDR) over USB. + +To install the airspyhf udev rules, you must extend @code{udev-service-type} +with this package. E.g.: @code{(udev-rules-service 'airspyhf airspyhf)}") + (license license:bsd-3))) + (define-public chirp (package (name "chirp") @@ -466,7 +513,8 @@ environment.") ("python-mako" ,python-mako) ("python-six" ,python-six))) (inputs - `(("boost" ,boost) + `(("airspyhf" ,airspyhf) + ("boost" ,boost) ("fftwf" ,fftwf) ("gmp" ,gmp) ("gnuradio" ,gnuradio) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 0841c1fd8d..0baed8fc17 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -61,7 +61,7 @@ (version "2.0.15") (source (origin (method url-fetch) - (uri (string-append "http://download.librdf.org/source/" name + (uri (string-append "https://download.librdf.org/source/" name "-" version ".tar.gz")) (patches (search-patches "raptor2-heap-overflow.patch")) @@ -76,7 +76,7 @@ ("zlib" ,zlib))) (arguments `(#:parallel-tests? #f)) - (home-page "http://librdf.org/raptor/") + (home-page "https://librdf.org/raptor/") (synopsis "RDF syntax library") (description "Raptor is a C library providing a set of parsers and serialisers that generate Resource Description Framework (RDF) triples diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm index f90feaf57f..37b15663b9 100644 --- a/gnu/packages/rsync.scm +++ b/gnu/packages/rsync.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; @@ -71,7 +71,7 @@ files in the destination.") (define-public librsync (package (name "librsync") - (version "2.3.1") + (version "2.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -80,7 +80,7 @@ files in the destination.") (file-name (git-file-name name version)) (sha256 (base32 - "131cd4asmpm4nskidzgiy8xibbnpibvvbq857a0pcky77min5g4z")))) + "0bn29npmbw26akc6y54661irpdh6qcivcs6q48cgp3llklhhxp0q")))) (build-system cmake-build-system) (inputs `(("popt" ,popt))) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 806c6cf873..300726764e 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -7159,7 +7159,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular: (define-public ruby-rexml (package (name "ruby-rexml") - (version "3.2.4") + (version "3.2.5") (source (origin (method git-fetch) ;no tests in distributed gem @@ -7168,8 +7168,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0rhjjbkaq2f2cs8hyr2i4yjqpcyl8m0wmr2cypa401m3fvz4221i")))) + (base32 "13n6vaa80drqic2wri4q6k22qzvsn683vp5s8c9dllil6x04kn0x")))) (build-system ruby-build-system) (synopsis "XML toolkit for Ruby") (description "Inspired by Electric XML library for Java, REXML aims to be diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 10be0aa28a..b5d526bfc3 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> +;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages autotools) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages libevent) @@ -411,94 +413,26 @@ implementation techniques and as an expository tool.") (base32 "047wpjblfzmf1msz7snrp2c2h0zxyzlmbsqr9bwsyvz3frcg0888")) (patches (search-patches + "racket-sh-via-rktio.patch" + ;; TODO: If we're no longer patching Racket source + ;; files with store paths, we may also fix the + ;; issue that necessitated the following patch: "racket-store-checksum-override.patch")))) (build-system gnu-build-system) (arguments - '(#:configure-flags - '("--enable-libz" + `(#:configure-flags + `(,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH=" + (assoc-ref %build-inputs "sh") + "/bin/sh") + "--enable-libz" "--enable-liblz4") + #:modules + ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases - (add-before 'configure 'pre-configure-minimal - (lambda* (#:key inputs #:allow-other-keys) - ;; Patch dynamically loaded libraries with their absolute paths. - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path - library-path - (format #f "~a.so" soname))))) - (substitute* "collects/db/private/sqlite3/ffi.rkt" - (("ffi-lib sqlite-so") - (format #f "ffi-lib \"~a\"" (find-so "libsqlite3")))) - (substitute* "collects/openssl/libssl.rkt" - (("ffi-lib libssl-so") - (format #f "ffi-lib \"~a\"" (find-so "libssl")))) - (substitute* "collects/openssl/libcrypto.rkt" - (("ffi-lib libcrypto-so") - (format #f "ffi-lib \"~a\"" (find-so "libcrypto"))))) - (chdir "src") - #t)) - (add-before 'pre-configure-minimal 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Patch dynamically loaded libraries with their absolute paths. - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path - library-path - (format #f "~a.so" soname)))) - (patch-ffi-libs (lambda (file libs) - (for-each - (lambda (lib) - (substitute* file - (((format #f "\"~a\"" lib)) - (format #f "\"~a\"" (find-so lib))))) - libs)))) - (substitute* "share/pkgs/math-lib/math/private/bigfloat/gmp.rkt" - (("ffi-lib libgmp-so") - (format #f "ffi-lib \"~a\"" (find-so "libgmp")))) - (substitute* "share/pkgs/math-lib/math/private/bigfloat/mpfr.rkt" - (("ffi-lib libmpfr-so") - (format #f "ffi-lib \"~a\"" (find-so "libmpfr")))) - (substitute* "share/pkgs/readline-lib/readline/rktrl.rkt" - (("\\(getenv \"PLT_READLINE_LIB\"\\)") - (format #f "\"~a\"" (find-so "libedit")))) - (for-each - (lambda (x) (apply patch-ffi-libs x)) - '(("share/pkgs/draw-lib/racket/draw/unsafe/cairo-lib.rkt" - ("libfontconfig" "libcairo")) - ("share/pkgs/draw-lib/racket/draw/unsafe/glib.rkt" - ("libglib-2.0" "libgmodule-2.0" "libgobject-2.0")) - ("share/pkgs/draw-lib/racket/draw/unsafe/jpeg.rkt" - ("libjpeg")) - ("share/pkgs/draw-lib/racket/draw/unsafe/pango.rkt" - ("libpango-1.0" "libpangocairo-1.0")) - ("share/pkgs/draw-lib/racket/draw/unsafe/png.rkt" - ("libpng")) - ("share/pkgs/db-lib/db/private/odbc/ffi.rkt" - ("libodbc")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/x11.rkt" - ("libX11")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/gsettings.rkt" - ("libgio-2.0")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/gtk3.rkt" - ("libgdk-3" "libgtk-3")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/unique.rkt" - ("libunique-1.0")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/utils.rkt" - ("libgdk-x11-2.0" "libgdk_pixbuf-2.0" "libgtk-x11-2.0")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/gl-context.rkt" - ("libGL")) - ("share/pkgs/sgl/gl.rkt" - ("libGL" "libGLU"))))) - #t)) - (add-after 'unpack 'patch-/bin/sh - (lambda _ - (substitute* "collects/racket/system.rkt" - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'patch-/bin/sh 'patch-chez-configure + (add-after 'unpack 'patch-chez-configure (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "src/cs/c/Makefile.in" (("/bin/sh") (which "sh"))) @@ -526,12 +460,69 @@ implementation techniques and as an expository tool.") (("/bin/cp") (which "cp")) (("/bin/echo") (which "echo"))) (substitute* "makefiles/installsh" - (("/bin/true") (which "true"))))))) + (("/bin/true") (which "true")))) + #t)) + (add-before 'configure 'pre-configure-minimal + (lambda* (#:key inputs #:allow-other-keys) + (chdir "src") + #t)) + (add-after 'build 'patch-config.rktd-lib-search-dirs + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; We do this between the `build` and `install` phases + ;; so that we have racket to read and write the hash table, + ;; but it comes before `raco setup`, when foreign libraries + ;; are needed to build the documentation. + (define out (assoc-ref outputs "out")) + (apply invoke + "./cs/c/racketcs" + "-e" + ,(format #f + "~s" + '(let* ((args + (vector->list + (current-command-line-arguments))) + (file (car args)) + (extra-lib-search-dirs (cdr args))) + (write-to-file + (hash-update + (file->value file) + 'lib-search-dirs + (lambda (dirs) + (append dirs extra-lib-search-dirs)) + null) + #:exists 'truncate/replace + file))) + "--" + "../etc/config.rktd" + (filter-map (lambda (lib) + (cond + ((assoc-ref inputs lib) + => (lambda (pth) + (string-append pth "/lib"))) + (else + #f))) + '("cairo" + "fontconfig" + "glib" + "glu" + "gmp" + "gtk+" + "libjpeg" + "libpng" + "libx11" + "mesa" + "mpfr" + "openssl" + "pango" + "sqlite" + "unixodbc" + "libedit"))) + #t))) ;; XXX: how to run them? #:tests? #f)) (inputs - `(;; Hardcode dynamically loaded libraries for better functionality. - ;; sqlite and libraries for `racket/draw' are needed to build the doc. + `(;; sqlite and libraries for `racket/draw' are needed to build the doc. + ("sh" ,bash-minimal) ("zlib" ,zlib) ("zlib:static" ,zlib "static") ("lz4" ,lz4) @@ -571,29 +562,21 @@ of languages such as Typed Racket, R5RS and R6RS Scheme, and Datalog.") (inherit racket) (name "racket-minimal") (version (package-version racket)) - (source (origin - (method url-fetch) - (uri (list (string-append "https://mirror.racket-lang.org/installers/" - version "/racket-minimal-src.tgz") - ;; this mirror seems to have broken HTTPS: - (string-append - "http://mirror.informatik.uni-tuebingen.de/mirror/racket/" - version "/racket-minimal-src.tgz"))) - (sha256 - (base32 - "0mwyffw4gcci8wmzxa3j28h03h0gsz55aard8qrk3lri8r2xyg21")) - (patches (search-patches - "racket-store-checksum-override.patch")))) + (source + (origin + (inherit (package-source racket)) + (uri (list (string-append "https://mirror.racket-lang.org/installers/" + version "/racket-minimal-src.tgz") + ;; this mirror seems to have broken HTTPS: + (string-append + "http://mirror.informatik.uni-tuebingen.de/mirror/racket/" + version "/racket-minimal-src.tgz"))) + (sha256 "0mwyffw4gcci8wmzxa3j28h03h0gsz55aard8qrk3lri8r2xyg21"))) (synopsis "Racket without bundled packages such as Dr. Racket") - (arguments - (substitute-keyword-arguments (package-arguments racket) - ((#:phases phases) - `(modify-phases ,phases - ;; Delete fix that applies to files not included in the minimal package. - (delete 'pre-configure))))) (inputs `(("openssl" ,openssl) ("sqlite" ,sqlite) + ("sh" ,bash-minimal) ("zlib" ,zlib) ("zlib:static" ,zlib "static") ("lz4" ,lz4) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index b5f1dd141d..79d4d6e1b4 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson <davet@gnu.org> -;;; Copyright © 2015, 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2017, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> @@ -216,6 +216,28 @@ to code blocks.") @url{Devhelp,https://wiki.gnome.org/Apps/Devhelp} documents.") (license license:bsd-2))) +(define-public python-sphinxcontrib-github-alt + (package + (name "python-sphinxcontrib-github-alt") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib_github_alt" version)) + (sha256 + (base32 + "1x9af78vamjjcdrrhiah3wg613jv7gm8yh9vvqfrmf4vam6mimyg")))) + (build-system python-build-system) + (propagated-inputs + `(("python-docutils" ,python-docutils) + ("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/jupyter/sphinxcontrib_github_alt") + (synopsis "Link to GitHub pages from Sphinx docs") + (description + "This package lets you link to GitHub issues, pull requests, commits and +users from Sphinx docs.") + (license license:bsd-2))) + (define-public python-sphinxcontrib-htmlhelp (package (name "python-sphinxcontrib-htmlhelp") diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index eb6cb7b4e3..e800aebda7 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Petter <petter@mykolab.ch> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> @@ -44,7 +44,9 @@ (define-public syncthing (package (name "syncthing") - (version "1.5.0") + (version "1.15.1") + ; XXX After the go-build-system can use "Go modules", stop using bundled + ; dependenices for Syncthing. (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -52,68 +54,12 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "1394b8y4nllihnjngc0kjpdy7pvyh6v1h09hkn8rdmwxpsdkqkjb")) - (modules '((guix build utils))) - ;; Delete bundled ("vendored") free software source code. - (snippet '(begin - (delete-file-recursively "vendor") - #t)))) + "04b90zwinl7frxrpjliq41mkbhpnkszmhdc5j2vbqwyhd82warxq")))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size ;; of "out" by ~80 MiB. (outputs '("out" "utils")) - ;; When updating Syncthing, check 'go.mod' in the source distribution to - ;; ensure we are using the correct versions of these dependencies. - (inputs - `(("go-github-com-jackpal-go-nat-pmp" - ,go-github-com-jackpal-go-nat-pmp) - ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4) - ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr) - ("go-github-com-chmduquesne-rollinghash" - ,go-github-com-chmduquesne-rollinghash) - ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob) - ("go-github-com-golang-groupcache-lru" - ,go-github-com-golang-groupcache-lru) - ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway) - ("go-github-com-kballard-go-shellquote" - ,go-github-com-kballard-go-shellquote) - ("go-github-com-lib-pq" ,go-github-com-lib-pq) - ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd) - ("go-github-com-oschwald-geoip2-golang" - ,go-github-com-oschwald-geoip2-golang) - ("go-github-com-pkg-errors" ,go-github-com-pkg-errors) - ("go-github-com-rcrowley-go-metrics" ,go-github-com-rcrowley-go-metrics) - ("go-github-com-sasha-s-go-deadlock" ,go-github-com-sasha-s-go-deadlock) - ("go-github-com-syncthing-notify" ,go-github-com-syncthing-notify) - ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb) - ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture) - ("go-golang-org-x-time" ,go-golang-org-x-time) - ("go-github-com-go-ldap-ldap" ,go-github-com-go-ldap-ldap) - ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf) - ("go-github-com-shirou-gopsutil" ,go-github-com-shirou-gopsutil) - ("go-github-com-prometheus-client-golang" - ,go-github-com-prometheus-client-golang) - ("go-golang-org-x-net" ,go-golang-org-x-net) - ("go-golang-org-x-text" ,go-golang-org-x-text) - ("go-github-com-audriusbutkevicius-recli" - ,go-github-com-audriusbutkevicius-recli) - ("go-github-com-urfave-cli" ,go-github-com-urfave-cli) - ("go-github-com-vitrun-qart" ,go-github-com-vitrun-qart) - ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty) - ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) - ("go-github-com-flynn-archive-go-shlex" - ,go-github-com-flynn-archive-go-shlex) - ("go-github-com-getsentry-raven-go" ,go-github-com-getsentry-raven-go) - ("go-github-com-maruel-panicparse" ,go-github-com-maruel-panicparse) - ("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun) - ("go-github-com-audriusbutkevicius-pfilter" ,go-github-com-audriusbutkevicius-pfilter) - ("go-github-com-lucas-clemente-quic-go" ,go-github-com-lucas-clemente-quic-go) - ("go-github-com-willf-bloom" ,go-github-com-willf-bloom) - - ;; For tests. - ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff))) - (arguments `(#:modules ((srfi srfi-26) ; for cut (guix build utils) @@ -136,8 +82,8 @@ ;; updater and to build the utilities is to "build all" and then ;; "build syncthing" again with -no-upgrade. ;; https://github.com/syncthing/syncthing/issues/6118 - (invoke "go" "run" "build.go" "build" "all") - (delete-file "syncthing") + (invoke "go" "run" "build.go") + (delete-file "bin/syncthing") (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing")))) (replace 'check @@ -149,10 +95,10 @@ (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (utils (assoc-ref outputs "utils"))) - (with-directory-excursion "src/github.com/syncthing/syncthing" - (install-file "syncthing" (string-append out "/bin")) + (with-directory-excursion "src/github.com/syncthing/syncthing/bin" + (install-file "../syncthing" (string-append out "/bin")) (for-each (cut install-file <> (string-append utils "/bin/")) - '("stcli" "stcompdirs" "stcrashreceiver" + '("stcompdirs" "stcrashreceiver" "stdisco" "stdiscosrv" "stevents" "stfileinfo" "stfinddevice" "stfindignored" "stgenfiles" "stindex" "strelaypoolsrv" "strelaysrv" "stsigtool" diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 709b3dd603..55a95792cb 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -143,7 +143,7 @@ (description "[incr Tcl] is a widely used object-oriented system for Tcl. The name is a play on C++, and [incr Tcl] provides a similar object model, including -multiple inheritence and public and private classes and variables.") +multiple inheritance and public and private classes and variables.") (license license:public-domain))) (define-public expect diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 82d1dc463c..e6bfe6c4f2 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -611,8 +611,8 @@ Telegram instant messenger.") #:include-regexp ("\\.h$"))) args)))))) (synopsis "Parse tl scheme to tlo") - (description "TL-Parser is a tl scheme to tlo file parser. It was formely -a part of telegram-cli, but now being maintained separately.") + (description "TL-Parser is a tl scheme to tlo file parser. It was +formerly a part of telegram-cli, but now being maintained separately.") (home-page "https://github.com/vysheng/tl-parser") (license license:gpl2+)))) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index df84cbd571..317f1a8416 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -7948,3 +7948,88 @@ desired for one font family is not available for another font family, or if it differs from the weight desired for another font family. The @code{mweights} package provides a solution to these difficulties.") (license license:lppl))) + +(define-public texlive-cabin + (package + (inherit (simple-texlive-package + "texlive-cabin" + (list "/doc/fonts/cabin/" + "/fonts/enc/dvips/cabin/" + "/fonts/map/dvips/cabin/" + "/fonts/opentype/impallari/cabin/" + "/fonts/tfm/impallari/cabin/" + "/fonts/type1/impallari/cabin/" + "/fonts/vf/impallari/cabin/" + "/tex/latex/cabin/") + (base32 + "0dfq9gqch80iyvp58spmpmqfc9h61sjvnddm81ba0af1p8ag8sfg") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/cabin") + (synopsis "Humanist Sans Serif font with LaTeX support") + (description "Cabin is a humanist sans with four weights, true +italics and small capitals. According to its designer, Pablo +Impallari, Cabin was inspired by the typefaces of Edward Johnston and +Eric Gill. Cabin incorporates modern proportions, optical adjustments +and some elements of the geometric sans. @code{cabin.sty} supports +use of the font under LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX. It uses +the @code{mweights} package to manage the user's view of all those +font weights. An @code{sfdefault} option is provided to enable Cabin +as the default text font. The @code{fontaxes} package is required for +use with [pdf]LaTeX.") + (license (list license:silofl1.1 ;for Cabin + license:lppl)))) ;for support files + +(define-public texlive-newtx + (package + (inherit (simple-texlive-package + "texlive-newtx" + (list "/doc/fonts/newtx/" + "/fonts/afm/public/newtx/" + "/fonts/enc/dvips/newtx/" + "/fonts/map/dvips/newtx/" + "/fonts/opentype/public/newtx/" + "/fonts/tfm/public/newtx/" + "/fonts/type1/public/newtx/" + "/fonts/vf/public/newtx/" + "/tex/latex/newtx/") + (base32 + "0rqjj33m6xkhrjzjhf24kxdg61az5sqsbcl0m7xqkf4akqybn22d") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/newtx") + (synopsis "Repackaging of the TX fonts with improved metrics") + (description "The @code{newtx} bundle splits +@code{txfonts.sty} (from the TX fonts distribution) into two +independent packages, @code{newtxtext.sty} and @code{newtxmath.sty}, +each with fixes and enhancements. @code{newtxmath}'s metrics have +been re-evaluated to provide a less tight appearance and to provide a +@code{libertine} option that substitutes Libertine italic and Greek +letters for the existing math italic and Greek glyphs, making a +mathematics package that matches Libertine text quite well.") + (license license:lppl1.3))) + +(define-public texlive-xcharter + (package + (inherit (simple-texlive-package + "texlive-xcharter" + (list "/doc/fonts/xcharter/" + "/fonts/afm/public/xcharter/" + "/fonts/enc/dvips/xcharter/" + "/fonts/map/dvips/xcharter/" + "/fonts/opentype/public/xcharter/" + "/fonts/tfm/public/xcharter/" + "/fonts/type1/public/xcharter/" + "/fonts/vf/public/xcharter/" + "/tex/latex/xcharter/") + (base32 + "0krm4h53lw7h9jbmv5nc89fm4x7i8l574aig1l4mw8w3ziknwmi7") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/xcharter") + (synopsis "Extension of the Bitstream Charter fonts") + (description "@code{xcharter} repackages Bitstream Charter with an +extended set of features. The extension provides small caps, oldstyle +figures and superior figures in all four styles, accompanied by LaTeX +font support files. The fonts themselves are provided in both Adobe +Type 1 and OTF formats, with supporting files as necessary.") + (license (list (license:fsf-free + "http://mirrors.ctan.org/fonts/xcharter/README") + license:lppl1.3)))) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 3af1aec94b..66d4f6c484 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -861,14 +861,14 @@ Octave. TeXmacs is completely extensible via Guile.") (define-public scintilla (package (name "scintilla") - (version "4.4.6") + (version "5.0.1") (source (origin (method url-fetch) (uri (let ((v (apply string-append (string-split version #\.)))) (string-append "https://www.scintilla.org/scintilla" v ".tgz"))) (sha256 - (base32 "1p62dq2fgdkvdn2clz1xjdj09acv87rbifl67zhlz7skqip31y9d")))) + (base32 "0w5550fijkhmzvdydd8770qq9dgnbq1sd0a8rn4g6mwyfpcyhbfy")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk") @@ -888,7 +888,8 @@ Octave. TeXmacs is completely extensible via Guile.") (find-files "include/" ".")) #t)))))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("gcc" ,gcc-9) ;Code has C++17 requirements + ("pkg-config" ,pkg-config) ("python" ,python-wrapper))) (inputs `(("gtk+" ,gtk+))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e7fa6e6777..ebddd9522a 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -3024,7 +3024,7 @@ If several repos are related, it helps to see their status together.") (define-public ghq (package (name "ghq") - (version "1.1.5") + (version "1.1.7") (home-page "https://github.com/x-motemen/ghq") (source (origin (method git-fetch) @@ -3034,7 +3034,7 @@ If several repos are related, it helps to see their status together.") (file-name (git-file-name name version)) (sha256 (base32 - "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq")))) + "155sfmhmh4ia3iinm1s8fk7fxyn5dxdryad9xkbg7mr3i3ikqjwh")))) (build-system go-build-system) (arguments '(#:install-source? #f diff --git a/gnu/packages/visidata.scm b/gnu/packages/visidata.scm index 4b18e0f41e..966afea849 100644 --- a/gnu/packages/visidata.scm +++ b/gnu/packages/visidata.scm @@ -31,14 +31,14 @@ (define-public visidata (package (name "visidata") - (version "2.2.1") + (version "2.4") (source (origin (method url-fetch) (uri (pypi-uri "visidata" version)) (sha256 (base32 - "181klx7223q6a600k9iqxrfxpq5w73h1g2ks1cfsnmlv7i6s9v9f")))) + "1g9g4gd3mqi23damxghwj76zxi2ig9vf4jv8dnvl7q7ssb7gz60d")))) (build-system python-build-system) (arguments '(#:phases diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 4eccd2c64f..adb48b1b97 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -293,24 +293,19 @@ and probably others.") (define-public openconnect-sso (package (name "openconnect-sso") - (version "0.6.2") + (version "0.7.2") (source (origin (method url-fetch) (uri (pypi-uri "openconnect-sso" version)) (sha256 (base32 - "1yybmscka3m5yxfkp1m5pqz2m8jlwdq9b0hx2w5l1jj6bzpl9fsf")))) + "0nb40zfpp38mz6389y0qvrr4mmak53swpg7578cldnhnk0g15qni")))) (build-system python-build-system) (arguments `(#:tests? #f ; Tests not included, building from git requires poetry. #:phases (modify-phases %standard-phases - (add-after 'unpack 'adjust-package-version-requirements - (lambda _ - (substitute* "setup.py" - (("(pyxdg>=0.26),<0.27" _ pyxdg) pyxdg)) - #t)) (add-after 'unpack 'patch-openconnect (lambda _ (substitute* "openconnect_sso/app.py" diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 52df3f4fbc..a48eb7ead5 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2021 Cage <cage-dev@twistfold.it> ;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca> +;;; Copyright © 2021 Alexander Krotov <krotov@iitp.ru> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,20 +66,24 @@ #:use-module (gnu packages image) #:use-module (gnu packages libevent) #:use-module (gnu packages libidn) + #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) #:use-module (gnu packages lisp) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages lua) #:use-module (gnu packages man) #:use-module (gnu packages markup) + #:use-module (gnu packages mp3) #:use-module (gnu packages nano) #: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 python) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages sdl) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages webkit) @@ -718,6 +723,39 @@ key-bindings and is fully configurable and extensible in Common Lisp.") (define-public sbcl-next (deprecated-package "sbcl-next" nyxt)) +(define-public lagrange + (package + (name "lagrange") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/" + "download/v" version "/lagrange-" version ".tar.gz")) + (sha256 + (base32 "14yj3l3h6i6ygdhyiwdg2cg6y5imlkql09r7dm5v7xm1ja0sr9lp")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #false)) ;no tests + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libunistring" ,libunistring) + ("mpg123" ,mpg123) + ("openssl" ,openssl) + ("pcre" ,pcre) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (home-page "https://gmi.skyjake.fi/lagrange/") + (synopsis "Graphical Gemini client") + (description + "Lagrange is a desktop GUI client for browsing Geminispace. It offers +modern conveniences familiar from web browsers, such as smooth scrolling, +inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, +history, and page outlines.") + (license license:bsd-2))) + (define-public gmni (let ((commit "d8f0870446c471a42612d6a8e853ad9b723a6d39") (revision "0")) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 653e1bf60e..30808b209a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -22,7 +22,7 @@ ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Petter <petter@mykolab.ch> -;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2017, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2019, 2020 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2018, 2019 Julien Lepiller <julien@lepiller.eu> @@ -397,6 +397,7 @@ the same, being completely separated from the Internet.") "--with-http_v2_module" "--with-pcre-jit" "--with-debug" + "--with-stream" ;; Even when not cross-building, we pass the ;; --crossbuild option to avoid customizing for the ;; kernel version on the build machine. @@ -1330,18 +1331,17 @@ parser written in ANSI C and a small validating JSON generator.") (define-public libwebsockets (package (name "libwebsockets") - (version "1.3") + (version "4.1.6") (source (origin ;; The project does not publish tarballs, so we have to take ;; things from Git. (method git-fetch) (uri (git-reference (url "https://github.com/warmcat/libwebsockets") - (commit (string-append "v" version - "-chrome37-firefox30")))) + (commit (string-append "v" version)))) (sha256 (base32 - "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4")) + "0x56v4hsx92vm1zibfmnqb5g3v23kzciffn3fjlsc3sly2pknhsg")) (file-name (string-append name "-" version)))) (build-system cmake-build-system) @@ -1553,7 +1553,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.8.51") + (version "0.11.9") (source (origin (method git-fetch) @@ -1562,7 +1562,7 @@ used to validate and fix HTML data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1j4qza2chng3az1h1fh9zbhxh99q7bfrqbgppyyq5947svi8fvaz")) + (base32 "0pi5ydvbcfi8dbq2ryw8z4197pf4jrlz8mj1vzkdff22ga9qcmxy")) (modules '((guix build utils))) (snippet '(begin @@ -4684,14 +4684,14 @@ their web site.") (define-public python-feedparser (package (name "python-feedparser") - (version "5.2.1") + (version "6.0.2") (source (origin (method url-fetch) - (uri (pypi-uri "feedparser" version ".tar.bz2")) + (uri (pypi-uri "feedparser" version ".tar.gz")) (sha256 (base32 - "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf")))) + "0x0hm9brh3j71645pydvlkrwxaaca9dnwd7xahwjyjaz882s200v")))) (build-system python-build-system) (arguments '(#:tests? #f)) @@ -4705,11 +4705,32 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") license:freebsd-doc)))) ; documentation (define-public python2-feedparser - (package-with-python2 python-feedparser)) + (package + (name "python2-feedparser") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "feedparser" version ".tar.bz2")) + (sha256 + (base32 + "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf")))) + (build-system python-build-system) + (arguments + `(#:tests? #f + #:python ,python-2)) + (home-page + "https://github.com/kurtmckee/feedparser") + (synopsis "Parse feeds in Python") + (description + "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0, +CDF, Atom 0.3, and Atom 1.0 feeds.") + (license (list license:bsd-2 ; source code + license:freebsd-doc)))) ; documentation (define-public guix-data-service - (let ((commit "410f58cb43f083623885a430700c6818a187cadc") - (revision "26")) + (let ((commit "df2a0a73f1f35ea53ba6c07a6ad4c5347ba12b8f") + (revision "27")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -4721,7 +4742,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (file-name (git-file-name name version)) (sha256 (base32 - "1jvxn3w6gwlvm52raf6zkjwg7bvfvbznsb9ch8ha0fcc6ccx7r60")))) + "1ss1prr98zdjkm97w24rd04lfnnvcw6xs0gwxqgd40briqisaa5g")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) @@ -6829,18 +6850,19 @@ Web Server.") (define-public java-eclipse-jetty-util (package (name "java-eclipse-jetty-util") - (version "9.4.6") + (version "9.4.39") (source (origin (method url-fetch) (uri (string-append "https://github.com/eclipse/jetty.project/" - "archive/jetty-" version ".v20170531.tar.gz")) + "archive/jetty-" version ".v20210325.tar.gz")) (sha256 (base32 - "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1")))) + "0b4hy4zmdmfbqk9bzmxk7v75y2ysqiappkip4z3hb9lxjvjh0b19")))) (build-system ant-build-system) (arguments `(#:jar-name "eclipse-jetty-util.jar" #:source-dir "src/main/java" + #:tests? #f; require junit 5 #:test-exclude (list "**/Abstract*.java" ;; requires network @@ -6859,11 +6881,6 @@ Web Server.") (inputs `(("slf4j" ,java-slf4j-api) ("servlet" ,java-javaee-servletapi))) - (native-inputs - `(("junit" ,java-junit) - ("hamcrest" ,java-hamcrest-all) - ("perf-helper" ,java-eclipse-jetty-perf-helper) - ("test-helper" ,java-eclipse-jetty-test-helper))) (home-page "https://www.eclipse.org/jetty/") (synopsis "Utility classes for Jetty") (description "The Jetty Web Server provides an HTTP server and Servlet @@ -6924,6 +6941,7 @@ or embedded instantiation. This package provides utility classes.") `(#:jar-name "eclipse-jetty-io.jar" #:source-dir "src/main/java" #:jdk ,icedtea-8 + #:tests? #f; require junit 5 #:test-exclude (list "**/Abstract*.java" ;; Abstract class "**/EndPointTest.java") @@ -6965,6 +6983,7 @@ or embedded instantiation. This package provides IO-related utility classes.")) `(#:jar-name "eclipse-jetty-http.jar" #:source-dir "src/main/java" #:jdk ,icedtea-8 + #:tests? #f; require junit 5 #:phases (modify-phases %standard-phases (add-before 'configure 'chdir @@ -7100,9 +7119,6 @@ or embedded instantiation. This package provides the JMX management."))) ("io" ,java-eclipse-jetty-io) ("jmx" ,java-eclipse-jetty-jmx) ("util" ,java-eclipse-jetty-util))) - (native-inputs - `(("test-classes" ,java-eclipse-jetty-http-test-classes) - ,@(package-native-inputs java-eclipse-jetty-util))) (synopsis "Core jetty server artifact") (description "The Jetty Web Server provides an HTTP server and Servlet container capable of serving static and dynamic content either from a standalone @@ -7132,6 +7148,7 @@ artifact."))) `(#:jar-name "eclipse-jetty-security.jar" #:source-dir "src/main/java" #:jdk ,icedtea-8 + #:tests? #f; require junit 5 #:test-exclude (list "**/ConstraintTest.*") ; This test fails #:phases (modify-phases %standard-phases @@ -7145,9 +7162,6 @@ artifact."))) ("http" ,java-eclipse-jetty-http) ("server" ,java-eclipse-jetty-server) ("util" ,java-eclipse-jetty-util))) - (native-inputs - `(("io" ,java-eclipse-jetty-io) - ,@(package-native-inputs java-eclipse-jetty-util))) (synopsis "Jetty security infrastructure") (description "The Jetty Web Server provides an HTTP server and Servlet container capable of serving static and dynamic content either from a standalone @@ -7168,6 +7182,18 @@ infrastructure"))) `(("io" ,java-eclipse-jetty-io-9.2) ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) +(define-public java-eclipse-jetty-util-ajax + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-util-ajax") + (arguments + `(#:jar-name "eclipse-jetty-util-ajax.jar" + #:source-dir "jetty-util-ajax/src/main/java" + #:tests? #f)); require junit 5 + (inputs + `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util) + ("java-javaee-servletapi" ,java-javaee-servletapi))))) + (define-public java-eclipse-jetty-servlet (package (inherit java-eclipse-jetty-util) @@ -7176,6 +7202,7 @@ infrastructure"))) `(#:jar-name "eclipse-jetty-servlet.jar" #:source-dir "src/main/java" #:jdk ,icedtea-8 + #:tests? #f; require junit 5 #:phases (modify-phases %standard-phases (add-before 'configure 'chdir @@ -7185,8 +7212,8 @@ infrastructure"))) (inputs `(("slf4j" ,java-slf4j-api) ("java-javaee-servletapi" ,java-javaee-servletapi) + ("java-eclipse-jetty-util-ajax" ,java-eclipse-jetty-util-ajax) ("http" ,java-eclipse-jetty-http) - ("http-test" ,java-eclipse-jetty-http-test-classes) ("io" ,java-eclipse-jetty-io) ("jmx" ,java-eclipse-jetty-jmx) ("security" ,java-eclipse-jetty-security) @@ -7276,6 +7303,7 @@ container."))) `(#:jar-name "eclipse-jetty-webapp.jar" #:source-dir "src/main/java" #:jdk ,icedtea-8 + #:tests? #f; require junit 5 ;; One test fails #:test-exclude (list "**/WebAppContextTest.java") #:phases @@ -7287,14 +7315,12 @@ container."))) (inputs `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util) ("java-eclipse-jetty-http" ,java-eclipse-jetty-http) + ("java-eclipse-jetty-io" ,java-eclipse-jetty-io) ("java-eclipse-jetty-server" ,java-eclipse-jetty-server) ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet) ("java-eclipse-jetty-security" ,java-eclipse-jetty-security) ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml) - ("java-javaee-servletapi" ,java-javaee-servletapi))) - (native-inputs - `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io) - ,@(package-native-inputs java-eclipse-jetty-util))))) + ("java-javaee-servletapi" ,java-javaee-servletapi))))) (define-public java-eclipse-jetty-webapp-9.2 (package diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 4df1af27cb..f92b8f4d85 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> ;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org> -;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2017, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net> @@ -44,6 +44,7 @@ ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021 qblade <qblade@protonmail.com> +;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2191,7 +2192,7 @@ support, for easier unicode usage."))))) (define-public xclickroot (package (name "xclickroot") - (version "1.2") + (version "1.3") (source (origin (method git-fetch) (uri (git-reference @@ -2200,7 +2201,7 @@ support, for easier unicode usage."))))) (file-name (git-file-name name version)) (sha256 (base32 - "1nd5qz0qz5j7gx2jsbcp234giwaa0xmg42vrcjrcf587q9ivakfl")))) + "0wnsfxvh4v02r2jjyh2n6jfkbj2dna2hlm6anl4b36lwji749k2k")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11))) @@ -2311,16 +2312,16 @@ start-up.") (define-public xnotify (package (name "xnotify") - (version "0.7.3") + (version "0.8.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phillbush/xnotify") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "09s29m8z4x3mc3wja2587ik3f6zg16b40adr3nllnpyy1mqnprq5")))) + "1jxms4md2mwfjgm2pgg3vakpp33800jbn9hnl0j4jyfc9f1ckbsv")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -2451,3 +2452,39 @@ read and write, and compatible with JSON.") "Hikari is a stacking Wayland compositor with additional tiling capabilities. It is heavily inspired by the Calm Window manager(cwm).") (license license:bsd-2))) + +(define-public wlogout + (package + (name "wlogout") + (version "1.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ArtsyMacaw/wlogout") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1swhzkqkzli59c89pvrakfvicd00x7ga860c3x2pbb4y3xziqfvi")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs + `(("gtk-layer-shell" ,gtk-layer-shell) + ("gtk+" ,gtk+))) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "main.c" + (("/usr/share") (string-append out "/share")) + (("/etc") (string-append out "/etc")))) + #t))))) + (home-page "https://github.com/ArtsyMacaw/wlogout") + (synopsis "Logout menu for Wayland") + (description "wlogout is a logout menu for Wayland environments.") + (license license:expat))) diff --git a/gnu/services.scm b/gnu/services.scm index ddd1bac30c..e7da0a026d 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -109,7 +110,11 @@ %boot-service %activation-service - etc-service)) + etc-service) + #:re-export (;; Note: Re-export 'delete' to allow for proper syntax matching + ;; in 'modify-services' forms. See + ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>. + delete)) ;;; Comment: ;;; @@ -279,7 +284,11 @@ singleton service type NAME, of which the returned service is an instance." (service type value))) (define-syntax %modify-service - (syntax-rules (=>) + (syntax-rules (=> delete) + ((_ svc (delete kind) clauses ...) + (if (eq? (service-kind svc) kind) + #f + (%modify-service svc clauses ...))) ((_ service) service) ((_ svc (kind param => exp ...) clauses ...) @@ -309,16 +318,18 @@ TYPE. Consider this example: (mingetty-service-type config => (mingetty-configuration (inherit config) - (motd (plain-file \"motd\" \"Hi there!\"))))) + (motd (plain-file \"motd\" \"Hi there!\")))) + (delete udev-service-type)) It changes the configuration of the GUIX-SERVICE-TYPE instance, and that of -all the MINGETTY-SERVICE-TYPE instances. +all the MINGETTY-SERVICE-TYPE instances, and it deletes instances of the +UDEV-SERVICE-TYPE. -This is a shorthand for (map (lambda (svc) ...) %base-services)." +This is a shorthand for (filter-map (lambda (svc) ...) %base-services)." ((_ services clauses ...) - (map (lambda (service) - (%modify-service service clauses ...)) - services)))) + (filter-map (lambda (service) + (%modify-service service clauses ...)) + services)))) ;;; diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm new file mode 100644 index 0000000000..0b18521e76 --- /dev/null +++ b/gnu/services/ci.scm @@ -0,0 +1,127 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018, 2019, 2020, 2021 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 services ci) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (gnu packages admin) + #:use-module (gnu packages ci) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services shepherd) + #:use-module (gnu services admin) + #:use-module (gnu system shadow) + #:use-module (ice-9 match) + #:export (laminar-configuration + laminar-configuration? + laminar-configuration-home-directory + laminar-configuration-bind-http + laminar-configuration-bind-rpc + laminar-configuration-title + laminar-configuration-keep-rundirs + laminar-configuration-archive-url + laminar-configuration-base-url + + laminar-service-type)) + +;;;; Commentary: +;;; +;;; This module implements a service that to run instances of Laminar, a +;;; continuous integration tool. +;;; +;;;; Code: + +(define-record-type* <laminar-configuration> + laminar-configuration make-laminar-configuration + laminar-configuration? + (laminar laminars-configuration-laminar + (default laminar)) + (home-directory laminar-configuration-home-directory + (default "/var/lib/laminar")) + (bind-http laminar-configuration-bind-http + (default "*:8080")) + (bind-rpc laminar-configuration-bind-rpc + (default "unix-abstract:laminar")) + (title laminar-configuration-title + (default "Laminar")) + (keep-rundirs laminar-keep-rundirs + (default 0)) + (archive-url laminar-archive-url + (default #f)) + (base-url laminar-base-url + (default #f))) + +(define laminar-shepherd-service + (match-lambda + (($ <laminar-configuration> laminar home-directory + bind-http bind-rpc + title keep-rundirs archive-url + base-url) + (list (shepherd-service + (documentation "Run Laminar.") + (provision '(laminar)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append laminar "/sbin/laminard")) + #:environment-variables + `(,(string-append "LAMINAR_HOME=" + #$home-directory) + ,(string-append "LAMINAR_BIND_HTTP=" + #$bind-http) + ,(string-append "LAMINAR_TITLE=" + #$title) + ,(string-append "LAMINAR_KEEP_RUNDIRS=" + #$(number->string + keep-rundirs)) + ,@(if #$archive-url + (list + (string-append "LAMINAR_ARCHIVE_URL=" + #$archive-url)) + '()) + ,@(if #$base-url + (list + (string-append "LAMINAR_BASE_URL=" + #$base-url)) + '())) + #:user "laminar" + #:group "laminar")) + (stop #~(make-kill-destructor))))))) + +(define (laminar-account config) + "Return the user accounts and user groups for CONFIG." + (list (user-group + (name "laminar") + (system? #t)) + (user-account + (name "laminar") + (group "laminar") + (system? #t) + (comment "Laminar privilege separation user") + (home-directory (laminar-configuration-home-directory config)) + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define laminar-service-type + (service-type + (name 'laminar) + (extensions + (list + (service-extension shepherd-root-service-type laminar-shepherd-service) + (service-extension account-service-type laminar-account))) + (default-value (laminar-configuration)) + (description + "Run the Laminar continuous integration service."))) diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm index a841e7a50e..6ef3f3383c 100644 --- a/gnu/services/databases.scm +++ b/gnu/services/databases.scm @@ -115,7 +115,7 @@ host all all ::1/128 md5")) (ident-file postgresql-config-file-ident-file (default %default-postgres-ident)) (socket-directory postgresql-config-file-socket-directory - (default "/var/run/postgresql")) + (default #false)) (extra-config postgresql-config-file-extra-config (default '()))) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 231a9f66c7..761820ad2e 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2021 Christopher Lemmer Webber <cwebber@dustycloud.org> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,8 @@ #:use-module (gnu packages ntp) #:use-module (gnu packages wicd) #:use-module (gnu packages gnome) + #:use-module (gnu packages ipfs) + #:use-module (gnu build linux-container) #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix modules) @@ -197,6 +200,13 @@ yggdrasil-configuration-json-config yggdrasil-configuration-package + ipfs-service-type + ipfs-configuration + ipfs-configuration? + ipfs-configuration-package + ipfs-configuration-gateway + ipfs-configuration-api + keepalived-configuration keepalived-configuration? keepalived-service-type)) @@ -1878,6 +1888,137 @@ See yggdrasil -genconf for config options.") ;;; +;;; IPFS +;;; + +(define-record-type* <ipfs-configuration> + ipfs-configuration + make-ipfs-configuration + ipfs-configuration? + (package ipfs-configuration-package + (default go-ipfs)) + (gateway ipfs-configuration-gateway + (default "/ip4/127.0.0.1/tcp/8082")) + (api ipfs-configuration-api + (default "/ip4/127.0.0.1/tcp/5001"))) + +(define %ipfs-home "/var/lib/ipfs") + +(define %ipfs-accounts + (list (user-account + (name "ipfs") + (group "ipfs") + (system? #t) + (comment "IPFS daemon user") + (home-directory "/var/lib/ipfs") + (shell (file-append shadow "/sbin/nologin"))) + (user-group + (name "ipfs") + (system? #t)))) + +(define (ipfs-binary config) + (file-append (ipfs-configuration-package config) "/bin/ipfs")) + +(define %ipfs-home-mapping + #~(file-system-mapping + (source #$%ipfs-home) + (target #$%ipfs-home) + (writable? #t))) + +(define %ipfs-environment + #~(list #$(string-append "HOME=" %ipfs-home))) + +(define (ipfs-shepherd-service config) + "Return a <shepherd-service> for IPFS with CONFIG." + (define ipfs-daemon-command + #~(list #$(ipfs-binary config) "daemon")) + (list + (with-imported-modules (source-module-closure + '((gnu build shepherd) + (gnu system file-systems))) + (shepherd-service + (provision '(ipfs)) + ;; While IPFS is most useful when the machine is connected + ;; to the network, only loopback is required for starting + ;; the service. + (requirement '(loopback)) + (documentation "Connect to the IPFS network") + (modules '((gnu build shepherd) + (gnu system file-systems))) + (start #~(make-forkexec-constructor/container + #$ipfs-daemon-command + #:namespaces '#$(fold delq %namespaces '(user net)) + #:mappings (list #$%ipfs-home-mapping) + #:log-file "/var/log/ipfs.log" + #:user "ipfs" + #:group "ipfs" + #:environment-variables #$%ipfs-environment)) + (stop #~(make-kill-destructor)))))) + +(define (%ipfs-activation config) + "Return an activation gexp for IPFS with CONFIG" + (define (ipfs-config-command setting value) + #~(#$(ipfs-binary config) "config" #$setting #$value)) + (define (set-config!-gexp setting value) + #~(system* #$@(ipfs-config-command setting value))) + (define settings + `(("Addresses.API" ,(ipfs-configuration-api config)) + ("Addresses.Gateway" ,(ipfs-configuration-gateway config)))) + (define inner-gexp + #~(begin + (umask #o077) + ;; Create $HOME/.ipfs structure + (system* #$(ipfs-binary config) "init") + ;; Apply settings + #$@(map (cute apply set-config!-gexp <>) settings))) + (define inner-script + (program-file "ipfs-activation-inner" inner-gexp)) + ;; Run ipfs init and ipfs config from a container, + ;; in case the IPFS daemon was compromised at some point + ;; and ~/.ipfs is now a symlink to somewhere outside + ;; %ipfs-home. + (define container-gexp + (with-extensions (list shepherd) + (with-imported-modules (source-module-closure + '((gnu build shepherd) + (gnu system file-systems))) + #~(begin + (use-modules (gnu build shepherd) + (gnu system file-systems)) + (let* ((constructor + (make-forkexec-constructor/container + (list #$inner-script) + #:namespaces '#$(fold delq %namespaces '(user)) + #:mappings (list #$%ipfs-home-mapping) + #:user "ipfs" + #:group "ipfs" + #:environment-variables #$%ipfs-environment)) + (pid (constructor))) + (waitpid pid)))))) + ;; The activation may happen from the initrd, which uses + ;; a statically-linked guile, while the guix container + ;; procedures require a working dynamic-link. + (define container-script + (program-file "ipfs-activation-container" container-gexp)) + #~(system* #$container-script)) + +(define ipfs-service-type + (service-type + (name 'ipfs) + (extensions + (list (service-extension account-service-type + (const %ipfs-accounts)) + (service-extension activation-service-type + %ipfs-activation) + (service-extension shepherd-root-service-type + ipfs-shepherd-service))) + (default-value (ipfs-configuration)) + (description + "Run @command{ipfs daemon}, the reference implementation +of the IPFS peer-to-peer storage network."))) + + +;;; ;;; Keepalived ;;; diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index f3df0b979f..8cb5633165 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -163,7 +163,7 @@ protocol.") (define* (git-daemon-service #:key (config (git-daemon-configuration))) "Return a service that runs @command{git daemon}, a simple TCP server to -expose repositories over the Git protocol for annoymous access. +expose repositories over the Git protocol for anonymous access. The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 3d0935b3af..97adfa12fa 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -88,6 +88,13 @@ ;;; ;;; Code: +;; By default, the msize value is 8 KiB, which according to QEMU is +;; insufficient and would degrade performance. The msize value should roughly +;; match the bandwidth of the system's IO (see: +;; https://wiki.qemu.org/Documentation/9psetup#msize). Use 100 MiB as a +;; conservative default. +(define %default-msize-value (* 100 (expt 2 20))) ;100 MiB + (define %linux-vm-file-systems ;; File systems mounted for 'derivation-in-linux-vm'. These are shared with ;; the host over 9p. @@ -103,21 +110,23 @@ (type "9p") (needed-for-boot? #t) (flags '(read-only)) - (options "trans=virtio,cache=loose") + (options (format #f "trans=virtio,cache=loose,msize=~a" + %default-msize-value)) (check? #f)) (file-system (mount-point "/xchg") (device "xchg") (type "9p") (needed-for-boot? #t) - (options "trans=virtio") + (options (format #f "trans=virtio,msize=~a" %default-msize-value)) (check? #f)) (file-system (mount-point "/tmp") (device "tmp") (type "9p") (needed-for-boot? #t) - (options "trans=virtio,cache=loose") + (options (format #f "trans=virtio,cache=loose,msize=~a" + %default-msize-value)) (check? #f)))) (define not-config? @@ -459,6 +468,7 @@ system that is passed to 'populate-root-file-system'." (define* (system-docker-image os #:key (name "guix-docker-image") + (memory-size 256) (register-closures? (has-guix-service-type? os)) shared-network?) "Build a docker image. OS is the desired <operating-system>. NAME is the @@ -552,6 +562,7 @@ the operating system." (expression->derivation-in-linux-vm name build + #:memory-size memory-size #:make-disk-image? #f #:single-file-output? #t #:references-graphs `((,graph ,os))))) @@ -581,7 +592,8 @@ the operating system." (type "9p") (flags (if writable? '() '(read-only))) (options (string-append "trans=virtio" - (if writable? "" ",cache=loose"))) + (if writable? "" ",cache=loose") + ",msize=" (number->string %default-msize-value))) (check? #f) (create-mount-point? #t))))) diff --git a/gnu/tests.scm b/gnu/tests.scm index 3b10a6d5ac..eb636873a2 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,13 +75,24 @@ (default "/dev/virtio-ports/org.gnu.guix.port.0")) (imported-modules marionette-configuration-imported-modules (default '())) + (extensions marionette-configuration-extensions + (default '())) ; list of packages (requirements marionette-configuration-requirements ;list of symbols (default '()))) +;; Hack: avoid indenting code beyond column 80 in marionette-shepherd-service. +(define-syntax-rule (with-imported-modules-and-extensions imported-modules + extensions + gexp) + (with-imported-modules imported-modules + (with-extensions extensions + gexp))) + (define (marionette-shepherd-service config) "Return the Shepherd service for the marionette REPL" (match config - (($ <marionette-configuration> device imported-modules requirement) + (($ <marionette-configuration> device imported-modules extensions + requirement) (list (shepherd-service (provision '(marionette)) @@ -90,7 +102,7 @@ (modules '((ice-9 match) (srfi srfi-9 gnu))) (start - (with-imported-modules imported-modules + (with-imported-modules-and-extensions imported-modules extensions #~(lambda () (define (self-quoting? x) (letrec-syntax ((one-of (syntax-rules () @@ -154,11 +166,13 @@ (define* (marionette-operating-system os #:key (imported-modules '()) + (extensions '()) (requirements '())) "Return a marionetteed variant of OS such that OS can be used as a marionette in a virtual machine--i.e., controlled from the host system. The marionette service in the guest is started after the Shepherd services listed -in REQUIREMENTS." +in REQUIREMENTS. The packages in the list EXTENSIONS are made available from +the backdoor REPL." (operating-system (inherit os) ;; Make sure the guest dies on error. @@ -172,6 +186,7 @@ in REQUIREMENTS." (services (cons (service marionette-service-type (marionette-configuration (requirements requirements) + (extensions extensions) (imported-modules imported-modules))) (operating-system-user-services os))))) @@ -281,4 +296,9 @@ result." "Return the list of system tests." (reverse (fold-system-tests cons '()))) + +;; Local Variables: +;; eval: (put 'with-imported-modules-and-extensions 'scheme-indent-function 2) +;; End: + ;;; tests.scm ends here diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index e5f9b87b1d..9429a10b75 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -555,10 +555,6 @@ functionality tests.") (start-service 'term-tty1)) marionette) (marionette-type "root\n" marionette) - (wait-for-screen-text marionette - (lambda (text) - (string-contains text "root@komputilo")) - #:ocrad ocrad) ;; Start tmux and wait for it to be ready. (marionette-type "tmux new-session 'echo 1 > /ready; bash'\n" diff --git a/gnu/tests/ci.scm b/gnu/tests/ci.scm new file mode 100644 index 0000000000..a8b39fcd01 --- /dev/null +++ b/gnu/tests/ci.scm @@ -0,0 +1,128 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017, 2018, 2019, 2020, 2021 Christopher Baines <mail@cbaines.net> +;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.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 tests ci) + #: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 ci) + #:use-module (gnu services web) + #:use-module (gnu services networking) + #:use-module (guix gexp) + #:use-module (guix store) + #:export (%test-laminar)) + + +(define %laminar-os + ;; Operating system under test. + (simple-operating-system + (service dhcp-client-service-type) + (service laminar-service-type))) + +(define* (run-laminar-test #:optional (http-port 8080)) + "Run tests in %LAMINAR-OS, which has laminar running and listening on +HTTP-PORT." + (define os + (marionette-operating-system + %laminar-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings `((,http-port . 8080))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (ice-9 match) + (gnu build marionette) + (web uri) + (web client) + (web response)) + + (define marionette + ;; Forward the guest's HTTP-PORT, where laminar is listening, to + ;; port 8080 in the host. + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "laminar") + + (test-assert "service running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'laminar)) + marionette)) + + (define* (retry-on-error f #:key times delay) + (let loop ((attempt 1)) + (match (catch + #t + (lambda () + (cons #t + (f))) + (lambda args + (cons #f + args))) + ((#t . return-value) + return-value) + ((#f . error-args) + (if (>= attempt times) + error-args + (begin + (sleep delay) + (loop (+ 1 attempt)))))))) + + (test-equal "http-get" + 200 + (retry-on-error + (lambda () + (let-values (((response text) + (http-get #$(format + #f + "http://localhost:~A/" + http-port) + ;; TODO: Why does decoding fail? + #:decode-body? #f))) + (response-code response))) + #:times 10 + #:delay 5)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "laminar-test" test)) + +(define %test-laminar + (system-test + (name "laminar") + (description "Connect to a running Laminar server.") + (value (run-laminar-test)))) diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm index cbb856b016..92611b0a8d 100644 --- a/gnu/tests/docker.scm +++ b/gnu/tests/docker.scm @@ -303,5 +303,6 @@ docker-image} inside Docker.") (inherit (simple-operating-system)) ;; Use locales for a single libc to ;; reduce space requirements. - (locale-libcs (list glibc)))) + (locale-libcs (list glibc))) + #:memory-size 1024) run-docker-system-test))))) diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm index 219b8b482f..af7d8f0b21 100644 --- a/gnu/tests/guix.scm +++ b/gnu/tests/guix.scm @@ -164,10 +164,7 @@ " local all all trust host all all 127.0.0.1/32 trust -host all all ::1/128 trust")) - ;; XXX: Remove when postgresql default socket directory is - ;; changed to /var/run/postgresql. - (socket-directory #f))))) +host all all ::1/128 trust")))))) (service guix-data-service-type (guix-data-service-configuration (host "0.0.0.0"))) diff --git a/gnu/tests/monitoring.scm b/gnu/tests/monitoring.scm index be69e1c259..8630f5818c 100644 --- a/gnu/tests/monitoring.scm +++ b/gnu/tests/monitoring.scm @@ -309,12 +309,7 @@ zabbix||{} (service dhcp-client-service-type) (service postgresql-service-type (postgresql-configuration - (postgresql postgresql) - ;; XXX: Remove when postgresql default socket directory is - ;; changed to /var/run/postgresql. - (config-file - (postgresql-config-file - (socket-directory #f))))) + (postgresql postgresql))) (service zabbix-front-end-service-type (zabbix-front-end-configuration (db-password "zabbix"))) diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm index 022663aa67..453e63f52d 100644 --- a/gnu/tests/networking.scm +++ b/gnu/tests/networking.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,12 +30,15 @@ #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix monads) + #:use-module (guix modules) #:use-module (gnu packages bash) #:use-module (gnu packages linux) #:use-module (gnu packages networking) + #:use-module (gnu packages guile) #:use-module (gnu services shepherd) #:use-module (ice-9 match) - #:export (%test-inetd %test-openvswitch %test-dhcpd %test-tor %test-iptables)) + #:export (%test-inetd %test-openvswitch %test-dhcpd %test-tor %test-iptables + %test-ipfs)) (define %inetd-os ;; Operating system with 2 inetd services. @@ -563,3 +567,89 @@ COMMIT (name "iptables") (description "Test a running iptables daemon.") (value (run-iptables-test)))) + + +;;; +;;; IPFS service +;;; + +(define %ipfs-os + (simple-operating-system + (service ipfs-service-type))) + +(define (run-ipfs-test) + (define os + (marionette-operating-system %ipfs-os + #:imported-modules (source-module-closure + '((gnu services herd) + (guix ipfs))) + #:extensions (list guile-json-4) + #:requirements '(ipfs))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (rnrs bytevectors) + (srfi srfi-64) + (ice-9 binary-ports)) + + (define marionette + (make-marionette (list #$(virtual-machine os)))) + + (define (ipfs-is-alive?) + (marionette-eval + '(begin + (use-modules (gnu services herd) + (srfi srfi-1)) + (live-service-running + (find (lambda (live) + (memq 'ipfs + (live-service-provision live))) + (current-services)))) + marionette)) + + ;; The default API endpoint port 5001 is used, + ;; so there is no need to parameterize %ipfs-base-url. + (define (add-data data) + (marionette-eval `(content-name (add-data ,data)) marionette)) + (define (read-contents object) + (marionette-eval + `(let* ((input (read-contents ,object)) + (all-input (get-bytevector-all input))) + (close-port input) + all-input) + marionette)) + + (marionette-eval '(use-modules (guix ipfs)) marionette) + (mkdir #$output) + (chdir #$output) + + (test-begin "ipfs") + + ;; Test the IPFS service. + + (test-assert "ipfs is alive" (ipfs-is-alive?)) + + (test-assert "ipfs is listening on the gateway" + (let ((default-port 8082)) + (wait-for-tcp-port default-port marionette))) + + (test-assert "ipfs is listening on the API endpoint" + (let ((default-port 5001)) + (wait-for-tcp-port default-port marionette))) + + (define test-bv (string->utf8 "hello ipfs!")) + (test-equal "can upload and download a file to/from ipfs" + test-bv + (read-contents (add-data test-bv))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + (gexp->derivation "ipfs-test" test)) + +(define %test-ipfs + (system-test + (name "ipfs") + (description "Test a running IPFS daemon configuration.") + (value (run-ipfs-test)))) diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm index 5d04af38fb..9b2b785176 100644 --- a/gnu/tests/nfs.scm +++ b/gnu/tests/nfs.scm @@ -410,5 +410,5 @@ directories can be mounted.") (system-test (name "nfs-root-fs") (description "Test that an NFS server can be started and the exported -directory can be used as root filesystem.") +directory can be used as root file system.") (value (run-nfs-root-fs-test)))) diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index cc0e79c8b2..7f4518acd2 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -569,12 +569,7 @@ HTTP-PORT." (listen '("8080")))))) (service postgresql-service-type (postgresql-configuration - (postgresql postgresql-10) - ;; XXX: Remove when postgresql default socket directory is - ;; changed to /var/run/postgresql. - (config-file - (postgresql-config-file - (socket-directory #f))))) + (postgresql postgresql-10))) (service patchwork-service-type (patchwork-configuration (patchwork patchwork) diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 0e2c1cd2ee..8f55796e86 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -31,6 +31,7 @@ go-build go-build-system + go-pseudo-version? go-version->git-ref)) ;; Commentary: @@ -40,17 +41,19 @@ ;; ;; Code: -(define %go-version-rx +(define %go-pseudo-version-rx + ;; Match only the end of the version string; this is so that matching the + ;; more complex leading semantic version pattern is not required. (make-regexp (string-append - "(v?[0-9]\\.[0-9]\\.[0-9])" ;"v" prefix can be omitted in version prefix - "(-|-pre\\.0\\.|-0\\.)" ;separator - "([0-9]{14})-" ;timestamp - "([0-9A-Fa-f]{12})"))) ;commit hash + "([0-9]{14}-)" ;timestamp + "([0-9A-Fa-f]{12})" ;commit hash + "(\\+incompatible)?$"))) ;optional +incompatible tag (define (go-version->git-ref version) "Parse VERSION, a \"pseudo-version\" as defined at <https://golang.org/ref/mod#pseudo-versions>, and extract the commit hash from -it, defaulting to full VERSION if a pseudo-version pattern is not recognized." +it, defaulting to full VERSION (stripped from the \"+incompatible\" suffix if +present) if a pseudo-version pattern is not recognized." ;; A module version like v1.2.3 is introduced by tagging a revision in the ;; underlying source repository. Untagged revisions can be referred to ;; using a "pseudo-version" like v0.0.0-yyyymmddhhmmss-abcdefabcdef, where @@ -65,11 +68,16 @@ it, defaulting to full VERSION if a pseudo-version pattern is not recognized." (if (string-suffix? "+incompatible" version) (string-drop-right version 13) version)) - (match (regexp-exec %go-version-rx version))) + (match (regexp-exec %go-pseudo-version-rx version))) (if match - (match:substring match 4) + (match:substring match 2) version))) +(define (go-pseudo-version? version) + "True if VERSION is a Go pseudo-version, i.e., a version string made of a +commit hash and its date rather than a proper release tag." + (regexp-exec %go-pseudo-version-rx version)) + (define %go-build-system-modules ;; Build-side modules imported and used by default. `((guix build go-build-system) diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm index a6955ce4c2..b0d6ddafac 100644 --- a/guix/build/qt-build-system.scm +++ b/guix/build/qt-build-system.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch> -;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2019, 2020, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; @@ -48,6 +48,97 @@ (setenv "CTEST_OUTPUT_ON_FAILURE" "1") #t) +(define (variables-for-wrapping base-directories) + + (define (collect-sub-dirs base-directories file-type subdirectory + selectors) + ;; Append SUBDIRECTORY and each of BASE-DIRECTORIES, and return the subset + ;; that exists and has at least one of the SELECTORS sub-directories, + ;; unless SELECTORS is the empty list. FILE-TYPE should by 'directory or + ;; 'regular file. For the later, it allows searching for plain files + ;; rather than directories. + (define exists? (match file-type + ('directory directory-exists?) + ('regular file-exists?))) + + (filter-map (lambda (dir) + (let ((directory (string-append dir subdirectory))) + (and (exists? directory) + (or (null? selectors) + (any (lambda (selector) + (exists? + (string-append directory selector))) + selectors)) + directory))) + base-directories)) + + (filter-map + (match-lambda + ((variable file-type directory selectors ...) + (match (collect-sub-dirs base-directories file-type directory + selectors) + (() + #f) + (directories + `(,variable = ,directories))))) + + ;; These shall match the search-path-specification for Qt and KDE + ;; libraries. + (list '("XDG_DATA_DIRS" directory "/share" + + ;; These are "selectors": consider /share if and only if at least + ;; one of these sub-directories exist. This avoids adding + ;; irrelevant packages to XDG_DATA_DIRS just because they have a + ;; /share sub-directory. + "/glib-2.0/schemas" "/sounds" "/themes" + "/cursors" "/wallpapers" "/icons" "/mime") + '("XDG_CONFIG_DIRS" directory "/etc/xdg") + '("QT_PLUGIN_PATH" directory "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" directory "/lib/qt5/qml") + '("QTWEBENGINEPROCESS_PATH" regular + "/lib/qt5/libexec/QtWebEngineProcess")))) + +(define* (wrap-all-programs #:key inputs outputs + (qt-wrap-excluded-outputs '()) + #:allow-other-keys) + "Implement phase \"qt-wrap\": look for GSettings schemas and +gtk+-v.0 libraries and create wrappers with suitably set environment variables +if found. + +Wrapping is not applied to outputs whose name is listed in +QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not +to contain any Qt binaries, and where wrapping would gratuitously +add a dependency of that output on Qt." + (define (find-files-to-wrap directory) + (append-map + (lambda (dir) + (if (directory-exists? dir) (find-files dir ".*") (list))) + (list (string-append directory "/bin") + (string-append directory "/sbin") + (string-append directory "/libexec") + (string-append directory "/lib/libexec")))) + + (define input-directories + ;; FIXME: Filter out unwanted inputs, e.g. cmake + (match inputs + (((_ . dir) ...) + dir))) + + (define handle-output + (match-lambda + ((output . directory) + (unless (member output qt-wrap-excluded-outputs) + (let ((bin-list (find-files-to-wrap directory)) + (vars-to-wrap (variables-for-wrapping + (append (list directory) + input-directories)))) + (when (not (null? vars-to-wrap)) + (for-each (cut apply wrap-program <> vars-to-wrap) + bin-list))))))) + + (for-each handle-output outputs) + #t) + (define %standard-phases (modify-phases cmake:%standard-phases (add-before 'check 'check-setup check-setup) diff --git a/guix/channels.scm b/guix/channels.scm index b812c1b6e5..c40fc0c507 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -597,9 +597,24 @@ to '%package-module-path'." (string-append #$output "/share/guile/site/" (effective-version))) + (define optimizations-for-level + ;; Guile 3.0 provides this procedure but Guile 2.2 didn't. + ;; Since this code may be executed by either version, we can't + ;; rely on its availability. + (or (and=> (false-if-exception + (resolve-interface '(system base optimize))) + (lambda (iface) + (module-ref iface 'optimizations-for-level))) + (const '()))) + + (define -O1 + ;; Optimize for package module compilation speed. + (optimizations-for-level 1)) + (let* ((subdir #$directory) (source (string-append #$source subdir))) - (compile-files source go (find-files source "\\.scm$")) + (compile-files source go (find-files source "\\.scm$") + #:optimization-options (const -O1)) (mkdir-p (dirname scm)) (symlink (string-append #$source subdir) scm)) diff --git a/guix/git.scm b/guix/git.scm index 1820036f25..776b03f33a 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -209,6 +210,9 @@ corresponding Git object." (let ((oid (reference-target (branch-lookup repository branch BRANCH-REMOTE)))) (object-lookup repository oid))) + (('symref . symref) + (let ((oid (reference-name->oid repository symref))) + (object-lookup repository oid))) (('commit . commit) (let ((len (string-length commit))) ;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we @@ -340,7 +344,7 @@ definitely available in REPOSITORY, false otherwise." (define* (update-cached-checkout url #:key - (ref '(branch . "master")) + (ref '()) recursive? (check-out? #t) starting-commit @@ -356,6 +360,7 @@ provided) as returned by 'commit-relation'. REF is pair whose key is [branch | commit | tag | tag-or-commit ] and value the associated data: [<branch name> | <sha1> | <tag name> | <string>]. +If REF is the empty list, the remote HEAD is used. When RECURSIVE? is true, check out submodules as well, if any. @@ -374,6 +379,7 @@ it unchanged." ;; made little sense since the cache should be transparent to them. So ;; here we append "origin/" if it's missing and otherwise keep it. (match ref + (() '(symref . "refs/remotes/origin/HEAD")) (('branch . branch) `(branch . ,(if (string-prefix? "origin/" branch) branch @@ -433,12 +439,13 @@ it unchanged." (log-port (%make-void-port "w")) (cache-directory (%repository-cache-directory)) - (ref '(branch . "master"))) + (ref '())) "Return two values: the content of the git repository at URL copied into a store directory and the sha1 of the top level commit in this directory. The reference to be checkout, once the repository is fetched, is specified by REF. REF is pair whose key is [branch | commit | tag] and value the associated -data, respectively [<branch name> | <sha1> | <tag name>]. +data, respectively [<branch name> | <sha1> | <tag name>]. If REF is the empty +list, the remote HEAD is used. When RECURSIVE? is true, check out submodules as well, if any. @@ -548,7 +555,7 @@ objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or git-checkout make-git-checkout git-checkout? (url git-checkout-url) - (branch git-checkout-branch (default "master")) + (branch git-checkout-branch (default #f)) (commit git-checkout-commit (default #f)) ;#f | tag | commit (recursive? git-checkout-recursive? (default #f))) @@ -587,9 +594,11 @@ objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or (match checkout (($ <git-checkout> url branch commit recursive?) (latest-repository-commit* url - #:ref (if commit - `(tag-or-commit . ,commit) - `(branch . ,branch)) + #:ref (cond (commit + `(tag-or-commit . ,commit)) + (branch + `(branch . ,branch)) + (else '())) #:recursive? recursive? #:log-port (current-error-port))))) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index ba659c0a60..fece84b341 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -31,7 +31,7 @@ #:use-module (srfi srfi-34) #:use-module (rnrs io ports) #:use-module (system foreign) - #:use-module (guix http-client) + #:use-module ((guix http-client) #:hide (open-socket-for-uri)) #:use-module (guix ftp-client) #:use-module (guix utils) #:use-module (guix memoization) @@ -669,10 +669,10 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." #:host (uri-host uri) #:path (string-append (uri-path uri) extension))) - (define (valid-uri? uri) + (define (valid-uri? uri port) ;; Return true if URI is reachable. (false-if-exception - (case (response-code (http-head uri)) + (case (response-code (http-head uri #:port port #:keep-alive? #t)) ((200 302) #t) (else #f)))) @@ -680,30 +680,39 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." (base (string-append "https://sourceforge.net/projects/" name "/files")) (url (string-append base "/latest/download")) - (response (false-if-exception (http-head url)))) - (and response - (= 302 (response-code response)) - (response-location response) - (match (string-tokenize (uri-path (response-location response)) - (char-set-complement (char-set #\/))) - ((_ components ...) - (let* ((path (string-join components "/")) - (url (string-append "mirror://sourceforge/" path))) - (and (release-file? name (basename path)) - - ;; Take the heavy-handed approach of probing 3 additional - ;; URLs. XXX: Would be nicer if this could be avoided. - (let* ((loc (response-location response)) - (sig (any (lambda (extension) - (let ((uri (uri-append loc extension))) - (and (valid-uri? uri) - (string-append url extension)))) - '(".asc" ".sig" ".sign")))) - (upstream-source - (package name) - (version (tarball->version (basename path))) - (urls (list url)) - (signature-urls (and sig (list sig)))))))))))) + (uri (string->uri url)) + (port (false-if-exception (open-socket-for-uri uri))) + (response (and port + (http-head uri #:port port #:keep-alive? #t)))) + (dynamic-wind + (const #t) + (lambda () + (and response + (= 302 (response-code response)) + (response-location response) + (match (string-tokenize (uri-path (response-location response)) + (char-set-complement (char-set #\/))) + ((_ components ...) + (let* ((path (string-join components "/")) + (url (string-append "mirror://sourceforge/" path))) + (and (release-file? name (basename path)) + + ;; Take the heavy-handed approach of probing 3 additional + ;; URLs. XXX: Would be nicer if this could be avoided. + (let* ((loc (response-location response)) + (sig (any (lambda (extension) + (let ((uri (uri-append loc extension))) + (and (valid-uri? uri port) + (string-append url extension)))) + '(".asc" ".sig" ".sign")))) + (upstream-source + (package name) + (version (tarball->version (basename path))) + (urls (list url)) + (signature-urls (and sig (list sig))))))))))) + (lambda () + (when port + (close-port port)))))) (define (latest-xorg-release package) "Return the latest release of PACKAGE." diff --git a/guix/import/go.scm b/guix/import/go.scm index 6c0231e113..bc53f8f558 100644 --- a/guix/import/go.scm +++ b/guix/import/go.scm @@ -33,7 +33,7 @@ #:use-module (guix http-client) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix memoization) - #:autoload (htmlprag) (html->sxml) ;from Guile-Lib + #:use-module (htmlprag) ;from Guile-Lib #:autoload (guix git) (update-cached-checkout) #:autoload (gcrypt hash) (open-hash-port hash-algorithm sha256) #:autoload (guix serialization) (write-file) @@ -43,20 +43,29 @@ #:use-module (ice-9 rdelim) #:use-module (ice-9 receive) #:use-module (ice-9 regex) + #:use-module (ice-9 textual-ports) #:use-module ((rnrs io ports) #:select (call-with-port)) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-2) #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) - #:use-module (sxml xpath) + #:use-module (srfi srfi-34) + #:use-module (sxml match) + #:use-module ((sxml xpath) #:renamer (lambda (s) + (if (eq? 'filter s) + 'xfilter + s))) #:use-module (web client) #:use-module (web response) #:use-module (web uri) - #:export (go-path-escape - go-module->guix-package + #:export (go-module->guix-package go-module-recursive-import)) +;;; Parameterize htmlprag to parse valid HTML more reliably. +(%strict-tokenizer? #t) + ;;; Commentary: ;;; ;;; (guix import go) attempts to make it easier to create Guix package @@ -84,12 +93,18 @@ ;;; assumption that there will be no collision. ;;; TODO list -;;; - get correct hash in vcs->origin -;;; - print partial result during recursive imports (need to catch -;;; exceptions) +;;; - get correct hash in vcs->origin for Mercurial and Subversion ;;; Code: +(define http-fetch* + ;; Like http-fetch, but memoized and returning the body as a string. + (memoize (lambda args + (call-with-port (apply http-fetch args) get-string-all)))) + +(define json-fetch* + (memoize json-fetch)) + (define (go-path-escape path) "Escape a module path by replacing every uppercase letter with an exclamation mark followed with its lowercase equivalent, as per the module @@ -99,54 +114,87 @@ https://godoc.org/golang.org/x/mod/module#hdr-Escaped_Paths)." (string-append "!" (string-downcase (match:substring occurrence)))) (regexp-substitute/global #f "[A-Z]" path 'pre escape 'post)) -(define (go-module-latest-version goproxy-url module-path) - "Fetch the version number of the latest version for MODULE-PATH from the -given GOPROXY-URL server." - (assoc-ref (json-fetch (format #f "~a/~a/@latest" goproxy-url - (go-path-escape module-path))) - "Version")) +;; Prevent inlining of this procedure, which is accessed by unit tests. +(set! go-path-escape go-path-escape) +(define (go.pkg.dev-info name) + (http-fetch* (string-append "https://pkg.go.dev/" name))) + +(define* (go-module-version-string goproxy name #:key version) + "Fetch the version string of the latest version for NAME from the given +GOPROXY server, or for VERSION when specified." + (let ((file (if version + (string-append "@v/" version ".info") + "@latest"))) + (assoc-ref (json-fetch* (format #f "~a/~a/~a" + goproxy (go-path-escape name) file)) + "Version"))) + +(define* (go-module-available-versions goproxy name) + "Retrieve the available versions for a given module from the module proxy. +Versions are being returned **unordered** and may contain different versioning +styles for the same package." + (let* ((url (string-append goproxy "/" (go-path-escape name) "/@v/list")) + (body (http-fetch* url)) + (versions (remove string-null? (string-split body #\newline)))) + (if (null? versions) + (list (go-module-version-string goproxy name)) ;latest version + versions))) (define (go-package-licenses name) "Retrieve the list of licenses that apply to NAME, a Go package or module -name (e.g. \"github.com/golang/protobuf/proto\"). The data is scraped from -the https://pkg.go.dev/ web site." - (let*-values (((url) (string-append "https://pkg.go.dev/" name - "?tab=licenses")) - ((response body) (http-get url)) - ;; Extract the text contained in a h2 child node of any - ;; element marked with a "License" class attribute. - ((select) (sxpath `(// (* (@ (equal? (class "License")))) - h2 // *text*)))) - (and (eq? (response-code response) 200) - (match (select (html->sxml body)) - (() #f) ;nothing selected - (licenses licenses))))) - -(define (go.pkg.dev-info name) - (http-get (string-append "https://pkg.go.dev/" name))) -(define go.pkg.dev-info* - (memoize go.pkg.dev-info)) +name (e.g. \"github.com/golang/protobuf/proto\")." + (let* ((body (go.pkg.dev-info (string-append name "?tab=licenses"))) + ;; Extract the text contained in a h2 child node of any + ;; element marked with a "License" class attribute. + (select (sxpath `(// (* (@ (equal? (class "License")))) + h2 // *text*)))) + (select (html->sxml body)))) + +(define (sxml->texi sxml-node) + "A very basic SXML to Texinfo converter which attempts to preserve HTML +formatting and links as text." + (sxml-match sxml-node + ((strong ,text) + (format #f "@strong{~a}" text)) + ((a (@ (href ,url)) ,text) + (format #f "@url{~a,~a}" url text)) + ((code ,text) + (format #f "@code{~a}" text)) + (,something-else something-else))) (define (go-package-description name) "Retrieve a short description for NAME, a Go package name, -e.g. \"google.golang.org/protobuf/proto\". The data is scraped from the -https://pkg.go.dev/ web site." - (let*-values (((response body) (go.pkg.dev-info* name)) - ;; Extract the text contained in a h2 child node of any - ;; element marked with a "License" class attribute. - ((select) (sxpath - `(// (section - (@ (equal? (class "Documentation-overview")))) - (p 1))))) - (and (eq? (response-code response) 200) - (match (select (html->sxml body)) - (() #f) ;nothing selected - (((p . strings)) - ;; The paragraph text is returned as a list of strings embedding - ;; newline characters. Join them and strip the newline - ;; characters. - (string-delete #\newline (string-join strings))))))) +e.g. \"google.golang.org/protobuf/proto\"." + (let* ((body (go.pkg.dev-info name)) + (sxml (html->sxml body)) + (overview ((sxpath + `(// + (* (@ (equal? (class "Documentation-overview")))) + (p 1))) sxml)) + ;; Sometimes, the first paragraph just contains images/links that + ;; has only "\n" for text. The following filter is designed to + ;; omit it. + (contains-text? (lambda (node) + (remove string-null? + (map string-trim-both + (filter (node-typeof? '*text*) + (cdr node)))))) + (select-content (sxpath + `(// + (* (@ (equal? (class "UnitReadme-content")))) + div // p ,(xfilter contains-text?)))) + ;; Fall-back to use content; this is less desirable as it is more + ;; verbose, but not every page has an overview. + (description (if (not (null? overview)) + overview + (select-content sxml))) + (description* (and (not (null? description)) + (first description)))) + (match description* + (() #f) ;nothing selected + ((p elements ...) + (apply string-append (filter string? (map sxml->texi elements))))))) (define (go-package-synopsis module-name) "Retrieve a short synopsis for a Go module named MODULE-NAME, @@ -154,17 +202,17 @@ e.g. \"google.golang.org/protobuf\". The data is scraped from the https://pkg.go.dev/ web site." ;; Note: Only the *module* (rather than package) page has the README title ;; used as a synopsis on the https://pkg.go.dev web site. - (let*-values (((response body) (go.pkg.dev-info* module-name)) - ;; Extract the text contained in a h2 child node of any - ;; element marked with a "License" class attribute. - ((select) (sxpath - `(// (div (@ (equal? (class "UnitReadme-content")))) - // h3 *text*)))) - (and (eq? (response-code response) 200) - (match (select (html->sxml body)) - (() #f) ;nothing selected - ((title more ...) ;title is the first string of the list - (string-trim-both title)))))) + (let* ((url (string-append "https://pkg.go.dev/" module-name)) + (body (http-fetch* url)) + ;; Extract the text contained in a h2 child node of any + ;; element marked with a "License" class attribute. + (select-title (sxpath + `(// (div (@ (equal? (class "UnitReadme-content")))) + // h3 *text*)))) + (match (select-title (html->sxml body)) + (() #f) ;nothing selected + ((title more ...) ;title is the first string of the list + (string-trim-both title))))) (define (list->licenses licenses) "Given a list of LICENSES mostly following the SPDX conventions, return the @@ -189,13 +237,13 @@ corresponding Guix license or 'unknown-license!" 'unknown-license!))) licenses)) -(define (fetch-go.mod goproxy-url module-path version) - "Fetches go.mod from the given GOPROXY-URL server for the given MODULE-PATH -and VERSION." - (let ((url (format #f "~a/~a/@v/~a.mod" goproxy-url +(define (fetch-go.mod goproxy module-path version) + "Fetch go.mod from the given GOPROXY server for the given MODULE-PATH +and VERSION and return an input port." + (let ((url (format #f "~a/~a/@v/~a.mod" goproxy (go-path-escape module-path) (go-path-escape version)))) - (http-fetch url))) + (http-fetch* url))) (define %go.mod-require-directive-rx ;; A line in a require directive is composed of a module path and @@ -203,118 +251,119 @@ and VERSION." ;; the end. (make-regexp (string-append - "^[[:blank:]]*" - "([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)" - "([[:blank:]]+//.*)?"))) + "^[[:blank:]]*([^[:blank:]]+)[[:blank:]]+" ;the module path + "([^[:blank:]]+)" ;the version + "([[:blank:]]+//.*)?"))) ;an optional comment (define %go.mod-replace-directive-rx ;; ReplaceSpec = ModulePath [ Version ] "=>" FilePath newline ;; | ModulePath [ Version ] "=>" ModulePath Version newline . (make-regexp (string-append - "([^[:blank:]]+)([[:blank:]]+([^[:blank:]]+))?" - "[[:blank:]]+" "=>" "[[:blank:]]+" - "([^[:blank:]]+)([[:blank:]]+([^[:blank:]]+))?"))) - -(define (parse-go.mod port) - "Parse the go.mod file accessible via the input PORT, returning a list of -requirements." - (define-record-type <results> - (make-results requirements replacements) - results? - (requirements results-requirements) - (replacements results-replacements)) + "([^[:blank:]]+)" ;the module path + "([[:blank:]]+([^[:blank:]]+))?" ;optional version + "[[:blank:]]+=>[[:blank:]]+" + "([^[:blank:]]+)" ;the file or module path + "([[:blank:]]+([^[:blank:]]+))?"))) ;the version (if a module path) + +(define (parse-go.mod content) + "Parse the go.mod file CONTENT, returning a list of requirements." ;; We parse only a subset of https://golang.org/ref/mod#go-mod-file-grammar ;; which we think necessary for our use case. - (define (toplevel results) - "Main parser, RESULTS is a pair of alist serving as accumulator for - all encountered requirements and replacements." - (let ((line (read-line port))) + (define (toplevel requirements replaced) + "This is the main parser. The results are accumulated in THE REQUIREMENTS +and REPLACED lists." + (let ((line (read-line))) (cond ((eof-object? line) ;; parsing ended, give back the result - results) + (values requirements replaced)) ((string=? line "require (") ;; a require block begins, delegate parsing to IN-REQUIRE - (in-require results)) + (in-require requirements replaced)) ((string=? line "replace (") ;; a replace block begins, delegate parsing to IN-REPLACE - (in-replace results)) + (in-replace requirements replaced)) ((string-prefix? "require " line) - ;; a standalone require directive - (let* ((stripped-line (string-drop line 8)) - (new-results (require-directive results stripped-line))) - (toplevel new-results))) + ;; a require directive by itself + (let* ((stripped-line (string-drop line 8))) + (call-with-values + (lambda () + (require-directive requirements replaced stripped-line)) + toplevel))) ((string-prefix? "replace " line) - ;; a standalone replace directive - (let* ((stripped-line (string-drop line 8)) - (new-results (replace-directive results stripped-line))) - (toplevel new-results))) + ;; a replace directive by itself + (let* ((stripped-line (string-drop line 8))) + (call-with-values + (lambda () + (replace-directive requirements replaced stripped-line)) + toplevel))) (#t ;; unrecognised line, ignore silently - (toplevel results))))) + (toplevel requirements replaced))))) - (define (in-require results) - (let ((line (read-line port))) + (define (in-require requirements replaced) + (let ((line (read-line))) (cond ((eof-object? line) ;; this should never happen here but we ignore silently - results) + (values requirements replaced)) ((string=? line ")") ;; end of block, coming back to toplevel - (toplevel results)) + (toplevel requirements replaced)) (#t - (in-require (require-directive results line)))))) + (call-with-values (lambda () + (require-directive requirements replaced line)) + in-require))))) - (define (in-replace results) - (let ((line (read-line port))) + (define (in-replace requirements replaced) + (let ((line (read-line))) (cond ((eof-object? line) ;; this should never happen here but we ignore silently - results) + (values requirements replaced)) ((string=? line ")") ;; end of block, coming back to toplevel - (toplevel results)) + (toplevel requirements replaced)) (#t - (in-replace (replace-directive results line)))))) - - (define (replace-directive results line) - "Extract replaced modules and new requirements from replace directive - in LINE and add to RESULTS." - (match results - (($ <results> requirements replaced) - (let* ((rx-match (regexp-exec %go.mod-replace-directive-rx line)) - (module-path (match:substring rx-match 1)) - (version (match:substring rx-match 3)) - (new-module-path (match:substring rx-match 4)) - (new-version (match:substring rx-match 6)) - (new-replaced (alist-cons module-path version replaced)) - (new-requirements - (if (string-match "^\\.?\\./" new-module-path) - requirements - (alist-cons new-module-path new-version requirements)))) - (make-results new-requirements new-replaced))))) - (define (require-directive results line) - "Extract requirement from LINE and add it to RESULTS." + (call-with-values (lambda () + (replace-directive requirements replaced line)) + in-replace))))) + + (define (replace-directive requirements replaced line) + "Extract replaced modules and new requirements from the replace directive +in LINE and add them to the REQUIREMENTS and REPLACED lists." + (let* ((rx-match (regexp-exec %go.mod-replace-directive-rx line)) + (module-path (match:substring rx-match 1)) + (version (match:substring rx-match 3)) + (new-module-path (match:substring rx-match 4)) + (new-version (match:substring rx-match 6)) + (new-replaced (cons (list module-path version) replaced)) + (new-requirements + (if (string-match "^\\.?\\./" new-module-path) + requirements + (cons (list new-module-path new-version) requirements)))) + (values new-requirements new-replaced))) + + (define (require-directive requirements replaced line) + "Extract requirement from LINE and augment the REQUIREMENTS and REPLACED +lists." (let* ((rx-match (regexp-exec %go.mod-require-directive-rx line)) (module-path (match:substring rx-match 1)) - ;; we saw double-quoted string in the wild without escape - ;; sequences so we just trim the quotes + ;; Double-quoted strings were seen in the wild without escape + ;; sequences; trim the quotes to be on the safe side. (module-path (string-trim-both module-path #\")) (version (match:substring rx-match 2))) - (match results - (($ <results> requirements replaced) - (make-results (alist-cons module-path version requirements) replaced))))) - - (let ((results (toplevel (make-results '() '())))) - (match results - (($ <results> requirements replaced) - ;; At last we remove replaced modules from the requirements list - (fold - (lambda (replacedelem requirements) - (alist-delete! (car replacedelem) requirements)) - requirements - replaced))))) + (values (cons (list module-path version) requirements) replaced))) + + (with-input-from-string content + (lambda () + (receive (requirements replaced) + (toplevel '() '()) + ;; At last remove the replaced modules from the requirements list. + (remove (lambda (r) + (assoc (car r) replaced)) + requirements))))) ;; Prevent inlining of this procedure, which is accessed by unit tests. (set! parse-go.mod parse-go.mod) @@ -325,8 +374,10 @@ requirements." (url-prefix vcs-url-prefix) (root-regex vcs-root-regex) (type vcs-type)) + (define (make-vcs prefix regexp type) - (%make-vcs prefix (make-regexp regexp) type)) + (%make-vcs prefix (make-regexp regexp) type)) + (define known-vcs ;; See the following URL for the official Go equivalent: ;; https://github.com/golang/go/blob/846dce9d05f19a1f53465e62a304dea21b99f910/src/cmd/go/internal/vcs/vcs.go#L1026-L1087 @@ -377,15 +428,27 @@ hence the need to derive this information." (vcs-qualified-module-path->root-repo-url module-path) module-path)) -(define (go-module->guix-package-name module-path) - "Converts a module's path to the canonical Guix format for Go packages." - (string-downcase (string-append "go-" (string-replace-substring - (string-replace-substring - (string-replace-substring - module-path - "." "-") - "/" "-") - "_" "-")))) +(define* (go-module->guix-package-name module-path #:optional version) + "Converts a module's path to the canonical Guix format for Go packages. +Optionally include a VERSION string to append to the name." + ;; Map dot, slash and underscore characters to hyphens. + (let ((module-path* (string-map (lambda (c) + (if (member c '(#\. #\/ #\_)) + #\- + c)) + module-path))) + (string-downcase (string-append "go-" module-path* + (if version + (string-append "-" version) + ""))))) + +(define (strip-.git-suffix/maybe repo-url) + "Strip a repository URL '.git' suffix from REPO-URL if hosted at GitHub." + (match repo-url + ((and (? (cut string-prefix? "https://github.com" <>)) + (? (cut string-suffix? ".git" <>))) + (string-drop-right repo-url 4)) + (_ repo-url))) (define-record-type <module-meta> (make-module-meta import-prefix vcs repo-root) @@ -399,21 +462,22 @@ hence the need to derive this information." because goproxy servers don't currently provide all the information needed to build a package." ;; <meta name="go-import" content="import-prefix vcs repo-root"> - (let* ((port (http-fetch (format #f "https://~a?go-get=1" module-path))) + (let* ((meta-data (http-fetch* (format #f "https://~a?go-get=1" module-path))) (select (sxpath `(// head (meta (@ (equal? (name "go-import")))) // content)))) - (match (select (call-with-port port html->sxml)) - (() #f) ;nothing selected + (match (select (html->sxml meta-data)) + (() #f) ;nothing selected (((content content-text)) (match (string-split content-text #\space) ((root-path vcs repo-url) - (make-module-meta root-path (string->symbol vcs) repo-url))))))) + (make-module-meta root-path (string->symbol vcs) + (strip-.git-suffix/maybe repo-url)))))))) -(define (module-meta-data-repo-url meta-data goproxy-url) +(define (module-meta-data-repo-url meta-data goproxy) "Return the URL where the fetcher which will be used can download the source." (if (member (module-meta-vcs meta-data) '(fossil mod)) - goproxy-url + goproxy (module-meta-repo-root meta-data))) ;; XXX: Copied from (guix scripts hash). @@ -466,6 +530,9 @@ control system is being used." (method git-fetch) (uri (git-reference (url ,vcs-repo-url) + ;; This is done because the version field of the package, + ;; which the generated quoted expression refers to, has been + ;; stripped of any 'v' prefixed. (commit ,(if (and plain-version? v-prefixed?) '(string-append "v" version) '(go-version->git-ref version))))) @@ -503,48 +570,95 @@ control system is being used." vcs-type vcs-repo-url))))) (define* (go-module->guix-package module-path #:key - (goproxy-url "https://proxy.golang.org")) - (let* ((latest-version (go-module-latest-version goproxy-url module-path)) - (port (fetch-go.mod goproxy-url module-path latest-version)) - (dependencies (map car (call-with-port port parse-go.mod))) + (goproxy "https://proxy.golang.org") + version + pin-versions?) + "Return the package S-expression corresponding to MODULE-PATH at VERSION, a Go package. +The meta-data is fetched from the GOPROXY server and https://pkg.go.dev/. +When VERSION is unspecified, the latest version available is used." + (let* ((available-versions (go-module-available-versions goproxy module-path)) + (version* (or version + (go-module-version-string goproxy module-path))) ;latest + ;; Elide the "v" prefix Go uses. + (strip-v-prefix (cut string-trim <> #\v)) + ;; Pseudo-versions do not appear in the versions list; skip the + ;; following check. + (_ (unless (or (go-pseudo-version? version*) + (member version* available-versions)) + (error (format #f "error: version ~s is not available +hint: use one of the following available versions ~a\n" + version* available-versions)))) + (content (fetch-go.mod goproxy module-path version*)) + (dependencies+versions (parse-go.mod content)) + (dependencies (if pin-versions? + dependencies+versions + (map car dependencies+versions))) (guix-name (go-module->guix-package-name module-path)) (root-module-path (module-path->repository-root module-path)) ;; The VCS type and URL are not included in goproxy information. For ;; this we need to fetch it from the official module page. (meta-data (fetch-module-meta-data root-module-path)) (vcs-type (module-meta-vcs meta-data)) - (vcs-repo-url (module-meta-data-repo-url meta-data goproxy-url)) + (vcs-repo-url (module-meta-data-repo-url meta-data goproxy)) (synopsis (go-package-synopsis root-module-path)) (description (go-package-description module-path)) (licenses (go-package-licenses module-path))) (values `(package (name ,guix-name) - ;; Elide the "v" prefix Go uses - (version ,(string-trim latest-version #\v)) + (version ,(strip-v-prefix version*)) (source - ,(vcs->origin vcs-type vcs-repo-url latest-version)) + ,(vcs->origin vcs-type vcs-repo-url version*)) (build-system go-build-system) (arguments '(#:import-path ,root-module-path)) - ,@(maybe-inputs (map go-module->guix-package-name dependencies)) + ,@(maybe-propagated-inputs + (map (match-lambda + ((name version) + (go-module->guix-package-name name (strip-v-prefix version))) + (name + (go-module->guix-package-name name))) + dependencies)) (home-page ,(format #f "https://~a" root-module-path)) (synopsis ,synopsis) - (description ,description) - (license ,(match (and=> licenses list->licenses) - ((license) license) - ((licenses ...) `(list ,@licenses)) - (x x)))) - dependencies))) + (description ,(and=> description beautify-description)) + (license ,(match (list->licenses licenses) + (() #f) ;unknown license + ((license) ;a single license + license) + ((license ...) ;a list of licenses + `(list ,@license))))) + (if pin-versions? + dependencies+versions + dependencies)))) (define go-module->guix-package* (memoize go-module->guix-package)) (define* (go-module-recursive-import package-name - #:key (goproxy-url "https://proxy.golang.org")) + #:key (goproxy "https://proxy.golang.org") + version + pin-versions?) + (recursive-import package-name - #:repo->guix-package (lambda* (name . _) - (go-module->guix-package* - name - #:goproxy-url goproxy-url)) - #:guix-name go-module->guix-package-name)) + #:repo->guix-package + (lambda* (name #:key version repo) + ;; Disable output buffering so that the following warning gets printed + ;; consistently. + (setvbuf (current-error-port) 'none) + (guard (c ((http-get-error? c) + (warning (G_ "Failed to import package ~s. +reason: ~s could not be fetched: HTTP error ~a (~s). +This package and its dependencies won't be imported.~%") + name + (uri->string (http-get-error-uri c)) + (http-get-error-code c) + (http-get-error-reason c)) + (values '() '()))) + (receive (package-sexp dependencies) + (go-module->guix-package* name #:goproxy goproxy + #:version version + #:pin-versions? pin-versions?) + (values package-sexp dependencies)))) + #:guix-name go-module->guix-package-name + #:version version)) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 6b85b3aa1d..d817318a91 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> ;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com> ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +58,7 @@ package-names->package-inputs maybe-inputs maybe-native-inputs + maybe-propagated-inputs package->definition spdx-string->license @@ -247,27 +249,34 @@ use in an 'inputs' field of a package definition." (input (make-input input #f))) names)) -(define* (maybe-inputs package-names #:optional (output #f)) +(define* (maybe-inputs package-names #:optional (output #f) + #:key (type #f)) "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a -package definition." - (match (package-names->package-inputs package-names output) - (() - '()) - ((package-inputs ...) - `((inputs (,'quasiquote ,package-inputs)))))) +package definition. TYPE can be used to specify the type of the inputs; +either the 'native or 'propagated symbols are accepted. Left unspecified, the +snippet generated is for regular inputs." + (let ((field-name (match type + ('native 'native-inputs) + ('propagated 'propagated-inputs) + (_ 'inputs)))) + (match (package-names->package-inputs package-names output) + (() + '()) + ((package-inputs ...) + `((,field-name (,'quasiquote ,package-inputs))))))) (define* (maybe-native-inputs package-names #:optional (output #f)) - "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a -package definition." - (match (package-names->package-inputs package-names output) - (() - '()) - ((package-inputs ...) - `((native-inputs (,'quasiquote ,package-inputs)))))) + "Same as MAYBE-INPUTS, but for native inputs." + (maybe-inputs package-names output #:type 'native)) + +(define* (maybe-propagated-inputs package-names #:optional (output #f)) + "Same as MAYBE-INPUTS, but for propagated inputs." + (maybe-inputs package-names output #:type 'propagated)) (define* (package->definition guix-package #:optional append-version?/string) - "If APPEND-VERSION?/STRING is #t, append the package's major+minor -version. If APPEND-VERSION?/string is a string, append this string." + "If APPEND-VERSION?/STRING is #t, append the package's major+minor version. +If it is the symbol 'full, append the package's complete version. If +APPEND-VERSION?/string is a string, append this string." (match guix-package ((or ('package ('name name) ('version version) . rest) @@ -279,6 +288,8 @@ version. If APPEND-VERSION?/string is a string, append this string." (string-append name "-" append-version?/string)) ((eq? append-version?/string #t) (string-append name "-" (version-major+minor version))) + ((eq? 'full append-version?/string) + (string-append name "-" version)) (else name))) ,guix-package)))) @@ -438,8 +449,8 @@ obtain a node's uniquely identifying \"key\"." "Return a list of package expressions for PACKAGE-NAME and all its dependencies, sorted in topological order. For each package, call (REPO->GUIX-PACKAGE NAME :KEYS version repo), which should return a -package expression and a list of dependencies; call (GUIX-NAME NAME) to -obtain the Guix package name corresponding to the upstream name." +package expression and a list of dependencies; call (GUIX-NAME PACKAGE-NAME) +to obtain the Guix package name corresponding to the upstream name." (define-record-type <node> (make-node name version package dependencies) node? diff --git a/guix/ipfs.scm b/guix/ipfs.scm new file mode 100644 index 0000000000..31a89888a7 --- /dev/null +++ b/guix/ipfs.scm @@ -0,0 +1,183 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 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 ipfs) + #:use-module (json) + #:use-module (guix base64) + #:use-module ((guix build utils) #:select (dump-port)) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) + #:use-module (rnrs io ports) + #:use-module (rnrs bytevectors) + #:use-module (ice-9 match) + #:use-module (ice-9 ftw) + #:use-module (web uri) + #:use-module (web client) + #:use-module (web response) + #:export (%ipfs-base-url + add-data + add-file + + content? + content-name + content-hash + content-size + + add-empty-directory + add-to-directory + read-contents + publish-name)) + +;;; Commentary: +;;; +;;; This module implements bindings for the HTTP interface of the IPFS +;;; gateway, documented here: <https://docs.ipfs.io/reference/api/http/>. It +;;; allows you to add and retrieve files over IPFS, and a few other things. +;;; +;;; Code: + +(define %ipfs-base-url + ;; URL of the IPFS gateway. + (make-parameter "http://localhost:5001")) + +(define* (call url decode #:optional (method http-post) + #:key body (false-if-404? #t) (headers '())) + "Invoke the endpoint at URL using METHOD. Decode the resulting JSON body +using DECODE, a one-argument procedure that takes an input port; when DECODE +is false, return the input port. When FALSE-IF-404? is true, return #f upon +404 responses." + (let*-values (((response port) + (method url #:streaming? #t + #:body body + + ;; Always pass "Connection: close". + #:keep-alive? #f + #:headers `((connection close) + ,@headers)))) + (cond ((= 200 (response-code response)) + (if decode + (let ((result (decode port))) + (close-port port) + result) + port)) + ((and false-if-404? + (= 404 (response-code response))) + (close-port port) + #f) + (else + (close-port port) + (throw 'ipfs-error url response))))) + +;; Result of a file addition. +(define-json-mapping <content> make-content content? + json->content + (name content-name "Name") + (hash content-hash "Hash") + (bytes content-bytes "Bytes") + (size content-size "Size" string->number)) + +;; Result of a 'patch/add-link' operation. +(define-json-mapping <directory> make-directory directory? + json->directory + (hash directory-hash "Hash") + (links directory-links "Links" json->links)) + +;; A "link". +(define-json-mapping <link> make-link link? + json->link + (name link-name "Name") + (hash link-hash "Hash") + (size link-size "Size" string->number)) + +;; A "binding", also known as a "name". +(define-json-mapping <binding> make-binding binding? + json->binding + (name binding-name "Name") + (value binding-value "Value")) + +(define (json->links json) + (match json + (#f '()) + (links (map json->link links)))) + +(define %multipart-boundary + ;; XXX: We might want to find a more reliable boundary. + (string-append (make-string 24 #\-) "2698127afd7425a6")) + +(define (bytevector->form-data bv port) + "Write to PORT a 'multipart/form-data' representation of BV." + (display (string-append "--" %multipart-boundary "\r\n" + "Content-Disposition: form-data\r\n" + "Content-Type: application/octet-stream\r\n\r\n") + port) + (put-bytevector port bv) + (display (string-append "\r\n--" %multipart-boundary "--\r\n") + port)) + +(define* (add-data data #:key (name "file.txt") recursive?) + "Add DATA, a bytevector, to IPFS. Return a content object representing it." + (call (string-append (%ipfs-base-url) + "/api/v0/add?arg=" (uri-encode name) + "&recursive=" + (if recursive? "true" "false")) + json->content + #:headers + `((content-type + . (multipart/form-data + (boundary . ,%multipart-boundary)))) + #:body + (call-with-bytevector-output-port + (lambda (port) + (bytevector->form-data data port))))) + +(define (not-dot? entry) + (not (member entry '("." "..")))) + +(define* (add-file file #:key (name (basename file))) + "Add FILE under NAME to the IPFS and return a content object for it." + (add-data (match (call-with-input-file file get-bytevector-all) + ((? eof-object?) #vu8()) + (bv bv)) + #:name name)) + +(define* (add-empty-directory #:key (name "directory")) + "Return a content object for an empty directory." + (add-data #vu8() #:recursive? #t #:name name)) + +(define* (add-to-directory directory file name) + "Add FILE to DIRECTORY under NAME, and return the resulting directory. +DIRECTORY and FILE must be hashes identifying objects in the IPFS store." + (call (string-append (%ipfs-base-url) + "/api/v0/object/patch/add-link?arg=" + (uri-encode directory) + "&arg=" (uri-encode name) "&arg=" (uri-encode file) + "&create=true") + json->directory)) + +(define* (read-contents object #:key offset length) + "Return an input port to read the content of OBJECT from." + (call (string-append (%ipfs-base-url) + "/api/v0/cat?arg=" object) + #f)) + +(define* (publish-name object) + "Publish OBJECT under the current peer ID." + (call (string-append (%ipfs-base-url) + "/api/v0/name/publish?arg=" object) + json->binding)) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 1d2b45d942..98554ef79b 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -119,7 +119,8 @@ Run IMPORTER with ARGS.\n")) (current-output-port)))))) (match (apply (resolve-importer importer) args) ((and expr (or ('package _ ...) - ('let _ ...))) + ('let _ ...) + ('define-public _ ...))) (print expr)) ((? list? expressions) (for-each (lambda (expr) diff --git a/guix/scripts/import/go.scm b/guix/scripts/import/go.scm index afdba4e8f1..04b07f80cc 100644 --- a/guix/scripts/import/go.scm +++ b/guix/scripts/import/go.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> +;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,34 +22,38 @@ #:use-module (guix utils) #:use-module (guix scripts) #:use-module (guix import go) + #:use-module (guix import utils) #:use-module (guix scripts import) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (ice-9 match) #:use-module (ice-9 format) + #:use-module (ice-9 receive) #:export (guix-import-go)) - + ;;; ;;; Command-line options. ;;; (define %default-options - '()) + '((goproxy . "https://proxy.golang.org"))) (define (show-help) - (display (G_ "Usage: guix import go PACKAGE-PATH -Import and convert the Go module for PACKAGE-PATH.\n")) + (display (G_ "Usage: guix import go PACKAGE-PATH[@VERSION] +Import and convert the Go module for PACKAGE-PATH. Optionally, a version +can be specified after the arobas (@) character.\n")) (display (G_ " -h, --help display this help and exit")) (display (G_ " - -V, --version display version information and exit")) - (display (G_ " - -r, --recursive generate package expressions for all Go modules\ - that are not yet in Guix")) + -r, --recursive generate package expressions for all Go modules +that are not yet in Guix")) (display (G_ " -p, --goproxy=GOPROXY specify which goproxy server to use")) + (display (G_ " + --pin-versions use the exact versions of a module's dependencies")) (newline) (show-bug-report-information)) @@ -58,9 +63,6 @@ Import and convert the Go module for PACKAGE-PATH.\n")) (lambda args (show-help) (exit 0))) - (option '(#\V "version") #f #f - (lambda args - (show-version-and-exit "guix import go"))) (option '(#\r "recursive") #f #f (lambda (opt name arg result) (alist-cons 'recursive #t result))) @@ -69,9 +71,12 @@ Import and convert the Go module for PACKAGE-PATH.\n")) (alist-cons 'goproxy (string->symbol arg) (alist-delete 'goproxy result)))) + (option '("pin-versions") #f #f + (lambda (opt name arg result) + (alist-cons 'pin-versions? #t result))) %standard-import-options)) - + ;;; ;;; Entry point. ;;; @@ -91,27 +96,31 @@ Import and convert the Go module for PACKAGE-PATH.\n")) (('argument . value) value) (_ #f)) - (reverse opts)))) + (reverse opts))) + ;; Append the full version to the package symbol name when using + ;; pinned versions. + (package->definition* (if (assoc-ref opts 'pin-versions?) + (cut package->definition <> 'full) + package->definition))) (match args - ((module-name) - (if (assoc-ref opts 'recursive) - (map (match-lambda - ((and ('package ('name name) . rest) pkg) - `(define-public ,(string->symbol name) - ,pkg)) - (_ #f)) - (go-module-recursive-import module-name - #:goproxy-url - (or (assoc-ref opts 'goproxy) - "https://proxy.golang.org"))) - (let ((sexp (go-module->guix-package module-name - #:goproxy-url - (or (assoc-ref opts 'goproxy) - "https://proxy.golang.org")))) - (unless sexp - (leave (G_ "failed to download meta-data for module '~a'~%") - module-name)) - sexp))) + ((spec) ;e.g., github.com/golang/protobuf@v1.3.1 + (receive (name version) + (package-name->name+version spec) + (let ((arguments (list name + #:goproxy (assoc-ref opts 'goproxy) + #:version version + #:pin-versions? + (assoc-ref opts 'pin-versions?)))) + (if (assoc-ref opts 'recursive) + ;; Recursive import. + (map package->definition* + (apply go-module-recursive-import arguments)) + ;; Single import. + (let ((sexp (apply go-module->guix-package arguments))) + (unless sexp + (leave (G_ "failed to download meta-data for module '~a'~%") + module-name)) + (package->definition* sexp)))))) (() (leave (G_ "too few arguments~%"))) ((many ...) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 79eaabd8fd..48309f9b3a 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -63,7 +63,7 @@ #:use-module (web uri) #:use-module (guix http-client) #:export (%allow-unauthenticated-substitutes? - %error-to-file-descriptor-4? + %reply-file-descriptor substitute-urls guix-substitute)) @@ -279,29 +279,29 @@ Internal tool to substitute a pre-built binary to a local build.\n")) "Evaluate EXP... Return its CPU usage as a fraction between 0 and 1." (call-with-cpu-usage-monitoring (lambda () exp ...))) -(define (display-narinfo-data narinfo) - "Write to the current output port the contents of NARINFO in the format -expected by the daemon." - (format #t "~a\n~a\n~a\n" +(define (display-narinfo-data port narinfo) + "Write to PORT the contents of NARINFO in the format expected by the +daemon." + (format port "~a\n~a\n~a\n" (narinfo-path narinfo) (or (and=> (narinfo-deriver narinfo) (cute string-append (%store-prefix) "/" <>)) "") (length (narinfo-references narinfo))) - (for-each (cute format #t "~a/~a~%" (%store-prefix) <>) + (for-each (cute format port "~a/~a~%" (%store-prefix) <>) (narinfo-references narinfo)) (let-values (((uri compression file-size) (narinfo-best-uri narinfo #:fast-decompression? %prefer-fast-decompression?))) - (format #t "~a\n~a\n" + (format port "~a\n~a\n" (or file-size 0) (or (narinfo-size narinfo) 0)))) -(define* (process-query command +(define* (process-query port command #:key cache-urls acl) - "Reply to COMMAND, a query as written by the daemon to this process's + "Reply on PORT to COMMAND, a query as written by the daemon to this process's standard input. Use ACL as the access-control list against which to check authorized substitutes." (define valid? @@ -338,17 +338,17 @@ authorized substitutes." #:open-connection open-connection-for-uri/cached #:make-progress-reporter make-progress-reporter))) (for-each (lambda (narinfo) - (format #t "~a~%" (narinfo-path narinfo))) + (format port "~a~%" (narinfo-path narinfo))) substitutable) - (newline))) + (newline port))) (("info" paths ..1) ;; Reply info about PATHS if it's in CACHE-URLS. (let ((substitutable (lookup-narinfos/diverse cache-urls paths valid? #:open-connection open-connection-for-uri/cached #:make-progress-reporter make-progress-reporter))) - (for-each display-narinfo-data substitutable) - (newline))) + (for-each (cut display-narinfo-data port <>) substitutable) + (newline port))) (wtf (error "unknown `--query' command" wtf)))) @@ -428,14 +428,14 @@ server certificates." "Bind PORT with EXP... to a socket connected to URI." (call-with-cached-connection uri (lambda (port) exp ...))) -(define* (process-substitution store-item destination +(define* (process-substitution port store-item destination #:key cache-urls acl deduplicate? print-build-trace?) "Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to DESTINATION as a nar file. Verify the substitute against ACL, and verify its hash against what appears in the narinfo. When DEDUPLICATE? is true, and if -DESTINATION is in the store, deduplicate its files. Print a status line on -the current output port." +DESTINATION is in the store, deduplicate its files. Print a status line to +PORT." (define narinfo (lookup-narinfo cache-urls store-item (if (%allow-unauthenticated-substitutes?) @@ -565,10 +565,10 @@ the current output port." (let ((actual (get-hash))) (if (bytevector=? actual expected) ;; Tell the daemon that we're done. - (format (current-output-port) "success ~a ~a~%" + (format port "success ~a ~a~%" (narinfo-hash narinfo) (narinfo-size narinfo)) ;; The actual data has a different hash than that in NARINFO. - (format (current-output-port) "hash-mismatch ~a ~a ~a~%" + (format port "hash-mismatch ~a ~a ~a~%" (hash-algorithm-name algorithm) (bytevector->nix-base32-string expected) (bytevector->nix-base32-string actual))))))) @@ -682,28 +682,10 @@ default value." (unless (string->uri uri) (leave (G_ "~a: invalid URI~%") uri))) -(define %error-to-file-descriptor-4? - ;; Whether to direct 'current-error-port' to file descriptor 4 like - ;; 'guix-daemon' expects. - (make-parameter #t)) - -;; The daemon's agent code opens file descriptor 4 for us and this is where -;; stderr should go. -(define-syntax-rule (with-redirected-error-port exp ...) - "Evaluate EXP... with the current error port redirected to file descriptor 4 -if needed, as expected by the daemon's agent." - (let ((thunk (lambda () exp ...))) - (if (%error-to-file-descriptor-4?) - (parameterize ((current-error-port (fdopen 4 "wl"))) - ;; Redirect diagnostics to file descriptor 4 as well. - (guix-warning-port (current-error-port)) - - ;; 'with-continuation-barrier' captures the initial value of - ;; 'current-error-port' to report backtraces in case of uncaught - ;; exceptions. Without it, backtraces would be printed to FD 2, - ;; thereby confusing the daemon. - (with-continuation-barrier thunk)) - (thunk)))) +(define %reply-file-descriptor + ;; The file descriptor where replies to the daemon must be sent, or #f to + ;; use the current output port instead. + (make-parameter 4)) (define-command (guix-substitute . args) (category internal) @@ -719,68 +701,73 @@ if needed, as expected by the daemon's agent." (define deduplicate? (find-daemon-option "deduplicate")) - (with-redirected-error-port - (mkdir-p %narinfo-cache-directory) - (maybe-remove-expired-cache-entries %narinfo-cache-directory - cached-narinfo-files - #:entry-expiration - cached-narinfo-expiration-time - #:cleanup-period - %narinfo-expired-cache-entry-removal-delay) - (check-acl-initialized) - - ;; 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 so that messages are suitably - ;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default - ;; so don't change it. - (match (or (find-daemon-option "untrusted-locale") - (find-daemon-option "locale")) - (#f #f) - (locale (false-if-exception (setlocale LC_MESSAGES locale)))) - - (catch 'system-error - (lambda () - (set-thread-name "guix substitute")) - (const #t)) ;GNU/Hurd lacks 'prctl' - - (with-networking - (with-error-handling ; for signature errors - (match args - (("--query") - (let ((acl (current-acl))) - (let loop ((command (read-line))) - (or (eof-object? command) - (begin - (process-query command - #:cache-urls (substitute-urls) - #:acl acl) - (loop (read-line))))))) - (("--substitute") - ;; Download STORE-PATH and store it as a Nar in file DESTINATION. - ;; Specify the number of columns of the terminal so the progress - ;; report displays nicely. - (parameterize ((current-terminal-columns (client-terminal-columns))) - (let loop () - (match (read-line) - ((? eof-object?) - #t) - ((= string-tokenize ("substitute" store-path destination)) - (process-substitution store-path destination - #:cache-urls (substitute-urls) - #:acl (current-acl) - #:deduplicate? deduplicate? - #:print-build-trace? - print-build-trace?) - (loop)))))) - ((or ("-V") ("--version")) - (show-version-and-exit "guix substitute")) - (("--help") - (show-help)) - (opts - (leave (G_ "~a: unrecognized options~%") opts))))))) + (define reply-port + ;; Port used to reply to the daemon. + (if (%reply-file-descriptor) + (fdopen (%reply-file-descriptor) "wl") + (current-output-port))) + + (mkdir-p %narinfo-cache-directory) + (maybe-remove-expired-cache-entries %narinfo-cache-directory + cached-narinfo-files + #:entry-expiration + cached-narinfo-expiration-time + #:cleanup-period + %narinfo-expired-cache-entry-removal-delay) + (check-acl-initialized) + + ;; 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 so that messages are suitably + ;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default + ;; so don't change it. + (match (or (find-daemon-option "untrusted-locale") + (find-daemon-option "locale")) + (#f #f) + (locale (false-if-exception (setlocale LC_MESSAGES locale)))) + + (catch 'system-error + (lambda () + (set-thread-name "guix substitute")) + (const #t)) ;GNU/Hurd lacks 'prctl' + + (with-networking + (with-error-handling ; for signature errors + (match args + (("--query") + (let ((acl (current-acl))) + (let loop ((command (read-line))) + (or (eof-object? command) + (begin + (process-query reply-port command + #:cache-urls (substitute-urls) + #:acl acl) + (loop (read-line))))))) + (("--substitute") + ;; Download STORE-PATH and store it as a Nar in file DESTINATION. + ;; Specify the number of columns of the terminal so the progress + ;; report displays nicely. + (parameterize ((current-terminal-columns (client-terminal-columns))) + (let loop () + (match (read-line) + ((? eof-object?) + #t) + ((= string-tokenize ("substitute" store-path destination)) + (process-substitution reply-port store-path destination + #:cache-urls (substitute-urls) + #:acl (current-acl) + #:deduplicate? deduplicate? + #:print-build-trace? + print-build-trace?) + (loop)))))) + ((or ("-V") ("--version")) + (show-version-and-exit "guix substitute")) + (("--help") + (show-help)) + (opts + (leave (G_ "~a: unrecognized options~%") opts)))))) ;;; Local Variables: ;;; eval: (put 'with-timeout 'scheme-indent-function 1) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index c226f08371..0a051ee4e3 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -1145,7 +1145,7 @@ Some ACTIONS support additional ARGS.\n")) "Return the verbosity level based on OPTS, the alist of parsed options." (or (assoc-ref opts 'verbosity) (if (eq? (assoc-ref opts 'action) 'build) - 2 1))) + 3 1))) ;;; diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 4f486f0822..5697ae5a43 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -3158,13 +3158,13 @@ void SubstitutionGoal::finished() void SubstitutionGoal::handleChildOutput(int fd, const string & data) { if (verbosity >= settings.buildVerbosity - && fd == substituter->builderOut.readSide) { + && fd == substituter->fromAgent.readSide) { writeToStderr(data); /* Don't write substitution output to a log file for now. We probably should, though. */ } - if (fd == substituter->fromAgent.readSide) { + if (fd == substituter->builderOut.readSide) { /* DATA may consist of several lines. Process them one by one. */ string input = data; while (!input.empty()) { diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc index c304e2ddd1..675d1ba66f 100644 --- a/nix/libstore/local-store.cc +++ b/nix/libstore/local-store.cc @@ -780,8 +780,8 @@ Path LocalStore::queryPathFromHashPart(const string & hashPart) }); } -/* Read a line from the substituter's stdout, while also processing - its stderr. */ +/* Read a line from the substituter's reply file descriptor, while also + processing its stderr. */ string LocalStore::getLineFromSubstituter(Agent & run) { string res, err; @@ -802,9 +802,9 @@ string LocalStore::getLineFromSubstituter(Agent & run) } /* Completely drain stderr before dealing with stdout. */ - if (FD_ISSET(run.builderOut.readSide, &fds)) { + if (FD_ISSET(run.fromAgent.readSide, &fds)) { char buf[4096]; - ssize_t n = read(run.builderOut.readSide, (unsigned char *) buf, sizeof(buf)); + ssize_t n = read(run.fromAgent.readSide, (unsigned char *) buf, sizeof(buf)); if (n == -1) { if (errno == EINTR) continue; throw SysError("reading from substituter's stderr"); @@ -822,9 +822,9 @@ string LocalStore::getLineFromSubstituter(Agent & run) } /* Read from stdout until we get a newline or the buffer is empty. */ - else if (FD_ISSET(run.fromAgent.readSide, &fds)) { + else if (FD_ISSET(run.builderOut.readSide, &fds)) { unsigned char c; - readFull(run.fromAgent.readSide, (unsigned char *) &c, 1); + readFull(run.builderOut.readSide, (unsigned char *) &c, 1); if (c == '\n') { if (!err.empty()) printMsg(lvlError, "substitute: " + err); return res; diff --git a/po/guix/LINGUAS b/po/guix/LINGUAS index 935d03a4b9..72388a07ec 100644 --- a/po/guix/LINGUAS +++ b/po/guix/LINGUAS @@ -11,6 +11,7 @@ fr hu pl pt_BR +sk sr sv ta diff --git a/po/guix/sk.po b/po/guix/sk.po new file mode 100644 index 0000000000..06e5d30c21 --- /dev/null +++ b/po/guix/sk.po @@ -0,0 +1,7845 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR the authors of Guix (msgids) +# This file is distributed under the same license as the GNU guix package. +# Marek Felšöci <marek@felsoci.sk>, 2021. +msgid "" +msgstr "" +"Project-Id-Version: GNU guix\n" +"Report-Msgid-Bugs-To: bug-guix@gnu.org\n" +"POT-Creation-Date: 2021-04-13 01:18+0200\n" +"PO-Revision-Date: 2021-04-12 23:02+0000\n" +"Last-Translator: Marek Felšöci <marek@felsoci.sk>\n" +"Language-Team: Slovak <https://translate.fedoraproject.org/projects/guix/" +"guix/sk/>\n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Weblate 4.5.3\n" + +#: gnu.scm:81 +#, scheme-format +msgid "module ~a not found" +msgstr "modul ~a sa nenašiel" + +#: gnu.scm:99 +msgid "" +"You may use @command{guix package --show=foo | grep location} to search\n" +"for the location of package @code{foo}.\n" +"If you get the line @code{location: gnu/packages/bar.scm:174:2},\n" +"add @code{bar} to the @code{use-package-modules} form." +msgstr "" +"Pomocou príkazu @command{guix package --show=foo | grep location} môžete\n" +"vyhľadať umiestnenie balíka @code{foo}.\n" +"Výsledok @code{location: gnu/packages/bar.scm:174:2} znamená, že\n" +"treba pridať @code{bar} do @code{use-package-modules}." + +#: gnu.scm:107 +#, scheme-format +msgid "Try adding @code{(use-package-modules ~a)}." +msgstr "Skúste pridať @code{(use-package-modules ~a)}." + +#: gnu.scm:122 +#, scheme-format +msgid "" +"You may use @command{guix system search ~a} to search for a service\n" +"matching @code{~a}.\n" +"If you get the line @code{location: gnu/services/foo.scm:188:2},\n" +"add @code{foo} to the @code{use-service-modules} form." +msgstr "" +"Pomocou príkazu @command{guix system search ~a} môžete\n" +"vyhľadať službu @code{~a}.\n" +"Výsledok @code{location: gnu/services/foo.scm:188:2} znamená, že\n" +"treba pridať @code{foo} do @code{use-service-modules}." + +#: gnu.scm:131 +#, scheme-format +msgid "Try adding @code{(use-service-modules ~a)}." +msgstr "Skúste pridať @code{(use-service-modules ~a)}." + +#: gnu/packages.scm:96 +#, scheme-format +msgid "~a: patch not found" +msgstr "~a: záplata sa nenašla" + +#: gnu/packages.scm:480 gnu/packages.scm:521 +#, scheme-format +msgid "ambiguous package specification `~a'~%" +msgstr "nejednoznačné určenie balíka „~a“~%" + +#: gnu/packages.scm:481 gnu/packages.scm:522 +#, scheme-format +msgid "choosing ~a@~a from ~a~%" +msgstr "vyberá sa ~a@~a z ~a~%" + +#: gnu/packages.scm:486 guix/scripts/package.scm:214 +#, scheme-format +msgid "package '~a' has been superseded by '~a'~%" +msgstr "balík „~a“ bol nahradený balíkom „~a“~%" + +#: gnu/packages.scm:493 gnu/packages.scm:510 +#, scheme-format +msgid "~A: package not found for version ~a~%" +msgstr "~A: balík sa nenašiel vo verzii ~a~%" + +#: gnu/packages.scm:494 gnu/packages.scm:511 +#, scheme-format +msgid "~A: unknown package~%" +msgstr "~A: neznámy balík~%" + +#: gnu/packages.scm:550 +#, scheme-format +msgid "package `~a' lacks output `~a'~%" +msgstr "balík „~a“ postráda výstup „~a“~%" + +#: gnu/services.scm:254 +#, scheme-format +msgid "~a: no value specified for service of type '~a'" +msgstr "~a: nebola určená žiadna hodnota pre službu typu „~a“" + +#: gnu/services.scm:358 +msgid "" +"Build the operating system top-level directory, which in\n" +"turn refers to everything the operating system needs: its kernel, initrd,\n" +"system profile, boot script, and so on." +msgstr "" +"Zostaviť koreňový priečinok operačného systému, ktorý\n" +"odkazuje na všetko čo operačný systém potrebuje: jadro, initrd,\n" +"systémový profil, zavádzací skript a podobne." + +#: gnu/services.scm:388 +msgid "" +"Produce the operating system's boot script, which is spawned\n" +"by the initrd once the root file system is mounted." +msgstr "" +"Vytvoriť zavádzací skript operačného systému, ktorý initrd\n" +"spustí po pripojení koreňového súborového systému." + +#: gnu/services.scm:504 +msgid "" +"Store provenance information about the system in the system\n" +"itself: the channels used when building the system, and its configuration\n" +"file, when available." +msgstr "" +"Uložiť údaje o pôvode systému v systéme\n" +"samotnom: kanály použité pri zostavení systému a súbor nastavení,\n" +"ak je dostupný." + +#: gnu/services.scm:587 +msgid "" +"Delete files from @file{/tmp}, @file{/var/run}, and other\n" +"temporary locations at boot time." +msgstr "" +"Odstrániť súbory z @file{/tmp}, @file{/var/run} a iných\n" +"dočasných umiestnení pri zavedení systému." + +#: gnu/services.scm:649 +msgid "" +"Run @dfn{activation} code at boot time and upon\n" +"@command{guix system reconfigure} completion." +msgstr "" +"Vykonať @dfn{spúšťací} kód pri zavádzaní a po\n" +"dokončení @command{guix system reconfigure}." + +#: gnu/services.scm:737 +msgid "" +"Add special files to the root file system---e.g.,\n" +"@file{/usr/bin/env}." +msgstr "" +"Pridať osobitné súbory do koreňového súborového\n" +"systému (napr. @file{/usr/bin/env})." + +#: gnu/services.scm:760 +#, scheme-format +msgid "duplicate '~a' entry for /etc" +msgstr "/etc už obsahuje záznam „~a“" + +#: gnu/services.scm:788 +msgid "Populate the @file{/etc} directory." +msgstr "Naplniť priečinok @file{/etc}." + +#: gnu/services.scm:805 +msgid "" +"Populate @file{/run/setuid-programs} with the specified\n" +"executables, making them setuid-root." +msgstr "" +"Naplniť @file{/run/setuid-programs} určenými spustiteľnými\n" +"súbormi a prideliť im setuid-root príznak." + +#: gnu/services.scm:831 +msgid "" +"This is the @dfn{system profile}, available as\n" +"@file{/run/current-system/profile}. It contains packages that the sysadmin\n" +"wants to be globally available to all the system users." +msgstr "" +"Toto je @dfn{systémový profil} dostupný prostredníctvom\n" +"@file{/run/current-system/profile}. Obsahuje balíky, ktoré chce správca\n" +"sprístupniť pre všetkých používateľov systému." + +#: gnu/services.scm:851 +msgid "" +"Make ``firmware'' files loadable by the operating system\n" +"kernel. Firmware may then be uploaded to some of the machine's devices, " +"such\n" +"as Wifi cards." +msgstr "" +"Označiť súbory „firmware“ ako spustiteľné jadrom operačného systému.\n" +"Mikroprogramové vybavenie môže byť následne nahraté do zariadení, ako sú\n" +"napríklad bezdrôtové sieťové karty." + +#: gnu/services.scm:882 +msgid "" +"Register garbage-collector roots---i.e., store items that\n" +"will not be reclaimed by the garbage collector." +msgstr "" +"Zaznamenať korene zberača odpadkov, teda položky\n" +"úložiska, ktoré sa majú pri čistení zachovať." + +#: gnu/services.scm:908 +#, scheme-format +msgid "no target of type '~a' for service '~a'" +msgstr "nenašiel sa cieľ typu „~a“ pre službu „~a“" + +#: gnu/services.scm:934 gnu/services.scm:1053 +#, scheme-format +msgid "more than one target service of type '~a'" +msgstr "viac ako jedna cieľová služba typu „~a“" + +#: gnu/services.scm:1043 +#, scheme-format +msgid "service of type '~a' not found" +msgstr "nenašla sa služba typu „~a“" + +#: gnu/system.scm:351 +#, scheme-format +msgid "unrecognized uuid ~a at '~a'~%" +msgstr "nerozpoznané uuid ~a na „~a“~%" + +#: gnu/system.scm:433 +#, scheme-format +msgid "unrecognized crypto-devices ~S at '~a'~%" +msgstr "nerozpoznané šifrované zariadenia ~S na „~a“~%" + +#: gnu/system.scm:450 +#, scheme-format +msgid "unrecognized boot parameters at '~a'~%" +msgstr "nerozpoznané predvoľby zavádzania na „~a“~%" + +#: gnu/system.scm:563 +#, scheme-format +msgid "mapped-device '~a' may not be mounted by the bootloader.~%" +msgstr "zavádzač možno nepripojil mapované zariadenie „~a“.~%" + +#: gnu/system.scm:1023 +#, scheme-format +msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" +"použitie reťazca znakov pre súbor „~a“ sa už neodporúča; namiesto toho " +"použite „plain-file“~%" + +#: gnu/system.scm:1039 +#, scheme-format +msgid "" +"using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" +"použitie monády pre „~a“ sa už neodporúča; namiesto toho použite „plain-" +"file“~%" + +#: gnu/system.scm:1167 +msgid "missing root file system" +msgstr "chýba koreňový súborový systém" + +#: gnu/system.scm:1243 +#, scheme-format +msgid "~a: invalid locale name" +msgstr "~a: neplatný názov miestneho jazykového nastavenia" + +#: gnu/services/shepherd.scm:143 +msgid "" +"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n" +"process. The Shepherd takes care of managing services such as daemons by\n" +"ensuring they are started and stopped in the right order." +msgstr "" +"Spustiť GNU Shepherd ako PID 1, teda ako prvý proces operačného\n" +"systému. Shepherd spravuje služby (napr. démonov) tak, že zaisťuje aby sa\n" +"spúšťali a ukončovali v správnom poradí." + +#: gnu/services/shepherd.scm:235 +#, scheme-format +msgid "service '~a' provided more than once" +msgstr "služba „~a“ bola poskytnutá viac ako raz" + +#: gnu/services/shepherd.scm:250 +#, scheme-format +msgid "service '~a' requires '~a', which is not provided by any service" +msgstr "služba „~a“ vyžaduje „~a“, čo však neposkytuje žiadna služba" + +#: gnu/services/shepherd.scm:587 +msgid "" +"The @code{user-processes} service is responsible for\n" +"terminating all the processes so that the root file system can be re-" +"mounted\n" +"read-only, just before rebooting/halting. Processes still running after a " +"few\n" +"seconds after @code{SIGTERM} has been sent are terminated with\n" +"@code{SIGKILL}." +msgstr "" +"Služba @code{user-processes} je zodpovedná za ukončenie všetkých\n" +"procesov, aby mohol byť koreňový súborový systém tesne pred reštartom\n" +"alebo vypnutím opätovne pripojený len na čítanie. Procesy, ktoré zostanú\n" +"bežať aj niekoľko sekúnd po odoslaní signálu @code{SIGTERM} sa\n" +"ukončia signálom @code{SIGKILL}." + +#: gnu/system/mapped-devices.scm:134 +msgid "Map a device node using Linux's device mapper." +msgstr "Mapovať zariadenie pomocou mapovača zariadení Linuxu." + +#: gnu/system/mapped-devices.scm:163 +#, scheme-format +msgid "you may need these modules in the initrd for ~a:~{ ~a~}" +msgstr "mohli by ste tieto moduly potrebovať v initrd kvôli ~a:~{ ~a~}" + +#: gnu/system/mapped-devices.scm:168 +#, scheme-format +msgid "" +"Try adding them to the\n" +"@code{initrd-modules} field of your @code{operating-system} declaration, " +"along\n" +"these lines:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" +"\n" +"If you think this diagnostic is inaccurate, use the @option{--skip-checks}\n" +"option of @command{guix system}.\n" +msgstr "" +"Skúste ich pridať do poľa @code{initrd-modules} pod\n" +"@code{operating-system} asi takto:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" +"\n" +"Ak považujete toto hlásenie za neopodstatnené, použite prepínač\n" +"@option{--skip-checks} príkazu @command{guix system}.\n" + +#: gnu/system/mapped-devices.scm:251 +#, scheme-format +msgid "no LUKS partition with UUID '~a'" +msgstr "žiadny oddiel LUKS s UUID „~a“" + +#: gnu/system/shadow.scm:254 +#, scheme-format +msgid "the following accounts appear more than once:~{ ~a~}~%" +msgstr "nasledovné účty sa objavujú viac než raz:~{ ~a~}~%" + +#: gnu/system/shadow.scm:262 +#, scheme-format +msgid "the following groups appear more than once:~{ ~a~}~%" +msgstr "nasledovné skupiny sa objavujú viac než raz:~{ ~a~}~%" + +#: gnu/system/shadow.scm:273 +#, scheme-format +msgid "supplementary group '~a' of user '~a' is undeclared" +msgstr "doplnková skupina „~a“ používateľa „~a“ sa nenašla" + +#: gnu/system/shadow.scm:283 +#, scheme-format +msgid "primary group '~a' of user '~a' is undeclared" +msgstr "hlavná skupina „~a“ používateľa „~a“ sa nenašla" + +#: gnu/system/shadow.scm:425 +msgid "" +"Ensure the specified user accounts and groups exist, as well\n" +"as each account home directory." +msgstr "" +"Uistiť sa, že vybrané skupiny a používateľské účty ako aj\n" +"príslušné domovské priečinky boli vytvorené." + +#: guix/import/opam.scm:166 +#, scheme-format +msgid "Package not found in opam repository: ~a~%" +msgstr "Balík sa nenašiel v opam repozitári: ~a~%" + +#: guix/import/opam.scm:388 +msgid "Updater for OPAM packages" +msgstr "Nástroj na aktualizáciu balíkov OPAM" + +#: gnu/installer.scm:214 +msgid "Locale" +msgstr "Miestne jazykové nastavenie" + +#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58 +msgid "Timezone" +msgstr "Časové pásmo" + +#: gnu/installer.scm:247 +msgid "Keyboard mapping selection" +msgstr "Výber rozloženia klávesnice" + +#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26 +msgid "Hostname" +msgstr "Názov počítača" + +#: gnu/installer.scm:265 +msgid "Network selection" +msgstr "Výber sieťového pripojenia" + +#: gnu/installer.scm:272 +msgid "Substitute server discovery" +msgstr "Zisťovanie servera náhrad" + +#: gnu/installer.scm:279 gnu/installer/newt/user.scm:68 +#: gnu/installer/newt/user.scm:205 +msgid "User creation" +msgstr "Vytváranie používateľov" + +#: gnu/installer.scm:287 +msgid "Services" +msgstr "Služby" + +#: gnu/installer.scm:298 +msgid "Partitioning" +msgstr "Rozdelenie disku" + +#: gnu/installer.scm:305 gnu/installer/newt/final.scm:53 +msgid "Configuration file" +msgstr "Súbor nastavení" + +#: gnu/installer/connman.scm:196 +msgid "Could not determine the state of connman." +msgstr "Nepodarilo sa zistiť stav connmana." + +#: gnu/installer/connman.scm:322 +msgid "Unable to find expected regexp." +msgstr "Nepodarilo sa nájsť očakávaný regulárny výraz." + +#: gnu/installer/newt.scm:52 +msgid "Press <F1> for installation parameters." +msgstr "Stlačením <F1> zobrazíte predvoľby inštalácie." + +#: gnu/installer/newt.scm:65 +#, scheme-format +msgid "" +"The installer has encountered an unexpected problem. The backtrace is " +"displayed below. Please report it by email to <~a>." +msgstr "" +"Sprievodca inštaláciou narazil na neočakávanú chybu. Výpis zásobníka volaní " +"je zobrazený nižšie. Prosím, nahláste túto chybu na adresu <~a>." + +#: gnu/installer/newt.scm:68 +msgid "Unexpected problem" +msgstr "Neočakávaná chyba" + +#: gnu/installer/newt/ethernet.scm:66 +msgid "No ethernet service available, please try again." +msgstr "Nie je dostupná žiadna drôtová sieť, skúste to znova." + +#: gnu/installer/newt/ethernet.scm:67 +msgid "No service" +msgstr "Žiadna služba" + +#: gnu/installer/newt/ethernet.scm:76 +msgid "Please select an ethernet network." +msgstr "Vyberte drôtové sieťové pripojenie." + +#: gnu/installer/newt/ethernet.scm:77 +msgid "Ethernet connection" +msgstr "Drôtové sieťové pripojenie" + +#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:56 +#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63 +#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:309 +#: gnu/installer/newt/page.scm:673 gnu/installer/newt/page.scm:758 +#: gnu/installer/newt/partition.scm:56 gnu/installer/newt/partition.scm:91 +#: gnu/installer/newt/partition.scm:123 gnu/installer/newt/partition.scm:134 +#: gnu/installer/newt/partition.scm:631 gnu/installer/newt/partition.scm:652 +#: gnu/installer/newt/partition.scm:698 gnu/installer/newt/partition.scm:749 +#: gnu/installer/newt/partition.scm:760 gnu/installer/newt/services.scm:88 +#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204 +#: gnu/installer/newt/wifi.scm:206 +msgid "Exit" +msgstr "Ukončiť" + +#: gnu/installer/newt/final.scm:46 +#, scheme-format +msgid "" +"We're now ready to proceed with the installation! A system configuration " +"file has been generated, it is displayed below. This file will be available " +"as '~a' on the installed system. The new system will be created from this " +"file once you've pressed OK. This will take a few minutes." +msgstr "" +"Sme pripravení na inštaláciu! Bol vytvorený súbor nastavení systému " +"zobrazený nižšie. Tento súbor bude po dokončení inštalácie dostupný v „~a“. " +"Zostavovanie nového systému z tohto súboru nastavení sa spustí po stlačení " +"tlačidla Dobre. Bude to trvať niekoľko minút." + +#: gnu/installer/newt/final.scm:70 +msgid "Installation complete" +msgstr "Inštalácia dokončená" + +#: gnu/installer/newt/final.scm:71 gnu/installer/newt/parameters.scm:45 +#: gnu/installer/newt/welcome.scm:145 +msgid "Reboot" +msgstr "Reštartovať" + +#: gnu/installer/newt/final.scm:72 +msgid "" +"Congratulations! Installation is now complete. You may remove the device " +"containing the installation image and press the button to reboot." +msgstr "" +"Blahoželáme! Inštalácia je dokončená. Môžete odobrať zariadenie s " +"inštalačným obrazom a reštartovať počítač." + +#: gnu/installer/newt/final.scm:86 +msgid "Installation failed" +msgstr "Inštalácia zlyhala" + +#: gnu/installer/newt/final.scm:87 +msgid "Resume" +msgstr "Pokračovať" + +#: gnu/installer/newt/final.scm:88 +msgid "Restart the installer" +msgstr "Reštartovať sprievodcu inštaláciou" + +#: gnu/installer/newt/final.scm:89 +msgid "" +"The final system installation step failed. You can resume from a specific " +"step, or restart the installer." +msgstr "" +"Záverečný inštalačný krok zlyhal. Môžete pokračovať v inštalácii od " +"vybraného kroku alebo spustiť sprievodcu inštaláciou odznova." + +#: gnu/installer/newt/parameters.scm:31 +msgid "" +"Please enter the HTTP proxy URL. If you enter an empty string, proxy usage " +"will be disabled." +msgstr "" +"Zadajte adresu servera proxy. Ak ponecháte pole prázdne, žiadny server proxy " +"sa nepoužije." + +#: gnu/installer/newt/parameters.scm:33 +msgid "HTTP proxy configuration" +msgstr "Nastavenie servera proxy" + +#: gnu/installer/newt/parameters.scm:43 +msgid "Change keyboard layout" +msgstr "Zmeniť rozloženie klávesnice" + +#: gnu/installer/newt/parameters.scm:44 +msgid "Configure HTTP proxy" +msgstr "Nastaviť server proxy" + +#: gnu/installer/newt/parameters.scm:48 +msgid "" +"Please choose one of the following parameters or press ‘Back’ to go back to " +"the installation process." +msgstr "" +"Zvoľte jednu z nasledujúcich možností alebo stlačte „Naspäť“ pre návrat k " +"inštalácii." + +#: gnu/installer/newt/parameters.scm:50 +msgid "Installation parameters" +msgstr "Možnosti inštalácie" + +#: gnu/installer/newt/parameters.scm:55 gnu/installer/newt/keymap.scm:74 +#: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78 +#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:588 +#: gnu/installer/newt/timezone.scm:64 +msgid "Back" +msgstr "Naspäť" + +#: gnu/installer/newt/hostname.scm:25 +msgid "Please enter the system hostname." +msgstr "Zadajte názov počítača." + +#: gnu/installer/newt/keymap.scm:38 +msgid "Layout" +msgstr "Rozloženie" + +#: gnu/installer/newt/keymap.scm:43 +msgid "" +"Please choose your keyboard layout. It will only be used during the " +"installation process. Non-Latin layouts can be toggled with Alt+Shift." +msgstr "" +"Vyberte rozloženie klávesnice, ktoré sa má použiť počas inštalácie. " +"Nelatinské rozloženia sú dostupné prostredníctvom klávesovej skratky Alt" +"+Shift." + +#: gnu/installer/newt/keymap.scm:46 +msgid "" +"Please choose your keyboard layout. It will be used during the install " +"process, and for the installed system. Non-Latin layouts can be toggled with " +"Alt+Shift. You can switch to a different layout at any time from the " +"parameters menu." +msgstr "" +"Vyberte rozloženie klávesnice, ktoré sa má použiť počas inštalácie ako aj " +"pre novo-nainštalovaný systém. Nelatinské rozloženia sú dostupné " +"prostredníctvom klávesovej skratky Alt+Shift. Rozloženie klávesnice môžete " +"kedykoľvek prepnúť v ponuke možností inštalácie." + +#: gnu/installer/newt/keymap.scm:55 gnu/installer/newt/network.scm:62 +#: gnu/installer/newt/page.scm:308 +msgid "Continue" +msgstr "Pokračovať" + +#: gnu/installer/newt/keymap.scm:67 +msgid "Variant" +msgstr "Klávesnica" + +#: gnu/installer/newt/keymap.scm:70 +msgid "Please choose a variant for your keyboard layout." +msgstr "Vyberte klávesnicu, ktorú chcete použiť." + +#: gnu/installer/newt/locale.scm:36 +msgid "Locale language" +msgstr "Nastavenie jazyka" + +#: gnu/installer/newt/locale.scm:37 +msgid "" +"Choose the language to use for the installation process and for the " +"installed system." +msgstr "" +"Vyberte jazyk používateľského rozhrania, ktorý sa má použiť počas inštalácie " +"a na novo-nainštalovanom systéme." + +#: gnu/installer/newt/locale.scm:57 +msgid "Locale location" +msgstr "Krajina alebo územie" + +#: gnu/installer/newt/locale.scm:60 +msgid "Choose a territory for this language." +msgstr "Vyberte vaše súčasné umiestnenie." + +#: gnu/installer/newt/locale.scm:71 +msgid "Locale codeset" +msgstr "Kódovanie znakov" + +#: gnu/installer/newt/locale.scm:74 +msgid "Choose the locale encoding." +msgstr "Vyberte kódovanie znakov." + +#: gnu/installer/newt/locale.scm:86 +msgid "Locale modifier" +msgstr "Symbol meny" + +#: gnu/installer/newt/locale.scm:89 +msgid "" +"Choose your locale's modifier. The most frequent modifier is euro. It " +"indicates that you want to use Euro as the currency symbol." +msgstr "Vyberte symbol meny. Najčastejšie používaným symbolom je Euro." + +#: gnu/installer/newt/locale.scm:190 +msgid "No location" +msgstr "Žiadne umiestnenie" + +#: gnu/installer/newt/locale.scm:217 +msgid "No modifier" +msgstr "Žiadny symbol meny" + +#: gnu/installer/newt/menu.scm:35 +msgid "" +"Choose where you want to resume the install. You can also abort the " +"installation by pressing the Abort button." +msgstr "" +"Vyberte odkiaľ chcete pokračovať v inštalácii. Inštaláciu môžete prerušiť " +"stlačením tlačidla Prerušiť." + +#: gnu/installer/newt/menu.scm:37 +msgid "Installation menu" +msgstr "Ponuka inštalácie" + +#: gnu/installer/newt/menu.scm:41 +msgid "Abort" +msgstr "Prerušiť" + +#: gnu/installer/newt/network.scm:61 gnu/installer/newt/network.scm:80 +msgid "Internet access" +msgstr "Prístup na internet" + +#: gnu/installer/newt/network.scm:64 +msgid "" +"The install process requires Internet access but no network devices were " +"found. Do you want to continue anyway?" +msgstr "" +"Sprievodca inštaláciou vyžaduje prístup na internet, no žiadne sieťové " +"zariadenie sa nenašlo. Chcete napriek tomu pokračovať v inštalácii?" + +#: gnu/installer/newt/network.scm:78 +msgid "" +"The install process requires Internet access. Please select a network device." +msgstr "" +"Sprievodca inštaláciou vyžaduje prístup na internet. Vyberte sieťové " +"zariadenie, ktoré sa má použiť." + +#: gnu/installer/newt/network.scm:103 +msgid "Powering technology" +msgstr "Spôsob napájania" + +#: gnu/installer/newt/network.scm:104 +#, scheme-format +msgid "Waiting for technology ~a to be powered." +msgstr "Čaká sa na napájanie prostredníctvom ~a." + +#: gnu/installer/newt/network.scm:128 +msgid "Checking connectivity" +msgstr "Overuje sa spojenie" + +#: gnu/installer/newt/network.scm:129 +msgid "Waiting for Internet access establishment..." +msgstr "Čaká sa na zahájenie internetového spojenia…" + +#: gnu/installer/newt/network.scm:139 +msgid "" +"The selected network does not provide access to the Internet, please try " +"again." +msgstr "Zvolená sieť neposkytuje prístup na internet. Skúste to znova." + +#: gnu/installer/newt/network.scm:141 gnu/installer/newt/wifi.scm:108 +msgid "Connection error" +msgstr "Chyba pripojenia" + +#: gnu/installer/newt/page.scm:198 +#, scheme-format +msgid "Connecting to ~a, please wait." +msgstr "Pripájanie k ~a. Prosím, čakajte." + +#: gnu/installer/newt/page.scm:199 +msgid "Connection in progress" +msgstr "Prebieha pripájanie" + +#: gnu/installer/newt/page.scm:218 gnu/installer/newt/user.scm:60 +msgid "Show" +msgstr "Zobraziť" + +#: gnu/installer/newt/page.scm:225 gnu/installer/newt/page.scm:672 +#: gnu/installer/newt/page.scm:757 gnu/installer/newt/partition.scm:451 +#: gnu/installer/newt/partition.scm:630 gnu/installer/newt/partition.scm:651 +#: gnu/installer/newt/partition.scm:690 gnu/installer/newt/user.scm:66 +#: gnu/installer/newt/user.scm:203 +msgid "OK" +msgstr "Dobre" + +#: gnu/installer/newt/page.scm:251 +msgid "Please enter a non empty input." +msgstr "Zadajte hodnotu." + +#: gnu/installer/newt/page.scm:252 gnu/installer/newt/user.scm:123 +msgid "Empty input" +msgstr "Prázdna hodnota" + +#: gnu/installer/newt/page.scm:760 +msgid "Edit" +msgstr "Upraviť" + +#: gnu/installer/newt/partition.scm:47 +msgid "Everything is one partition" +msgstr "Všetko na jeden oddiel" + +#: gnu/installer/newt/partition.scm:48 +msgid "Separate /home partition" +msgstr "Samostatný oddiel /home" + +#: gnu/installer/newt/partition.scm:50 +msgid "Please select a partitioning scheme." +msgstr "Vyberte spôsob rozdelenia disku." + +#: gnu/installer/newt/partition.scm:51 +msgid "Partition scheme" +msgstr "Spôsob rozdelenia disku" + +#. TRANSLATORS: The ~{ and ~} format specifiers are used to iterate the list +#. of device names of the user partitions that will be formatted. +#: gnu/installer/newt/partition.scm:65 +#, scheme-format +msgid "" +"We are about to write the configured partition table to the disk and format " +"the partitions listed below. Their data will be lost. Do you wish to " +"continue?~%~%~{ - ~a~%~}" +msgstr "" +"Na disk sa zapíše nová tabuľka oddielov a naformátujú sa nižšie uvedené " +"oddiely. Všetky údaje na týchto oddieloch sa stratia. Chcete pokračovať?" +"~%~%~{ - ~a~%~}" + +#: gnu/installer/newt/partition.scm:71 +msgid "Format disk?" +msgstr "Formátovať disk?" + +#: gnu/installer/newt/partition.scm:74 +msgid "Partition formatting is in progress, please wait." +msgstr "Prebieha formátovanie oddielov. Prosím, čakajte." + +#: gnu/installer/newt/partition.scm:75 +msgid "Preparing partitions" +msgstr "Pripravujú sa oddiely" + +#: gnu/installer/newt/partition.scm:86 +msgid "Please select a disk." +msgstr "Vyberte disk." + +#: gnu/installer/newt/partition.scm:87 +msgid "Disk" +msgstr "Disková jednotka" + +#: gnu/installer/newt/partition.scm:99 +msgid "" +"Select a new partition table type. Be careful, all data on the disk will be " +"lost." +msgstr "" +"Vyberte typ novej tabuľky oddielov. Buďte opatrní, všetky údaje na disku sa " +"stratia." + +#: gnu/installer/newt/partition.scm:101 +msgid "Partition table" +msgstr "Tabuľka oddielov" + +#: gnu/installer/newt/partition.scm:118 +msgid "Please select a partition type." +msgstr "Vyberte typ oddielu." + +#: gnu/installer/newt/partition.scm:119 +msgid "Partition type" +msgstr "Typ oddielu" + +#: gnu/installer/newt/partition.scm:129 +msgid "Please select the file-system type for this partition." +msgstr "Vyberte typ súborového systému pre tento oddiel." + +#: gnu/installer/newt/partition.scm:130 +msgid "File-system type" +msgstr "Typ súborového systému" + +#: gnu/installer/newt/partition.scm:143 +msgid "Primary partitions count exceeded." +msgstr "Prekročili ste povolený počet hlavných oddielov." + +#: gnu/installer/newt/partition.scm:144 gnu/installer/newt/partition.scm:149 +#: gnu/installer/newt/partition.scm:154 +msgid "Creation error" +msgstr "Vytváranie zlyhalo" + +#: gnu/installer/newt/partition.scm:148 +msgid "Extended partition creation error." +msgstr "Vyskytla sa chyba pri vytváraní rozšíreného oddielu." + +#: gnu/installer/newt/partition.scm:153 +msgid "Logical partition creation error." +msgstr "Vyskytla sa chyba pri vytváraní logického oddielu." + +#: gnu/installer/newt/partition.scm:167 +#, scheme-format +msgid "" +"Please enter the password for the encryption of partition ~a (label: ~a)." +msgstr "Zadajte heslo pre šifrovaný oddiel ~a (menovka: ~a)." + +#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/wifi.scm:92 +msgid "Password required" +msgstr "Vyžaduje sa heslo" + +#: gnu/installer/newt/partition.scm:174 +#, scheme-format +msgid "" +"Please confirm the password for the encryption of partition ~a (label: ~a)." +msgstr "Potvrďte heslo pre šifrovaný oddiel ~a (menovka: ~a)." + +#: gnu/installer/newt/partition.scm:176 gnu/installer/newt/user.scm:160 +msgid "Password confirmation required" +msgstr "Vyžaduje sa potvrdenie hesla" + +#: gnu/installer/newt/partition.scm:188 gnu/installer/newt/user.scm:168 +msgid "Password mismatch, please try again." +msgstr "Heslá sa nezhodujú. Skúste to znova." + +#: gnu/installer/newt/partition.scm:189 gnu/installer/newt/user.scm:169 +msgid "Password error" +msgstr "Chyba hesla" + +#: gnu/installer/newt/partition.scm:275 +msgid "Please enter the partition gpt name." +msgstr "Zadajte gpt názov oddielu." + +#: gnu/installer/newt/partition.scm:276 +msgid "Partition name" +msgstr "Názov oddielu" + +#: gnu/installer/newt/partition.scm:306 +msgid "Please enter the encrypted label" +msgstr "Zadajte názov šifrovaného oddielu" + +#: gnu/installer/newt/partition.scm:307 +msgid "Encryption label" +msgstr "Názov šifrovaného oddielu" + +#: gnu/installer/newt/partition.scm:324 +#, scheme-format +msgid "Please enter the size of the partition. The maximum size is ~a." +msgstr "Zadajte veľkosť oddielu. Najvyššia možná hodnota je ~a." + +#: gnu/installer/newt/partition.scm:326 +msgid "Partition size" +msgstr "Veľkosť oddielu" + +#: gnu/installer/newt/partition.scm:344 +msgid "The percentage can not be superior to 100." +msgstr "Percentuálna hodnota nesmie presiahnuť 100." + +#: gnu/installer/newt/partition.scm:345 gnu/installer/newt/partition.scm:350 +#: gnu/installer/newt/partition.scm:355 +msgid "Size error" +msgstr "Chyba veľkosti" + +#: gnu/installer/newt/partition.scm:349 +msgid "The requested size is incorrectly formatted, or too large." +msgstr "" +"Požadovaná veľkosť je nesprávne zapísaná alebo je hodnota príliš vysoká." + +#: gnu/installer/newt/partition.scm:354 +msgid "The request size is superior to the maximum size." +msgstr "Požadovaná veľkosť je vyššia ako najvyššia možná hodnota." + +#: gnu/installer/newt/partition.scm:374 +msgid "" +"Please enter the desired mounting point for this partition. Leave this field " +"empty if you don't want to set a mounting point." +msgstr "" +"Zadajte prípojný bod pre tento oddiel. Ak nechcete nastaviť žiadny prípojný " +"bod, ponechajte toto pole prázdne." + +#: gnu/installer/newt/partition.scm:376 +msgid "Mounting point" +msgstr "Prípojný bod" + +#: gnu/installer/newt/partition.scm:440 +#, scheme-format +msgid "Creating ~a partition starting at ~a of ~a." +msgstr "Vytvára sa oddiel ~a začínajúci na ~a z ~a." + +#: gnu/installer/newt/partition.scm:442 +#, scheme-format +msgid "You are currently editing partition ~a." +msgstr "Práve upravujete oddiel ~a." + +#: gnu/installer/newt/partition.scm:445 +msgid "Partition creation" +msgstr "Vytvorenie oddielu" + +#: gnu/installer/newt/partition.scm:446 +msgid "Partition edit" +msgstr "Úprava oddielu" + +#: gnu/installer/newt/partition.scm:627 +#, scheme-format +msgid "Are you sure you want to delete everything on disk ~a?" +msgstr "Ste si istí, že chcete odstrániť všetky údaje na disku ~a?" + +#: gnu/installer/newt/partition.scm:629 +msgid "Delete disk" +msgstr "Odstrániť disk" + +#: gnu/installer/newt/partition.scm:643 +msgid "You cannot delete a free space area." +msgstr "Nie je možné odstrániť voľné miesto." + +#: gnu/installer/newt/partition.scm:644 gnu/installer/newt/partition.scm:650 +msgid "Delete partition" +msgstr "Odstrániť oddiel" + +#: gnu/installer/newt/partition.scm:648 +#, scheme-format +msgid "Are you sure you want to delete partition ~a?" +msgstr "Ste si istí, že chcete odstrániť oddiel ~a?" + +#: gnu/installer/newt/partition.scm:665 +msgid "" +"You can change a disk's partition table by selecting it and pressing ENTER. " +"You can also edit a partition by selecting it and pressing ENTER, or remove " +"it by pressing DELETE. To create a new partition, select a free space area " +"and press ENTER.\n" +"\n" +"At least one partition must have its mounting point set to '/'." +msgstr "" +"Tabuľku oddielov môžete zmeniť vybratím príslušného disku a stlačením " +"klávesu ENTER. Vybraný oddiel môžete upraviť stlačením klávesu ENTER alebo " +"odstrániť stlačením klávesu DELETE. Pre vytvorenie nového oddielu vyberte " +"voľné miesto a stlačte ENTER.\n" +"\n" +"Aspoň jeden oddiel musí mať nastavený prípojný bod na „/“." + +#: gnu/installer/newt/partition.scm:671 +#, scheme-format +msgid "" +"This is the proposed partitioning. It is still possible to edit it or to go " +"back to install menu by pressing the Exit button.~%~%" +msgstr "" +"Toto je navrhované rozdelenie disku. Môžete ho upraviť alebo sa vrátiť k " +"inštalácii stlačením tlačidla Ukončiť.~%~%" + +#: gnu/installer/newt/partition.scm:681 +msgid "Guided partitioning" +msgstr "Sprievodca rozdelením disku" + +#: gnu/installer/newt/partition.scm:682 +msgid "Manual partitioning" +msgstr "Ručné rozdelenie" + +#: gnu/installer/newt/partition.scm:707 +msgid "No root mount point found." +msgstr "Nenašiel sa koreňový prípojný bod." + +#: gnu/installer/newt/partition.scm:708 +msgid "Missing mount point" +msgstr "Postráda sa prípojný bod" + +#: gnu/installer/newt/partition.scm:739 +msgid "Guided - using the entire disk" +msgstr "Sprievodca - použiť celý disk" + +#: gnu/installer/newt/partition.scm:740 +msgid "Guided - using the entire disk with encryption" +msgstr "Sprievodca - použiť celý disk so šifrovaním" + +#: gnu/installer/newt/partition.scm:741 +msgid "Manual" +msgstr "Ručne" + +#: gnu/installer/newt/partition.scm:743 +msgid "Please select a partitioning method." +msgstr "Vyberte spôsob rozdelenia disku." + +#: gnu/installer/newt/partition.scm:744 +msgid "Partitioning method" +msgstr "Spôsob rozdelenia disku" + +#: gnu/installer/newt/services.scm:38 +msgid "" +"Please select the desktop environment(s) you wish to install. If you select " +"multiple desktop environments here, you will be able to choose from them " +"later when you log in." +msgstr "" +"Vyberte, ktoré používateľské rozhrania sa majú nainštalovať. Ak označíte " +"viaceré rozhrania, pri prihlasovaní si budete môcť spomedzi nich vybrať to, " +"ktoré chcete použiť." + +#: gnu/installer/newt/services.scm:41 +msgid "Desktop environment" +msgstr "Používateľské rozhranie" + +#: gnu/installer/newt/services.scm:58 +msgid "You can now select networking services to run on your system." +msgstr "" +"Teraz si môžete vybrať sieťové služby, ktoré chcete spúšťať na vašom systéme." + +#: gnu/installer/newt/services.scm:60 +msgid "Network service" +msgstr "Sieťová služba" + +#: gnu/installer/newt/services.scm:73 +msgid "Network management" +msgstr "Správa siete" + +#: gnu/installer/newt/services.scm:76 +msgid "" +"Choose the method to manage network connections.\n" +"\n" +"We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP " +"client may be enough for a server." +msgstr "" +"Vyberte spôsob správy sieťových pripojení.\n" +"\n" +"Odporúča sa NetworkManager alebo Connman v prípade prenosného počítača s " +"bezdrôtovým pripojením. Pre server by mal stačiť DHCP klient." + +#: gnu/installer/newt/substitutes.scm:31 +msgid "Substitute server discovery." +msgstr "Zisťovanie servera náhrad." + +#: gnu/installer/newt/substitutes.scm:32 +msgid "Enable" +msgstr "Povoliť" + +#: gnu/installer/newt/substitutes.scm:32 +msgid "Disable" +msgstr "Nepovoliť" + +#: gnu/installer/newt/substitutes.scm:33 +msgid "" +" By turning this option on, you allow Guix to fetch substitutes (pre-built " +"binaries) during installation from servers discovered on your local area " +"network (LAN) in addition to the official server. This can increase " +"download throughput.\n" +"\n" +" There are no security risks: only genuine substitutes may be retrieved from " +"those servers. However, eavesdroppers on your LAN may be able to see what " +"software you are installing." +msgstr "" +" Ak povolíte túto možnosť, systém Guix bude môcť počas inštalácie sťahovať " +"náhrady (pred-zostavené binárne súbory) nie len z oficiálneho servera náhrad " +"ale aj zo serverov vo vašej miestnej sieti (LAN). Môže to zvýšiť rýchlosť " +"sťahovania.\n" +"\n" +"Nie je to bezpečnostná hrozba. Systém Guix môže z týchto serverov sťahovať " +"iba pravé náhrady. Avšak, hocikto vo vašej miestnej sieti môže vidieť aké " +"balíky inštalujete." + +#: gnu/installer/newt/timezone.scm:59 +msgid "Please select a timezone." +msgstr "Vyberte časové pásmo." + +#: gnu/installer/newt/user.scm:45 +msgid "Name" +msgstr "Meno" + +#: gnu/installer/newt/user.scm:47 +msgid "Real name" +msgstr "Celé meno" + +#: gnu/installer/newt/user.scm:49 +msgid "Home directory" +msgstr "Domovský priečinok" + +#: gnu/installer/newt/user.scm:51 +msgid "Password" +msgstr "Heslo" + +#: gnu/installer/newt/user.scm:122 +msgid "Empty inputs are not allowed." +msgstr "Prázdne hodnoty nie sú povolené." + +#: gnu/installer/newt/user.scm:159 +msgid "Please confirm the password." +msgstr "Potvrďte heslo." + +#. TRANSLATORS: Leave "root" untranslated: it refers to the name of the +#. system administrator account. +#: gnu/installer/newt/user.scm:176 +msgid "Please choose a password for the system administrator (\"root\")." +msgstr "Zvoľte heslo pre účet správcu systému („root“)." + +#: gnu/installer/newt/user.scm:178 +msgid "System administrator password" +msgstr "Heslo pre účet správcu systému" + +#: gnu/installer/newt/user.scm:191 +msgid "Please add at least one user to system using the 'Add' button." +msgstr "Pridajte aspoň jedného používateľa stlačením tlačidla „Pridať“." + +#: gnu/installer/newt/user.scm:194 +msgid "Add" +msgstr "Pridať" + +#: gnu/installer/newt/user.scm:195 +msgid "Delete" +msgstr "Odstrániť" + +#: gnu/installer/newt/user.scm:255 +msgid "Please create at least one user." +msgstr "Vytvorte aspoň jedného používateľa." + +#: gnu/installer/newt/user.scm:256 +msgid "No user" +msgstr "Žiadny používateľ" + +#: gnu/installer/newt/welcome.scm:125 +msgid "GNU Guix install" +msgstr "Sprievodca inštaláciou systému GNU Guix" + +#: gnu/installer/newt/welcome.scm:126 +msgid "" +"Welcome to GNU Guix system installer!\n" +"\n" +"You will be guided through a graphical installation program.\n" +"\n" +"If you are familiar with GNU/Linux and you want tight control over the " +"installation process, you can instead choose manual installation. " +"Documentation is accessible at any time by pressing Ctrl-Alt-F2." +msgstr "" +"Víta vás sprievodca inštaláciou systému GNU Guix!\n" +"\n" +"Tento sprievodca vás prevedie celým procesom inštalácie.\n" +"\n" +"Ak ste skúseným používateľom systému GNU/Linux a chcete mať väčšiu kontrolu " +"nad inštalačným procesom, môžete si vybrať ručnú inštaláciu. Pomocníka je " +"možné kedykoľvek vyvolať prostredníctvom klávesovej skratky Ctrl+Alt+F2." + +#: gnu/installer/newt/welcome.scm:135 +msgid "Graphical install using a terminal based interface" +msgstr "Použiť sprievodcu inštaláciou" + +#: gnu/installer/newt/welcome.scm:138 +msgid "Install using the shell based process" +msgstr "Inštalovať ručne z príkazového riadku" + +#: gnu/installer/newt/wifi.scm:82 +msgid "Unable to find a wifi technology" +msgstr "Nepodarilo sa nájsť žiadne zariadenie bezdrôtového pripojenia" + +#: gnu/installer/newt/wifi.scm:86 +msgid "Scanning wifi for available networks, please wait." +msgstr "Vyhľadávajú sa dostupné bezdrôtové siete. Prosím, čakajte." + +#: gnu/installer/newt/wifi.scm:87 +msgid "Scan in progress" +msgstr "Prebieha vyhľadávanie" + +#: gnu/installer/newt/wifi.scm:91 +msgid "Please enter the wifi password." +msgstr "Zdajte heslo bezdrôtovej siete." + +#: gnu/installer/newt/wifi.scm:98 +#, scheme-format +msgid "The password you entered for ~a is incorrect." +msgstr "Zadané heslo pre ~a je nesprávne." + +#: gnu/installer/newt/wifi.scm:100 +msgid "Wrong password" +msgstr "Nesprávne heslo" + +#: gnu/installer/newt/wifi.scm:106 +#, scheme-format +msgid "An error occurred while trying to connect to ~a, please retry." +msgstr "Počas pripájania k ~a sa vyskytla chyba. Skúste to znova." + +#: gnu/installer/newt/wifi.scm:201 +msgid "Please select a wifi network." +msgstr "Vyberte bezdrôtovú sieť." + +#: gnu/installer/newt/wifi.scm:207 +msgid "Scan" +msgstr "Vyhľadať" + +#: gnu/installer/newt/wifi.scm:212 +msgid "No wifi detected" +msgstr "Nezistili sa žiadne bezdrôtové siete" + +#: gnu/installer/newt/wifi.scm:227 +msgid "Wifi" +msgstr "Bezdrôtové pripojenie" + +#: gnu/installer/parted.scm:402 gnu/installer/parted.scm:439 +msgid "Free space" +msgstr "Voľné miesto" + +#: gnu/installer/parted.scm:528 +#, scheme-format +msgid "Name: ~a" +msgstr "Meno: ~a" + +#: gnu/installer/parted.scm:529 gnu/installer/parted.scm:575 +msgid "None" +msgstr "Žiadne" + +#: gnu/installer/parted.scm:534 +#, scheme-format +msgid "Type: ~a" +msgstr "Typ: ~a" + +#: gnu/installer/parted.scm:538 +#, scheme-format +msgid "File system type: ~a" +msgstr "Typ súborového systému: ~a" + +#: gnu/installer/parted.scm:544 +#, scheme-format +msgid "Bootable flag: ~:[off~;on~]" +msgstr "Zavádzací (boot) príznak: ~:[vypnutý~;zapnutý~]" + +#: gnu/installer/parted.scm:548 +#, scheme-format +msgid "ESP flag: ~:[off~;on~]" +msgstr "ESP príznak: ~:[vypnutý~;zapnutý~]" + +#: gnu/installer/parted.scm:554 +#, scheme-format +msgid "Size: ~a" +msgstr "Veľkosť: ~a" + +#: gnu/installer/parted.scm:560 +#, scheme-format +msgid "Encryption: ~:[No~a~;Yes (label '~a')~]" +msgstr "Šifrovanie: ~:[Nie~a~;Áno (menovka „~a“)~]" + +#: gnu/installer/parted.scm:566 +#, scheme-format +msgid "Format the partition? ~:[No~;Yes~]" +msgstr "Formátovať oddiel? ~:[Nie~;Áno~]" + +#: gnu/installer/parted.scm:572 +#, scheme-format +msgid "Mount point: ~a" +msgstr "Prípojný bod: ~a" + +#: gnu/installer/parted.scm:1395 +#, scheme-format +msgid "Device ~a is still in use." +msgstr "Zariadenie ~a sa stále používa." + +#: gnu/installer/services.scm:94 +msgid "OpenSSH secure shell daemon (sshd)" +msgstr "Démon OpenSSH (sshd)" + +#: gnu/installer/services.scm:98 +msgid "Tor anonymous network router" +msgstr "Smerovač anonymnej siete Tor" + +#: gnu/installer/services.scm:102 +msgid "Mozilla NSS certificates, for HTTPS access" +msgstr "Certifikáty Mozilla NSS, pre prístup cez HTTPS" + +#: gnu/installer/services.scm:109 +msgid "NetworkManager network connection manager" +msgstr "Správca sieťových pripojení NetworkManager" + +#: gnu/installer/services.scm:114 +msgid "Connman network connection manager" +msgstr "Správca sieťových pripojení Connman" + +#: gnu/installer/services.scm:119 +msgid "DHCP client (dynamic IP address assignment)" +msgstr "Klient DHCP (dynamické prideľovanie IP adries)" + +#: gnu/installer/timezone.scm:110 +#, scheme-format +msgid "Unable to locate path: ~a." +msgstr "Nepodarilo sa nájsť cestu: ~a." + +#: gnu/installer/utils.scm:83 +#, scheme-format +msgid "Press Enter to continue.~%" +msgstr "Stlačte Enter pre pokračovanie.~%" + +#: gnu/installer/utils.scm:108 +#, scheme-format +msgid "Command failed with exit code ~a.~%" +msgstr "Príkaz zlyhal s návratovou hodnotou ~a.~%" + +#: gnu/machine/ssh.scm:114 +#, scheme-format +msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%" +msgstr "použitie <machine-ssh-configuration> bez „host-key“ sa už neodporúča~%" + +#: gnu/machine/ssh.scm:189 +#, scheme-format +msgid "device '~a' not found: ~a" +msgstr "zariadenie „~a“ sa nenašlo: ~a" + +#: gnu/machine/ssh.scm:204 +#, scheme-format +msgid "no file system with label '~a'" +msgstr "žiadny súborový systém s menovkou „~a“" + +#: gnu/machine/ssh.scm:223 +#, scheme-format +msgid "no file system with UUID '~a'" +msgstr "žiadny súborový systém s UUID „~a“" + +#: gnu/machine/ssh.scm:273 +#, scheme-format +msgid "missing modules for ~a:~{ ~a~}~%" +msgstr "chýbajúce moduly pre ~a:~{ ~a~}~%" + +#: gnu/machine/ssh.scm:308 +#, scheme-format +msgid "" +"incorrect target system ('~a' was given, while the system reports that it is " +"'~a')~%" +msgstr "" +"nesprávny cieľový systém (bol určený „~a“ zatiaľ čo systém hlási, že je " +"„~a“)~%" + +#: gnu/machine/ssh.scm:434 +#, scheme-format +msgid "no signing key '~a'. have you run 'guix archive --generate-key?'" +msgstr "" +"žiadny kľúč na podpísanie „~a“. Vykonali ste „guix archive --generate-key?“" + +#: gnu/machine/ssh.scm:485 +msgid "could not roll-back machine" +msgstr "nepodarilo sa vrátiť počítač do pôvodného stavu" + +#: gnu/machine/ssh.scm:526 +msgid "" +"Provisioning for machines that are accessible over SSH\n" +"and have a known host-name. This entails little more than maintaining an " +"SSH\n" +"connection to the host." +msgstr "" +"Spôsob nasadenia pre počítače prístupné cez SSH a so známym\n" +"názvom hostiteľa. Toto vyžaduje o niečo viac ako udržiavanie SSH\n" +"pripojenia k hostiteľovi." + +#: gnu/machine/ssh.scm:536 +#, scheme-format +msgid "" +"unsupported machine configuration '~a'\n" +"for environment of type '~a'" +msgstr "" +"nepodporované nastavenie počítača „~a“\n" +"pre prostredie typu „~a“" + +#: gnu/packages/bootstrap.scm:165 +#, scheme-format +msgid "could not find bootstrap binary '~a' for system '~a'" +msgstr "nepodarilo sa nájsť zavádzací binárny súbor „~a“ pre systém „~a“" + +#: gnu/packages/bootstrap.scm:476 +msgid "Raw build system with direct store access" +msgstr "Základný zostavovací systém s priamym prístupom k úložisku" + +#: gnu/packages/bootstrap.scm:484 +msgid "Pre-built Guile for bootstrapping purposes." +msgstr "Pred-zostavený Guile pre účely zavádzania." + +#: guix/build/utils.scm:715 +#, scheme-format +msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{ ~a~%~}" +msgstr "" +"„~a~{ ~a~}“ skončil s návratovou hodnotou ~a; nasleduje výstup:~%~%~{ ~a~%~}" + +#: guix/scripts.scm:87 +msgid "main commands" +msgstr "hlavné príkazy" + +#: guix/scripts.scm:88 +msgid "software development commands" +msgstr "vývojové príkazy" + +#: guix/scripts.scm:89 +msgid "packaging commands" +msgstr "príkazy na správu balíkov" + +#: guix/scripts.scm:90 +msgid "plumbing commands" +msgstr "príkazy údržby" + +#: guix/scripts.scm:91 +msgid "internal commands" +msgstr "vnútorné príkazy" + +#: guix/scripts.scm:92 +msgid "extension commands" +msgstr "rozširujúce príkazy" + +#: guix/scripts.scm:137 +#, scheme-format +msgid "invalid argument: ~a~%" +msgstr "neplatný parameter: ~a~%" + +#: guix/scripts.scm:166 guix/scripts/import/cran.scm:91 +#: guix/scripts/import/elpa.scm:85 guix/scripts/import/cpan.scm:71 +#: guix/scripts/import/crate.scm:80 guix/scripts/import/gem.scm:78 +#: guix/scripts/import/gnu.scm:86 guix/scripts/import/go.scm:89 +#: guix/scripts/import/hackage.scm:110 guix/scripts/import/json.scm:79 +#: guix/scripts/import/nix.scm:71 guix/scripts/import/opam.scm:81 +#: guix/scripts/import/pypi.scm:77 guix/scripts/import/stackage.scm:94 +#: guix/scripts/import/texlive.scm:78 +#, scheme-format +msgid "~A: unrecognized option~%" +msgstr "~A: nerozpoznaný prepínač~%" + +#: guix/scripts.scm:169 +#, scheme-format +msgid "Did you mean @code{~a}?~%" +msgstr "Mali ste na mysli @code{~a}?~%" + +#: guix/scripts.scm:253 +#, scheme-format +msgid "Your Guix installation is ~a day old.\n" +msgid_plural "Your Guix installation is ~a days old.\n" +msgstr[0] "Vaše vydanie systému Guix má ~a deň.\n" +msgstr[1] "Vaše vydanie systému Guix má ~a dni.\n" +msgstr[2] "Vaše vydanie systému Guix má ~a dní.\n" + +#: guix/scripts.scm:259 +#, scheme-format +msgid "" +"Consider running 'guix pull' followed by\n" +"'~a' to get up-to-date packages and security updates.\n" +msgstr "" +"Zvážte spustenie „guix pull“ nasledované\n" +"„~a“ pre získanie najnovších balíkov a bezpečnostných aktualizácií.\n" + +#: guix/scripts.scm:323 +#, scheme-format +msgid "only ~,1f GiB of free space available on ~a~%" +msgstr "zostáva iba ~,1f GiB voľného miesta na ~a~%" + +#: guix/scripts.scm:325 +msgid "" +"Consider deleting old profile\n" +"generations and collecting garbage, along these lines:\n" +"\n" +"@example\n" +"guix gc --delete-generations=1m\n" +"@end example\n" +msgstr "" +"Zvážte odstránenie starších pokolení profilu\n" +"a spustenie zberača odpadkov asi takto:\n" +"\n" +"@example\n" +"guix gc --delete-generations=1m\n" +"@end example\n" + +#: guix/scripts/build.scm:85 +#, scheme-format +msgid "cannot access build log at '~a':~%" +msgstr "nepodarilo sa získať prístup k záznamu o zostavení v „~a“:~%" + +#: guix/scripts/build.scm:139 +#, scheme-format +msgid "failed to create GC root `~a': ~a~%" +msgstr "nepodarilo sa vytvoriť koreň zberača odpadkov „~a“: ~a~%" + +#: guix/scripts/build.scm:154 guix/scripts/search.scm:42 +#: guix/scripts/show.scm:41 guix/scripts/lint.scm:112 guix/scripts/edit.scm:48 +#: guix/scripts/size.scm:246 guix/scripts/graph.scm:547 +#: guix/scripts/repl.scm:80 +msgid "" +"\n" +" -L, --load-path=DIR prepend DIR to the package module search path" +msgstr "" +"\n" +" -L, --load-path=PRIEČINOK pridať PRIEČINOK na začiatok prehľadávanej " +"cesty modulov" + +#: guix/scripts/build.scm:156 +msgid "" +"\n" +" -K, --keep-failed keep build tree of failed builds" +msgstr "" +"\n" +" -K, --keep-failed\tzachovať strom zostavenia v prípade zlyhania" + +#: guix/scripts/build.scm:158 +msgid "" +"\n" +" -k, --keep-going keep going when some of the derivations fail" +msgstr "" +"\n" +" -k, --keep-going\tpokračovať v zostavovaní aj keď niektoré odvodzovanie " +"zlyhá" + +#: guix/scripts/build.scm:160 +msgid "" +"\n" +" -n, --dry-run do not build the derivations" +msgstr "" +"\n" +" -n, --dry-run\tnezostavovať odvodeniny" + +#: guix/scripts/build.scm:162 +msgid "" +"\n" +" --fallback fall back to building when the substituter fails" +msgstr "" +"\n" +" --fallback\tspoľahnúť sa na miestne zostavenie ak nahrádzanie zlyhá" + +#: guix/scripts/build.scm:164 +msgid "" +"\n" +" --no-substitutes build instead of resorting to pre-built substitutes" +msgstr "" +"\n" +" --no-substitutes\tzostaviť namiesto získavania pred-zostavených " +"náhradníkov" + +#: guix/scripts/build.scm:166 guix/scripts/size.scm:235 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" fetch substitute from URLS if they are authorized" +msgstr "" +"\n" +" --substitute-urls=PREPOJENIA\n" +" ak sú povolené, získať náhrady cez PREPOJENIA" + +#: guix/scripts/build.scm:169 +msgid "" +"\n" +" --no-grafts do not graft packages" +msgstr "" +"\n" +" --no-grafts neštepiť balíky" + +#: guix/scripts/build.scm:171 +msgid "" +"\n" +" --no-offload do not attempt to offload builds" +msgstr "" +"\n" +" --no-offload nepokúšať sa o vzdialené zostavovanie" + +#: guix/scripts/build.scm:173 +msgid "" +"\n" +" --max-silent-time=SECONDS\n" +" mark the build as failed after SECONDS of silence" +msgstr "" +"\n" +" --max-silent-time=SEKUNDY\n" +" označiť zostavovanie za neúspešné ak SEKÚND " +"neodpovedá" + +#: guix/scripts/build.scm:176 +msgid "" +"\n" +" --timeout=SECONDS mark the build as failed after SECONDS of activity" +msgstr "" +"\n" +" --timeout=SEKUNDY označiť zostavovanie za neúspešné po SEKUNDÁCH " +"činnosti" + +#: guix/scripts/build.scm:178 +msgid "" +"\n" +" --rounds=N build N times in a row to detect non-determinism" +msgstr "" +"\n" +" --rounds=N zostaviť N-krát za sebou za účelom zistenia " +"nedeterminizmu" + +#: guix/scripts/build.scm:180 +msgid "" +"\n" +" -c, --cores=N allow the use of up to N CPU cores for the build" +msgstr "" +"\n" +" -c, --cores=N počas zostavovania povoliť použitie najviac N " +"jadier procesora" + +#: guix/scripts/build.scm:182 +msgid "" +"\n" +" -M, --max-jobs=N allow at most N build jobs" +msgstr "" +"\n" +" -M, --max-jobs=N povoliť najviac N zostavovacích úloh" + +#: guix/scripts/build.scm:184 +msgid "" +"\n" +" --debug=LEVEL produce debugging output at LEVEL" +msgstr "" +"\n" +" --debug=ÚROVEŇ zobrazovať výstup ladenia ÚROVNE" + +#: guix/scripts/build.scm:201 +msgid "'--keep-failed' ignored since you are talking to a remote daemon\n" +msgstr "" +"„--keep-failed“ sa neberie do úvahy keďže ste v spojení so vzdialeným " +"démonom\n" + +#: guix/scripts/build.scm:282 +#, scheme-format +msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%" +msgstr "" +"použitie „--no-build-hook“ sa už neodporúča; namiesto toho použite „--no-" +"offload“~%" + +#: guix/scripts/build.scm:312 guix/scripts/build.scm:319 +#, scheme-format +msgid "not a number: '~a' option argument: ~a~%" +msgstr "neplatná číselná hodnota: „~a“ parameter prepínača: ~a~%" + +#: guix/scripts/build.scm:340 +msgid "" +"Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" +"Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" +msgstr "" +"Použitie: guix build [PREPÍNAČ]... BALÍK-ALEBO-ODVODENINA...\n" +"Zostaviť určený BALÍK-ALEBO-ODVODENINU a vrátiť ich výstupné cesty.\n" + +#: guix/scripts/build.scm:342 guix/scripts/archive.scm:91 +msgid "" +"\n" +" -e, --expression=EXPR build the package or derivation EXPR evaluates to" +msgstr "" +"\n" +" -e, --expression=VÝRAZ zostaviť balík alebo odvodeninu, ktorá je " +"výsledkom vyhodnotenia VÝRAZU" + +#: guix/scripts/build.scm:344 +msgid "" +"\n" +" -f, --file=FILE build the package or derivation that the code " +"within\n" +" FILE evaluates to" +msgstr "" +"\n" +" -f, --file=SÚBOR zostaviť balík alebo odvodeninu, ktorá je " +"výsledkom\n" +" vyhodnotenia kódu v SÚBORE" + +#: guix/scripts/build.scm:347 +msgid "" +"\n" +" -m, --manifest=FILE build the packages that the manifest given in FILE\n" +" evaluates to" +msgstr "" +"\n" +" -m, --manifest=SÚBOR zostaviť balíky, ktoré sú výsledkom vyhodnotenia\n" +" kódu v SÚBORE manifestu" + +#: guix/scripts/build.scm:350 guix/scripts/archive.scm:93 +msgid "" +"\n" +" -S, --source build the packages' source derivations" +msgstr "" +"\n" +" -S, --source zostaviť odvodeniny zdrojov balíkov" + +#: guix/scripts/build.scm:352 +msgid "" +"\n" +" --sources[=TYPE] build source derivations; TYPE may optionally be " +"one\n" +" of \"package\", \"all\" (default), or \"transitive\"" +msgstr "" +"\n" +" --sources[=DRUH] zostaviť odvodeniny zdrojov; DRUH môže byť jeden z\n" +" „package“, „all“ (predvolený), alebo „transitive“" + +#: guix/scripts/build.scm:355 guix/scripts/pull.scm:121 +#: guix/scripts/pack.scm:1086 guix/scripts/archive.scm:95 +#: guix/scripts/environment.scm:151 +msgid "" +"\n" +" -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=SYSTÉM pokúsiť sa o zostavenie pre SYSTÉM, napr. „i686-" +"linux“" + +#: guix/scripts/build.scm:357 guix/scripts/system.scm:1015 +#: guix/scripts/pack.scm:1088 guix/scripts/archive.scm:97 +msgid "" +"\n" +" --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" +msgstr "" +"\n" +" --target=TROJČLEN krížovo zostaviť pre TROJČLEN, napr. „armel-linux-" +"gnu“" + +#: guix/scripts/build.scm:359 +msgid "" +"\n" +" -d, --derivations return the derivation paths of the given packages" +msgstr "" +"\n" +" -d, --derivations vrátiť cesty k odvodeninám daných balíkov" + +#: guix/scripts/build.scm:361 +msgid "" +"\n" +" --check rebuild items to check for non-determinism issues" +msgstr "" +"\n" +" --check opätovne zostaviť položky za účelom zistenia " +"nedeterminizmu" + +#: guix/scripts/build.scm:363 +msgid "" +"\n" +" --repair repair the specified items" +msgstr "" +"\n" +" --repair opraviť dané položky" + +#: guix/scripts/build.scm:365 guix/scripts/pack.scm:1106 +#: guix/scripts/environment.scm:153 +msgid "" +"\n" +" -r, --root=FILE make FILE a symlink to the result, and register it\n" +" as a garbage collector root" +msgstr "" +"\n" +" -r, --root=SÚBOR určiť SÚBOR ako symbolický odkaz na výsledok\n" +" a zaznamenať ho ako koreň zberača odpadkov" + +#: guix/scripts/build.scm:368 guix/scripts/package.scm:480 +#: guix/scripts/install.scm:37 guix/scripts/remove.scm:36 +#: guix/scripts/upgrade.scm:39 guix/scripts/pull.scm:119 +#: guix/scripts/system.scm:1017 guix/scripts/copy.scm:115 +#: guix/scripts/pack.scm:1111 guix/scripts/deploy.scm:58 +#: guix/scripts/archive.scm:99 guix/scripts/environment.scm:177 +msgid "" +"\n" +" -v, --verbosity=LEVEL use the given verbosity LEVEL" +msgstr "" +"\n" +" -v, --verbosity=ÚROVEŇ použiť danú ÚROVEŇ presnosti výstupu" + +#: guix/scripts/build.scm:370 +msgid "" +"\n" +" -q, --quiet do not show the build log" +msgstr "" +"\n" +" -q, --quiet nezobrazovať záznam zostavovania" + +#: guix/scripts/build.scm:372 +msgid "" +"\n" +" --log-file return the log file names for the given derivations" +msgstr "" +"\n" +" --log-file vrátiť názvy súborov so záznamom pre zadané " +"odvodeniny" + +#: guix/scripts/build.scm:379 guix/scripts/download.scm:104 +#: guix/scripts/package.scm:498 guix/scripts/install.scm:44 +#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:48 +#: guix/scripts/search.scm:37 guix/scripts/show.scm:36 guix/scripts/gc.scm:88 +#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110 +#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95 +#: guix/scripts/import/cran.scm:48 guix/scripts/pull.scm:127 +#: guix/scripts/substitute.scm:248 guix/scripts/system.scm:1024 +#: guix/scripts/lint.scm:115 guix/scripts/publish.scm:113 +#: guix/scripts/edit.scm:51 guix/scripts/size.scm:249 +#: guix/scripts/graph.scm:552 guix/scripts/challenge.scm:425 +#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1116 +#: guix/scripts/weather.scm:302 guix/scripts/describe.scm:96 +#: guix/scripts/processes.scm:301 guix/scripts/deploy.scm:53 +#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43 +#: guix/scripts/archive.scm:106 guix/scripts/environment.scm:186 +#: guix/scripts/time-machine.scm:67 guix/scripts/import/cpan.scm:43 +#: guix/scripts/import/crate.scm:49 guix/scripts/import/gem.scm:44 +#: guix/scripts/import/gnu.scm:49 guix/scripts/import/go.scm:48 +#: guix/scripts/import/json.scm:51 guix/scripts/import/nix.scm:43 +#: guix/scripts/import/opam.scm:43 guix/scripts/import/pypi.scm:44 +#: guix/scripts/import/texlive.scm:46 guix/scripts/refresh.scm:186 +#: guix/scripts/repl.scm:83 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +" -h, --help zobraziť túto pomocnú správu a skončiť" + +#: guix/scripts/build.scm:381 guix/scripts/download.scm:106 +#: guix/scripts/package.scm:500 guix/scripts/install.scm:46 +#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:50 +#: guix/scripts/search.scm:39 guix/scripts/show.scm:38 guix/scripts/gc.scm:90 +#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112 +#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97 +#: guix/scripts/import/cran.scm:54 guix/scripts/pull.scm:129 +#: guix/scripts/substitute.scm:250 guix/scripts/system.scm:1026 +#: guix/scripts/lint.scm:119 guix/scripts/publish.scm:115 +#: guix/scripts/edit.scm:53 guix/scripts/size.scm:251 +#: guix/scripts/graph.scm:554 guix/scripts/challenge.scm:427 +#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1118 +#: guix/scripts/weather.scm:304 guix/scripts/describe.scm:98 +#: guix/scripts/processes.scm:303 guix/scripts/deploy.scm:55 +#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45 +#: guix/scripts/archive.scm:108 guix/scripts/environment.scm:188 +#: guix/scripts/time-machine.scm:69 guix/scripts/import/cpan.scm:45 +#: guix/scripts/import/crate.scm:51 guix/scripts/import/gem.scm:46 +#: guix/scripts/import/gnu.scm:51 guix/scripts/import/json.scm:53 +#: guix/scripts/import/nix.scm:45 guix/scripts/import/opam.scm:49 +#: guix/scripts/import/pypi.scm:48 guix/scripts/import/texlive.scm:48 +#: guix/scripts/refresh.scm:188 guix/scripts/repl.scm:85 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +" -V, --version zobraziť podrobnosti o verzii a skončiť" + +#: guix/scripts/build.scm:408 +#, scheme-format +msgid "" +"invalid argument: '~a' option argument: ~a, ~\n" +"must be one of 'package', 'all', or 'transitive'~%" +msgstr "" +"neplatný parameter: „~a“ paramater prepínača: ~a, ~\n" +"musí byť jeden z „package“, „all“ alebo „transitive“~%" + +#: guix/scripts/build.scm:470 +#, scheme-format +msgid "~s: not something we can build~%" +msgstr "~s: nie je niečo čo sa dá zostaviť~%" + +#: guix/scripts/build.scm:475 +msgid "" +"If you build from a file, make sure the last Scheme\n" +"expression returns a package value. @code{define-public} defines a " +"variable,\n" +"but returns @code{#<unspecified>}. To fix this, add a Scheme expression at\n" +"the end of the file that consists only of the package's variable name you\n" +"defined, as in this example:\n" +"\n" +"@example\n" +"(define-public my-package\n" +" (package\n" +" ...))\n" +"\n" +"my-package\n" +"@end example" +msgstr "" +"Ak zostavujete zo súboru, uistite sa, že návratová hodnota posledného\n" +"Scheme výrazu je balík. @code{define-public} zadáva premennú ale vracia\n" +"@code{#<unspecified>}. Tomuto sa dá predísť, ak na koniec súboru\n" +"pridáte Scheme výraz obsahujúci iba názov premennej balíka, ktorý ste\n" +"zadali. Napríklad:\n" +"\n" +"@example\n" +"(define-public moj-balik\n" +" (package\n" +" ...))\n" +"\n" +"moj-balik\n" +"@end example" + +#: guix/scripts/build.scm:488 +msgid "" +"If you build from a file, make sure the last\n" +"Scheme expression returns a package, gexp, derivation or a list of such\n" +"values." +msgstr "" +"Ak zostavujete zo súboru, uistite sa, že návratová hodnota posledného\n" +"Scheme výrazu je balík, gexp, odvodenina alebo zoznam takýchto\n" +"hodnôt." + +#: guix/scripts/build.scm:574 +#, scheme-format +msgid "package '~a' has no source~%" +msgstr "balík „~a“ postráda zdroj~%" + +#: guix/scripts/build.scm:622 +#, scheme-format +msgid "no build log for '~a'~%" +msgstr "žiadny záznam o zostavení pre „~a“~%" + +#: guix/discovery.scm:96 +#, scheme-format +msgid "cannot access `~a': ~a~%" +msgstr "nie je možné pristupovať k „~a“: ~a~%" + +#: guix/lint.scm:181 +msgid "name should be longer than a single character" +msgstr "názov by mal obsahovať viac ako jeden znak" + +#: guix/lint.scm:202 +msgid "description should not be empty" +msgstr "popis by nemal zostať prázdny" + +#: guix/lint.scm:213 +msgid "Texinfo markup in description is invalid" +msgstr "značkovanie Texinfo v popise je neplatné" + +#: guix/lint.scm:223 +#, scheme-format +msgid "" +"description should not contain ~\n" +"trademark sign '~a' at ~d" +msgstr "" +"popis by nemal obsahovať ~\n" +"znak obchodnej značky „~a“ na ~d" + +#. TRANSLATORS: '@code' is Texinfo markup and must be kept +#. as is. +#: guix/lint.scm:236 +msgid "use @code or similar ornament instead of quotes" +msgstr "použite @code alebo podobnú značku namiesto úvodzoviek" + +#: guix/lint.scm:248 +msgid "description should start with an upper-case letter or digit" +msgstr "popis by mal začínať veľkým písmenom alebo číslicou" + +#: guix/lint.scm:266 +#, scheme-format +msgid "" +"sentences in description should be followed ~\n" +"by two spaces; possible infraction~p at ~{~a~^, ~}" +msgstr "" +"vety v popise by mali byť oddelené ~\n" +"dvomi medzerami; možné porušenie pravidla~p na ~{~a~^, ~}" + +#: guix/lint.scm:287 +#, scheme-format +msgid "invalid description: ~s" +msgstr "neplatný popis: ~s" + +#: guix/lint.scm:357 +#, scheme-format +msgid "'~a' should probably be a native input" +msgstr "„~a“ by mal byť pravdepodobne pôvodným vstupom" + +#: guix/lint.scm:372 +#, scheme-format +msgid "'~a' should probably not be an input at all" +msgstr "„~a“ by pravdepodobne vôbec nemal byť vstupom" + +#: guix/lint.scm:393 +msgid "no period allowed at the end of the synopsis" +msgstr "súhrnný popis nemôže končiť bodkou" + +#: guix/lint.scm:407 +msgid "no article allowed at the beginning of the synopsis" +msgstr "súhrnný popis nemôže začínať členom" + +#: guix/lint.scm:416 +msgid "synopsis should be less than 80 characters long" +msgstr "súhrnný popis by nemal byť dlhší ako 80 znakov" + +#: guix/lint.scm:425 +msgid "synopsis should start with an upper-case letter or digit" +msgstr "súhrnný popis by mal začínať veľkým písmenom alebo číslicou" + +#: guix/lint.scm:433 +msgid "synopsis should not start with the package name" +msgstr "súhrnný popis by nemal začínať názvom balíka" + +#: guix/lint.scm:447 +msgid "Texinfo markup in synopsis is invalid" +msgstr "značkovanie Texinfo v súhrnnom popise je neplatné" + +#: guix/lint.scm:462 +msgid "synopsis should not be empty" +msgstr "súhrnný popis by nemal zostať prázdny" + +#: guix/lint.scm:472 +#, scheme-format +msgid "invalid synopsis: ~s" +msgstr "neplatný súhrnný popis: ~s" + +#: guix/lint.scm:590 +#, scheme-format +msgid "URI ~a returned suspiciously small file (~a bytes)" +msgstr "prepojenie ~a poskytlo podozrivo malý súbor (~a bajtov)" + +#: guix/lint.scm:599 +#, scheme-format +msgid "permanent redirect from ~a to ~a" +msgstr "stále presmerovanie z ~a na ~a" + +#: guix/lint.scm:605 +#, scheme-format +msgid "invalid permanent redirect from ~a" +msgstr "neplatné stále presmerovanie z ~a" + +#: guix/lint.scm:611 guix/lint.scm:621 +#, scheme-format +msgid "URI ~a not reachable: ~a (~s)" +msgstr "prepojenie ~a je neprístupné: ~a (~s)" + +#: guix/lint.scm:627 +#, scheme-format +msgid "URI ~a domain not found: ~a" +msgstr "doména prepojenia ~a sa nenašla: ~a" + +#: guix/lint.scm:633 +#, scheme-format +msgid "URI ~a unreachable: ~a" +msgstr "prepojenie ~a nie je prístupné: ~a" + +#: guix/lint.scm:641 +#, scheme-format +msgid "TLS certificate error: ~a" +msgstr "chyba certifikátu TLS: ~a" + +#: guix/lint.scm:668 +msgid "invalid value for home page" +msgstr "neplatná hodnota pre domovskú stránku" + +#: guix/lint.scm:673 +#, scheme-format +msgid "invalid home page URL: ~s" +msgstr "neplatné prepojenie na domovskú stránku: ~s" + +#: guix/lint.scm:710 +msgid "file names of patches should start with the package name" +msgstr "názvy súborov záplat by nemali začínať názvom balíka" + +#: guix/lint.scm:726 +#, scheme-format +msgid "~a: file name is too long" +msgstr "~a: názov súboru je príliš dlhý" + +#: guix/lint.scm:747 +#, scheme-format +msgid "~a: empty patch" +msgstr "~a: prázdna záplata" + +#: guix/lint.scm:755 +#, scheme-format +msgid "~a: patch lacks comment and upstream status" +msgstr "~a: záplate chýba komentár a jej stav u poskytovateľa softvéru" + +#: guix/lint.scm:816 +#, scheme-format +msgid "proposed synopsis: ~s~%" +msgstr "navrhovaný súhrnný popis: ~s~%" + +#: guix/lint.scm:830 +#, scheme-format +msgid "proposed description:~% \"~a\"~%" +msgstr "navrhovaný popis:~% „~a“~%" + +#: guix/lint.scm:881 +msgid "all the source URIs are unreachable:" +msgstr "všetky zdrojové prepojenia sú neprístupné:" + +#: guix/lint.scm:910 +msgid "the source file name should contain the package name" +msgstr "názov zdrojového súboru by nemal obsahovať názov balíka" + +#: guix/lint.scm:922 +msgid "the source URI should not be an autogenerated tarball" +msgstr "" +"zdrojové prepojenie by nemalo odkazovať na automaticky vygenerovaný tar " +"archív" + +#: guix/lint.scm:946 +#, scheme-format +msgid "URL should be 'mirror://~a/~a'" +msgstr "prepojenie by malo byť „zrkadlo://~a/~a“" + +#: guix/lint.scm:991 +#, scheme-format +msgid "URL should be '~a'" +msgstr "prepojenie by malo byť „~a“" + +#: guix/lint.scm:1013 guix/lint.scm:1024 guix/lint.scm:1032 +#, scheme-format +msgid "failed to create ~a derivation: ~a" +msgstr "nepodarilo sa vytvoriť odvodeninu pre ~a: ~a" + +#: guix/lint.scm:1018 guix/lint.scm:1046 +#, scheme-format +msgid "failed to create ~a derivation: ~s" +msgstr "nepodarilo sa vytvoriť odvodeninu pre ~a: ~s" + +#: guix/lint.scm:1074 +#, scheme-format +msgid "propagated inputs ~a and ~a collide" +msgstr "rozšírený vstup ~a je v rozpore s ~a" + +#: guix/lint.scm:1098 +msgid "invalid license field" +msgstr "neplatné pole licencie" + +#: guix/lint.scm:1105 +#, scheme-format +msgid "~a: HTTP GET error for ~a: ~a (~s)~%" +msgstr "~a: chyba HTTP GET pre ~a: ~a (~s)~%" + +#: guix/lint.scm:1115 +#, scheme-format +msgid "~a: host lookup failure: ~a~%" +msgstr "~a: chyba pri zisťovaní názvu hostiteľa: ~a~%" + +#: guix/lint.scm:1120 +#, scheme-format +msgid "~a: TLS certificate error: ~a" +msgstr "~a: chyba TLS certifikátu: ~a" + +#: guix/lint.scm:1131 guix/ui.scm:846 guix/scripts/offload.scm:191 +#, scheme-format +msgid "~a: ~a~%" +msgstr "~a: ~a~%" + +#: guix/lint.scm:1145 +msgid "while retrieving CVE vulnerabilities" +msgstr "pri získavaní zraniteľností CVE" + +#: guix/lint.scm:1188 +#, scheme-format +msgid "probably vulnerable to ~a" +msgstr "pravdepodobne ohrozený ~a" + +#: guix/lint.scm:1196 +#, scheme-format +msgid "no updater for ~a" +msgstr "žiadny nástroj na aktualizáciu pre ~a" + +#: guix/lint.scm:1201 guix/lint.scm:1319 +#, scheme-format +msgid "while retrieving upstream info for '~a'" +msgstr "pri získavaní informácií od poskytovateľa o „~a“" + +#: guix/lint.scm:1210 +#, scheme-format +msgid "can be upgraded to ~a" +msgstr "môže byť aktualizovaný na ~a" + +#: guix/lint.scm:1216 +#, scheme-format +msgid "updater '~a' failed to find upstream releases" +msgstr "nástroju na aktualizáciu „~a“ sa nepodarilo nájsť dostupné vydania" + +#: guix/lint.scm:1233 +msgid "Software Heritage rate limit reached; try again later" +msgstr "" +"bol dosiahnutý povolený počet požiadaviek na Software Heritage; skúste to " +"znova neskôr" + +#: guix/lint.scm:1237 +#, scheme-format +msgid "'~a' returned ~a" +msgstr "„~a“ vrátil ~a" + +#. TRANSLATORS: "Software Heritage" is a proper noun +#. that must remain untranslated. See +#. <https://www.softwareheritage.org>. +#: guix/lint.scm:1276 +msgid "scheduled Software Heritage archival" +msgstr "archivovanie v Software Heritage bolo naplánované" + +#: guix/lint.scm:1282 +msgid "archival rate limit exceeded; try again later" +msgstr "počet archivovaní bol prekročený; skúste to znova neskôr" + +#: guix/lint.scm:1298 +msgid "source not archived on Software Heritage" +msgstr "zdroje neboli archivované v Software Heritage" + +#: guix/lint.scm:1311 +msgid "while connecting to Software Heritage" +msgstr "pri pripájaní do Software Heritage" + +#: guix/lint.scm:1328 +#, scheme-format +msgid "ahead of Stackage LTS version ~a" +msgstr "novší ako verzia Stackage LTS ~a" + +#: guix/lint.scm:1345 +#, scheme-format +msgid "tabulation on line ~a, column ~a" +msgstr "odsek v riadku ~a, stĺpec ~a" + +#: guix/lint.scm:1357 +#, scheme-format +msgid "trailing white space on line ~a" +msgstr "medzera na konci riadku ~a" + +#: guix/lint.scm:1371 +#, scheme-format +msgid "line ~a is way too long (~a characters)" +msgstr "riadok ~a je príliš dlhý (~a znakov)" + +#: guix/lint.scm:1385 +msgid "parentheses feel lonely, move to the previous or next line" +msgstr "" +"zátvorky sa cítia osamotene, premiestnite ich do predchádzajúceho alebo " +"nasledujúceho riadku" + +#: guix/lint.scm:1462 +msgid "source file not found" +msgstr "zdrojový súbor sa nenašiel" + +#: guix/lint.scm:1474 +msgid "Validate package names" +msgstr "Overiť názvy balíkov" + +#: guix/lint.scm:1478 +msgid "Validate package descriptions" +msgstr "Overiť popisy balíkov" + +#: guix/lint.scm:1482 +msgid "Identify inputs that should be native inputs" +msgstr "Označiť vstupy, ktoré by mali byť pôvodné" + +#: guix/lint.scm:1486 +msgid "Identify inputs that shouldn't be inputs at all" +msgstr "Označiť vstupy, ktoré by vôbec nemali byť vstupmi" + +#. TRANSLATORS: <license> is the name of a data type and must not be +#. translated. +#: guix/lint.scm:1492 +msgid "Make sure the 'license' field is a <license> or a list thereof" +msgstr "Zaistiť, že pole „licence“ obsahuje <licence> alebo ich zoznam" + +#: guix/lint.scm:1497 +msgid "Suggest 'mirror://' URLs" +msgstr "Odporúča zdroje „mirror://“" + +#: guix/lint.scm:1501 +msgid "Validate file names of sources" +msgstr "Overiť názvy zdrojových súborov" + +#: guix/lint.scm:1505 +msgid "Check for autogenerated tarballs" +msgstr "Overiť, či sú prítomné automaticky vytvorené tar archívy" + +#: guix/lint.scm:1509 +msgid "Report failure to compile a package to a derivation" +msgstr "Nahlásiť zlyhanie zostavovania odvodeniny balíka" + +#: guix/lint.scm:1514 +msgid "Report collisions that would occur due to propagated inputs" +msgstr "Nahlásiť rozpory, ktoré by mohli nastať kvôli rozšíreným vstupom" + +#: guix/lint.scm:1519 +msgid "Validate file names and availability of patches" +msgstr "Overiť názvy súborov a dostupnosť záplat" + +#: guix/lint.scm:1523 +msgid "Validate patch headers" +msgstr "Overiť hlavičky záplat" + +#: guix/lint.scm:1527 +msgid "Look for formatting issues in the source" +msgstr "Vyhľadať chyby formátovania v zdrojovom súbore" + +#: guix/lint.scm:1534 +msgid "Validate package synopses" +msgstr "Overiť súhrnné popisy balíkov" + +#: guix/lint.scm:1538 +msgid "Validate synopsis & description of GNU packages" +msgstr "Overiť súhrnné popisy a popisy GNU balíkov" + +#: guix/lint.scm:1542 +msgid "Validate home-page URLs" +msgstr "Overiť prepojenia na domovské stránky" + +#: guix/lint.scm:1546 +msgid "Validate source URLs" +msgstr "Overiť prepojenia na zdroje" + +#: guix/lint.scm:1550 +msgid "Suggest GitHub URLs" +msgstr "Navrhnúť prepojenia na GitHub" + +#: guix/lint.scm:1554 +msgid "Check the Common Vulnerabilities and Exposures (CVE) database" +msgstr "Overiť databázu Všeobecne známych zraniteľností a chýb (CVE)" + +#: guix/lint.scm:1559 +msgid "Check the package for new upstream releases" +msgstr "Vyhľadať novšie vydania balíka" + +#: guix/lint.scm:1563 +msgid "Ensure source code archival on Software Heritage" +msgstr "Zaistiť archivovanie zdrojového kódu v Software Heritage" + +#: guix/lint.scm:1567 +msgid "Ensure Haskell packages use Stackage LTS versions" +msgstr "Zaistiť, že balíky Haskellu používajú verzie Stackage LTS" + +#: guix/scripts/download.scm:87 +msgid "" +"Usage: guix download [OPTION] URL\n" +"Download the file at URL to the store or to the given file, and print its\n" +"file name and the hash of its contents.\n" +msgstr "" +"Použitie: guix download [PREPÍNAČ] PREPOJENIE\n" +"Použiť PREPOJENIE na stiahnutie súboru do úložiska alebo do zadaného " +"umiestnenia\n" +"a zobraziť jeho názov a odtlačok obsahu.\n" + +#: guix/scripts/download.scm:91 guix/scripts/hash.scm:53 +msgid "" +"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n" +"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n" +msgstr "" +"Podporované formáty: „base64“, „nix-base32“ (predvolený), „base32“,\n" +"a „base16“ (takisto môžu byť použité aj „hex“ a „hexadecimal“).\n" + +#: guix/scripts/download.scm:94 guix/scripts/hash.scm:60 +msgid "" +"\n" +" -f, --format=FMT write the hash in the given format" +msgstr "" +"\n" +" -f, --format=FORMÁT vytvoriť odtlačok vo FORMÁTE" + +#: guix/scripts/download.scm:96 guix/scripts/hash.scm:58 +msgid "" +"\n" +" -H, --hash=ALGORITHM use the given hash ALGORITHM" +msgstr "" +"\n" +" -H, --hash=ALGORITMUS použiť ALGORITMUS na vytvorenie odtlačku" + +#: guix/scripts/download.scm:98 +msgid "" +"\n" +" --no-check-certificate\n" +" do not validate the certificate of HTTPS servers " +msgstr "" +"\n" +" --no-check-certificate\n" +" neoverovať certifikáty HTTPS serverov " + +#: guix/scripts/download.scm:101 +msgid "" +"\n" +" -o, --output=FILE download to FILE" +msgstr "" +"\n" +" -o, --output=SÚBOR stiahnuť do SÚBORU" + +#: guix/scripts/download.scm:126 guix/scripts/hash.scm:97 +#, scheme-format +msgid "unsupported hash format: ~a~%" +msgstr "nepodporovaný formát odtlačku: ~a~%" + +#: guix/scripts/download.scm:134 guix/scripts/hash.scm:81 +#, scheme-format +msgid "~a: unknown hash algorithm~%" +msgstr "~a: neznámy algoritmus na vytváranie odtlačkov~%" + +#: guix/scripts/download.scm:171 guix/scripts/package.scm:1072 +#: guix/scripts/pull.scm:760 guix/scripts/publish.scm:1125 +#: guix/scripts/time-machine.scm:123 +#, scheme-format +msgid "~A: extraneous argument~%" +msgstr "~A: nadbytočný parameter~%" + +#: guix/scripts/download.scm:177 +#, scheme-format +msgid "no download URI was specified~%" +msgstr "nebolo zadané žiadne prepojenie sťahovania~%" + +#: guix/scripts/download.scm:182 +#, scheme-format +msgid "~a: failed to parse URI~%" +msgstr "~a: nepodarilo sa spracovať prepojenie~%" + +#: guix/scripts/download.scm:192 +#, scheme-format +msgid "~a: download failed~%" +msgstr "~a: sťahovanie zlyhalo~%" + +#: guix/scripts/package.scm:128 +#, scheme-format +msgid "not removing generation ~a, which is current~%" +msgstr "aktuálne pokolenie ~a nebude odstránené~%" + +#: guix/scripts/package.scm:135 +#, scheme-format +msgid "no matching generation~%" +msgstr "žiadne pokolenie sa nezhoduje~%" + +#: guix/scripts/package.scm:157 +#, scheme-format +msgid "nothing to be done~%" +msgstr "nevyžaduje sa žiadna činnosť~%" + +#: guix/scripts/package.scm:258 +#, scheme-format +msgid "package '~a' no longer exists~%" +msgstr "balík „~a“ už neexistuje~%" + +#: guix/scripts/package.scm:313 +#, scheme-format +msgid "" +"Consider setting the necessary environment\n" +"variables by running:\n" +"\n" +"@example\n" +"GUIX_PROFILE=\"~a\"\n" +". \"$GUIX_PROFILE/etc/profile\"\n" +"@end example\n" +"\n" +"Alternately, see @command{guix package --search-paths -p ~s}." +msgstr "" +"Zvážte nastavenie potrebných premenných\n" +"prostredia pomocou:\n" +"\n" +"@example\n" +"GUIX_PROFILE=\"~a\"\n" +". \"$GUIX_PROFILE/etc/profile\"\n" +"@end example\n" +"\n" +"Pozri tiež @command{guix package --search-paths -p ~s}." + +#: guix/scripts/package.scm:355 +msgid "" +";; This \"manifest\" file can be passed to 'guix package -m' to reproduce\n" +";; the content of your profile. This is \"symbolic\": it only specifies\n" +";; package names. To reproduce the exact same profile, you also need to\n" +";; capture the channels being used, as returned by \"guix describe\".\n" +";; See the \"Replicating Guix\" section in the manual.\n" +msgstr "" +";; Tento „manifest“ súbor môžete pomocou príkazu „guix package -m“ použiť\n" +";; na napodobnenie vášho profilu. Tento obsah je „symbolický“ a určuje iba " +"názvy\n" +";; balíkov. Na napodobnenie rovnakého profilu si budete ešte musieť " +"zaznamenať\n" +";; aj použité kanály, ktorých podrobnosti poskytuje príkaz „guix describe“.\n" +";; Pozri oddiel „Rozmnožovanie systému Guix“ v príručke.\n" + +#: guix/scripts/package.scm:387 +#, scheme-format +msgid "no provenance information for this profile~%" +msgstr "žiadne údaje o pôvode pre tento profil~%" + +#: guix/scripts/package.scm:389 +msgid "" +";; This channel file can be passed to 'guix pull -C' or to\n" +";; 'guix time-machine -C' to obtain the Guix revision that was\n" +";; used to populate this profile.\n" +msgstr "" +";; Tento súbor kanálov môžete pomocou príkazu „guix pull -C“\n" +";; alebo „guix time-machine -C“ použiť na zistenie čísla úpravy\n" +";; systému Guix, ktorá bola použitá pri vytváraní tohto profilu.\n" + +#: guix/scripts/package.scm:401 +#, scheme-format +msgid "" +";; Note: these other commits were also used to install some of the packages " +"in this profile:~%" +msgstr "" +";; Poznámka: aj tieto čísla úprav boli použité pri inštalácii niektorých " +"balíkov tohto profilu:~%" + +#: guix/scripts/package.scm:431 +msgid "" +"Usage: guix package [OPTION]...\n" +"Install, remove, or upgrade packages in a single transaction.\n" +msgstr "" +"Použitie: guix package [PREPÍNAČ]...\n" +"Inštalovať, odstrániť alebo aktualizovať balíky vrámci jednej nedeliteľnej " +"úlohy.\n" + +#: guix/scripts/package.scm:433 +msgid "" +"\n" +" -i, --install PACKAGE ...\n" +" install PACKAGEs" +msgstr "" +"\n" +" -i, --install BALÍK ...\n" +" inštalovať BALÍKY" + +#: guix/scripts/package.scm:436 +msgid "" +"\n" +" -e, --install-from-expression=EXP\n" +" install the package EXP evaluates to" +msgstr "" +"\n" +" -e, --install-from-expression=VÝRAZ\n" +" inštalovať balíky, ktorých názvy sú výsledkom " +"vyhodnotenia VÝRAZU" + +#: guix/scripts/package.scm:439 +msgid "" +"\n" +" -f, --install-from-file=FILE\n" +" install the package that the code within FILE\n" +" evaluates to" +msgstr "" +"\n" +" -f, --install-from-file=SÚBOR\n" +" inštalovať balíky, ktoré sú výsledkom vyhodnotenia\n" +" kódu v SÚBORE" + +#: guix/scripts/package.scm:443 +msgid "" +"\n" +" -r, --remove PACKAGE ...\n" +" remove PACKAGEs" +msgstr "" +"\n" +" -r, --remove BALÍK ...\n" +" odstrániť BALÍKY" + +#: guix/scripts/package.scm:446 +msgid "" +"\n" +" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" +msgstr "" +"\n" +" -u, --upgrade[=VÝRAZ] aktualizovať všetky nainštalované balíky, ktorých " +"názov sa zhoduje s regulárnym VÝRAZOM" + +#: guix/scripts/package.scm:448 +msgid "" +"\n" +" -m, --manifest=FILE create a new profile generation with the manifest\n" +" from FILE" +msgstr "" +"\n" +" -m, --manifest=SÚBOR vytvoriť nové pokolenie profilu podľa\n" +" manifestu zo SÚBORU" + +#: guix/scripts/package.scm:451 guix/scripts/upgrade.scm:41 +msgid "" +"\n" +" --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" +msgstr "" +"\n" +" --do-not-upgrade[=VÝRAZ] neaktualizovať žiadne balíky, ktorých názov " +"sa zhoduje s regulárnym VÝRAZOM" + +#: guix/scripts/package.scm:453 guix/scripts/pull.scm:109 +msgid "" +"\n" +" --roll-back roll back to the previous generation" +msgstr "" +"\n" +" --roll-back vrátiť sa k predchádzajúcemu pokoleniu" + +#: guix/scripts/package.scm:455 +msgid "" +"\n" +" --search-paths[=KIND]\n" +" display needed environment variable definitions" +msgstr "" +"\n" +" --search-paths[=DRUH]\n" +" zobraziť potrebné zadania premenných prostredia" + +#: guix/scripts/package.scm:458 guix/scripts/pull.scm:106 +msgid "" +"\n" +" -l, --list-generations[=PATTERN]\n" +" list generations matching PATTERN" +msgstr "" +"\n" +" -l, --list-generations[=VZOR]\n" +" zobraziť pokolenia zhodujúce sa so VZOROM" + +#: guix/scripts/package.scm:461 guix/scripts/pull.scm:111 +msgid "" +"\n" +" -d, --delete-generations[=PATTERN]\n" +" delete generations matching PATTERN" +msgstr "" +"\n" +" -d, --delete-generations[=VZOR]\n" +" odstrániť pokolenia zhodujúce sa so VZOROM" + +#: guix/scripts/package.scm:464 guix/scripts/pull.scm:114 +msgid "" +"\n" +" -S, --switch-generation=PATTERN\n" +" switch to a generation matching PATTERN" +msgstr "" +"\n" +" -S, --switch-generation=VZOR\n" +" prepnúť na pokolenie zhodujúce sa so VZOROM" + +#: guix/scripts/package.scm:467 +msgid "" +"\n" +" --export-manifest print a manifest for the chosen profile" +msgstr "" +"\n" +" --export-manifest zobraziť manifest zodpovedajúci zvolenému profilu" + +#: guix/scripts/package.scm:469 +msgid "" +"\n" +" --export-channels print channels for the chosen profile" +msgstr "" +"\n" +" --export-channels zobraziť kanály zvoleného profilu" + +#: guix/scripts/package.scm:471 guix/scripts/install.scm:34 +#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:37 +msgid "" +"\n" +" -p, --profile=PROFILE use PROFILE instead of the user's default profile" +msgstr "" +"\n" +" -p, --profile=PROFIL použiť PROFIL namiesto predvoleného profilu " +"používateľa" + +#: guix/scripts/package.scm:473 +msgid "" +"\n" +" --list-profiles list the user's profiles" +msgstr "" +"\n" +" --list-profiles zobraziť profily používateľa" + +#: guix/scripts/package.scm:476 +msgid "" +"\n" +" --allow-collisions do not treat collisions in the profile as an error" +msgstr "" +"\n" +" --allow-collisions nepovažovať rozpory v profile za chyby" + +#: guix/scripts/package.scm:478 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the profile" +msgstr "" +"\n" +" --bootstrap použiť zavádzací Guile na zostavenie profilu" + +#: guix/scripts/package.scm:483 +msgid "" +"\n" +" -s, --search=REGEXP search in synopsis and description using REGEXP" +msgstr "" +"\n" +" -s, --search=REGULÁRNY-VÝRAZ vyhľadávať v súhrnných popisoch a popisoch " +"s použitím REGULÁRNEHO-VÝRAZU" + +#: guix/scripts/package.scm:485 +msgid "" +"\n" +" -I, --list-installed[=REGEXP]\n" +" list installed packages matching REGEXP" +msgstr "" +"\n" +" -I, --list-installed[=REGULÁRNY-VÝRAZ]\n" +" zobraziť nainštalované balíky, ktorých názvy sa " +"zhodujú s REGULÁRNYM-VÝRAZOM" + +#: guix/scripts/package.scm:488 +msgid "" +"\n" +" -A, --list-available[=REGEXP]\n" +" list available packages matching REGEXP" +msgstr "" +"\n" +" -A, --list-available[=REGULÁRNY-VÝRAZ]\n" +" zobraziť dostupné balíky, ktorých názov sa zhoduje " +"s REGULÁRNYM-VÝRAZOM" + +#: guix/scripts/package.scm:491 +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" --show=BALÍK zobraziť podrobnosti BALÍKA" + +#: guix/scripts/package.scm:546 +#, scheme-format +msgid "upgrade regexp '~a' looks like a command-line option~%" +msgstr "regulárny výraz „~a“ sa podobá na prepínač príkazu~%" + +#: guix/scripts/package.scm:549 +#, scheme-format +msgid "is this intended?~%" +msgstr "je to úmyselné?~%" + +#: guix/scripts/package.scm:599 +#, scheme-format +msgid "~a: unsupported kind of search path~%" +msgstr "~a: nepodporovaný druh prehľadávanej cesty~%" + +#: guix/scripts/package.scm:733 +#, scheme-format +msgid "cannot install non-package object: ~s~%" +msgstr "nedá sa nainštalovať niečo čo nie je balík: ~s~%" + +#: guix/scripts/package.scm:914 +#, scheme-format +msgid "~a~@[@~a~]: package not found~%" +msgstr "~a~@[@~a~]: balík sa nenašiel~%" + +#: guix/scripts/package.scm:961 guix/scripts/pull.scm:689 +#, scheme-format +msgid "cannot switch to generation '~a'~%" +msgstr "nepodarilo sa prepnúť na pokolenie „~a“~%" + +#: guix/scripts/install.scm:31 +msgid "" +"Usage: guix install [OPTION] PACKAGES...\n" +"Install the given PACKAGES.\n" +"This is an alias for 'guix package -i'.\n" +msgstr "" +"Použitie: guix install [PREPÍNAČ] BALÍKY...\n" +"Inštalovať BALÍKY.\n" +"Tento príkaz odkazuje na „guix package -i“.\n" + +#: guix/scripts/remove.scm:30 +msgid "" +"Usage: guix remove [OPTION] PACKAGES...\n" +"Remove the given PACKAGES.\n" +"This is an alias for 'guix package -r'.\n" +msgstr "" +"Použitie: guix remove [PREPÍNAČ] BALÍKY...\n" +"Odstrániť BALÍKY.\n" +"Tento príkaz odkazuje na „guix package -r“.\n" + +#: guix/scripts/upgrade.scm:34 +msgid "" +"Usage: guix upgrade [OPTION] [REGEXP]\n" +"Upgrade packages that match REGEXP.\n" +"This is an alias for 'guix package -u'.\n" +msgstr "" +"Použitie: guix upgrade [PREPÍNAČ] [REGULÁRNY-VÝRAZ]\n" +"Aktualizovať balíky, ktorých názov sa zhoduje s REGULÁRNYM-VÝRAZOM.\n" +"Tento príkaz odkazuje na „guix package -u“.\n" + +#: guix/scripts/search.scm:32 +msgid "" +"Usage: guix search [OPTION] REGEXPS...\n" +"Search for packages matching REGEXPS." +msgstr "" +"Použitie: guix search [PREPÍNAČ] REGULÁRNE-VÝRAZY...\n" +"Vyhľadať balíky, ktorých názov sa zhoduje s REGULÁRNYMI-VÝRAZMI." + +#: guix/scripts/search.scm:34 +msgid "" +"\n" +"This is an alias for 'guix package -s'.\n" +msgstr "" +"\n" +"Tento príkaz odkazuje na „guix package -s“.\n" + +#: guix/scripts/search.scm:75 +#, scheme-format +msgid "missing arguments: no regular expressions to search for~%" +msgstr "chýbajúce parametre: žiadne regulárne výrazy pre vyhľadávanie~%" + +#: guix/scripts/show.scm:31 +msgid "" +"Usage: guix show [OPTION] PACKAGE...\n" +"Show details about PACKAGE." +msgstr "" +"Použitie: guix show [PREPÍNAČ] BALÍK...\n" +"Zobraziť podrobnosti BALÍKA." + +#: guix/scripts/show.scm:33 +msgid "" +"\n" +"This is an alias for 'guix package --show='.\n" +msgstr "" +"\n" +"Tento príkaz odkazuje na „guix package --show=“.\n" + +#: guix/scripts/show.scm:74 +#, scheme-format +msgid "missing arguments: no package to show~%" +msgstr "chýbajúce parametre: žiadny balík na zobrazenie~%" + +#: guix/scripts/gc.scm:47 +msgid "" +"Usage: guix gc [OPTION]... PATHS...\n" +"Invoke the garbage collector.\n" +msgstr "" +"Použitie: guix gc [PREPÍNAČ]... CESTY...\n" +"Spustiť zberač odpadkov (GC).\n" + +#: guix/scripts/gc.scm:49 +msgid "" +"\n" +" -C, --collect-garbage[=MIN]\n" +" collect at least MIN bytes of garbage" +msgstr "" +"\n" +" -C, --collect-garbage[=MIN]\n" +" zozbierať najmenej MIN bajtov odpadu" + +#: guix/scripts/gc.scm:52 +msgid "" +"\n" +" -F, --free-space=FREE attempt to reach FREE available space in the store" +msgstr "" +"\n" +" -F, --free-space=VOĽNÉ pokúsiť sa dosiahnuť dostupné VOĽNÉ miesto v " +"úložisku" + +#: guix/scripts/gc.scm:54 +msgid "" +"\n" +" -d, --delete-generations[=PATTERN]\n" +" delete profile generations matching PATTERN" +msgstr "" +"\n" +" -d, --delete-generations[=VZOR]\n" +" odstrániť pokolenia zhodujúce sa so VZOROM" + +#: guix/scripts/gc.scm:57 +msgid "" +"\n" +" -D, --delete attempt to delete PATHS" +msgstr "" +"\n" +" -D, --delete pokúsiť sa odstrániť CESTY" + +#: guix/scripts/gc.scm:59 +msgid "" +"\n" +" --list-roots list the user's garbage collector roots" +msgstr "" +"\n" +" --list-roots zobraziť korene zberača odpadkov pre používateľa" + +#: guix/scripts/gc.scm:61 +msgid "" +"\n" +" --list-busy list store items used by running processes" +msgstr "" +"\n" +" --list-busy zobraziť položky úložiska používané práve " +"spustenými procesmi" + +#: guix/scripts/gc.scm:63 +msgid "" +"\n" +" --optimize optimize the store by deduplicating identical files" +msgstr "" +"\n" +" --optimize usporiť miesto v úložisku odstránením podvojných " +"súborov" + +#: guix/scripts/gc.scm:65 +msgid "" +"\n" +" --list-dead list dead paths" +msgstr "" +"\n" +" --list-dead zobraziť neplatné cesty" + +#: guix/scripts/gc.scm:67 +msgid "" +"\n" +" --list-live list live paths" +msgstr "" +"\n" +" --list-live zobraziť platné cesty" + +#: guix/scripts/gc.scm:70 +msgid "" +"\n" +" --references list the references of PATHS" +msgstr "" +"\n" +" --references zobraziť prepojenia na CESTY" + +#: guix/scripts/gc.scm:72 +msgid "" +"\n" +" -R, --requisites list the requisites of PATHS" +msgstr "" +"\n" +" -R, --requisites zobraziť požiadavky pre CESTY" + +#: guix/scripts/gc.scm:74 +msgid "" +"\n" +" --referrers list the referrers of PATHS" +msgstr "" +"\n" +" --referrers zobraziť odkazy na CESTY" + +#: guix/scripts/gc.scm:76 +msgid "" +"\n" +" --derivers list the derivers of PATHS" +msgstr "" +"\n" +" --derivers zobraziť odvodeniny vedúce k CESTÁM" + +#: guix/scripts/gc.scm:79 +msgid "" +"\n" +" --verify[=OPTS] verify the integrity of the store; OPTS is a\n" +" comma-separated combination of 'repair' and\n" +" 'contents'" +msgstr "" +"\n" +" --verify[=MOŽNOSTI] overiť celistvosť úložiska; MOŽNOSTI sú\n" +" kombináciou „repair“ a „contents“ oddelených\n" +" čiarkou" + +#: guix/scripts/gc.scm:83 +msgid "" +"\n" +" --list-failures list cached build failures" +msgstr "" +"\n" +" --list-failures zobraziť neúspešné zostavenia vo vyrovnávacej pamäti" + +#: guix/scripts/gc.scm:85 +msgid "" +"\n" +" --clear-failures remove PATHS from the set of cached failures" +msgstr "" +"\n" +" --clear-failures odstrániť CESTY spomedzi zlyhaní vo vyrovnávacej " +"pamäti" + +#: guix/scripts/gc.scm:99 +#, scheme-format +msgid "~a: invalid '--verify' option~%" +msgstr "~a: neplatný prepínač „--verify“~%" + +#: guix/scripts/gc.scm:142 +#, scheme-format +msgid "invalid amount of storage: ~a~%" +msgstr "neplatná veľkosť úložiska: ~a~%" + +#: guix/scripts/gc.scm:156 +#, scheme-format +msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%" +msgstr "" +"používanie „-d“ namiesto „--delete“ sa už neodporúča; namiesto toho použite " +"„-D“~%" + +#: guix/scripts/gc.scm:163 +#, scheme-format +msgid "~s does not denote a duration~%" +msgstr "~s neoznačuje trvanie~%" + +#: guix/scripts/gc.scm:251 +msgid "already ~h MiBs available on ~a, nothing to do~%" +msgstr "na ~a už je ~h MiB voľného miesta, žiadna činnosť sa nevyžaduje~%" + +#: guix/scripts/gc.scm:254 +msgid "freeing ~h MiBs~%" +msgstr "uvoľňuje sa ~h MiB~%" + +#: guix/scripts/gc.scm:293 +#, scheme-format +msgid "extraneous arguments: ~{~a ~}~%" +msgstr "nadbytočné parametre: ~{~a~}~%" + +#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320 +msgid "freed ~h MiBs~%" +msgstr "uvoľnilo sa ~h MiB~%" + +#: guix/scripts/git.scm:26 +msgid "" +"Usage: guix git COMMAND ARGS...\n" +"Operate on Git repositories.\n" +msgstr "" +"Použitie: guix git PRÍKAZ PARAMETRE...\n" +"Vykonáva príkazy v Git repozitároch.\n" + +#: guix/scripts/git.scm:29 guix/scripts/system.scm:939 +#: guix/scripts/container.scm:30 +msgid "The valid values for ACTION are:\n" +msgstr "Platné hodnoty pre ČINNOSŤ sú:\n" + +#: guix/scripts/git.scm:31 +msgid " authenticate verify commit signatures and authorizations\n" +msgstr " authenticate overuje podpisy úprav (commitov) a povolenia\n" + +#: guix/scripts/git.scm:57 +#, scheme-format +msgid "guix git: missing sub-command~%" +msgstr "guix git: chýba podpríkaz~%" + +#: guix/scripts/git.scm:67 +#, scheme-format +msgid "guix git: invalid sub-command~%" +msgstr "guix git: neplatný podpríkaz~%" + +#: guix/scripts/git/authenticate.scm:81 +#, scheme-format +msgid "Signing statistics:~%" +msgstr "Štatistika podpisovania:~%" + +#: guix/scripts/git/authenticate.scm:94 +msgid "" +"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n" +"Authenticate the given Git checkout using COMMIT/SIGNER as its " +"introduction.\n" +msgstr "" +"Použitie: guix git authenticate ČÍSLO-ÚPRAVY PODPISUJÚCI [PREPÍNAČE...]\n" +"Overiť daný Git repozitár od vstupného bodu ČÍSLO-ÚPRAVY(commit)/" +"PODPISUJÚCI.\n" + +#: guix/scripts/git/authenticate.scm:96 +msgid "" +"\n" +" -r, --repository=DIRECTORY\n" +" open the Git repository at DIRECTORY" +msgstr "" +"\n" +" -r, --repository=PRIEČINOK\n" +" otvoriť Git repozitár v PRIEČINKU" + +#: guix/scripts/git/authenticate.scm:99 +msgid "" +"\n" +" -k, --keyring=REFERENCE\n" +" load keyring from REFERENCE, a Git branch" +msgstr "" +"\n" +" -k, --keyring=ODKAZ\n" +" načítať kľúčenku z ODKAZU, Git vetvy" + +#: guix/scripts/git/authenticate.scm:102 +msgid "" +"\n" +" --stats display commit signing statistics upon completion" +msgstr "" +"\n" +" --stats po dokončení zobraziť štatistiku podpisovania" + +#: guix/scripts/git/authenticate.scm:104 +msgid "" +"\n" +" --cache-key=KEY cache authenticated commits under KEY" +msgstr "" +"\n" +" --cache-key=KĽÚČ uložiť čísla úprav (commity) overené " +"prostredníctvom KĽÚČA do vyrovnávacej pamäte" + +#: guix/scripts/git/authenticate.scm:106 +msgid "" +"\n" +" --historical-authorizations=FILE\n" +" read historical authorizations from FILE" +msgstr "" +"\n" +" --historical-authorizations=SÚBOR\n" +" prečítať predchádzajúce overenia zo SÚBORU" + +#: guix/scripts/git/authenticate.scm:138 +msgid "Authenticating commits ~a to ~a (~h new commits)...~%" +msgstr "Overovanie úprav (commitov) od ~a po ~a (~h nových úprav)...~%" + +#: guix/scripts/git/authenticate.scm:178 +#, scheme-format +msgid "wrong number of arguments; expected COMMIT and SIGNER~%" +msgstr "" +"nesprávny počet parametrov; očakávali sa ČÍSLO-ÚPRAVY(COMMIT) a PODPISUJÚCI~%" + +#: guix/scripts/hash.scm:50 +msgid "" +"Usage: guix hash [OPTION] FILE\n" +"Return the cryptographic hash of FILE.\n" +msgstr "" +"Použitie: guix hash [PREPÍNAČ] SÚBOR\n" +"Vrátiť kryptografický odtlačok SÚBORU.\n" + +#: guix/scripts/hash.scm:56 +msgid "" +"\n" +" -x, --exclude-vcs exclude version control directories" +msgstr "" +"\n" +" -x, --exclude-vcs vylúčiť priečinky zo sledovania verzií" + +#: guix/scripts/hash.scm:62 +msgid "" +"\n" +" -r, --recursive compute the hash on FILE recursively" +msgstr "" +"\n" +" -r, --recursive rekurzívne vypočítať odtlačok SÚBORU" + +#: guix/scripts/hash.scm:172 guix/ui.scm:398 guix/ui.scm:429 guix/ui.scm:789 +#: guix/ui.scm:837 guix/ui.scm:893 +#, scheme-format +msgid "~a~%" +msgstr "~a~%" + +#: guix/scripts/hash.scm:175 guix/scripts/system.scm:1298 +#: guix/scripts/system.scm:1314 guix/scripts/system.scm:1321 +#: guix/scripts/system.scm:1327 guix/scripts/import/gnu.scm:103 +#: guix/scripts/import/nix.scm:90 guix/scripts/offload.scm:826 +#: guix/scripts/offload.scm:838 +#, scheme-format +msgid "wrong number of arguments~%" +msgstr "nesprávny počet parametrov~%" + +#: guix/scripts/import.scm:89 +msgid "" +"Usage: guix import IMPORTER ARGS ...\n" +"Run IMPORTER with ARGS.\n" +msgstr "" +"Použitie: guix import NAHRÁVAČ PARAMETRE...\n" +"Spustiť NAHRÁVAČ s PARAMETRAMI.\n" + +#: guix/scripts/import.scm:92 +msgid "IMPORTER must be one of the importers listed below:\n" +msgstr "NAHRÁVAČ musí byť jeden z nahrávačov zobrazených nižšie:\n" + +#: guix/scripts/import.scm:109 +#, scheme-format +msgid "guix import: missing importer name~%" +msgstr "guix import: chýba názov nahrávača~%" + +#: guix/scripts/import.scm:131 +#, scheme-format +msgid "'~a' import failed~%" +msgstr "nahrávač „~a“ zlyhal~%" + +#: guix/scripts/import.scm:132 +#, scheme-format +msgid "~a: invalid importer~%" +msgstr "~a: neplatný nahrávač~%" + +#: guix/scripts/import/cran.scm:44 +msgid "" +"Usage: guix import cran PACKAGE-NAME\n" +"Import and convert the CRAN package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import cran NÁZOV-BALÍKA\n" +"Nahrať a previesť CRAN balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/cran.scm:46 guix/scripts/import/texlive.scm:44 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" +"\n" +" -a, --archive=ARCHÍV určiť repozitár archívov" + +#: guix/scripts/import/cran.scm:50 guix/scripts/import/crate.scm:46 +#: guix/scripts/import/opam.scm:45 guix/scripts/import/pypi.scm:46 +msgid "" +"\n" +" -r, --recursive import packages recursively" +msgstr "" +"\n" +" -r, --recursive nahrať balíky rekurzívne" + +#: guix/scripts/import/cran.scm:52 +msgid "" +"\n" +" -s, --style=STYLE choose output style, either specification or " +"variable" +msgstr "" +"\n" +" -s, --style=ŠTÝL vybrať štýl výstupu, buď „specification“ alebo " +"„variable“" + +#: guix/scripts/import/cran.scm:116 guix/scripts/import/texlive.scm:95 +#, scheme-format +msgid "failed to download description for package '~a'~%" +msgstr "chyba pri sťahovaní popisu balíka „~a“~%" + +#: guix/scripts/import/cran.scm:120 guix/scripts/import/elpa.scm:113 +#: guix/scripts/import/cpan.scm:90 guix/scripts/import/crate.scm:107 +#: guix/scripts/import/gem.scm:104 guix/scripts/import/go.scm:125 +#: guix/scripts/import/hackage.scm:161 guix/scripts/import/json.scm:100 +#: guix/scripts/import/opam.scm:110 guix/scripts/import/pypi.scm:105 +#: guix/scripts/import/stackage.scm:133 guix/scripts/import/texlive.scm:99 +#, scheme-format +msgid "too few arguments~%" +msgstr "primálo parametrov~%" + +#: guix/scripts/import/cran.scm:122 guix/scripts/import/elpa.scm:115 +#: guix/scripts/import/cpan.scm:92 guix/scripts/import/crate.scm:109 +#: guix/scripts/import/gem.scm:106 guix/scripts/import/go.scm:127 +#: guix/scripts/import/hackage.scm:152 guix/scripts/import/hackage.scm:163 +#: guix/scripts/import/json.scm:102 guix/scripts/import/opam.scm:112 +#: guix/scripts/import/pypi.scm:107 guix/scripts/import/stackage.scm:135 +#: guix/scripts/import/texlive.scm:101 +#, scheme-format +msgid "too many arguments~%" +msgstr "priveľa parametrov~%" + +#: guix/scripts/import/elpa.scm:44 +msgid "" +"Usage: guix import elpa PACKAGE-NAME\n" +"Import the latest package named PACKAGE-NAME from an ELPA repository.\n" +msgstr "" +"Použitie: guix import elpa NÁZOV-BALÍKA\n" +"Nahrať najnovší balík s názvom NÁZOV-BALÍKA z repozitára ELPA.\n" + +#: guix/scripts/import/elpa.scm:46 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" +"\n" +" -a, --archive=ARCHÍV určiť repozitár archívov" + +#: guix/scripts/import/elpa.scm:48 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +" -h, --help zobraziť túto pomôcku a skončiť" + +#: guix/scripts/import/elpa.scm:50 +msgid "" +"\n" +" -r, --recursive generate package expressions for all Emacs " +"packages that are not yet in Guix" +msgstr "" +"\n" +" -r, --recursive vytvoriť výrazy balíkov pre všetky balíky " +"Emacs, ktoré ešte nie sú dostupné v systéme Guix" + +#: guix/scripts/import/elpa.scm:52 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +" -V, --version zobraziť podrobnosti o verzii a skončiť" + +#: guix/scripts/import/elpa.scm:110 +#, scheme-format +msgid "failed to download package '~a'~%" +msgstr "chyba pri sťahovaní balíka „~a“~%" + +#: guix/scripts/pull.scm:89 +msgid "" +"Usage: guix pull [OPTION]...\n" +"Download and deploy the latest version of Guix.\n" +msgstr "" +"Použitie: guix pull [PREPÍNAČ]...\n" +"Stiahnuť a prejsť na najnovšiu verziu systému Guix.\n" + +#: guix/scripts/pull.scm:91 guix/scripts/time-machine.scm:53 +msgid "" +"\n" +" -C, --channels=FILE deploy the channels defined in FILE" +msgstr "" +"\n" +" -C, --channels=SÚBOR použiť kanály zo SÚBORU" + +#: guix/scripts/pull.scm:93 +msgid "" +"\n" +" --url=URL download \"guix\" channel from the Git repository " +"at URL" +msgstr "" +"\n" +" --url=PREPOJENIE stiahnuť Git repozitár kanála „guix“ z " +"PREPOJENIA" + +#: guix/scripts/pull.scm:95 +msgid "" +"\n" +" --commit=COMMIT download the specified \"guix\" channel COMMIT" +msgstr "" +"\n" +" --commit=ÚPRAVA stiahnuť danú úpravu (commit) kanála „guix“" + +#: guix/scripts/pull.scm:97 +msgid "" +"\n" +" --branch=BRANCH download the tip of the specified \"guix\" channel " +"BRANCH" +msgstr "" +"\n" +" --branch=VETVA stiahnuť koniec danej VETVY kanála „guix“" + +#: guix/scripts/pull.scm:99 +msgid "" +"\n" +" --allow-downgrades allow downgrades to earlier channel revisions" +msgstr "" +"\n" +" --allow-downgrades povoliť návrat k predchádzajúcim úpravám kanálov" + +#: guix/scripts/pull.scm:101 guix/scripts/time-machine.scm:61 +msgid "" +"\n" +" --disable-authentication\n" +" disable channel authentication" +msgstr "" +"\n" +" --disable-authentication\n" +" vypnúť overovanie kanálov" + +#: guix/scripts/pull.scm:104 +msgid "" +"\n" +" -N, --news display news compared to the previous generation" +msgstr "" +"\n" +" -N, --news zobraziť novinky v tomto pokolení" + +#: guix/scripts/pull.scm:117 +#, scheme-format +msgid "" +"\n" +" -p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current" +msgstr "" +"\n" +" -p, --profile=PROFIL použiť PROFIL namiesto ~/.config/guix/current" + +#: guix/scripts/pull.scm:123 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the new Guix" +msgstr "" +"\n" +" --bootstrap použiť zavádzací Guile na zostavenie nového systému " +"Guix" + +#: guix/scripts/pull.scm:212 guix/scripts/system/reconfigure.scm:328 +#, scheme-format +msgid "rolling back channel '~a' from ~a to ~a~%" +msgstr "vraciam kanál „~a“ z ~a na ~a~%" + +#: guix/scripts/pull.scm:215 guix/scripts/system/reconfigure.scm:331 +#, scheme-format +msgid "moving channel '~a' from ~a to unrelated commit ~a~%" +msgstr "" +"presúvanie kanála „~a“ z ~a k nesúvisiacemu číslu úpravy (commitu) ~a~%" + +#: guix/scripts/pull.scm:244 +msgid "New in this revision:\n" +msgstr "Novinky v tejto úprave:\n" + +#. TRANSLATORS: This describes a "channel"; the first placeholder is +#. the channel name (e.g., "guix") and the second placeholder is its +#. URL. +#: guix/scripts/pull.scm:253 +#, scheme-format +msgid " ~a at ~a~%" +msgstr " ~a na ~a~%" + +#: guix/scripts/pull.scm:291 +#, scheme-format +msgid " commit ~a~%" +msgstr " číslo úpravy (commit) ~a~%" + +#: guix/scripts/pull.scm:328 +#, scheme-format +msgid "News for channel '~a'~%" +msgstr "Novinky kanála „~a“~%" + +#: guix/scripts/pull.scm:354 +#, scheme-format +msgid " ~a new channel:~%" +msgid_plural " ~a new channels:~%" +msgstr[0] " ~a nový kanál:~%" +msgstr[1] " ~a nové kanály:~%" +msgstr[2] " ~a nových kanálov:~%" + +#: guix/scripts/pull.scm:364 +#, scheme-format +msgid " ~a channel removed:~%" +msgid_plural " ~a channels removed:~%" +msgstr[0] " ~a odstránený kanál:~%" +msgstr[1] " ~a odstránené kanály:~%" +msgstr[2] " ~a odstránených kanálov:~%" + +#: guix/scripts/pull.scm:440 +msgid "Run @command{guix pull --news} to read all the news." +msgstr "Prečítajte si všetky novinky pomocou @command{guix pull --news}." + +#: guix/scripts/pull.scm:448 +#, scheme-format +msgid "" +"After setting @code{PATH}, run\n" +"@command{hash guix} to make sure your shell refers to @file{~a}." +msgstr "" +"Po nastavení premennej @code{PATH}, použite\n" +"@command{hash guix}, aby ste sa usitili, že váš shell odkazuje na @file{~a}." + +#: guix/scripts/pull.scm:483 +#, scheme-format +msgid "Migrating profile generations to '~a'...~%" +msgstr "Premiestňujú sa pokolenia profilu do „~a“...~%" + +#: guix/scripts/pull.scm:527 +#, scheme-format +msgid "while creating symlink '~a': ~a~%" +msgstr "pri vytváraní symbolického odkazu „~a“: ~a~%" + +#: guix/scripts/pull.scm:616 +msgid " ~h new package: ~a~%" +msgid_plural " ~h new packages: ~a~%" +msgstr[0] " ~h nový balík: ~a~%" +msgstr[1] " ~h nové balíky: ~a~%" +msgstr[2] " ~h nových balíkov: ~a~%" + +#: guix/scripts/pull.scm:624 +msgid " ~h package upgraded: ~a~%" +msgid_plural " ~h packages upgraded: ~a~%" +msgstr[0] " ~h aktualizovaný balík: ~a~%" +msgstr[1] " ~h aktualizované balíky: ~a~%" +msgstr[2] " ~h aktualizovaných balíkov: ~a~%" + +#: guix/scripts/pull.scm:713 +#, scheme-format +msgid "'~a' did not return a list of channels~%" +msgstr "„~a“ nevrátil zoznam kanálov~%" + +#: guix/scripts/pull.scm:729 +#, scheme-format +msgid "" +"The 'GUIX_PULL_URL' environment variable is deprecated.\n" +"Use '~/.config/guix/channels.scm' instead." +msgstr "" +"Premenná prostredia „GUIX_PULL_URL“ sa už nepoužíva.\n" +"Namiesto nej použite „~/.config/guix/channels.scm“." + +#: guix/scripts/pull.scm:802 +#, scheme-format +msgid "Building from this channel:~%" +msgid_plural "Building from these channels:~%" +msgstr[0] "Zostavuje sa z tohto kanála:~%" +msgstr[1] "Zostavuje sa z týchto kanálov:~%" +msgstr[2] "Zostavuje sa z týchto kanálov:~%" + +#: guix/scripts/substitute.scm:87 +#, scheme-format +msgid "authentication and authorization of substitutes disabled!~%" +msgstr "overenie a povolenie náhrad vypnuté!~%" + +#: guix/scripts/substitute.scm:222 +#, scheme-format +msgid "host name lookup error: ~a~%" +msgstr "zisťovanie názvu hostiteľa zlyhalo: ~a~%" + +#: guix/scripts/substitute.scm:227 +#, scheme-format +msgid "TLS error in procedure '~a': ~a~%" +msgstr "Chyba TLS v procedúre „~a“: ~a~%" + +#: guix/scripts/substitute.scm:238 +msgid "" +"Usage: guix substitute [OPTION]...\n" +"Internal tool to substitute a pre-built binary to a local build.\n" +msgstr "" +"Použitie: guix substitute [PREPÍNAČ]...\n" +"Vnútorný nástroj na nahrádzanie miestneho zostavenia pred-zostavenou " +"binárnou náhradou.\n" + +#: guix/scripts/substitute.scm:240 +msgid "" +"\n" +" --query report on the availability of substitutes for the\n" +" store file names passed on the standard input" +msgstr "" +"\n" +" --query zistiť dostupnosť náhrad pre názvy\n" +" súborov úložiska na štandardnom vstupe" + +#: guix/scripts/substitute.scm:243 +msgid "" +"\n" +" --substitute STORE-FILE DESTINATION\n" +" download STORE-FILE and store it as a Nar in file\n" +" DESTINATION" +msgstr "" +"\n" +" --substitute SÚBOR-ÚLOŽISKA CIEĽOVÝ-SÚBOR\n" +" stiahnuť SÚBOR-ÚLOŽISKA a uložiť ho ako Nar\n" +" do CIEĽOVÉHO-SÚBORU" + +#: guix/scripts/substitute.scm:323 +#, scheme-format +msgid "updating substitutes from '~a'... ~5,1f%" +msgstr "aktualizujú sa náhrady z „~a“... ~5,1f%" + +#: guix/scripts/substitute.scm:462 +#, scheme-format +msgid "download from '~a' failed: ~a, ~s~%" +msgstr "sťahovanie z „~a“ zlyhalo: ~a, ~s~%" + +#: guix/scripts/substitute.scm:472 +#, scheme-format +msgid "while fetching ~a: server is somewhat slow~%" +msgstr "pri získavaní ~a: odozva servera je nízka~%" + +#: guix/scripts/substitute.scm:474 +#, scheme-format +msgid "try `--no-substitutes' if the problem persists~%" +msgstr "skúste použiť prepínač „--no-substitutes“ ak ťažkosti pretrvávajú~%" + +#: guix/scripts/substitute.scm:481 +#, scheme-format +msgid "unsupported substitute URI scheme: ~a~%" +msgstr "nepodporované pravidlo nahrádzania prepojení: ~a~%" + +#: guix/scripts/substitute.scm:485 +#, scheme-format +msgid "no valid substitute for '~a'~%" +msgstr "žiadne platné náhrady za „~a“~%" + +#: guix/scripts/substitute.scm:494 +#, scheme-format +msgid "Downloading ~a...~%" +msgstr "Sťahuje sa ~a...~%" + +#: guix/scripts/substitute.scm:598 +msgid "" +"ACL for archive imports seems to be uninitialized, substitutes may be " +"unavailable\n" +msgstr "" +"zdá sa, že ACL na načítavanie archívov nebolo nastavené, náhrady možno " +"nebudú dostupné\n" + +#: guix/scripts/substitute.scm:683 +#, scheme-format +msgid "~a: invalid URI~%" +msgstr "~a: neplatné prepojenie~%" + +#: guix/scripts/substitute.scm:770 +#, scheme-format +msgid "~a: unrecognized options~%" +msgstr "~a: nerozpoznané prepínače~%" + +#: guix/scripts/authenticate.scm:64 +#, scheme-format +msgid "failed to load key pair at '~a': ~a~%" +msgstr "získavanie páru kľúčov zlyhalo na „~a“: ~a~%" + +#: guix/scripts/authenticate.scm:86 +#, scheme-format +msgid "invalid signature: ~a" +msgstr "neplatný podpis: ~a" + +#: guix/scripts/authenticate.scm:89 +#, scheme-format +msgid "unauthorized public key: ~a" +msgstr "nepovolený verejný kľúč: ~a" + +#: guix/scripts/authenticate.scm:92 +#, scheme-format +msgid "corrupt signature data: ~a" +msgstr "poškodený podpis: ~a" + +#: guix/scripts/authenticate.scm:184 +msgid "" +"Usage: guix authenticate OPTION...\n" +"Sign data or verify signatures. This tool is meant to be used internally " +"by\n" +"'guix-daemon'.\n" +msgstr "" +"Použitie: guix authenticate PREPÍNAČ...\n" +"Podpísať údaje alebo overiť podpisy. Tento nástroj je určený na vnútorné\n" +"použitie pre „guix-daemon“.\n" + +#: guix/scripts/authenticate.scm:218 +#, scheme-format +msgid "~s: invalid command; ignoring~%" +msgstr "~s: neplatný príkaz; preskakujem~%" + +#: guix/scripts/authenticate.scm:223 +#, scheme-format +msgid "wrong arguments~%" +msgstr "neplatné parametre~%" + +#: guix/scripts/system.scm:175 +#, scheme-format +msgid "copying to '~a'..." +msgstr "kopírujem do „~a“..." + +#: guix/scripts/system.scm:211 +#, scheme-format +msgid "initializing the current root file system~%" +msgstr "nastavuje sa súčasný koreňový súborový systém~%" + +#: guix/scripts/system.scm:225 +#, scheme-format +msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" +msgstr "sa nespúšťa ako „root“, takže vlastníctvo „~a“ je možno nesprávne!~%" + +#: guix/scripts/system.scm:255 guix/scripts/system.scm:751 +#: guix/scripts/system.scm:857 +#, scheme-format +msgid "bootloader successfully installed on '~a'~%" +msgstr "zavádzač bol úspešne nainštalovaný na „~a“~%" + +#: guix/scripts/system.scm:278 +#, scheme-format +msgid "while talking to shepherd: ~a~%" +msgstr "pri spojení so shepherdom: ~a~%" + +#: guix/scripts/system.scm:286 +#, scheme-format +msgid "service '~a' could not be found~%" +msgstr "služba „~a“ sa nenašla~%" + +#: guix/scripts/system.scm:289 +#, scheme-format +msgid "service '~a' does not have an action '~a'~%" +msgstr "služba „~a“ postráda činnosť „~a“~%" + +#: guix/scripts/system.scm:293 +#, scheme-format +msgid "exception caught while executing '~a' on service '~a':~%" +msgstr "výnimka zachytená pri spúšťaní „~a“ v službe „~a“:~%" + +#: guix/scripts/system.scm:301 +#, scheme-format +msgid "something went wrong: ~s~%" +msgstr "niečo sa pokazilo: ~s~%" + +#: guix/scripts/system.scm:304 +#, scheme-format +msgid "shepherd error~%" +msgstr "chyba shepherd-a~%" + +#: guix/scripts/system.scm:308 +#, scheme-format +msgid "some services could not be upgraded~%" +msgstr "niektoré služby sa nepodarilo aktualizovať~%" + +#: guix/scripts/system.scm:309 +msgid "" +"To allow changes to all the system services to take\n" +"effect, you will need to reboot." +msgstr "" +"Na uplatnenie niektorých zmien v systémových službách\n" +"je nutné reštartovať počítač." + +#: guix/scripts/system.scm:375 +#, scheme-format +msgid "cannot switch to system generation '~a'~%" +msgstr "nepodarilo sa prepnúť na pokolenie systému „~a“~%" + +#: guix/scripts/system.scm:451 +msgid "the DAG of services" +msgstr "orientovaný acyklický graf služieb" + +#: guix/scripts/system.scm:464 +msgid "the dependency graph of shepherd services" +msgstr "graf závislostí služieb shepherda" + +#: guix/scripts/system.scm:479 +#, scheme-format +msgid " repository URL: ~a~%" +msgstr " prepojenie na repozitár: ~a~%" + +#: guix/scripts/system.scm:481 +#, scheme-format +msgid " branch: ~a~%" +msgstr " vetva: ~a~%" + +#: guix/scripts/system.scm:482 +#, scheme-format +msgid " commit: ~a~%" +msgstr " číslo úpravy (commit): ~a~%" + +#: guix/scripts/system.scm:502 +#, scheme-format +msgid " file name: ~a~%" +msgstr " názov súboru: ~a~%" + +#: guix/scripts/system.scm:503 +#, scheme-format +msgid " canonical file name: ~a~%" +msgstr " normatívny názov súboru: ~a~%" + +#. TRANSLATORS: Please preserve the two-space indentation. +#: guix/scripts/system.scm:505 +#, scheme-format +msgid " label: ~a~%" +msgstr " menovka: ~a~%" + +#: guix/scripts/system.scm:506 +#, scheme-format +msgid " bootloader: ~a~%" +msgstr " zavádzač: ~a~%" + +#. TRANSLATORS: The '~[', '~;', and '~]' sequences in this string must +#. be preserved. They denote conditionals, such that the result will +#. look like: +#. root device: UUID: 12345-678 +#. or: +#. root device: label: "my-root" +#. or just: +#. root device: /dev/sda3 +#: guix/scripts/system.scm:516 +#, scheme-format +msgid " root device: ~[UUID: ~a~;label: ~s~;~a~]~%" +msgstr " koreňové zariadenie: ~[UUID: ~a~;menovka: ~s~;~a~]~%" + +#: guix/scripts/system.scm:522 +#, scheme-format +msgid " kernel: ~a~%" +msgstr " jadro: ~a~%" + +#: guix/scripts/system.scm:527 +#, scheme-format +msgid " multiboot: ~a~%" +msgstr " zavedenie viacerých operačných systémov (multiboot): ~a~%" + +#. TRANSLATORS: Here "channel" is the same terminology as used in +#. "guix describe" and "guix pull --channels". +#: guix/scripts/system.scm:533 +#, scheme-format +msgid " channels:~%" +msgstr " kanály:~%" + +#: guix/scripts/system.scm:536 +#, scheme-format +msgid " configuration file: ~a~%" +msgstr " súbor nastavení: ~a~%" + +#: guix/scripts/system.scm:609 +#, scheme-format +msgid "device '~a' not found: ~a~%" +msgstr "zariadenie „~a“ sa nenašlo: ~a~%" + +#: guix/scripts/system.scm:612 +#, scheme-format +msgid "" +"If '~a' is a file system\n" +"label, write @code{(file-system-label ~s)} in your @code{device} field." +msgstr "" +"Ak „~a“ je menovkou súborového systému,\n" +"napíšte @code{(file-system-label ~s)} do poľa @code{device}." + +#: guix/scripts/system.scm:621 +#, scheme-format +msgid "file system with label '~a' not found~%" +msgstr "súborový systém s menovkou „~a“ sa nenašiel~%" + +#: guix/scripts/system.scm:627 +#, scheme-format +msgid "file system with UUID '~a' not found~%" +msgstr "súborový systém s UUID „~a“ sa nenašiel~%" + +#: guix/scripts/system.scm:714 +#, scheme-format +msgid "'disk-image' is deprecated: use 'image' instead~%" +msgstr "" +"použitie „disk-image“ sa už neodporúča: namiesto toho použite „image“~%" + +#: guix/scripts/system.scm:716 +#, scheme-format +msgid "'vm-image' is deprecated: use 'image' instead~%" +msgstr "použitie „vm-image“ sa už neodporúča; namiesto toho použite „image“~%" + +#: guix/scripts/system.scm:729 +#, scheme-format +msgid "Consider running 'guix pull' before 'reconfigure'.~%" +msgstr "Zvážte spustenie „guix pull“ pred „reconfigure“.~%" + +#: guix/scripts/system.scm:730 +#, scheme-format +msgid "Failing to do that may downgrade your system!~%" +msgstr "V opačnom prípade riskujete, že váš systém prejde na staršiu verziu!~%" + +#: guix/scripts/system.scm:850 +#, scheme-format +msgid "activating system...~%" +msgstr "spúšťa sa systém...~%" + +#: guix/scripts/system.scm:861 +msgid "" +"To complete the upgrade, run 'herd restart SERVICE' to stop,\n" +"upgrade, and restart each service that was not automatically restarted.\n" +msgstr "" +"Aby mohla byť aktualizácia dokončená, spustite „herd restart SLUŽBA“ pre\n" +"zastavenie, aktualizovanie a reštart každej SLUŽBY, ktorá nebola automaticky " +"reštartovaná.\n" + +#: guix/scripts/system.scm:864 +msgid "Run 'herd status' to view the list of services on your system.\n" +msgstr "" +"Spustite „herd status“ pre zobrazenie zoznam služieb na vašom systéme.\n" + +#: guix/scripts/system.scm:868 +#, scheme-format +msgid "initializing operating system under '~a'...~%" +msgstr "nastavuje sa operačný systém v „~a“...~%" + +#: guix/scripts/system.scm:888 guix/scripts/graph.scm:437 +#, scheme-format +msgid "~a: unknown backend~%" +msgstr "~a: neznámy nástroj~%" + +#: guix/scripts/system.scm:925 +msgid "The available image types are:\n" +msgstr "Dostupné typy obrazov sú:\n" + +#: guix/scripts/system.scm:935 +msgid "" +"Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" +"Build the operating system declared in FILE according to ACTION.\n" +"Some ACTIONS support additional ARGS.\n" +msgstr "" +"Použitie: guix system [PREPÍNAČ ...] ČINNOSŤ [PARAMETER ...] [SÚBOR]\n" +"Zostaviť operačný systém zapísaný v SÚBORE vzhľadom na ČINNOSŤ.\n" +"Niektoré ČINNOSTI podporujú dodatočné PARAMETRE.\n" + +#: guix/scripts/system.scm:941 +msgid " search search for existing service types\n" +msgstr " search hľadať existujúce typy služieb\n" + +#: guix/scripts/system.scm:943 +msgid " reconfigure switch to a new operating system configuration\n" +msgstr " reconfigure prepnúť na nové nastavenie systému\n" + +#: guix/scripts/system.scm:945 +msgid "" +" roll-back switch to the previous operating system configuration\n" +msgstr " roll-back prepnúť na predchádzajúce nastavenie systému\n" + +#: guix/scripts/system.scm:947 +msgid " describe describe the current system\n" +msgstr " describe popísať súčasný systém\n" + +#: guix/scripts/system.scm:949 +msgid " list-generations list the system generations\n" +msgstr " list-generations zobraziť pokolenia systému\n" + +#: guix/scripts/system.scm:951 +msgid "" +" switch-generation switch to an existing operating system configuration\n" +msgstr "" +" switch-generation prepnúť na niektoré z existujúcich nastavení systému\n" + +#: guix/scripts/system.scm:953 +msgid " delete-generations delete old system generations\n" +msgstr " delete-generations odstrániť predchádzajúce pokolenia systému\n" + +#: guix/scripts/system.scm:955 +msgid "" +" build build the operating system without installing anything\n" +msgstr " build zostaviť operačný systém ale nič neinštalovať\n" + +#: guix/scripts/system.scm:957 +msgid " container build a container that shares the host's store\n" +msgstr " container zostaviť kontajner zdieľajúci úložisko hostiteľa\n" + +#: guix/scripts/system.scm:959 +msgid "" +" vm build a virtual machine image that shares the host's " +"store\n" +msgstr "" +" vm zostaviť virtuálny stroj zdieľajúci úložisko hostiteľa\n" + +#: guix/scripts/system.scm:961 +msgid " image build a Guix System image\n" +msgstr " image zostaviť obraz systému Guix\n" + +#: guix/scripts/system.scm:963 +msgid " docker-image build a Docker image\n" +msgstr " docker-image zostaviť Docker obraz\n" + +#: guix/scripts/system.scm:965 +msgid " init initialize a root file system to run GNU\n" +msgstr "" +" init nastaviť koreňový súborový systém pre spustenie GNU\n" + +#: guix/scripts/system.scm:967 +msgid " extension-graph emit the service extension graph in Dot format\n" +msgstr " extension-graph vytvoriť graf rozšírení služieb vo formáte Dot\n" + +#: guix/scripts/system.scm:969 +msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" +msgstr " shepherd-graph vytvoriť graf služieb shepherda vo formáte Dot\n" + +#: guix/scripts/system.scm:973 +msgid "" +"\n" +" -d, --derivation return the derivation of the given system" +msgstr "" +"\n" +" -d, --derivation vrátiť odvodeninu zadaného systému" + +#: guix/scripts/system.scm:975 +msgid "" +"\n" +" -e, --expression=EXPR consider the operating-system EXPR evaluates to\n" +" instead of reading FILE, when applicable" +msgstr "" +"\n" +" -e, --expression=VÝRAZ vybrať operačný systém určený VÝRAZOM namiesto\n" +" čítania SÚBORU, ak je to možné" + +#: guix/scripts/system.scm:978 +msgid "" +"\n" +" --allow-downgrades for 'reconfigure', allow downgrades to earlier\n" +" channel revisions" +msgstr "" +"\n" +" --allow-downgrades pre „reconfigure“, povoliť návrat k starším\n" +" úpravám kanálov" + +#: guix/scripts/system.scm:981 +msgid "" +"\n" +" --on-error=STRATEGY\n" +" apply STRATEGY (one of nothing-special, backtrace,\n" +" or debug) when an error occurs while reading FILE" +msgstr "" +"\n" +" --on-error=POSTUP\n" +" uplatniť POSTUP (jeden z nothing-special, " +"backtrace\n" +" alebo debug) ak sa vyskytne chyba pri čítaní SÚBORU" + +#: guix/scripts/system.scm:985 +msgid "" +"\n" +" --list-image-types list available image types" +msgstr "" +"\n" +" --list-image-types zobraziť dostupné typy obrazov" + +#: guix/scripts/system.scm:987 +msgid "" +"\n" +" -t, --image-type=TYPE for 'image', produce an image of TYPE" +msgstr "" +"\n" +" -t, --image-type=TYP „obrazu“, vytvoriť obraz TYPU" + +#: guix/scripts/system.scm:989 +msgid "" +"\n" +" --image-size=SIZE for 'image', produce an image of SIZE" +msgstr "" +"\n" +" --image-size=VEĽKOSŤ „obrazu“, vytvoriť obraz o VEĽKOSTI" + +#: guix/scripts/system.scm:991 +msgid "" +"\n" +" --no-bootloader for 'init', do not install a bootloader" +msgstr "" +"\n" +" --no-bootloader pre „init“, neinštalovať zavádzač" + +#: guix/scripts/system.scm:993 +msgid "" +"\n" +" --volatile for 'image', make the root file system volatile" +msgstr "" +"\n" +" --volatile „obraz“, nastaviť koreňový súborový systém ako " +"nestály" + +#: guix/scripts/system.scm:995 +msgid "" +"\n" +" --label=LABEL for 'image', label disk image with LABEL" +msgstr "" +"\n" +" --label=MENOVKA „obrazu“, označiť obraz disku MENOVKOU" + +#: guix/scripts/system.scm:997 guix/scripts/pack.scm:1099 +msgid "" +"\n" +" --save-provenance save provenance information" +msgstr "" +"\n" +" --save-provenance uložiť údaje o pôvode" + +#: guix/scripts/system.scm:999 +msgid "" +"\n" +" --share=SPEC for 'vm' and 'container', share host file system " +"with\n" +" read/write access according to SPEC" +msgstr "" +"\n" +" --share=ZADANIE pre „vm“ a „container“, zdieľať hostiteľský " +"súborový systém\n" +" na čítanie aj zápis podľa ZADANIA" + +#: guix/scripts/system.scm:1002 +msgid "" +"\n" +" --expose=SPEC for 'vm' and 'container', expose host file system\n" +" directory as read-only according to SPEC" +msgstr "" +"\n" +" --expose=ZADANIE pre „vm“ a „container“, sprístupniť hostiteľský " +"súborový\n" +" systém len na čítanie podľa ZADANIA" + +#: guix/scripts/system.scm:1005 +msgid "" +"\n" +" -N, --network for 'container', allow containers to access the " +"network" +msgstr "" +"\n" +" -N, --network pre „container“, umožniť kontajnerom prístup do " +"siete" + +#: guix/scripts/system.scm:1007 +msgid "" +"\n" +" -r, --root=FILE for 'vm', 'image', 'container' and 'build',\n" +" make FILE a symlink to the result, and\n" +" register it as a garbage collector root" +msgstr "" +"\n" +" -r, --root=SÚBOR pre „vm“, „image“, „container“ a „build“,\n" +" spraviť zo SÚBORU symbolický odkaz na výsledok a\n" +" zaznamenať ho ako koreň zberača odpadkov" + +#: guix/scripts/system.scm:1011 +msgid "" +"\n" +" --full-boot for 'vm', make a full boot sequence" +msgstr "" +"\n" +" --full-boot pre „vm“, vykonať úplné zavedenie" + +#: guix/scripts/system.scm:1013 +msgid "" +"\n" +" --skip-checks skip file system and initrd module safety checks" +msgstr "" +"\n" +" --skip-checks preskočiť bezpečnostné overenie súborového systému " +"a initrd" + +#: guix/scripts/system.scm:1020 +msgid "" +"\n" +" --graph-backend=BACKEND\n" +" use BACKEND for 'extension-graphs' and 'shepherd-" +"graph'" +msgstr "" +"\n" +" --graph-backend=NÁSTROJ\n" +" použiť NÁSTROJ pre „extension-graphs“ a „shepherd-" +"graph“" + +#: guix/scripts/system.scm:1162 +#, scheme-format +msgid "'~a' does not return an operating system or an image~%" +msgstr "„~a“ nevracia operačný systém ani obraz~%" + +#: guix/scripts/system.scm:1186 +#, scheme-format +msgid "both file and expression cannot be specified~%" +msgstr "nie je možné zároveň určiť súbor aj výraz~%" + +#: guix/scripts/system.scm:1193 +#, scheme-format +msgid "no configuration specified~%" +msgstr "nebolo určené žiadne nastavenie~%" + +#: guix/scripts/system.scm:1303 +#, scheme-format +msgid "no system generation, nothing to describe~%" +msgstr "žiadne pokolenie systému, nie je k čomu poskytnúť popis~%" + +#: guix/scripts/system.scm:1349 +#, scheme-format +msgid "~a: unknown action~%" +msgstr "~a: neznáma činnosť~%" + +#: guix/scripts/system.scm:1365 +#, scheme-format +msgid "wrong number of arguments for action '~a'~%" +msgstr "nesprávny počet parametrov pre činnosť „~a“~%" + +#: guix/scripts/system.scm:1370 +#, scheme-format +msgid "guix system: missing command name~%" +msgstr "guix system: chýba názov príkazu~%" + +#: guix/scripts/system.scm:1372 +#, scheme-format +msgid "Try 'guix system --help' for more information.~%" +msgstr "Skúste „guix system --help“ pre viac podrobností.~%" + +#: guix/scripts/system/search.scm:93 guix/ui.scm:1544 guix/ui.scm:1562 +msgid "unknown" +msgstr "neznáme" + +#: guix/scripts/lint.scm:58 +#, scheme-format +msgid "~a@~a: ~a~%" +msgstr "~a@~a: ~a~%" + +#: guix/scripts/lint.scm:82 +#, scheme-format +msgid "Available checkers:~%" +msgstr "Dostupné overovače:~%" + +#: guix/scripts/lint.scm:100 +msgid "" +"Usage: guix lint [OPTION]... [PACKAGE]...\n" +"Run a set of checkers on the specified package; if none is specified,\n" +"run the checkers on all packages.\n" +msgstr "" +"Použitie: guix lint [PREPÍNAČ]... [BALÍK]...\n" +"Spustiť overovače pre zadaný balík. Ak nie je určený žiadny balík,\n" +"spustiť overovače pre všetky balíky.\n" + +#: guix/scripts/lint.scm:103 +msgid "" +"\n" +" -c, --checkers=CHECKER1,CHECKER2...\n" +" only run the specified checkers" +msgstr "" +"\n" +" -c, --checkers=OVEROVAČ1,OVEROVAČ2...\n" +" spustiť len zadané overovače" + +#: guix/scripts/lint.scm:106 +msgid "" +"\n" +" -x, --exclude=CHECKER1,CHECKER2...\n" +" exclude the specified checkers" +msgstr "" +"\n" +" -x, --exclude=OVEROVAČ1,OVEROVAČ2...\n" +" vylúčiť zadané overovače" + +#: guix/scripts/lint.scm:109 +msgid "" +"\n" +" -n, --no-network only run checkers that do not access the network" +msgstr "" +"\n" +" -n, --no-network spustiť len overovače, ktoré nevyžadujú prístup do " +"siete" + +#: guix/scripts/lint.scm:117 +msgid "" +"\n" +" -l, --list-checkers display the list of available lint checkers" +msgstr "" +"\n" +" -l, --list-checkers zobraziť zoznam dostupných overovačov" + +#: guix/scripts/lint.scm:136 +#, scheme-format +msgid "~a: invalid checker~%" +msgstr "~a: neplatný overovač~%" + +#: guix/scripts/publish.scm:82 +#, scheme-format +msgid "" +"Usage: guix publish [OPTION]...\n" +"Publish ~a over HTTP.\n" +msgstr "" +"Použitie: guix publish [PREPÍNAČ]...\n" +"Uverejniť ~a cez HTTP.\n" + +#: guix/scripts/publish.scm:84 +msgid "" +"\n" +" -p, --port=PORT listen on PORT" +msgstr "" +"\n" +" -p, --port=PORT počúvať na PORTE" + +#: guix/scripts/publish.scm:86 +msgid "" +"\n" +" --listen=HOST listen on the network interface for HOST" +msgstr "" +"\n" +" --listen=HOSTITEĽ počúvať HOSTITEĽA pomocou sieťového rozhrania" + +#: guix/scripts/publish.scm:88 +msgid "" +"\n" +" -u, --user=USER change privileges to USER as soon as possible" +msgstr "" +"\n" +" -u, --user=POUŽÍVATEĽ zmeniť práva POUŽÍVATEĽA hneď keď to bude " +"možné" + +#: guix/scripts/publish.scm:90 +msgid "" +"\n" +" -a, --advertise advertise on the local network" +msgstr "" +"\n" +" -a, --advertise ohlasovať v miestnej sieti" + +#: guix/scripts/publish.scm:92 +msgid "" +"\n" +" -C, --compression[=METHOD:LEVEL]\n" +" compress archives with METHOD at LEVEL" +msgstr "" +"\n" +" -C, --compression[=SPÔSOB:ÚROVEŇ]\n" +" komprimovať archívy SPÔSOBOM a na ÚROVNI" + +#: guix/scripts/publish.scm:95 +msgid "" +"\n" +" -c, --cache=DIRECTORY cache published items to DIRECTORY" +msgstr "" +"\n" +" -c, --cache=PRIEČINOK použiť PRIEČINOK ako vyrovnávaciu pamäť pre " +"uverejnené položky" + +#: guix/scripts/publish.scm:97 +msgid "" +"\n" +" --cache-bypass-threshold=SIZE\n" +" serve store items below SIZE even when not cached" +msgstr "" +"\n" +" --cache-bypass-threshold=VEĽKOSŤ\n" +" poskytovať položky úložiska menšie ako VEĽKOSŤ aj " +"keď sa nenachádzajú vo vyrovnávacej pamäti" + +#: guix/scripts/publish.scm:100 +msgid "" +"\n" +" --workers=N use N workers to bake items" +msgstr "" +"\n" +" --workers=N použiť N vlákien na prípravu položiek" + +#: guix/scripts/publish.scm:102 +msgid "" +"\n" +" --ttl=TTL announce narinfos can be cached for TTL seconds" +msgstr "" +"\n" +" --ttl=TTL oznámenia narinfos môžu byť uložené do vyrovnávacej " +"pamäte na TTL sekúnd" + +#: guix/scripts/publish.scm:104 +msgid "" +"\n" +" --nar-path=PATH use PATH as the prefix for nar URLs" +msgstr "" +"\n" +" --nar-path=CESTA použiť CESTU ako predponu prepojení nar" + +#: guix/scripts/publish.scm:106 +msgid "" +"\n" +" --public-key=FILE use FILE as the public key for signatures" +msgstr "" +"\n" +" --public-key=SÚBOR použiť SÚBOR ako verejný kľúč na podpisovanie" + +#: guix/scripts/publish.scm:108 +msgid "" +"\n" +" --private-key=FILE use FILE as the private key for signatures" +msgstr "" +"\n" +" --private-key=SÚBOR použiť SÚBOR ako súkromný kľúč na podpisovanie" + +#: guix/scripts/publish.scm:110 +msgid "" +"\n" +" -r, --repl[=PORT] spawn REPL server on PORT" +msgstr "" +"\n" +" -r, --repl[=PORT] spustiť REPL server na PORTE" + +#: guix/scripts/publish.scm:126 +#, scheme-format +msgid "lookup of host '~a' failed: ~a~%" +msgstr "vyhľadávanie hostiteľa „~a“ zlyhalo: ~a~%" + +#: guix/scripts/publish.scm:183 +#, scheme-format +msgid "lookup of host '~a' returned nothing" +msgstr "vyhľadávanie hostiteľa „~a“ bolo bezvýsledné" + +#: guix/scripts/publish.scm:206 +#, scheme-format +msgid "~a: unsupported compression type~%" +msgstr "~a: nepodporovaný spôsob kompresie~%" + +#: guix/scripts/publish.scm:224 +#, scheme-format +msgid "~a: invalid duration~%" +msgstr "~a: neplatné trvanie~%" + +#: guix/scripts/publish.scm:1077 +#, scheme-format +msgid "Advertising ~a~%." +msgstr "Ohlasuje sa ~a~%." + +#: guix/scripts/publish.scm:1108 +#, scheme-format +msgid "user '~a' not found: ~a~%" +msgstr "používateľ „~a“ sa nenašiel: ~a~%" + +#: guix/scripts/publish.scm:1160 +#, scheme-format +msgid "server running as root; consider using the '--user' option!~%" +msgstr "server je spustený ako správca; zvážte použitie prepínača „--user“!~%" + +#: guix/scripts/publish.scm:1168 +#, scheme-format +msgid "publishing ~a on ~a, port ~d~%" +msgstr "uverejňuje sa ~a na ~a, port ~d~%" + +#: guix/scripts/publish.scm:1174 +#, scheme-format +msgid "using '~a' compression method, level ~a~%" +msgstr "používa sa spôsob kompresie „~a“, úroveň ~a~%" + +#: guix/scripts/edit.scm:45 +msgid "" +"Usage: guix edit PACKAGE...\n" +"Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n" +msgstr "" +"Použitie: guix edit BALÍK...\n" +"Upraviť zadanie BALÍKA pomocou $VISUAL alebo $EDITOR...\n" + +#: guix/scripts/edit.scm:68 +#, scheme-format +msgid "file '~a' not found in search path ~s~%" +msgstr "súbor „~a“ sa v prehľadávanej ceste nenašiel ~s~%" + +#: guix/scripts/edit.scm:104 +#, scheme-format +msgid "failed to launch '~a': ~a~%" +msgstr "nepodarilo sa spustiť „~a“: ~a~%" + +#: guix/scripts/size.scm:71 +#, scheme-format +msgid "no available substitute information for '~a'~%" +msgstr "žiadne údaje o náhradách pre „~a“~%" + +#: guix/scripts/size.scm:93 +msgid "store item" +msgstr "položka úložiska" + +#: guix/scripts/size.scm:93 +msgid "total" +msgstr "celkovo" + +#: guix/scripts/size.scm:93 +msgid "self" +msgstr "sám" + +#: guix/scripts/size.scm:101 +#, scheme-format +msgid "total: ~,1f MiB~%" +msgstr "spolu: ~,1f MiB~%" + +#. TRANSLATORS: This is the title of a graph, meaning that the graph +#. represents a profile of the store (the "store" being the place where +#. packages are stored.) +#: guix/scripts/size.scm:224 +msgid "store profile" +msgstr "znázornenie úložiska" + +#: guix/scripts/size.scm:233 +msgid "" +"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n" +"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n" +msgstr "" +"Použitie: guix size [PREPÍNAČ]... BALÍK|POLOŽKA-ÚLOŽISKA\n" +"Zistiť veľkosť BALÍKA alebo POLOŽKY-ÚLOŽISKA aj so závislosťami.\n" + +#: guix/scripts/size.scm:238 +msgid "" +"\n" +" -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=SYSTÉM vziať do úvahy balíky pre SYSTÉM, napr. „i686-linux“" + +#. TRANSLATORS: "closure" and "self" must not be translated. +#: guix/scripts/size.scm:241 +msgid "" +"\n" +" --sort=KEY sort according to KEY--\"closure\" or \"self\"" +msgstr "" +"\n" +" --sort=KĽÚČ triediť podľa KĽÚČA: „closure“ alebo „self“" + +#: guix/scripts/size.scm:243 +msgid "" +"\n" +" -m, --map-file=FILE write to FILE a graphical map of disk usage" +msgstr "" +"\n" +" -m, --map-file=SÚBOR zapísať grafické znázornenie využitia disku do " +"SÚBORU" + +#: guix/scripts/size.scm:277 +#, scheme-format +msgid "~a: invalid sorting key~%" +msgstr "~a: neplatný triediaci kľúč~%" + +#: guix/scripts/size.scm:318 +msgid "missing store item argument\n" +msgstr "chýba parameter položky úložiska\n" + +#: guix/scripts/graph.scm:95 +#, scheme-format +msgid "~a: invalid argument (package name expected)" +msgstr "~a: neplatný parameter (očakával sa názov balíka)" + +#: guix/scripts/graph.scm:106 +msgid "the DAG of packages, excluding implicit inputs" +msgstr "orientovaný acyklický graf balíkov, okrem nepriamych vstupov" + +#: guix/scripts/graph.scm:142 +msgid "the reverse DAG of packages" +msgstr "obrátený orientovaný acyklický graf balíkov" + +#: guix/scripts/graph.scm:192 +msgid "the DAG of packages, including implicit inputs" +msgstr "orientovaný acyklický graf balíkov, vrátane nepriamych vstupov" + +#: guix/scripts/graph.scm:202 +msgid "the DAG of packages and origins, including implicit inputs" +msgstr "" +"orientovaný acyklický graf balíkov a zdrojov, vrátane nepriamych vstupov" + +#: guix/scripts/graph.scm:232 +msgid "same as 'bag', but without the bootstrap nodes" +msgstr "ako „bag“, ale bez zavádzacích uzlov" + +#: guix/scripts/graph.scm:249 +msgid "the reverse DAG of packages, including implicit inputs" +msgstr "" +"obrátený orientovaný acyklický graf balíkov, vrátane nepriamych vstupov" + +#: guix/scripts/graph.scm:288 +msgid "the DAG of derivations" +msgstr "orientovaný acyklický graf odvodenín" + +#: guix/scripts/graph.scm:300 +msgid "unsupported argument for derivation graph" +msgstr "neplatný parameter pre graf odvodenín" + +#: guix/scripts/graph.scm:334 +msgid "unsupported argument for this type of graph" +msgstr "neplatný parameter pre tento typ grafu" + +#: guix/scripts/graph.scm:348 +#, scheme-format +msgid "references for '~a' are not known~%" +msgstr "odkazy na „~a“ nie sú známe~%" + +#: guix/scripts/graph.scm:355 +msgid "the DAG of run-time dependencies (store references)" +msgstr "" +"orientovaný acyklický graf závislostí pri spúšťaní (odkazy na úložisko)" + +#: guix/scripts/graph.scm:371 +msgid "the DAG of referrers in the store" +msgstr "orientovaný acyklický graf cieľov odkazov v úložisku" + +#: guix/scripts/graph.scm:401 +msgid "the graph of package modules" +msgstr "graf modulov balíkov" + +#: guix/scripts/graph.scm:430 +#, scheme-format +msgid "~a: unknown node type~%" +msgstr "~a: neznámy typ uzla~%" + +#: guix/scripts/graph.scm:441 +msgid "The available node types are:\n" +msgstr "Dostupné typy uzlov sú:\n" + +#: guix/scripts/graph.scm:451 +msgid "The available backend types are:\n" +msgstr "Dostupné typy nástrojov grafov sú:\n" + +#: guix/scripts/graph.scm:478 +#, scheme-format +msgid "no path from '~a' to '~a'~%" +msgstr "žiadna cesta z „~a“ do „~a“~%" + +#. TRANSLATORS: Here 'dot' is the name of a program; it must not be +#. translated. +#: guix/scripts/graph.scm:530 +msgid "" +"Usage: guix graph PACKAGE...\n" +"Emit a representation of the dependency graph of PACKAGE...\n" +msgstr "" +"Použiť: guix graph BALÍK...\n" +"Vytvoriť znázornenie grafu závislostí BALÍKA...\n" + +#: guix/scripts/graph.scm:532 +msgid "" +"\n" +" -b, --backend=TYPE produce a graph with the given backend TYPE" +msgstr "" +"\n" +" -b, --backend=TYP vytvoriť graf pomocou daného TYPU nástroja" + +#: guix/scripts/graph.scm:534 +msgid "" +"\n" +" --list-backends list the available graph backends" +msgstr "" +"\n" +" --list-backends zobraziť zoznam dostupných typov nástrojov grafov" + +#: guix/scripts/graph.scm:536 +msgid "" +"\n" +" -t, --type=TYPE represent nodes of the given TYPE" +msgstr "" +"\n" +" -t, --type=TYP znázorniť uzly TYPU" + +#: guix/scripts/graph.scm:538 +msgid "" +"\n" +" --list-types list the available graph types" +msgstr "" +"\n" +" --list-types zobraziť zoznam dostupných typov grafov" + +#: guix/scripts/graph.scm:540 +msgid "" +"\n" +" --path display the shortest path between the given nodes" +msgstr "" +"\n" +" --path zobraziť najkratšiu cestu medzi danými uzlami" + +#: guix/scripts/graph.scm:542 guix/scripts/pack.scm:1084 +#: guix/scripts/refresh.scm:149 +msgid "" +"\n" +" -e, --expression=EXPR consider the package EXPR evaluates to" +msgstr "" +"\n" +" -e, --expression=VÝRAZ vziať do úvahy balík, ktorý je výsledkom " +"vyhodnotenia VÝRAZU" + +#: guix/scripts/graph.scm:544 +msgid "" +"\n" +" -s, --system=SYSTEM consider the graph for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=SYSTÉM vziať do úvahy graf pre SYSTÉM, napr. „i686-linux“" + +#: guix/scripts/graph.scm:607 +#, scheme-format +msgid "'--path' option requires exactly two nodes (given ~a)~%" +msgstr "prepínač „--path“ vyžaduje presne dva uzly (zadali ste ~a)~%" + +#: guix/scripts/challenge.scm:303 +#, scheme-format +msgid " differing file:~%" +msgid_plural " differing files:~%" +msgstr[0] " rozdielny súbor:~%" +msgstr[1] " rozdielne súbory:~%" +msgstr[2] " rozdielnych súborov:~%" + +#: guix/scripts/challenge.scm:372 +#, scheme-format +msgid " local hash: ~a~%" +msgstr " miestny odtlačok: ~a~%" + +#: guix/scripts/challenge.scm:373 +#, scheme-format +msgid " no local build for '~a'~%" +msgstr " žiadne miestne zostavenie pre „~a“~%" + +#: guix/scripts/challenge.scm:375 +#, scheme-format +msgid " ~50a: ~a~%" +msgstr " ~50a: ~a~%" + +#: guix/scripts/challenge.scm:383 +#, scheme-format +msgid "~a contents differ:~%" +msgstr "obsah ~a sa nezhoduje:~%" + +#: guix/scripts/challenge.scm:387 +#, scheme-format +msgid "could not challenge '~a': no local build~%" +msgstr "nepodarilo sa preskúšať „~a“: žiadne miestne zostavenie~%" + +#: guix/scripts/challenge.scm:389 +#, scheme-format +msgid "could not challenge '~a': no substitutes~%" +msgstr "nepodarilo sa preskúšať „~a“: žiadne náhrady~%" + +#: guix/scripts/challenge.scm:392 +#, scheme-format +msgid "~a contents match:~%" +msgstr "obsah ~a sa zhoduje:~%" + +#: guix/scripts/challenge.scm:401 +msgid "~h store items were analyzed:~%" +msgstr "~h položiek úložiska bolo preskúmaných:~%" + +#: guix/scripts/challenge.scm:402 +msgid " - ~h (~,1f%) were identical~%" +msgstr " - ~h (~,1f%) sa zhodovali~%" + +#: guix/scripts/challenge.scm:404 +msgid " - ~h (~,1f%) differed~%" +msgstr " - ~h (~,1f%) sa líšili~%" + +#: guix/scripts/challenge.scm:406 +msgid " - ~h (~,1f%) were inconclusive~%" +msgstr " - ~h (~,1f%) sa nepodarilo vyhodnotiť~%" + +#: guix/scripts/challenge.scm:415 +msgid "" +"Usage: guix challenge [PACKAGE...]\n" +"Challenge the substitutes for PACKAGE... provided by one or more servers.\n" +msgstr "" +"Použitie: guix challenge [BALÍK...]\n" +"Preskúšať náhrady za BALÍK... poskytnuté jedným alebo viacerými servermi.\n" + +#: guix/scripts/challenge.scm:417 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" compare build results with those at URLS" +msgstr "" +"\n" +" --substitute-urls=PREPOJENIA\n" +" porovnať výsledky zostavenia s výsledkami " +"dostupnými cez PREPOJENIA" + +#: guix/scripts/challenge.scm:420 +msgid "" +"\n" +" -v, --verbose show details about successful comparisons" +msgstr "" +"\n" +" -v, --verbose zobraziť podrobnosti o úspešných porovnaniach" + +#: guix/scripts/challenge.scm:422 +msgid "" +"\n" +" --diff=MODE show differences according to MODE" +msgstr "" +"\n" +" --diff=SPÔSOB zobraziť rozdiely SPÔSOBOM" + +#: guix/scripts/challenge.scm:451 +#, scheme-format +msgid "~a: unknown diff mode~%" +msgstr "~a: neznámy spôsob zobrazenia rozdielov~%" + +#: guix/scripts/copy.scm:61 +#, scheme-format +msgid "~a: invalid TCP port number~%" +msgstr "~a: neplatné číslo TCP portu~%" + +#: guix/scripts/copy.scm:63 +#, scheme-format +msgid "~a: invalid SSH specification~%" +msgstr "~a: neplatné predvoľby SSH~%" + +#: guix/scripts/copy.scm:109 +msgid "" +"Usage: guix copy [OPTION]... ITEMS...\n" +"Copy ITEMS to or from the specified host over SSH.\n" +msgstr "" +"Použitie: guix copy [PREPÍNAČ]... POLOŽKY...\n" +"Kopírovať POLOŽKY na alebo zo zadaného hostiteľa cez SSH.\n" + +#: guix/scripts/copy.scm:111 +msgid "" +"\n" +" --to=HOST send ITEMS to HOST" +msgstr "" +"\n" +" --to=HOSTITEĽ odoslať POLOŽKY HOSTITEĽOVI" + +#: guix/scripts/copy.scm:113 +msgid "" +"\n" +" --from=HOST receive ITEMS from HOST" +msgstr "" +"\n" +" --from=HOSTITEĽ prijať POLOŽKY od HOSTITEĽA" + +#: guix/scripts/copy.scm:192 +#, scheme-format +msgid "use '--to' or '--from'~%" +msgstr "použite „--to“ alebo „--from“~%" + +#: guix/scripts/pack.scm:111 +#, scheme-format +msgid "~a: compressor not found~%" +msgstr "~a: nástroj na kompresiu sa nenašiel~%" + +#: guix/scripts/pack.scm:323 +#, scheme-format +msgid "entry point not supported in the '~a' format~%" +msgstr "vstupný bod nepodporovaný vo formáte „~a“~%" + +#: guix/scripts/pack.scm:705 +#, scheme-format +msgid "" +"cross-compilation not implemented here;\n" +"please email '~a'~%" +msgstr "" +"krížové zostavovanie tu nie je podporované;\n" +"pošlite správu na „~a“~%" + +#: guix/scripts/pack.scm:965 +msgid "The supported formats for 'guix pack' are:" +msgstr "Podporované formáty pre „guix pack“ sú:" + +#: guix/scripts/pack.scm:967 +msgid "" +"\n" +" tarball Self-contained tarball, ready to run on another machine" +msgstr "" +"\n" +" tarball Samostatný archív spustiteľný na inom počítači" + +#: guix/scripts/pack.scm:969 +msgid "" +"\n" +" squashfs Squashfs image suitable for Singularity" +msgstr "" +"\n" +" squashfs Obraz Squashfs vhodný pre Singularity" + +#: guix/scripts/pack.scm:971 +msgid "" +"\n" +" docker Tarball ready for 'docker load'" +msgstr "" +"\n" +" docker Archív pripravený na použitie s „docker load“" + +#: guix/scripts/pack.scm:1040 +#, scheme-format +msgid "~a: invalid symlink specification~%" +msgstr "~a: neplatne zadaný symbolický odkaz~%" + +#: guix/scripts/pack.scm:1054 +#, scheme-format +msgid "~a: unsupported profile name~%" +msgstr "~a: nepodporovaný názov profilu~%" + +#: guix/scripts/pack.scm:1072 +msgid "" +"Usage: guix pack [OPTION]... PACKAGE...\n" +"Create a bundle of PACKAGE.\n" +msgstr "" +"Použitie: guix pack [PREPÍNAČ]... BALÍK...\n" +"Vytvoriť zväzok BALÍKOV.\n" + +#: guix/scripts/pack.scm:1078 +msgid "" +"\n" +" -f, --format=FORMAT build a pack in the given FORMAT" +msgstr "" +"\n" +" -f, --format=FORMÁT zostaviť zväzok balíkov vo FORMÁTE" + +#: guix/scripts/pack.scm:1080 +msgid "" +"\n" +" --list-formats list the formats available" +msgstr "" +"\n" +" --list-formats zobraziť zoznam dostupných formátov" + +#: guix/scripts/pack.scm:1082 +msgid "" +"\n" +" -R, --relocatable produce relocatable executables" +msgstr "" +"\n" +" -R, --relocatable vytvoriť premiestniteľné spustiteľné súbory" + +#: guix/scripts/pack.scm:1090 +msgid "" +"\n" +" -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" +msgstr "" +"\n" +" -C, --compression=NÁSTROJ komprimovať s použitím NÁSTROJA, napr. „lzip“" + +#: guix/scripts/pack.scm:1092 +msgid "" +"\n" +" -S, --symlink=SPEC create symlinks to the profile according to SPEC" +msgstr "" +"\n" +" -S, --symlink=ZADANIE vytvoriť symbolické odkazy na profil podľa " +"ZADANIA" + +#: guix/scripts/pack.scm:1094 +msgid "" +"\n" +" -m, --manifest=FILE create a pack with the manifest from FILE" +msgstr "" +"\n" +" -m, --manifest=SÚBOR vytvoriť zväzok podľa manifestu zo SÚBORU" + +#: guix/scripts/pack.scm:1096 +msgid "" +"\n" +" --entry-point=PROGRAM\n" +" use PROGRAM as the entry point of the pack" +msgstr "" +"\n" +" --entry-point=PROGRAM\n" +" použiť PROGRAM ako vstupný bod zväzku balíkov" + +#: guix/scripts/pack.scm:1101 +msgid "" +"\n" +" --localstatedir include /var/guix in the resulting pack" +msgstr "" +"\n" +" --localstatedir priložiť /var/guix k výslednému zväzku" + +#: guix/scripts/pack.scm:1103 +msgid "" +"\n" +" --profile-name=NAME\n" +" populate /var/guix/profiles/.../NAME" +msgstr "" +"\n" +" --profile-name=NÁZOV\n" +" naplniť /var/guix/profiles/.../NÁZOV" + +#: guix/scripts/pack.scm:1109 +msgid "" +"\n" +" -d, --derivation return the derivation of the pack" +msgstr "" +"\n" +" -d, --derivation vrátiť odvodeninu balíka" + +#: guix/scripts/pack.scm:1113 +msgid "" +"\n" +" --bootstrap use the bootstrap binaries to build the pack" +msgstr "" +"\n" +" --bootstrap použiť zavádzacie binárne súbory na zostavenie " +"zväzku" + +#: guix/scripts/pack.scm:1167 +#, scheme-format +msgid "could not determine provenance of package ~a~%" +msgstr "nepodarilo sa zistiť pôvod balíka ~a~%" + +#: guix/scripts/pack.scm:1176 +#, scheme-format +msgid "both a manifest and a package list were given~%" +msgstr "naraz ste zadali manifest aj zoznam balíkov~%" + +#: guix/scripts/pack.scm:1235 +#, scheme-format +msgid "~a: unknown pack format~%" +msgstr "~a: neznámy formát zväzku~%" + +#: guix/scripts/pack.scm:1259 +#, scheme-format +msgid "no packages specified; building an empty pack~%" +msgstr "neboli určené žiadne balíky; zostaví sa prázdny zväzok~%" + +#: guix/scripts/pack.scm:1263 +#, scheme-format +msgid "Singularity requires you to provide a shell~%" +msgstr "Singularity vyžaduje shell~%" + +#: guix/scripts/pack.scm:1264 +msgid "Add @code{bash} or @code{bash-minimal} to your package list." +msgstr "Pridajte @code{bash} alebo @code{bash-minimal} do zoznamu balíkov." + +#: guix/scripts/weather.scm:93 +msgid "computing ~h package derivations for ~a...~%" +msgstr "výpočet odvodenín balíkov v počte ~h pre ~a...~%" + +#: guix/scripts/weather.scm:181 +msgid "looking for ~h store items on ~a...~%" +msgstr "vyhľadávanie položiek úložiska v počte ~h na ~a...~%" + +#: guix/scripts/weather.scm:201 +msgid " ~,1f% substitutes available (~h out of ~h)~%" +msgstr " ~,1f% dostupných náhrad (~h z ~h)~%" + +#: guix/scripts/weather.scm:207 +#, scheme-format +msgid " unknown substitute sizes~%" +msgstr " neznáme veľkosti náhrad~%" + +#: guix/scripts/weather.scm:210 +msgid " ~,1h MiB of nars (compressed)~%" +msgstr " ~,1h MiB súborov nar (komprimovaných)~%" + +#: guix/scripts/weather.scm:211 +msgid " at least ~,1h MiB of nars (compressed)~%" +msgstr " najmenej ~,1h MiB súborov nar (komprimovaných)~%" + +#: guix/scripts/weather.scm:213 +msgid " ~,1h MiB on disk (uncompressed)~%" +msgstr " ~,1h MiB na disku (bez kompresie)~%" + +#: guix/scripts/weather.scm:216 +msgid " ~,3h seconds per request (~,1h seconds in total)~%" +msgstr " ~,3h sekúnd na požiadavku (~,1h sekúnd spolu)~%" + +#: guix/scripts/weather.scm:218 +msgid " ~,1h requests per second~%" +msgstr " ~,1h požiadaviek za sekundu~%" + +#: guix/scripts/weather.scm:224 +#, scheme-format +msgid " (continuous integration information unavailable)~%" +msgstr " (poznatky o priebežnej integrácii nedostupné)~%" + +#: guix/scripts/weather.scm:227 +#, scheme-format +msgid " '~a' returned ~a (~s)~%" +msgstr " „~a“ vrátil ~a (~s)~%" + +#: guix/scripts/weather.scm:244 +msgid " ~,1f% (~h out of ~h) of the missing items are queued~%" +msgstr " ~,1f% (~h z ~h) chýbajúcich položiek je v rade~%" + +#: guix/scripts/weather.scm:250 +msgid " at least ~h queued builds~%" +msgstr " najmenej ~h zostavení v rade~%" + +#: guix/scripts/weather.scm:251 +msgid " ~h queued builds~%" +msgstr " ~h zostavení v rade~%" + +#: guix/scripts/weather.scm:254 +#, scheme-format +msgid " ~a: ~a (~0,1f%)~%" +msgstr " ~a: ~a (~0,1f%)~%" + +#: guix/scripts/weather.scm:260 +#, scheme-format +msgid " build rate: ~1,2f builds per hour~%" +msgstr " rýchlosť zostavovania: ~1,2f zostavení za hodinu~%" + +#: guix/scripts/weather.scm:264 +#, scheme-format +msgid " ~a: ~,2f builds per hour~%" +msgstr " ~a: ~,2f zostavení za hodinu~%" + +#: guix/scripts/weather.scm:272 +#, scheme-format +msgid "Substitutes are missing for the following items:~%" +msgstr "Chýbajú náhrady za nasledovné položky:~%" + +#: guix/scripts/weather.scm:285 +msgid "" +"Usage: guix weather [OPTIONS] [PACKAGES ...]\n" +"Report the availability of substitutes.\n" +msgstr "" +"Použitie: guix weather [PREPÍNAČE] [BALÍKY ...]\n" +"Zistiť dostupnosť náhrad.\n" + +#: guix/scripts/weather.scm:287 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" check for available substitutes at URLS" +msgstr "" +"\n" +" --substitute-urls=PREPOJENIA\n" +" vyhľadať dostupné náhrady cez PREPOJENIA" + +#: guix/scripts/weather.scm:290 +msgid "" +"\n" +" -m, --manifest=MANIFEST\n" +" look up substitutes for packages specified in " +"MANIFEST" +msgstr "" +"\n" +" -m, --manifest=MANIFEST\n" +" vyhľadať náhrady za balíky uvedené v MANIFESTE" + +#: guix/scripts/weather.scm:293 +msgid "" +"\n" +" -c, --coverage[=COUNT]\n" +" show substitute coverage for packages with at " +"least\n" +" COUNT dependents" +msgstr "" +"\n" +" -c, --coverage[=POČET]\n" +" zobraziť pokrytie náhradami pre balíky, na ktorých\n" +" závisí aspoň POČET iných balíkov" + +#: guix/scripts/weather.scm:297 +msgid "" +"\n" +" --display-missing display the list of missing substitutes" +msgstr "" +"\n" +" --display-missing zobraziť zoznam chýbajúcich náhrad" + +#: guix/scripts/weather.scm:299 +msgid "" +"\n" +" -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux" +"\"" +msgstr "" +"\n" +" -s, --system=SYSTÉM zohľadniť náhrady pre SYSTÉM, napr. „i686-linux“" + +#: guix/scripts/weather.scm:323 +#, scheme-format +msgid "~a: invalid URL~%" +msgstr "~a: neplatné prepojenie~%" + +#: guix/scripts/weather.scm:456 +#, scheme-format +msgid "The following ~a package is missing from '~a' for '~a':~%" +msgid_plural "The following ~a packages are missing from '~a' for '~a':~%" +msgstr[0] "~a nasledovný balík chýba v „~a“ pre „~a“:~%" +msgstr[1] "~a nasledovné balíky chýbajú v „~a“ pre „~a“:~%" +msgstr[2] "~a nasledovných balíkov chýba v „~a“ pre „~a“:~%" + +#: guix/scripts/weather.scm:462 +#, scheme-format +msgid "~a package is missing from '~a' for '~a':~%" +msgid_plural "~a packages are missing from '~a' for '~a', among which:~%" +msgstr[0] "~a balík chýba v „~a“ pre „~a“:~%" +msgstr[1] "~a balíky chýbajú v „~a“ pre „~a“, medzi ktorými:~%" +msgstr[2] "~a balíkov chýba v „~a“ pre „~a“, medzi ktorými:~%" + +#: guix/scripts/describe.scm:53 guix/scripts/processes.scm:291 +msgid "The available formats are:\n" +msgstr "Dostupné formáty sú:\n" + +#: guix/scripts/describe.scm:64 guix/scripts/processes.scm:324 +#, scheme-format +msgid "~a: unsupported output format~%" +msgstr "~a: nepodporovaný výstupný formát~%" + +#: guix/scripts/describe.scm:87 +msgid "" +"Usage: guix describe [OPTION]...\n" +"Display information about the channels currently in use.\n" +msgstr "" +"Použitie: guix describe [PREPÍNAČ]...\n" +"Zobraziť podrobnosti o práve používaných kanáloch.\n" + +#: guix/scripts/describe.scm:89 +msgid "" +"\n" +" -f, --format=FORMAT display information in the given FORMAT" +msgstr "" +"\n" +" -f, --format=FORMÁT zobraziť údaje vo FORMÁTE" + +#: guix/scripts/describe.scm:91 guix/scripts/processes.scm:308 +msgid "" +"\n" +" --list-formats display available formats" +msgstr "" +"\n" +" --list-formats zobraziť dostupné formáty" + +#: guix/scripts/describe.scm:93 +msgid "" +"\n" +" -p, --profile=PROFILE display information about PROFILE" +msgstr "" +"\n" +" -p, --profile=PROFIL zobraziť podrobnosti o PROFILE" + +#: guix/scripts/describe.scm:112 +#, scheme-format +msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%" +msgstr "~%;; upozornenie: GUIX_PACKAGE_PATH=\"~a\"~%" + +#: guix/scripts/describe.scm:115 +#, scheme-format +msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%" +msgstr "„GUIX_PACKAGE_PATH“ je nastavená ale nepoužíva sa~%" + +#: guix/scripts/describe.scm:155 +#, scheme-format +msgid "failed to determine origin~%" +msgstr "zisťovanie pôvodu zlyhalo~%" + +#: guix/scripts/describe.scm:156 +#, scheme-format +msgid "" +"Perhaps this\n" +"@command{guix} command was not obtained with @command{guix pull}? Its " +"version\n" +"string is ~a.~%" +msgstr "" +"Možno tento\n" +"@command{guix} príkaz nebol získaný pomocou @command{guix pull}. Jeho " +"verzia\n" +"je ~a.~%" + +#: guix/scripts/describe.scm:166 +#, scheme-format +msgid "Git checkout:~%" +msgstr "Git repozitár:~%" + +#: guix/scripts/describe.scm:167 +#, scheme-format +msgid " repository: ~a~%" +msgstr " repozitár: ~a~%" + +#: guix/scripts/describe.scm:168 +#, scheme-format +msgid " branch: ~a~%" +msgstr " vetva: ~a~%" + +#: guix/scripts/describe.scm:169 +#, scheme-format +msgid " commit: ~a~%" +msgstr " číslo úpravy (commit): ~a~%" + +#: guix/scripts/describe.scm:236 +#, scheme-format +msgid " repository URL: ~a~%" +msgstr " zdroj repozitára: ~a~%" + +#: guix/scripts/describe.scm:239 +#, scheme-format +msgid " branch: ~a~%" +msgstr " vetva: ~a~%" + +#: guix/scripts/describe.scm:241 +#, scheme-format +msgid " commit: ~a~%" +msgstr " číslo úpravy (commit): ~a~%" + +#: guix/scripts/processes.scm:298 +msgid "" +"Usage: guix processes\n" +"List the current Guix sessions and their processes." +msgstr "" +"Použitie: guix processes\n" +"Zobraziť zoznam súčasných sedení Guix a ich procesov." + +#: guix/scripts/processes.scm:306 +msgid "" +"\n" +" -f, --format=FORMAT display results as normalized record sets" +msgstr "" +"\n" +" -f, --format=FORMÁT zobraziť výsledky ako množinu normalizovaných " +"záznamov" + +#: guix/scripts/deploy.scm:49 +msgid "" +"Usage: guix deploy [OPTION] FILE...\n" +"Perform the deployment specified by FILE.\n" +msgstr "" +"Použitie: guix deploy [PREPÍNAČ] SÚBOR...\n" +"Vykonať nasadenie určené SÚBOROM.\n" + +#: guix/scripts/deploy.scm:106 +#, scheme-format +msgid "The following ~d machine will be deployed:~%" +msgid_plural "The following ~d machines will be deployed:~%" +msgstr[0] "Nasadí sa nasledovný ~d stroj:~%" +msgstr[1] "Nasadia sa nasledovné ~d stroje:~%" +msgstr[2] "Nasadí sa nasledovných ~d strojov:~%" + +#: guix/scripts/deploy.scm:120 +#, scheme-format +msgid "deploying to ~a...~%" +msgstr "nasadzuje sa na ~a...~%" + +#: guix/scripts/deploy.scm:135 +#, scheme-format +msgid "failed to deploy ~a: ~a~%" +msgstr "nepodarilo sa nasadiť ~a: ~a~%" + +#: guix/scripts/deploy.scm:140 +#, scheme-format +msgid "rolling back ~a...~%" +msgstr "vraciam ~a do pôvodného stavu...~%" + +#: guix/scripts/deploy.scm:146 +#, scheme-format +msgid "successfully deployed ~a~%" +msgstr "nasadzovanie ~a sa podarilo~%" + +#: guix/gexp.scm:423 +#, scheme-format +msgid "resolving '~a' relative to current directory~%" +msgstr "zisťuje sa „~a“ vzhľadom k súčasnému priečinku~%" + +#: guix/gexp.scm:815 +#, scheme-format +msgid "importing module~{ ~a~} from the host~%" +msgid_plural "importing modules~{ ~a~} from the host~%" +msgstr[0] "načítava sa modul~{ ~a~} z hostiteľa~%" +msgstr[1] "načítavajú sa moduly~{ ~a~} z hostiteľa~%" +msgstr[2] "načítavajú sa moduly~{ ~a~} z hostiteľa~%" + +#: guix/gnu-maintenance.scm:809 +msgid "Updater for GNU packages" +msgstr "Nástroj na aktualizáciu balíkov GNU" + +#: guix/gnu-maintenance.scm:818 +msgid "Updater for GNU packages only available via FTP" +msgstr "Nástroj na aktualizáciu balíkov GNU je dostupný len cez FTP" + +#: guix/gnu-maintenance.scm:827 +msgid "Updater for packages hosted on savannah.gnu.org" +msgstr "Nástroj na aktualizáciu je dostupný na savannah.gnu.org" + +#: guix/gnu-maintenance.scm:834 +msgid "Updater for packages hosted on sourceforge.net" +msgstr "Nástroj na aktualizáciu balíkov dostupných cez sourceforge.net" + +#: guix/gnu-maintenance.scm:841 +msgid "Updater for X.org packages" +msgstr "Nástroj na aktualizáciu balíkov X.org" + +#: guix/gnu-maintenance.scm:848 +msgid "Updater for packages hosted on kernel.org" +msgstr "Nástroj na aktualizáciu balíkov dostupných cez kernel.org" + +#: guix/gnu-maintenance.scm:855 +msgid "Updater that crawls HTML pages." +msgstr "Nástroj na aktualizáciu balíkov, ktorý prehľadáva HTML stránky." + +#: guix/scripts/container.scm:27 +msgid "" +"Usage: guix container ACTION ARGS...\n" +"Build and manipulate Linux containers.\n" +msgstr "" +"Použitie: guix container ČINNOSŤ PARAMETRE...\n" +"Zostaviť a narábať s Linuxovými kontajnermi.\n" + +#: guix/scripts/container.scm:32 +msgid " exec execute a command inside of an existing container\n" +msgstr " exec spustiť príkaz v existujúcom kontajneri\n" + +#: guix/scripts/container.scm:58 +#, scheme-format +msgid "guix container: missing action~%" +msgstr "guix container: postráda sa činnosť~%" + +#: guix/scripts/container.scm:68 +#, scheme-format +msgid "guix container: invalid action~%" +msgstr "guix container: neplatná činnosť~%" + +#: guix/scripts/container/exec.scm:40 +msgid "" +"Usage: guix container exec PID COMMAND [ARGS...]\n" +"Execute COMMAND within the container process PID.\n" +msgstr "" +"Použitie: guix container exec PID PRÍKAZ [PARAMETRE...]\n" +"Vykonať PRÍKAZ vrámci kontajnera s číslom procesu PID.\n" + +#: guix/scripts/container/exec.scm:69 +#, scheme-format +msgid "~a: extraneous argument~%" +msgstr "~a: nadbytočný parameter~%" + +#: guix/scripts/container/exec.scm:87 +#, scheme-format +msgid "no pid specified~%" +msgstr "nebolo zadané žiadne číslo procesu~%" + +#: guix/scripts/container/exec.scm:90 +#, scheme-format +msgid "no command specified~%" +msgstr "nebol zadaný žiadny príkaz~%" + +#: guix/scripts/container/exec.scm:93 +#, scheme-format +msgid "no such process ~d~%" +msgstr "žiadny proces s číslom ~d~%" + +#: guix/scripts/container/exec.scm:105 +#, scheme-format +msgid "exec failed with status ~d~%" +msgstr "činnosť exec zlyhala s návratovou hodnotou ~d~%" + +#: guix/transformations.scm:178 guix/transformations.scm:246 +#, scheme-format +msgid "invalid replacement specification: ~s" +msgstr "neplatné určenie nahradenia: ~s" + +#: guix/transformations.scm:227 +#, scheme-format +msgid "the source of ~a is not a Git reference" +msgstr "zdroj balíka ~a nie je Git prepojenie" + +#: guix/transformations.scm:319 +#, scheme-format +msgid "~a: invalid Git URL replacement specification" +msgstr "~a: neplatné určenie nahradenia Git prepojenia" + +#: guix/transformations.scm:397 +#, scheme-format +msgid "~a: invalid toolchain replacement specification" +msgstr "~a: neplatné určenie nahradenia vývojového reťazca" + +#: guix/transformations.scm:501 +#, scheme-format +msgid "~a: invalid package patch specification" +msgstr "~a: neplatné určenie záplaty balíka" + +#: guix/transformations.scm:524 +#, scheme-format +msgid "could not determine latest upstream release of '~a'~%" +msgstr "nepodarilo sa zistiť najnovšie vydanie balíka „~a“ u poskytovateľa~%" + +#: guix/transformations.scm:532 +#, scheme-format +msgid "cannot authenticate source of '~a', version ~a~%" +msgstr "nepodarilo sa overiť zdroj „~a“, verzia ~a~%" + +#: guix/transformations.scm:616 +#, scheme-format +msgid "Available package transformation options:~%" +msgstr "Dostupné možnosti premeny balíka:~%" + +#: guix/transformations.scm:622 +msgid "" +"\n" +" --with-source=[PACKAGE=]SOURCE\n" +" use SOURCE when building the corresponding package" +msgstr "" +"\n" +" --with-source=[BALÍK=]ZDROJ\n" +" použiť ZDROJ pri zostavení BALÍKA" + +#: guix/transformations.scm:625 +msgid "" +"\n" +" --with-input=PACKAGE=REPLACEMENT\n" +" replace dependency PACKAGE by REPLACEMENT" +msgstr "" +"\n" +" --with-input=BALÍK=NÁHRADNÝ-BALÍK\n" +" použiť NÁHRADNÝ-BALÍK namiesto BALÍKA závislosti" + +#: guix/transformations.scm:628 +msgid "" +"\n" +" --with-graft=PACKAGE=REPLACEMENT\n" +" graft REPLACEMENT on packages that refer to PACKAGE" +msgstr "" +"\n" +" --with-graft=BALÍK=NÁHRADNÝ-BALÍK\n" +" vštepiť NÁHRADNÝ-BALÍK balíkom, ktoré odkazujú na " +"BALÍK" + +#: guix/transformations.scm:631 +msgid "" +"\n" +" --with-branch=PACKAGE=BRANCH\n" +" build PACKAGE from the latest commit of BRANCH" +msgstr "" +"\n" +" --with-branch=BALÍK=VETVA\n" +" zostaviť najnovšiu úpravu (commit) BALÍKA z VETVY" + +#: guix/transformations.scm:634 +msgid "" +"\n" +" --with-commit=PACKAGE=COMMIT\n" +" build PACKAGE from COMMIT" +msgstr "" +"\n" +" --with-commit=BALÍK=ÚPRAVA\n" +" zostaviť BALÍK z ÚPRAVY (commitu)" + +#: guix/transformations.scm:637 +msgid "" +"\n" +" --with-git-url=PACKAGE=URL\n" +" build PACKAGE from the repository at URL" +msgstr "" +"\n" +" --with-git-url=BALÍK=PREPOJENIE\n" +" zostaviť BALÍK z repozitára dostupného cez " +"PREPOJENIE" + +#: guix/transformations.scm:640 +msgid "" +"\n" +" --with-patch=PACKAGE=FILE\n" +" add FILE to the list of patches of PACKAGE" +msgstr "" +"\n" +" --with-patch=BALÍK=SÚBOR\n" +" pridať SÚBOR do zoznamu záplat pre BALÍK" + +#: guix/transformations.scm:643 +msgid "" +"\n" +" --with-latest=PACKAGE\n" +" use the latest upstream release of PACKAGE" +msgstr "" +"\n" +" --with-latest=BALÍK\n" +" použiť najnovšie dostupné vydanie BALÍKA" + +#: guix/transformations.scm:646 +msgid "" +"\n" +" --with-c-toolchain=PACKAGE=TOOLCHAIN\n" +" build PACKAGE and its dependents with TOOLCHAIN" +msgstr "" +"\n" +" --with-c-toolchain=BALÍK=VÝVOJOVÝ-REŤAZEC\n" +" zostaviť BALÍK a jeho závislosti pomocou VÝVOJOVÉHO-" +"REŤAZCA" + +#: guix/transformations.scm:649 +msgid "" +"\n" +" --with-debug-info=PACKAGE\n" +" build PACKAGE and preserve its debug info" +msgstr "" +"\n" +" --with-debug-info=BALÍK\n" +" zostaviť BALÍK zachovajúc symboly ladenia" + +#: guix/transformations.scm:652 +msgid "" +"\n" +" --without-tests=PACKAGE\n" +" build PACKAGE without running its tests" +msgstr "" +"\n" +" --without-tests=BALÍK\n" +" zostaviť BALÍK vynechajúc testy" + +#: guix/transformations.scm:658 +msgid "" +"\n" +" --help-transform list package transformation options not shown here" +msgstr "" +"\n" +" --help-transform ukázať možnosti premeny balíka, ktoré tu nie sú " +"zobrazené" + +#: guix/transformations.scm:707 +#, scheme-format +msgid "transformation '~a' had no effect on ~a~%" +msgstr "premena „~a“ nemá dopad na ~a~%" + +#: guix/upstream.scm:348 +#, scheme-format +msgid "failed to download detached signature from ~a~%" +msgstr "nepodarilo sa stiahnuť samostatný podpis z ~a~%" + +#: guix/upstream.scm:352 +#, scheme-format +msgid "signature verification failed for '~a' (key: ~a)~%" +msgstr "overenie podpisu pre „~a“ zlyhalo (kľúč: ~a)~%" + +#: guix/upstream.scm:356 +#, scheme-format +msgid "missing public key ~a for '~a'~%" +msgstr "postráda sa verejný kľúč ~a pre „~a“~%" + +#: guix/upstream.scm:370 +#, scheme-format +msgid "failed to fetch source from '~a'" +msgstr "získavanie zdroja pre „~a“ zlyhalo" + +#: guix/upstream.scm:454 +#, scheme-format +msgid "cannot download for this method: ~s" +msgstr "nedá sa sťahovať týmto spôsobom: ~s" + +#: guix/upstream.scm:519 +#, scheme-format +msgid "~a: could not locate source file" +msgstr "~a: nepodarilo sa nájsť zdrojový súbor" + +#: guix/upstream.scm:523 +#, scheme-format +msgid "~a: no `version' field in source; skipping~%" +msgstr "~a: postráda sa pole „version“ v zdrojovom súbore; preskakuje sa~%" + +#: guix/ui.scm:162 +#, scheme-format +msgid "error: ~a: unbound variable" +msgstr "chyba: ~a: neznáma premenná" + +#: guix/ui.scm:262 +msgid "entering debugger; type ',bt' for a backtrace\n" +msgstr "spúšťa sa ladenie; zadajte „,bt“ pre zobrazenie stromu volaní\n" + +#: guix/ui.scm:320 +msgid "hint: " +msgstr "rada: " + +#: guix/ui.scm:337 +msgid "Did you forget a @code{use-modules} form?" +msgstr "Zabudli ste na nejaký @code{use-modules}?" + +#: guix/ui.scm:339 +#, scheme-format +msgid "Did you forget @code{(use-modules ~a)}?" +msgstr "Zabudli ste na @code{(use-modules ~a)}?" + +#: guix/ui.scm:349 +#, scheme-format +msgid "" +"File @file{~a} should probably start with:\n" +"\n" +"@example\n" +"(define-module ~a)\n" +"@end example" +msgstr "" +"Súbor @file{~a} by mal pravdepodobne začínať s:\n" +"\n" +"@example\n" +"(define-module ~a)\n" +"@end example" + +#: guix/ui.scm:363 +#, scheme-format +msgid "module name ~a does not match file name '~a'~%" +msgstr "názov modulu ~a sa nezhoduje s názvom súboru „~a“~%" + +#: guix/ui.scm:367 +#, scheme-format +msgid "~a: file is empty~%" +msgstr "~a: súbor je prázdny~%" + +#: guix/ui.scm:378 guix/ui.scm:426 guix/ui.scm:434 guix/ui.scm:438 +#, scheme-format +msgid "failed to load '~a': ~a~%" +msgstr "nepodarilo sa načítať „~a“: ~a~%" + +#: guix/ui.scm:385 +#, scheme-format +msgid "~amissing closing parenthesis~%" +msgstr "~achýbajúce pravé zátvorky~%" + +#: guix/ui.scm:390 +#, scheme-format +msgid "~s: ~a~%" +msgstr "~s: ~a~%" + +#: guix/ui.scm:406 guix/ui.scm:902 +#, scheme-format +msgid "exception thrown: ~s~%" +msgstr "bola vyhodená výnimka: ~s~%" + +#: guix/ui.scm:410 guix/ui.scm:448 +#, scheme-format +msgid "failed to load '~a':~%" +msgstr "nepodarilo sa načítať „~a“:~%" + +#: guix/ui.scm:445 +#, scheme-format +msgid "failed to load '~a': exception thrown: ~s~%" +msgstr "nepodarilo sa načítať „~a“: bola vyhodená výnimka: ~s~%" + +#: guix/ui.scm:493 +msgid "" +"Consider installing the @code{glibc-utf8-locales} or\n" +"@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n" +"lines:\n" +"\n" +"@example\n" +"guix install glibc-utf8-locales\n" +"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n" +"@end example\n" +"\n" +"See the \"Application Setup\" section in the manual, for more info.\n" +msgstr "" +"Zvážte inštaláciu balíka @code{glibc-utf8-locales} alebo\n" +"@code{glibc-locales} a nastavenie premennej @code{GUIX_LOCPATH},\n" +"asi takto:\n" +"\n" +"@example\n" +"guix install glibc-utf8-locales\n" +"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n" +"@end example\n" +"\n" +"Viď príručka, oddiel „Nastavenia aplikácií“.\n" + +#. TRANSLATORS: Translate "(C)" to the copyright symbol +#. (C-in-a-circle), if this symbol is available in the user's +#. locale. Otherwise, do not translate "(C)"; leave it as-is. */ +#: guix/ui.scm:535 +msgid "(C)" +msgstr "(C)" + +#: guix/ui.scm:536 +msgid "the Guix authors\n" +msgstr "autori Guixu\n" + +#: guix/ui.scm:537 +msgid "" +"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." +"html>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licenčná dohoda GPLv3+: GNU GPL verzia 3 alebo novšia <http://gnu.org/" +"licenses/gpl.html>\n" +"Tento program je slobodný softvér. Môžete ho ďalej upravovať a rozširovať.\n" +"NEPOSKYTUJÚ SA ŽIADNE ZÁRUKY vrámci rozsahu, ktorý určuje zákon.\n" + +#. TRANSLATORS: The placeholder indicates the bug-reporting address for this +#. package. Please add another line saying "Report translation bugs to +#. ...\n" with the address for translation bugs (typically your translation +#. team's web or email address). +#: guix/ui.scm:549 +#, scheme-format +msgid "" +"\n" +"Report bugs to: ~a." +msgstr "" +"\n" +"Chyby hláste na: ~a." + +#: guix/ui.scm:551 +#, scheme-format +msgid "" +"\n" +"~a home page: <~a>" +msgstr "" +"\n" +"~a domovská stránka: <~a>" + +#: guix/ui.scm:553 +#, scheme-format +msgid "" +"\n" +"General help using Guix and GNU software: <~a>" +msgstr "" +"\n" +"Všeobecný návod na používanie systému Guix a GNU softvéru: <~a>" + +#. TRANSLATORS: Change the "/en" bit of this URL appropriately if +#. the web site is translated in your language. +#: guix/ui.scm:557 +msgid "https://guix.gnu.org/en/help/" +msgstr "https://guix.gnu.org/en/help/" + +#: guix/ui.scm:611 +#, scheme-format +msgid "'~a' is not a valid regular expression: ~a~%" +msgstr "„~a“ nie je platným regulárnym výrazom: ~a~%" + +#: guix/ui.scm:617 +#, scheme-format +msgid "~a: invalid number~%" +msgstr "~a: neplatná číselná hodnota~%" + +#: guix/ui.scm:635 +#, scheme-format +msgid "invalid number: ~a~%" +msgstr "neplatná číselná hodnota: ~a~%" + +#: guix/ui.scm:658 +#, scheme-format +msgid "unknown unit: ~a~%" +msgstr "neznáma jednotka: ~a~%" + +#: guix/ui.scm:673 +#, scheme-format +msgid "" +"You cannot have two different versions\n" +"or variants of @code{~a} in the same profile." +msgstr "" +"Nemôžete mať dve rozdielne verzie alebo obmeny\n" +"@code{~a} v rovnakom profile." + +#: guix/ui.scm:676 +#, scheme-format +msgid "" +"Try upgrading both @code{~a} and @code{~a},\n" +"or remove one of them from the profile." +msgstr "" +"Skúste aktualizovať @code{~a} a @code{~a},\n" +"alebo jeden z nich odstráňte z profilu." + +#: guix/ui.scm:712 +#, scheme-format +msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" +msgstr "~a:~a:~a: balík „~a“ má neplatný vstup: ~s~%" + +#: guix/ui.scm:719 +#, scheme-format +msgid "~a: ~a: build system `~a' does not support cross builds~%" +msgstr "~a: ~a: zostavovací systém „~a“ nepodporuje krížové zostavovanie~%" + +#: guix/ui.scm:725 +#, scheme-format +msgid "~s: invalid G-expression input~%" +msgstr "~s: neplatný G-výraz na vstupe~%" + +#: guix/ui.scm:728 +#, scheme-format +msgid "profile '~a' does not exist~%" +msgstr "profil „~a“ neexistuje~%" + +#: guix/ui.scm:731 +#, scheme-format +msgid "generation ~a of profile '~a' does not exist~%" +msgstr "pokolenie ~a profilu „~a“ neexistuje~%" + +#: guix/ui.scm:736 +#, scheme-format +msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%" +msgstr "balík „~a~@[@~a~]~@[:~a~]“ sa v profile nenašiel~%" + +#: guix/ui.scm:748 +#, scheme-format +msgid " ... propagated from ~a@~a~%" +msgstr " ... rozšírené z ~a@~a~%" + +#: guix/ui.scm:758 +#, scheme-format +msgid "profile contains conflicting entries for ~a~a~%" +msgstr "profil obsahuje nezlučiteľné vstupy pre ~a~a~%" + +#: guix/ui.scm:761 +#, scheme-format +msgid " first entry: ~a@~a~a ~a~%" +msgstr " prvý vstup: ~a@~a~a ~a~%" + +#: guix/ui.scm:767 +#, scheme-format +msgid " second entry: ~a@~a~a ~a~%" +msgstr " druhý vstup: ~a@~a~a ~a~%" + +#: guix/ui.scm:779 +#, scheme-format +msgid "corrupt input while restoring '~a' from ~s~%" +msgstr "poškodený vstup pri obnovovaní „~a“ z ~s~%" + +#: guix/ui.scm:781 +#, scheme-format +msgid "corrupt input while restoring archive from ~s~%" +msgstr "poškodený vstup pri obnovovaní archívu z ~s~%" + +#: guix/ui.scm:784 +#, scheme-format +msgid "failed to connect to `~a': ~a~%" +msgstr "nepodarilo sa pripojiť k „~a“': ~a~%" + +#: guix/ui.scm:792 +#, scheme-format +msgid "reference to invalid output '~a' of derivation '~a'~%" +msgstr "odkaz na neplatný výstup „~a“ odvodeniny „~a“~%" + +#: guix/ui.scm:796 +#, scheme-format +msgid "file '~a' could not be found in these directories:~{ ~a~}~%" +msgstr "súbor „~a“ sa nepodarilo nájsť v týchto priečinkoch:~{ ~a~}~%" + +#: guix/ui.scm:801 +#, scheme-format +msgid "" +"program " +"exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: " +"~s~%" +msgstr "" +"program " +"skončil~@[ s nenulovou návratovou hodnotou ~a~]~@[ ukončený signálom ~a~]~@[ zastavený signálom ~a~]: " +"~s~%" + +#: guix/ui.scm:881 +#, scheme-format +msgid "failed to read expression ~s: ~s~%" +msgstr "nepodarilo sa prečítať výraz ~s: ~s~%" + +#: guix/ui.scm:887 +#, scheme-format +msgid "failed to evaluate expression '~a':~%" +msgstr "nepodarilo sa vyhodnotiť výraz „~a“:~%" + +#: guix/ui.scm:890 +#, scheme-format +msgid "syntax error: ~a~%" +msgstr "neplatná skladba: ~a~%" + +#: guix/ui.scm:914 +#, scheme-format +msgid "expression ~s does not evaluate to a package~%" +msgstr "vyhodnotenie výrazu ~s sa nezhoduje so žiadnym balíkom~%" + +#: guix/ui.scm:941 +msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%" +msgstr "vyžaduje sa najmenej ~,1h MB ale dostupných je iba ~,1h MB v ~a~%" + +#: guix/ui.scm:1050 +#, scheme-format +msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Zostavila by sa nasledovná odvodenina:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Zostavili by sa nasledovné odvodeniny:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Zostavili by sa nasledovné odvodeniny:~%~{ ~a~%~}~;~]" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:1059 +msgid "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[stiahlo by sa ~,1h MB:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1065 +#, scheme-format +msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Stiahol by sa nasledovný súbor:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Stiahli by sa nasledovné súbory:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Stiahli by sa nasledovné súbory:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1072 +#, scheme-format +msgid "~:[The following graft would be made:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following grafts would be made:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Vykonal by sa nasledovný štep:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Vykonali by sa nasledovné štepy:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Vykonali by sa nasledovné štepy:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1077 +#, scheme-format +msgid "~:[The following profile hook would be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following profile hooks would be built:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Zostavil by sa nasledovný háčik profilu:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Zostavili by sa nasledovné háčiky profilu:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Zostavili by sa nasledovné háčiky profilu:~%~{ ~a~%~}~;~]" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:1089 +msgid "~:[~,1h MB would be downloaded~%~;~]" +msgstr "~:[stiahlo by sa ~,1h MB~%~;~]" + +#: guix/ui.scm:1093 +msgid "~:[~h item would be downloaded~%~;~]" +msgid_plural "~:[~h items would be downloaded~%~;~]" +msgstr[0] "~:[stiahla by sa ~h položka~%~;~]" +msgstr[1] "~:[stiahli by sa ~h položky~%~;~]" +msgstr[2] "~:[stiahlo by sa ~h položiek~%~;~]" + +#: guix/ui.scm:1101 +#, scheme-format +msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Zostaví sa nasledovná odvodenina:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Zostavia sa nasledovné odvodeniny:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Zostavia sa nasledovné odvodeniny:~%~{ ~a~%~}~;~]" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:1110 +msgid "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[stiahne sa ~,1h MB:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1116 +#, scheme-format +msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Stiahne sa nasledovný súbor:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Stiahnu sa nasledovné súbory:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Stiahnu sa nasledovné súbory:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1123 +#, scheme-format +msgid "~:[The following graft will be made:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following grafts will be made:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Vykoná sa nasledovný štep:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Vykonajú sa nasledovné štepy:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Vykonajú sa nasledovné štepy:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1128 +#, scheme-format +msgid "~:[The following profile hook will be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following profile hooks will be built:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Zostaví sa nasledovný háčik profilu:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Zostavia sa nasledovné háčiky profilu:~%~{ ~a~%~}~;~]" +msgstr[2] "~:[Zostavia sa nasledovné háčiky profilu:~%~{ ~a~%~}~;~]" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:1140 +msgid "~:[~,1h MB will be downloaded~%~;~]" +msgstr "~:[stiahne sa ~,1h MB~%~;~]" + +#: guix/ui.scm:1144 +msgid "~:[~h item will be downloaded~%~;~]" +msgid_plural "~:[~h items will be downloaded~%~;~]" +msgstr[0] "~:[stiahne sa ~h položka~%~;~]" +msgstr[1] "~:[stiahnu sa ~h položky~%~;~]" +msgstr[2] "~:[stiahne sa ~h položiek~%~;~]" + +#: guix/ui.scm:1263 +msgid "(dependencies or package changed)" +msgstr "(balík alebo závislosti sa zmenili)" + +#: guix/ui.scm:1282 +#, scheme-format +msgid "The following package would be removed:~%~{~a~%~}~%" +msgid_plural "The following packages would be removed:~%~{~a~%~}~%" +msgstr[0] "Odstránil by sa nasledovný balík:~%~{~a~%~}~%" +msgstr[1] "Odstránili by sa nasledovné balíky:~%~{~a~%~}~%" +msgstr[2] "Odstránili by sa nasledovné balíky:~%~{~a~%~}~%" + +#: guix/ui.scm:1287 +#, scheme-format +msgid "The following package will be removed:~%~{~a~%~}~%" +msgid_plural "The following packages will be removed:~%~{~a~%~}~%" +msgstr[0] "Odstráni sa nasledovný balík:~%~{~a~%~}~%" +msgstr[1] "Odstránia sa nasledovné balíky:~%~{~a~%~}~%" +msgstr[2] "Odstránia sa nasledovné balíky:~%~{~a~%~}~%" + +#: guix/ui.scm:1300 +#, scheme-format +msgid "The following package would be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" +msgstr[0] "Nasledovný balík by prešiel na staršiu verziu:~%~{~a~%~}~%" +msgstr[1] "Nasledovné balíky by prešli na staršie verzie:~%~{~a~%~}~%" +msgstr[2] "Nasledovné balíky by prešli na staršie verzie:~%~{~a~%~}~%" + +#: guix/ui.scm:1305 +#, scheme-format +msgid "The following package will be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" +msgstr[0] "Nasledovný balík prejde na staršiu verziu:~%~{~a~%~}~%" +msgstr[1] "Nasledovné balíky prejdú na staršie verzie:~%~{~a~%~}~%" +msgstr[2] "Nasledovné balíky prejdú na staršie verzie:~%~{~a~%~}~%" + +#: guix/ui.scm:1318 +#, scheme-format +msgid "The following package would be upgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" +msgstr[0] "Aktualizoval by sa nasledovný balík:~%~{~a~%~}~%" +msgstr[1] "Aktualizovali by sa nasledovné balíky:~%~{~a~%~}~%" +msgstr[2] "Aktualizovali by sa nasledovné balíky:~%~{~a~%~}~%" + +#: guix/ui.scm:1323 +#, scheme-format +msgid "The following package will be upgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" +msgstr[0] "Aktualizuje sa nasledovný balík:~%~{~a~%~}~%" +msgstr[1] "Aktualizujú sa nasledovné balíky:~%~{~a~%~}~%" +msgstr[2] "Aktualizujú sa nasledovné balíky:~%~{~a~%~}~%" + +#: guix/ui.scm:1334 +#, scheme-format +msgid "The following package would be installed:~%~{~a~%~}~%" +msgid_plural "The following packages would be installed:~%~{~a~%~}~%" +msgstr[0] "Nainštaloval by sa nasledovný balík:~%~{~a~%~}~%" +msgstr[1] "Nainštalovali by sa nasledovné balíky:~%~{~a~%~}~%" +msgstr[2] "Nainštalovali by sa nasledovné balíky:~%~{~a~%~}~%" + +#: guix/ui.scm:1339 +#, scheme-format +msgid "The following package will be installed:~%~{~a~%~}~%" +msgid_plural "The following packages will be installed:~%~{~a~%~}~%" +msgstr[0] "Nainštaluje sa nasledovný balík:~%~{~a~%~}~%" +msgstr[1] "Nainštalujú sa nasledovné balíky:~%~{~a~%~}~%" +msgstr[2] "Nainštalujú sa nasledovné balíky:~%~{~a~%~}~%" + +#: guix/ui.scm:1875 +#, scheme-format +msgid "invalid syntax: ~a~%" +msgstr "neplatná skladba: ~a~%" + +#: guix/ui.scm:1884 +#, scheme-format +msgid "Generation ~a\t~a" +msgstr "Pokolenie ~a\t~a" + +#. TRANSLATORS: This is a format-string for date->string. +#. Please choose a format that corresponds to the +#. usual way of presenting dates in your locale. +#. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html +#. for details. +#: guix/ui.scm:1894 +#, scheme-format +msgid "~b ~d ~Y ~T" +msgstr "~d. ~B ~Y ~T" + +#. TRANSLATORS: The word "current" here is an adjective for +#. "Generation", as in "current generation". Use the appropriate +#. gender where applicable. +#: guix/ui.scm:1900 +#, scheme-format +msgid "~a\t(current)~%" +msgstr "~a\t(súčasné)~%" + +#: guix/ui.scm:1934 +#, scheme-format +msgid "cannot lock profile ~a: ~a~%" +msgstr "nedá sa uzamknúť profil ~a: ~a~%" + +#: guix/ui.scm:1936 +#, scheme-format +msgid "profile ~a is locked by another process~%" +msgstr "profil ~a bol uzamknutý iným procesom~%" + +#: guix/ui.scm:1963 +#, scheme-format +msgid "switched from generation ~a to ~a~%" +msgstr "preplo sa z pokolenia ~a na ~a~%" + +#: guix/ui.scm:1979 +#, scheme-format +msgid "deleting ~a~%" +msgstr "odstraňuje sa ~a~%" + +#: guix/ui.scm:2010 +#, scheme-format +msgid "Try `guix --help' for more information.~%" +msgstr "Skúste „guix --help“ pre viac podrobností.~%" + +#: guix/ui.scm:2102 +msgid "" +"Usage: guix COMMAND ARGS...\n" +"Run COMMAND with ARGS.\n" +msgstr "" +"Použitie: guix PRÍKAZ PARAMETRE...\n" +"Spustiť PRÍKAZ s PARAMETRAMI.\n" + +#: guix/ui.scm:2105 +msgid "COMMAND must be one of the sub-commands listed below:\n" +msgstr "PRÍKAZ musí byť jeden z nižšie uvedených podpríkazov:\n" + +#: guix/ui.scm:2147 +#, scheme-format +msgid "guix: ~a: command not found~%" +msgstr "guix: ~a: príkaz sa nenašiel~%" + +#: guix/ui.scm:2149 +#, scheme-format +msgid "Did you mean @code{~a}?" +msgstr "Mali ste na mysli @code{~a}?" + +#: guix/ui.scm:2183 +#, scheme-format +msgid "guix: missing command name~%" +msgstr "guix: postráda sa názov príkazu~%" + +#: guix/ui.scm:2191 +#, scheme-format +msgid "guix: unrecognized option '~a'~%" +msgstr "guix: nerozpoznaný prepínač „~a“~%" + +#. TRANSLATORS: The word "phase" here denotes a "build phase"; +#. "~a" is a placeholder for the untranslated name of the current +#. build phase--e.g., 'configure' or 'build'. +#: guix/status.scm:357 +#, scheme-format +msgid "'~a' phase" +msgstr "krok „~a“" + +#: guix/status.scm:377 +msgid "building directory of Info manuals..." +msgstr "zostavuje sa priečinok Info príručiek..." + +#: guix/status.scm:379 +msgid "building GHC package cache..." +msgstr "zostavuje sa vyrovnávacia pamäť GHC balíkov..." + +#: guix/status.scm:381 +msgid "building CA certificate bundle..." +msgstr "zostavuje sa zväzok CA certifikátov…" + +#: guix/status.scm:383 +msgid "generating GLib schema cache..." +msgstr "vytvára sa vyrovnávacia pamäť GLib nákresov…" + +#: guix/status.scm:385 +msgid "creating GTK+ icon theme cache..." +msgstr "vytvára sa vyrovnávacia pamäť tém ikôn GTK+…" + +#: guix/status.scm:387 +msgid "building cache files for GTK+ input methods..." +msgstr "zostavujú sa súbory vyrovnávacej pamäte pre spôsoby vstupu GTK+…" + +#: guix/status.scm:389 +msgid "building XDG desktop file cache..." +msgstr "zostavuje sa vyrovnávacia pamäť súborov pracovnej plochy XDG..." + +#: guix/status.scm:391 +msgid "building XDG MIME database..." +msgstr "zostavuje sa databáza MIME súborov XDG..." + +#: guix/status.scm:393 +msgid "building fonts directory..." +msgstr "zostavuje sa priečinok písiem..." + +#: guix/status.scm:395 +msgid "building TeX Live configuration..." +msgstr "zostavuje sa súbor nastavení TeX Live..." + +#: guix/status.scm:397 +msgid "building database for manual pages..." +msgstr "zostavuje sa databáza stránok pomocníka..." + +#: guix/status.scm:399 +msgid "building package cache..." +msgstr "zostavuje sa vyrovnávacia pamäť balíkov..." + +#: guix/status.scm:479 +#, scheme-format +msgid "applying ~a graft for ~a ..." +msgid_plural "applying ~a grafts for ~a ..." +msgstr[0] "vykonáva sa ~a štep pre ~a ..." +msgstr[1] "vykonávajú sa ~a štepy pre ~a ..." +msgstr[2] "vykonáva sa ~a štepov pre ~a ..." + +#: guix/status.scm:487 +#, scheme-format +msgid "building profile with ~a package..." +msgid_plural "building profile with ~a packages..." +msgstr[0] "zostavuje sa profil s ~a balíkom..." +msgstr[1] "zostavuje sa profil s ~a balíkmi..." +msgstr[2] "zostavuje sa profil s ~a balíkmi..." + +#: guix/status.scm:496 +#, scheme-format +msgid "running profile hook of type '~a'..." +msgstr "spúšťa sa háčik profilu typu „~a“..." + +#: guix/status.scm:499 +#, scheme-format +msgid "building ~a..." +msgstr "zostavuje sa ~a..." + +#: guix/status.scm:504 +#, scheme-format +msgid "successfully built ~a" +msgstr "zostavenie ~a prebehlo úspešne" + +#: guix/status.scm:510 +#, scheme-format +msgid "The following build is still in progress:~%~{ ~a~%~}~%" +msgid_plural "The following builds are still in progress:~%~{ ~a~%~}~%" +msgstr[0] "Nasledovné zostavovanie stále prebieha:~%~{ ~a~%~}~%" +msgstr[1] "Nasledovné zostavovania stále prebiehajú:~%~{ ~a~%~}~%" +msgstr[2] "Nasledovné zostavovania stále prebiehajú:~%~{ ~a~%~}~%" + +#: guix/status.scm:516 +#, scheme-format +msgid "build of ~a failed" +msgstr "zostavenie ~a zlyhalo" + +#: guix/status.scm:520 +#, scheme-format +msgid "Could not find build log for '~a'." +msgstr "Nepodarilo sa nájsť záznam zostavovania „~a“." + +#: guix/status.scm:523 +#, scheme-format +msgid "View build log at '~a'." +msgstr "Záznam zostavovania nájdete v „~a“." + +#: guix/status.scm:528 +#, scheme-format +msgid "substituting ~a..." +msgstr "nahrádza sa ~a..." + +#: guix/status.scm:533 +#, scheme-format +msgid "downloading from ~a ..." +msgstr "sťahuje sa z ~a ..." + +#: guix/status.scm:559 +#, scheme-format +msgid "substitution of ~a complete" +msgstr "nahrádzanie ~a dokončené" + +#: guix/status.scm:562 +#, scheme-format +msgid "substitution of ~a failed" +msgstr "nahrádzanie ~a zlyhalo" + +#. TRANSLATORS: The final string looks like "sha256 hash mismatch for +#. /gnu/store/…-sth:", where "sha256" is the hash algorithm. +#: guix/status.scm:567 +#, scheme-format +msgid "~a hash mismatch for ~a:" +msgstr "odtlačok ~a nesúhlasí pre ~a:" + +#: guix/status.scm:569 +#, scheme-format +msgid "" +" expected hash: ~a\n" +" actual hash: ~a~%" +msgstr "" +" očakávaný odtlačok: ~a\n" +" získaný odtlačok: ~a~%" + +#: guix/status.scm:574 +#, scheme-format +msgid "offloading build of ~a to '~a'" +msgstr "prenášam zostavenie ~a na „~a“" + +#: guix/http-client.scm:134 +#, scheme-format +msgid "following redirection to `~a'...~%" +msgstr "presmerovanie na „~a“...~%" + +#: guix/http-client.scm:146 +#, scheme-format +msgid "~a: HTTP download failed: ~a (~s)" +msgstr "~a: HTTP sťahovanie zlyhalo: ~a (~s)" + +#: guix/nar.scm:173 +msgid "signature is not a valid s-expression" +msgstr "podpis nie je platným s-výrazom" + +#: guix/nar.scm:182 +msgid "invalid signature" +msgstr "neplatný podpis" + +#: guix/nar.scm:186 +msgid "invalid hash" +msgstr "neplatný odtlačok" + +#: guix/nar.scm:194 +msgid "unauthorized public key" +msgstr "nepovolený verejný kľúč" + +#: guix/nar.scm:199 +msgid "corrupt signature data" +msgstr "poškodený podpis" + +#: guix/nar.scm:220 +msgid "corrupt file set archive" +msgstr "poškodené súbory v archíve" + +#: guix/nar.scm:230 +#, scheme-format +msgid "importing file or directory '~a'...~%" +msgstr "načítava sa súbor alebo priečinok „~a“...~%" + +#: guix/nar.scm:241 +#, scheme-format +msgid "found valid signature for '~a'~%" +msgstr "našiel sa platný podpis pre „~a“~%" + +#: guix/nar.scm:248 +msgid "imported file lacks a signature" +msgstr "načítaný súbor postráda podpis" + +#: guix/nar.scm:287 +msgid "invalid inter-file archive mark" +msgstr "neplatná značka medzi-súborového archívu" + +#: guix/narinfo.scm:102 +#, scheme-format +msgid "invalid narinfo hash: ~s" +msgstr "neplatný odtlačok narinfo:~s" + +#: guix/narinfo.scm:116 +#, scheme-format +msgid "signature version must be a number: ~s~%" +msgstr "verzia podpisu musí byť číslo: ~s~%" + +#: guix/narinfo.scm:120 +#, scheme-format +msgid "unsupported signature version: ~a~%" +msgstr "nepodporovaná verzia podpisu: ~a~%" + +#: guix/narinfo.scm:128 +#, scheme-format +msgid "signature is not a valid s-expression: ~s~%" +msgstr "podpis nie je platným s-výrazom: ~s~%" + +#: guix/narinfo.scm:132 +#, scheme-format +msgid "invalid format of the signature field: ~a~%" +msgstr "neplatný formát poľa podpisu: ~a~%" + +#: guix/channels.scm:275 +msgid "unsupported '.guix-channel' version" +msgstr "nepodporovaná verzia „.guix-channel“" + +#: guix/channels.scm:281 +msgid "invalid '.guix-channel' file" +msgstr "neplatný súbor „.guix-channel“" + +#: guix/channels.scm:340 +msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%" +msgstr "" +"Overujem kanál „~a“, úpravy (commity) od ~a po ~a (nové úpravy: ~h)...~%" + +#: guix/channels.scm:404 +#, scheme-format +msgid "channel '~a' lacks an introduction and cannot be authenticated~%" +msgstr "kanál „~a“ postráda úvod a nemôže byť overený~%" + +#: guix/channels.scm:409 +msgid "" +"Add the missing introduction to your\n" +"channels file to address the issue. Alternatively, you can pass\n" +"@option{--disable-authentication}, at the risk of running unauthenticated " +"and\n" +"thus potentially malicious code." +msgstr "" +"Pridajte chýbajúci úvod do vášho súboru kanála,\n" +"aby ste tejto chybe predišli. Prípadne môžete použiť prepínač\n" +"@option{--disable-authentication} s rizikom spustenia neovereného\n" +"a potenciálne škodlivého kódu." + +#: guix/channels.scm:413 +#, scheme-format +msgid "channel authentication disabled~%" +msgstr "overenie kanála vypnuté~%" + +#: guix/channels.scm:438 +#, scheme-format +msgid "" +"aborting update of channel '~a' to commit ~a, which is not a descendant of ~a" +msgstr "" +"ruší sa aktualizácia kanála „~a“ na úpravu (commit) ~a, ktorá nie je " +"potomkom ~a" + +#: guix/channels.scm:449 guix/scripts/system/reconfigure.scm:318 +msgid "" +"Use @option{--allow-downgrades} to force\n" +"this downgrade." +msgstr "" +"Použite @option{--allow-downgrades} pre vynútenie prechodu\n" +"na staršiu úpravu." + +#: guix/channels.scm:453 +msgid "" +"This could indicate that the channel has\n" +"been tampered with and is trying to force a roll-back, preventing you from\n" +"getting the latest updates. If you think this is not the case, explicitly\n" +"allow non-forward updates." +msgstr "" +"Toto môže znamenať, že kanál sa pokúša o návrat k staršej úprave\n" +"zabraňujúc vám tak v získaní najnovších aktualizácií. Ak si myslíte,\n" +"že toto nie je ten prípad, ručne povoľte aj tie aktualizácie, ktoré\n" +"nesmerujú výhradne vpred." + +#: guix/channels.scm:506 +#, scheme-format +msgid "Updating channel '~a' from Git repository at '~a'...~%" +msgstr "Aktualizuje sa kanál „~a“ z Git repozitára na „~a“...~%" + +#: guix/channels.scm:527 +#, scheme-format +msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%" +msgstr "kanál „~a“ získaný zo zrkadla ~a, ktoré môže byť zastarané~%" + +#: guix/channels.scm:776 +msgid "'guix' channel is lacking" +msgstr "postráda sa kanál „guix“" + +#: guix/channels.scm:778 +msgid "" +"Make sure your list of channels\n" +"contains one channel named @code{guix} providing the core of Guix." +msgstr "" +"Uistite sa, že váš zoznam kanálov\n" +"obsahuje aj kanál s názvom @code{guix} poskytujúci jadro systému Guix." + +#: guix/channels.scm:1053 +msgid "invalid channel news entry" +msgstr "neplatná novinka kanála" + +#: guix/channels.scm:1071 +msgid "syntactically invalid channel news file" +msgstr "neplatná skladba súbora noviniek" + +#: guix/channels.scm:1074 +msgid "invalid channel news file" +msgstr "neplatný súbor noviniek" + +#: guix/profiles.scm:585 +msgid "unsupported manifest format" +msgstr "nepodporovaný formát manifestu" + +#: guix/profiles.scm:2042 +#, scheme-format +msgid "while creating directory `~a': ~a" +msgstr "pri vytváraní priečinka „~a“: ~a" + +#: guix/profiles.scm:2047 +#, scheme-format +msgid "Please create the @file{~a} directory, with you as the owner." +msgstr "Vytvorte priečinok @file{~a}, ktorého budete vlastníkom." + +#: guix/profiles.scm:2056 +#, scheme-format +msgid "directory `~a' is not owned by you" +msgstr "nie ste vlastníkom priečinka „~a“" + +#: guix/profiles.scm:2060 +#, scheme-format +msgid "Please change the owner of @file{~a} to user ~s." +msgstr "Zmeňte vlastníka priečinka @file{~a} na používateľa ~s." + +#: guix/git.scm:140 +msgid "receiving objects" +msgstr "prijímajú sa objekty" + +#: guix/git.scm:142 +msgid "indexing objects" +msgstr "indexujú sa objekty" + +#: guix/git.scm:274 +#, scheme-format +msgid "Git error ~a~%" +msgstr "Chyba Git ~a~%" + +#: guix/git.scm:276 guix/git.scm:487 +#, scheme-format +msgid "Git error: ~a~%" +msgstr "Chyba Git: ~a~%" + +#: guix/git.scm:290 +#, scheme-format +msgid "updating submodule '~a'...~%" +msgstr "aktualizuje sa podmodul „~a“...~%" + +#: guix/git.scm:581 +#, scheme-format +msgid "cannot fetch commit ~a from ~a: ~a" +msgstr "nedá sa získať úprava (commit) ~a z ~a: ~a" + +#: guix/git.scm:584 +#, scheme-format +msgid "cannot fetch branch '~a' from ~a: ~a" +msgstr "nedá sa získať vetva „~a“ z ~a: ~a" + +#: guix/git.scm:587 +#, scheme-format +msgid "Git failure while fetching ~a: ~a" +msgstr "chyba Git pri získavaní ~a: ~a" + +#: guix/deprecation.scm:37 +#, scheme-format +msgid "'~a' is deprecated, use '~a' instead~%" +msgstr "„~a“ sa už neodporúča, namiesto toho použite „~a“~%" + +#: guix/deprecation.scm:39 +#, scheme-format +msgid "'~a' is deprecated~%" +msgstr "„~a“ sa už neodporúča~%" + +#. TRANSLATORS: 'derivation' must not be translated; it refers to the +#. 'derivation' procedure. +#: guix/derivations.scm:775 +#, scheme-format +msgid "in '~a': deprecated 'derivation' calling convention used~%" +msgstr "v „~a“: použitá zastaraná skladba volania „derivation“~%" + +#: guix/scripts/archive.scm:70 +msgid "" +"Usage: guix archive [OPTION]... PACKAGE...\n" +"Export/import one or more packages from/to the store.\n" +msgstr "" +"Použitie: guix archive [PREPÍNAČ]... BALÍK...\n" +"Exportovať/načítať jeden alebo viac balíkov z/do úložiska.\n" + +#: guix/scripts/archive.scm:72 +msgid "" +"\n" +" --export export the specified files/packages to stdout" +msgstr "" +"\n" +" --export exportovať zadané súbory/balíky na štandardný výstup" + +#: guix/scripts/archive.scm:74 +msgid "" +"\n" +" -r, --recursive combined with '--export', include dependencies" +msgstr "" +"\n" +" -r, --recursive spolu s „--export“, zohľadniť závislosti" + +#: guix/scripts/archive.scm:76 +msgid "" +"\n" +" --import import from the archive passed on stdin" +msgstr "" +"\n" +" --import načítať z archívu na štandardnom vstupe" + +#: guix/scripts/archive.scm:78 +msgid "" +"\n" +" --missing print the files from stdin that are missing" +msgstr "" +"\n" +" --missing zobraziť chýbajúce súbory zo štandardného vstupu" + +#: guix/scripts/archive.scm:80 +msgid "" +"\n" +" -x, --extract=DIR extract the archive on stdin to DIR" +msgstr "" +"\n" +" -x, --extract=PRIEČINOK rozbaliť archív na štandardnom vstupe do " +"PRIEČINKA" + +#: guix/scripts/archive.scm:82 +msgid "" +"\n" +" -t, --list list the files in the archive on stdin" +msgstr "" +"\n" +" -t, --list zobraziť zoznam súborov archívu na štandardnom " +"vstupe" + +#: guix/scripts/archive.scm:85 +msgid "" +"\n" +" --generate-key[=PARAMETERS]\n" +" generate a key pair with the given parameters" +msgstr "" +"\n" +" --generate-key[=PARAMETRE]\n" +" vytvoriť pár kľúčov s danými PARAMETRAMI" + +#: guix/scripts/archive.scm:88 +msgid "" +"\n" +" --authorize authorize imports signed by the public key on stdin" +msgstr "" +"\n" +" --authorize povoliť načítavanie podpísané verejným kľúčom na " +"štandardnom vstupe" + +#: guix/scripts/archive.scm:159 +#, scheme-format +msgid "invalid key generation parameters: ~a: ~a~%" +msgstr "neplatné parametre pre vytvorenie kľúča: ~a: ~a~%" + +#: guix/scripts/archive.scm:203 +#, scheme-format +msgid "package `~a' has no source~%" +msgstr "balík „~a“ nemá zdroj~%" + +#: guix/scripts/archive.scm:266 +#, scheme-format +msgid "unable to export the given packages~%" +msgstr "zadané balíky sa nedajú vyexportovať~%" + +#: guix/scripts/archive.scm:273 +#, scheme-format +msgid "key pair exists under '~a'; remove it first~%" +msgstr "nejaký pár kľúčov už v „~a“ existuje; najprv ho odstráňte~%" + +#: guix/scripts/archive.scm:277 +#, scheme-format +msgid "" +"Please wait while gathering entropy to generate the key pair;\n" +"this may take time...~%" +msgstr "" +"Počkajte kým sa zhromaždí entropia na vytvorenie páru kľúčov;\n" +"toto môže chvíľu trvať...~%" + +#: guix/scripts/archive.scm:284 +#, scheme-format +msgid "key generation failed: ~a: ~a~%" +msgstr "vytváranie kľúča zlyhalo: ~a: ~a~%" + +#: guix/scripts/archive.scm:311 +#, scheme-format +msgid "failed to read public key: ~a: ~a~%" +msgstr "nepodarilo sa prečítať verejný kľúč: ~a: ~a~%" + +#: guix/scripts/archive.scm:318 +#, scheme-format +msgid "replacing symbolic link ~a with a regular file~%" +msgstr "nahrádza sa symbolický odkaz ~a obyčajným súborom~%" + +#: guix/scripts/archive.scm:321 +msgid "" +"On Guix System, add all @code{authorized-keys} to the\n" +"@code{guix-service-type} service of your @code{operating-system} instead." +msgstr "" +"V systéme Guix skôr pridajte všetky @code{authorized-keys} do služby\n" +"@code{guix-service-type} vášho @code{operating-system}." + +#: guix/scripts/archive.scm:327 +#, scheme-format +msgid "s-expression does not denote a public key~%" +msgstr "s-výraz neznázorňuje verejný kľúč~%" + +#: guix/scripts/archive.scm:420 +#, scheme-format +msgid "either '--export' or '--import' must be specified~%" +msgstr "musíte zadať buď „--export“ alebo „--import“~%" + +#: guix/scripts/environment.scm:129 +msgid "" +"Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...]\n" +"Build an environment that includes the dependencies of PACKAGE and execute\n" +"COMMAND or an interactive shell in that environment.\n" +msgstr "" +"Použitie: guix environment [PREPÍNAČ]... BALÍK... [-- PRÍKAZ...]\n" +"Zostaviť prostredie, ktoré zahŕňa závislosti BALÍKA a spustiť PRÍKAZ alebo\n" +"interaktívny shell v tomto prostredí.\n" + +#: guix/scripts/environment.scm:132 +msgid "" +"\n" +" -e, --expression=EXPR create environment for the package that EXPR\n" +" evaluates to" +msgstr "" +"\n" +" -e, --expression=VÝRAZ vytvoriť prostredie pre balík, ktorý\n" +" je výsledkom vyhodnotenia VÝRAZU" + +#: guix/scripts/environment.scm:135 +msgid "" +"\n" +" -l, --load=FILE create environment for the package that the code " +"within\n" +" FILE evaluates to" +msgstr "" +"\n" +" -l, --load=SÚBOR vytvoriť prostredie pre balík, ktorý je výsledkom\n" +" vyhodnotenia kódu v SÚBORE" + +#: guix/scripts/environment.scm:138 +msgid "" +"\n" +" -m, --manifest=FILE create environment with the manifest from FILE" +msgstr "" +"\n" +" -m, --manifest=SÚBOR vytvoriť prostredie na základe manifestu v SÚBORE" + +#: guix/scripts/environment.scm:140 +msgid "" +"\n" +" -p, --profile=PATH create environment from profile at PATH" +msgstr "" +"\n" +" -p, --profile=CESTA vytvoriť prostredie z profilu v CESTA" + +#: guix/scripts/environment.scm:142 +msgid "" +"\n" +" --ad-hoc include all specified packages in the environment " +"instead\n" +" of only their inputs" +msgstr "" +"\n" +" --ad-hoc v prostredí sprístupniť všetky zadané balíky\n" +" a nie len ich vstupy" + +#: guix/scripts/environment.scm:145 +msgid "" +"\n" +" --pure unset existing environment variables" +msgstr "" +"\n" +" --pure vynechať existujúce premenné prostredia" + +#: guix/scripts/environment.scm:147 +msgid "" +"\n" +" -E, --preserve=REGEXP preserve environment variables that match REGEXP" +msgstr "" +"\n" +" -E, --preserve=REGULÁRNY-VÝRAZ zachovať premenné prostredia zhodujúce sa " +"s REGULÁRNYM-VÝRAZOM" + +#: guix/scripts/environment.scm:149 +msgid "" +"\n" +" --search-paths display needed environment variable definitions" +msgstr "" +"\n" +" --search-paths zobraziť potrebné premenné prostredia" + +#: guix/scripts/environment.scm:156 +msgid "" +"\n" +" -C, --container run command within an isolated container" +msgstr "" +"\n" +" -C, --container spustiť príkaz v izolovanom kontajneri" + +#: guix/scripts/environment.scm:158 +msgid "" +"\n" +" -N, --network allow containers to access the network" +msgstr "" +"\n" +" -N, --network povoliť kontajnerom pristupovať do siete" + +#: guix/scripts/environment.scm:160 +#, scheme-format +msgid "" +"\n" +" -P, --link-profile link environment profile to ~/.guix-profile within\n" +" an isolated container" +msgstr "" +"\n" +" -P, --link-profile prepojiť profil prostredia s ~/.guix-profile " +"vrámci\n" +" izolovaného kontajnera" + +#: guix/scripts/environment.scm:163 +msgid "" +"\n" +" -u, --user=USER instead of copying the name and home of the " +"current\n" +" user into an isolated container, use the name USER\n" +" with home directory /home/USER" +msgstr "" +"\n" +" -u, --user=POUŽÍVATEĽ namiesto kopírovania mena a domovského " +"priečinka súčasného\n" +" používateľa do izolovaného kontajnera, použiť meno " +"POUŽÍVATEĽ\n" +" a domovský priečinok /home/POUŽÍVATEĽ" + +#: guix/scripts/environment.scm:167 +msgid "" +"\n" +" --no-cwd do not share current working directory with an\n" +" isolated container" +msgstr "" +"\n" +" --no-cwd nezdieľať súčasný pracovný priečinok\n" +" s izolovaným kontajnerom" + +#: guix/scripts/environment.scm:171 +msgid "" +"\n" +" --share=SPEC for containers, share writable host file system\n" +" according to SPEC" +msgstr "" +"\n" +" --share=URČENIE pre kontajnery, zdieľať hostiteľský súborový " +"systém\n" +" na čítanie aj zápis podľa URČENIA" + +#: guix/scripts/environment.scm:174 +msgid "" +"\n" +" --expose=SPEC for containers, expose read-only host file system\n" +" according to SPEC" +msgstr "" +"\n" +" --expose=URČENIE pre kontajnery, sprístupniť hostiteľský súborový " +"systém\n" +" len na čítanie podľa URČENIA" + +#: guix/scripts/environment.scm:179 +msgid "" +"\n" +" --bootstrap use bootstrap binaries to build the environment" +msgstr "" +"\n" +" --bootstrap na zostavenie prostredia použiť binárne súbory " +"zavádzania" + +#: guix/scripts/environment.scm:233 +#, scheme-format +msgid "'--inherit' is deprecated, use '--preserve' instead~%" +msgstr "" +"prepínač „--inherit“ sa už nepoužíva, namiesto toho použite „--preserve“~%" + +#: guix/scripts/environment.scm:631 +#, scheme-format +msgid "cannot link profile: '~a' already exists within container~%" +msgstr "nedá sa prepojiť profil: „~a“ už existuje vrámci kontajnera~%" + +#: guix/scripts/environment.scm:669 +msgid "cannot create container: user namespaces unavailable\n" +msgstr "" +"kontajner sa nedá vytvoriť: menné priestory (user namespaces) používateľa sú " +"nedostupné\n" + +#: guix/scripts/environment.scm:670 +msgid "is your kernel version < 3.10?\n" +msgstr "je vaše jadro staršie ako 3.10?\n" + +#: guix/scripts/environment.scm:673 +msgid "" +"cannot create container: unprivileged user cannot create user namespaces\n" +msgstr "" +"kontajner sa nedá vytvoriť: používateľ bez správcovských práv (unprivileged " +"user) nemôže vytvárať menné priestory\n" + +#: guix/scripts/environment.scm:674 +msgid "please set /proc/sys/kernel/unprivileged_userns_clone to \"1\"\n" +msgstr "nastavte /proc/sys/kernel/unprivileged_userns_clone na „1“\n" + +#: guix/scripts/environment.scm:677 +msgid "cannot create container: /proc/self/setgroups does not exist\n" +msgstr "kontajner sa nedá vytvoriť: /proc/self/setgroups neexistuje\n" + +#: guix/scripts/environment.scm:678 +msgid "is your kernel version < 3.19?\n" +msgstr "je vaše jadro staršie ako 3.19?\n" + +#: guix/scripts/environment.scm:731 +#, scheme-format +msgid "'--link-profile' cannot be used without '--container'~%" +msgstr "nedá sa použiť „--link-profile“ bez „--container“~%" + +#: guix/scripts/environment.scm:733 +#, scheme-format +msgid "'--user' cannot be used without '--container'~%" +msgstr "nedá sa použiť „--user“ bez „--container“~%" + +#: guix/scripts/environment.scm:735 +#, scheme-format +msgid "--no-cwd cannot be used without --container~%" +msgstr "nedá sa použiť --no-cwd bez --container~%" + +#: guix/scripts/environment.scm:756 +#, scheme-format +msgid "'--profile' cannot be used with package options~%" +msgstr "nedá sa použiť „--profile“ bez prepínačov balíka~%" + +#: guix/scripts/time-machine.scm:51 +msgid "" +"Usage: guix time-machine [OPTION] -- COMMAND ARGS...\n" +"Execute COMMAND ARGS... in an older version of Guix.\n" +msgstr "" +"Použitie: guix time-machine [PREPÍNAČ] -- PRÍKAZ PARAMETRE...\n" +"Spustiť PRÍKAZ PARAMETRE... v staršej verzii systému Guix.\n" + +#: guix/scripts/time-machine.scm:55 +msgid "" +"\n" +" --url=URL use the Git repository at URL" +msgstr "" +"\n" +" --url=PREPOJENIE použiť Git repozitár dostupný cez PREPOJENIE" + +#: guix/scripts/time-machine.scm:57 +msgid "" +"\n" +" --commit=COMMIT use the specified COMMIT" +msgstr "" +"\n" +" --commit=ÚPRAVA použiť danú ÚPRAVU (commit)" + +#: guix/scripts/time-machine.scm:59 +msgid "" +"\n" +" --branch=BRANCH use the tip of the specified BRANCH" +msgstr "" +"\n" +" --branch=VETVA použiť vrchol danej VETVY" + +#: guix/scripts/import/cpan.scm:41 +msgid "" +"Usage: guix import cpan PACKAGE-NAME\n" +"Import and convert the CPAN package for PACKAGE-NAME.\n" +msgstr "" +"Použiť: guix import cpan NÁZOV-BALÍKA\n" +"Nahrať a previesť CPAN balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/cpan.scm:86 guix/scripts/import/crate.scm:101 +#: guix/scripts/import/gem.scm:100 guix/scripts/import/opam.scm:106 +#: guix/scripts/import/pypi.scm:101 +#, scheme-format +msgid "failed to download meta-data for package '~a'~%" +msgstr "zlyhalo sťahovanie meta-údajov pre balík „~a“~%" + +#: guix/scripts/import/crate.scm:44 +msgid "" +"Usage: guix import crate PACKAGE-NAME\n" +"Import and convert the crates.io package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import crate NÁZOV-BALÍKA\n" +"Nahrať a previesť crates.io balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/gem.scm:42 +msgid "" +"Usage: guix import gem PACKAGE-NAME\n" +"Import and convert the RubyGems package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import gem NÁZOV-BALÍKA\n" +"Nahrať a previesť RubyGems balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/gem.scm:48 +msgid "" +"\n" +" -r, --recursive generate package expressions for all Gem packages " +"that are not yet in Guix" +msgstr "" +"\n" +" -r, --recursive vytvoriť výrazy balíkov pre všetky Gem balíky, " +"ktoré ešte nie sú dostupné v systéme Guix" + +#: guix/scripts/import/gnu.scm:40 +msgid "" +"Usage: guix import gnu [OPTION...] PACKAGE\n" +"Return a package declaration template for PACKAGE, a GNU package.\n" +msgstr "" +"Použitie: guix import gnu [PREPÍNAČ...] BALÍK\n" +"Vytvoriť šablónu zadania pre GNU balík BALÍK.\n" + +#: guix/scripts/import/gnu.scm:43 guix/scripts/refresh.scm:177 +msgid "" +"\n" +" --key-download=POLICY\n" +" handle missing OpenPGP keys according to POLICY:\n" +" 'always', 'never', and 'interactive', which is " +"also\n" +" used when 'key-download' is not specified" +msgstr "" +"\n" +" --key-download=POLITIKA\n" +" spravovať chýbajúce OpenPGP kľúče podľa POLITIKY:\n" +" „always“, „never“, a „interactive“, používa sa aj\n" +" bez „key-download“" + +#: guix/scripts/import/gnu.scm:72 guix/scripts/refresh.scm:118 +#, scheme-format +msgid "unsupported policy: ~a~%" +msgstr "nepodporovaná politika: ~a~%" + +#: guix/scripts/import/go.scm:45 +msgid "" +"Usage: guix import go PACKAGE-PATH[@VERSION]\n" +"Import and convert the Go module for PACKAGE-PATH. Optionally, a version\n" +"can be specified after the arobas (@) character.\n" +msgstr "" +"Použitie: guix import go CESTA-BALÍKA[@VERSION]\n" +"Nahrať a previesť Go modul z CESTY-BALÍKA. Prípadne je možné určiť\n" +"aj verziu balíka pridaním zavináča nasledovaného číslom verzie.\n" + +#: guix/scripts/import/go.scm:50 +msgid "" +"\n" +" -r, --recursive generate package expressions for all Go modules\n" +"that are not yet in Guix" +msgstr "" +"\n" +" -r, --recursive vytvoriť zadania balíkov pre všetky moduly " +"Go,\n" +"ktoré ešte nie sú dostupné v systéme Guix" + +#: guix/scripts/import/go.scm:53 +msgid "" +"\n" +" -p, --goproxy=GOPROXY specify which goproxy server to use" +msgstr "" +"\n" +" -p, --goproxy=GOPROXY určiť, ktorý goproxy server sa má použiť" + +#: guix/scripts/import/go.scm:55 +msgid "" +"\n" +" --pin-versions use the exact versions of a module's dependencies" +msgstr "" +"\n" +" --pin-versions použiť presné verzie závislostí modulu" + +#: guix/scripts/import/go.scm:121 +#, scheme-format +msgid "failed to download meta-data for module '~a'~%" +msgstr "nepodarilo sa stiahnuť meta-údaje modulu „~a“~%" + +#: guix/scripts/import/hackage.scm:48 +msgid "" +"Usage: guix import hackage PACKAGE-NAME\n" +"Import and convert the Hackage package for PACKAGE-NAME. If PACKAGE-NAME\n" +"includes a suffix constituted by a at-sign followed by a numerical version " +"(as\n" +"used with Guix packages), then a definition for the specified version of " +"the\n" +"package will be generated. If no version suffix is specified, then the\n" +"generated package definition will correspond to the latest available\n" +"version.\n" +msgstr "" +"Použitie: guix import hackage NÁZOV-BALÍKA\n" +"Nahrať a previesť Hackage balík s NÁZVOM-BALÍKA. Ak NÁZOV-BALÍKA\n" +"obsahuje príponu zloženú zo zavináča nasledovaného číslom verzie (ako\n" +"v prípade balíkov systému Guix), tak sa vytvorí zadanie pre danú verziu\n" +"balíka. Ak NÁZOV-BALÍKA neobsahuje príponu s číslom verzie, tak sa\n" +"vytvorí zadanie pre najnovšiu dostupnú\n" +"verziu balíka.\n" + +#: guix/scripts/import/hackage.scm:55 +msgid "" +"\n" +" -e ALIST, --cabal-environment=ALIST\n" +" specify environment for Cabal evaluation" +msgstr "" +"\n" +" -e ALIST, --cabal-environment=ALIST\n" +" určiť prostredie pre vyhodnocovanie Cabalu" + +#: guix/scripts/import/hackage.scm:58 guix/scripts/import/stackage.scm:49 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +" -h, --help zobraziť túto pomôcku a ukončiť" + +#: guix/scripts/import/hackage.scm:60 guix/scripts/import/stackage.scm:51 +msgid "" +"\n" +" -r, --recursive import packages recursively" +msgstr "" +"\n" +" -r, --recursive nahrať balíky rekurzívne" + +#: guix/scripts/import/hackage.scm:62 +msgid "" +"\n" +" -s, --stdin read from standard input" +msgstr "" +"\n" +" -s, --stdin čítať zo štandardného vstupu" + +#: guix/scripts/import/hackage.scm:64 guix/scripts/import/stackage.scm:53 +msgid "" +"\n" +" -t, --no-test-dependencies don't include test-only dependencies" +msgstr "" +"\n" +" -t, --no-test-dependencies nezahŕňať závislosti určené výhradne na " +"testovanie" + +#: guix/scripts/import/hackage.scm:66 guix/scripts/import/stackage.scm:55 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +" -V, --version zobraziť podrobnosti o verzii a skončiť" + +#: guix/scripts/import/hackage.scm:149 +#, scheme-format +msgid "failed to import cabal file from standard input~%" +msgstr "nepodarilo sa načítať súbor Cabalu zo štandardného vstupu~%" + +#: guix/scripts/import/hackage.scm:157 guix/scripts/import/stackage.scm:129 +#, scheme-format +msgid "failed to download cabal file for package '~a'~%" +msgstr "nepodarilo sa stiahnuť súbor Cabalu pre balík „~a“~%" + +#: guix/scripts/import/json.scm:49 +msgid "" +"Usage: guix import json PACKAGE-FILE\n" +"Import and convert the JSON package definition in PACKAGE-FILE.\n" +msgstr "" +"Použitie: guix import json SÚBOR-BALÍKA\n" +"Nahrať a previesť JSON zadanie balíka zo SÚBORU-BALÍKA.\n" + +#: guix/scripts/import/json.scm:95 +#, scheme-format +msgid "invalid JSON in file '~a'~%" +msgstr "neplatná JSON skladba v súbore „~a“~%" + +#: guix/scripts/import/json.scm:97 +#, scheme-format +msgid "failed to access '~a': ~a~%" +msgstr "nepodarilo sa spojiť sa s „~a“: ~a~%" + +#: guix/scripts/import/nix.scm:41 +msgid "" +"Usage: guix import nix NIXPKGS ATTRIBUTE\n" +"Import and convert the Nix expression ATTRIBUTE of NIXPKGS.\n" +msgstr "" +"Použitie: guix import nix NIXPKGS PRÍZNAK\n" +"Nahrať a previesť Nix výraz PRÍZNAK balíkov NIXPKGS.\n" + +#: guix/scripts/import/opam.scm:41 +msgid "" +"Usage: guix import opam PACKAGE-NAME\n" +"Import and convert the opam package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import opam NÁZOV-BALÍKA\n" +"Nahrať a previesť opam balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/opam.scm:47 +msgid "" +"\n" +" --repo import packages from this opam repository" +msgstr "" +"\n" +" --repo nahrať balíky z tohto repozitára opam" + +#: guix/scripts/import/pypi.scm:42 +msgid "" +"Usage: guix import pypi PACKAGE-NAME\n" +"Import and convert the PyPI package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import pypi NÁZOV-BALÍKA\n" +"Nahrať a previesť PyPI balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/stackage.scm:44 +msgid "" +"Usage: guix import stackage PACKAGE-NAME\n" +"Import and convert the LTS Stackage package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import stackage NÁZOV-BALÍKA\n" +"Nahrať a previesť LTS Stackage balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/import/stackage.scm:46 +msgid "" +"\n" +" -l VERSION, --lts-version=VERSION\n" +" specify the LTS version to use" +msgstr "" +"\n" +" -l VERZIA, --lts-version=VERZIA\n" +" určiť verziu LTS, ktorá sa má použiť" + +#: guix/scripts/import/texlive.scm:42 +msgid "" +"Usage: guix import texlive PACKAGE-NAME\n" +"Import and convert the Texlive package for PACKAGE-NAME.\n" +msgstr "" +"Použitie: guix import texlive NÁZOV-BALÍKA\n" +"Nahrať a previesť Texlive balík s NÁZVOM-BALÍKA.\n" + +#: guix/scripts/offload.scm:127 +#, scheme-format +msgid "The 'system' field is deprecated, please use 'systems' instead.~%" +msgstr "Pole „system“ sa už nepoužíva, namiesto toho použite „systems“.~%" + +#: guix/scripts/offload.scm:135 +msgid "" +"The build-machine object lacks a value for its 'systems'\n" +"field." +msgstr "" +"Objekt build-machine postráda hodnotu pre\n" +"pole „systems“." + +#: guix/scripts/offload.scm:176 +#, scheme-format +msgid "'~a' did not return a list of build machines; ignoring it~%" +msgstr "„~a“ nevrátil zoznam zostavovacích strojov; preskakuje sa~%" + +#: guix/scripts/offload.scm:187 +#, scheme-format +msgid "failed to open machine file '~a': ~a~%" +msgstr "nepodarilo sa otvoriť súbor stroja „~a“: ~a~%" + +#: guix/scripts/offload.scm:194 +#, scheme-format +msgid "failed to load machine file '~a': ~s~%" +msgstr "nepodarilo sa nahrať súbor stroja „~a“: ~s~%" + +#: guix/scripts/offload.scm:204 +#, scheme-format +msgid "failed to load SSH private key from '~a': ~a" +msgstr "nepodarilo sa nahrať súkromný SSH kľúč z „~a“: ~a" + +#: guix/scripts/offload.scm:245 +#, scheme-format +msgid "SSH public key authentication failed for '~a': ~a~%" +msgstr "overenie verejného SSH kľúča pre „~a“ zlyhalo: ~a~%" + +#: guix/scripts/offload.scm:256 +#, scheme-format +msgid "failed to connect to '~a': ~a~%" +msgstr "nepodarilo sa spojiť s „~a“: ~a~%" + +#: guix/scripts/offload.scm:365 +#, scheme-format +msgid "derivation '~a' offloaded to '~a' failed: ~a~%" +msgstr "odvodenina „~a“ prenesená na „~a“ zlyhala: ~a~%" + +#: guix/scripts/offload.scm:381 +#, scheme-format +msgid "build failure may have been caused by lack of free disk space on '~a'~%" +msgstr "" +"zlyhanie zostavovania môže byť spôsobené nedostatkom voľného miesta na disku " +"„~a“~%" + +#: guix/scripts/offload.scm:550 +#, scheme-format +msgid "timeout expired while offloading '~a'~%" +msgstr "čas vypršal pri prenášaní „~a“~%" + +#: guix/scripts/offload.scm:623 +#, scheme-format +msgid "'~a' is running GNU Guile ~a~%" +msgstr "„~a“ používa GNU Guile ~a~%" + +#: guix/scripts/offload.scm:630 +#, scheme-format +msgid "failed to run 'guix repl' on '~a'~%" +msgstr "spustenie „guix repl“ na „~a“ zlyhalo~%" + +#: guix/scripts/offload.scm:637 +#, scheme-format +msgid "(guix) module not usable on remote host '~a'" +msgstr "(guix) modul nie je možné použiť na vzdialenom hostiteľovi „~a“" + +#: guix/scripts/offload.scm:647 +#, scheme-format +msgid "Guix is usable on '~a' (test returned ~s)~%" +msgstr "Guix je možné použiť na „~a“ (test vrátil ~s)~%" + +#: guix/scripts/offload.scm:650 +#, scheme-format +msgid "failed to talk to guix-daemon on '~a' (test returned ~s)~%" +msgstr "zlyhalo spojenie s démonom systému Guix na „~a“ (test vrátil ~s)~%" + +#: guix/scripts/offload.scm:670 +#, scheme-format +msgid "'~a' successfully imported '~a'~%" +msgstr "„~a“ úspešne nahral „~a“~%" + +#: guix/scripts/offload.scm:672 +#, scheme-format +msgid "'~a' was not properly imported on '~a'~%" +msgstr "„~a“ sa nepodarilo úspešne nahrať na „~a“~%" + +#: guix/scripts/offload.scm:682 +#, scheme-format +msgid "successfully imported '~a' from '~a'~%" +msgstr "nahrávanie „~a“ z „~a“ bolo úspešné~%" + +#: guix/scripts/offload.scm:684 +#, scheme-format +msgid "failed to import '~a' from '~a'~%" +msgstr "nahrávanie „~a“ z „~a“ zlyhalo~%" + +#: guix/scripts/offload.scm:699 +#, scheme-format +msgid "testing ~a build machines defined in '~a'...~%" +msgstr "testuje sa ~a zostavovacích strojov zadaných v „~a“...~%" + +#: guix/scripts/offload.scm:723 +#, scheme-format +msgid "getting status of ~a build machines defined in '~a'...~%" +msgstr "získava sa stav ~a zostavovacích strojov zadaných v „~a“...~%" + +#: guix/scripts/offload.scm:731 +#, scheme-format +msgid "failed to run 'guix repl' on machine '~a'~%" +msgstr "zlyhalo spustenie „guix repl“ na stroji „~a“~%" + +#: guix/scripts/offload.scm:742 +#, scheme-format +msgid "machine '~a' is ~a seconds behind~%" +msgstr "stroj „~a“ mešká ~a sekúnd~%" + +#: guix/scripts/offload.scm:788 +msgid "Guile-SSH lacks zlib support" +msgstr "Guile-SSH postráda podporu zlib" + +#: guix/scripts/offload.scm:789 +msgid "data transfers will *not* be compressed!" +msgstr "údajové prenosy *nebudú* komprimované!" + +#: guix/scripts/offload.scm:814 +#, scheme-format +msgid "invalid request line: ~s~%" +msgstr "neplatná požiadavka: ~s~%" + +#: guix/scripts/offload.scm:843 +#, scheme-format +msgid "" +"Usage: guix offload SYSTEM MAX-SILENT-TIME PRINT-BUILD-TRACE? BUILD-TIMEOUT\n" +"Process build offload requests written on the standard input, possibly\n" +"offloading builds to the machines listed in '~a'.~%" +msgstr "" +"Použitie: guix offload SYSTÉM NAJV-ČAS-BEZ-ODPOVEDE ZOBRAZIŤ-ZÁZNAM-" +"ZOSTAVOVANIA? ČAS-NA-ZOSTAVENIE\n" +"Spracovať požiadavky na vzdialené zostavenie zo štandardného vstupu\n" +"a prípadne presunúť zostavovania na stroje zadané v „~a“.~%" + +#: guix/scripts/offload.scm:848 +msgid "" +"\n" +"This tool is meant to be used internally by 'guix-daemon'.\n" +msgstr "" +"\n" +"Tento nástroj je určený na vnútorné použitie procesom „guix-daemon“.\n" + +#: guix/scripts/offload.scm:852 +#, scheme-format +msgid "invalid arguments: ~{~s ~}~%" +msgstr "neplatné parametre: ~{~s ~}~%" + +#: guix/scripts/perform-download.scm:59 +#, scheme-format +msgid "~a: missing URL~%" +msgstr "~a: chýbajúce prepojenie~%" + +#: guix/scripts/perform-download.scm:67 +#, scheme-format +msgid "~a is not a fixed-output derivation~%" +msgstr "~a nie je odvodenina s pevne stanoveným výstupom~%" + +#: guix/scripts/perform-download.scm:92 +#, scheme-format +msgid "refusing to run with elevated privileges (UID ~a)~%" +msgstr "nemôže sa spustiť so zvýšenými právami (UID ~a)~%" + +#: guix/scripts/perform-download.scm:129 +#, scheme-format +msgid "fixed-output derivation and output file name expected~%" +msgstr "" +"očakávaná bola odvodenina s pevne stanoveným výstupom a názov výstupného " +"súboru~%" + +#: guix/scripts/refresh.scm:75 +#, scheme-format +msgid "~a: invalid selection; expected `core' or `non-core'~%" +msgstr "~a: neplatný výber; vyberte „core“ alebo „non-core“~%" + +#: guix/scripts/refresh.scm:143 +msgid "" +"Usage: guix refresh [OPTION]... [PACKAGE]...\n" +"Update package definitions to match the latest upstream version.\n" +"\n" +"When PACKAGE... is given, update only the specified packages. Otherwise\n" +"update all the packages of the distribution, or the subset thereof\n" +"specified with `--select'.\n" +msgstr "" +"Použitie: guix refresh [PREPÍNAČ]... [BALÍK]...\n" +"Aktualizovať zadania balíkov tak, aby sa zhodovali s najnovšou dostupnou " +"verziou.\n" +"\n" +"Ak je určený BALÍK…, aktualizovať iba tieto balíky. V opačnom prípade\n" +"aktualizovať všetky balíky distribúcie, prípadne len podmnožinu určenú " +"pomocou\n" +"prepínača „--select“.\n" + +#: guix/scripts/refresh.scm:151 +msgid "" +"\n" +" -u, --update update source files in place" +msgstr "" +"\n" +" -u, --update aktualizovať zdrojové súbory na mieste" + +#: guix/scripts/refresh.scm:153 +msgid "" +"\n" +" -s, --select=SUBSET select all the packages in SUBSET, one of\n" +" `core' or `non-core'" +msgstr "" +"\n" +" -s, --select=PODMNOŽINA vybrať všetky balíky PODMNOŽINY,\n" +" jedna z „core“ alebo „non-core“" + +#: guix/scripts/refresh.scm:156 +msgid "" +"\n" +" -m, --manifest=FILE select all the packages from the manifest in FILE" +msgstr "" +"\n" +" -m, --manifest=SÚBOR vybrať všetky balíky z manifestu v SÚBORE" + +#: guix/scripts/refresh.scm:158 +msgid "" +"\n" +" -t, --type=UPDATER,... restrict to updates from the specified updaters\n" +" (e.g., 'gnu')" +msgstr "" +"\n" +" -t, --type=NÁSTROJ-NA-AKTUALIZÁCIU,... obmedziť na aktualizácie zo " +"zadaných NÁSTROJOV-NA-AKTUALIZÁCIU\n" +" (napr., „gnu“)" + +#: guix/scripts/refresh.scm:161 +msgid "" +"\n" +" -L, --list-updaters list available updaters and exit" +msgstr "" +"\n" +" -L, --list-updaters zobraziť dostupné nástroje na aktualizáciu a skončiť" + +#: guix/scripts/refresh.scm:163 +msgid "" +"\n" +" -l, --list-dependent list top-level dependent packages that would need " +"to\n" +" be rebuilt as a result of upgrading PACKAGE..." +msgstr "" +"\n" +" -l, --list-dependent zobraziť zoznam závislostí najvyššej úrovne, ktoré " +"by\n" +" bolo potrebné opätovne zostaviť ako následok " +"aktualizácie BALÍKA..." + +#: guix/scripts/refresh.scm:166 +msgid "" +"\n" +" -r, --recursive check the PACKAGE and its inputs for upgrades" +msgstr "" +"\n" +" -r, --recursive zistiť dostupnosť aktualizácií pre BALÍK a jeho " +"závislosti" + +#: guix/scripts/refresh.scm:168 +msgid "" +"\n" +" --list-transitive list all the packages that PACKAGE depends on" +msgstr "" +"\n" +" --list-transitive zobraziť všetky balíky, na ktorých závisí BALÍK" + +#: guix/scripts/refresh.scm:171 +msgid "" +"\n" +" --keyring=FILE use FILE as the keyring of upstream OpenPGP keys" +msgstr "" +"\n" +" --keyring=SÚBOR použiť SÚBOR ako kľúčenku pre najnovšie OpenPGP " +"kľúče" + +#: guix/scripts/refresh.scm:173 +msgid "" +"\n" +" --key-server=HOST use HOST as the OpenPGP key server" +msgstr "" +"\n" +" --key-server=HOSTITEĽ použiť HOSTITEĽA ako server OpenPGP kľúčov" + +#: guix/scripts/refresh.scm:175 +msgid "" +"\n" +" --gpg=COMMAND use COMMAND as the GnuPG 2.x command" +msgstr "" +"\n" +" --gpg=PRÍKAZ použiť PRÍKAZ ako GnuPG 2.x príkaz" + +#: guix/scripts/refresh.scm:183 +msgid "" +"\n" +" --load-path=DIR prepend DIR to the package module search path" +msgstr "" +"\n" +" --load-path=PRIEČINOK pridať PRIEČINOK na začiatok prehľadávanej " +"cesty modulov balíkov" + +#: guix/scripts/refresh.scm:276 +#, scheme-format +msgid "~a: no such updater~%" +msgstr "~a: nie je nástrojom na aktualizáciu~%" + +#: guix/scripts/refresh.scm:280 +#, scheme-format +msgid "Available updaters:~%" +msgstr "Dostupné nástroje na aktualizáciu:~%" + +#. TRANSLATORS: The parenthetical expression here is rendered +#. like "(42% coverage)" and denotes the fraction of packages +#. covered by the given updater. +#: guix/scripts/refresh.scm:292 +#, scheme-format +msgid " - ~a: ~a (~2,1f% coverage)~%" +msgstr " - ~a: ~a (pokrytie ~2,1f%)~%" + +#: guix/scripts/refresh.scm:301 +#, scheme-format +msgid "~2,1f% of the packages are covered by these updaters.~%" +msgstr "Tieto nástroje na aktualizáciu pokrývajú ~2,1f% balíkov.~%" + +#: guix/scripts/refresh.scm:307 +#, scheme-format +msgid "no updater for ~a~%" +msgstr "žiadny nástroj na aktualizáciu pre ~a~%" + +#: guix/scripts/refresh.scm:327 +#, scheme-format +msgid "~a: updating from version ~a to version ~a...~%" +msgstr "~a: aktualizuje sa z verzie ~a na verziu ~a...~%" + +#: guix/scripts/refresh.scm:336 +#, scheme-format +msgid "~a: consider adding this input: ~a~%" +msgstr "~a: zvážte pridanie tohto vstupu: ~a~%" + +#: guix/scripts/refresh.scm:338 +#, scheme-format +msgid "~a: consider adding this native input: ~a~%" +msgstr "~a: zvážte pridanie tohto pôvodného vstupu: ~a~%" + +#: guix/scripts/refresh.scm:340 +#, scheme-format +msgid "~a: consider adding this propagated input: ~a~%" +msgstr "~a: zvážte pridanie tohto rozšíreného vstupu: ~a~%" + +#: guix/scripts/refresh.scm:342 +#, scheme-format +msgid "~a: consider removing this input: ~a~%" +msgstr "~a: zvážte odobranie tohto vstupu: ~a~%" + +#: guix/scripts/refresh.scm:344 +#, scheme-format +msgid "~a: consider removing this native input: ~a~%" +msgstr "~a: zvážte odobranie tohto pôvodného vstupu: ~a~%" + +#: guix/scripts/refresh.scm:346 +#, scheme-format +msgid "~a: consider removing this propagated input: ~a~%" +msgstr "~a: zvážte odobranie tohto rozšíreného vstupu: ~a~%" + +#: guix/scripts/refresh.scm:353 +#, scheme-format +msgid "" +"~a: version ~a could not be downloaded and authenticated; not updating~%" +msgstr "" +"~a: verziu ~a sa nepodarilo stiahnuť a overiť; nebude sa aktualizovať~%" + +#: guix/scripts/refresh.scm:370 +#, scheme-format +msgid "~a would be upgraded from ~a to ~a~%" +msgstr "~a by sa aktualizoval z ~a na ~a~%" + +#: guix/scripts/refresh.scm:376 +#, scheme-format +msgid "~a is already the latest version of ~a~%" +msgstr "~a už je najnovšej verzie ~a~%" + +#: guix/scripts/refresh.scm:382 +#, scheme-format +msgid "~a is greater than the latest known version of ~a (~a)~%" +msgstr "~a je vyššia ako najnovšia známa verzia ~a (~a)~%" + +#: guix/scripts/refresh.scm:393 +#, scheme-format +msgid "'~a' updater failed to determine available releases for ~a~%" +msgstr "" +"„~a“ nástroju na aktualizáciu sa nepodarilo zistiť dostupné vydania pre ~a~%" + +#: guix/scripts/refresh.scm:432 +#, scheme-format +msgid "No dependents other than itself: ~{~a~}~%" +msgid_plural "No dependents other than themselves: ~{~a~^ ~}~%" +msgstr[0] "Žiadne závislé balíky okrem seba samého: ~{~a~}~%" +msgstr[1] "Žiadne závislé balíky okrem seba samých: ~{~a~^ ~}~%" +msgstr[2] "Žiadne závislé balíky okrem seba samých: ~{~a~^ ~}~%" + +#: guix/scripts/refresh.scm:439 +#, scheme-format +msgid "A single dependent package: ~a~%" +msgstr "Jediný závislý balík: ~a~%" + +#: guix/scripts/refresh.scm:443 +#, scheme-format +msgid "" +"Building the following ~d package would ensure ~d dependent packages are " +"rebuilt: ~{~a~^ ~}~%" +msgid_plural "" +"Building the following ~d packages would ensure ~d dependent packages are " +"rebuilt: ~{~a~^ ~}~%" +msgstr[0] "" +"Zostavenie nasledovného ~d balíka ~d by zaistilo opätovné zostavenie " +"závislých balíkov: ~{~a~^ ~}~%" +msgstr[1] "" +"Zostavenie nasledovných ~d balíkov ~d by zaistilo opätovné zostavenie " +"závislých balíkov: ~{~a~^ ~}~%" +msgstr[2] "" +"Zostavenie nasledovných ~d balíkov ~d by zaistilo opätovné zostavenie " +"závislých balíkov: ~{~a~^ ~}~%" + +#: guix/scripts/refresh.scm:467 +#, scheme-format +msgid "~a depends on the following ~d packages: ~{~a~^ ~}~%." +msgstr "~a závisí na nasledovných balíkoch (~d): ~{~a~^ ~}~%." + +#: guix/scripts/refresh.scm:471 +#, scheme-format +msgid "The following ~d packages all are dependent packages: ~{~a~^ ~}~%" +msgstr "Všetky nasledovné balíky (~d) sú závislé: ~{~a~^ ~}~%" + +#: guix/scripts/repl.scm:70 +msgid "" +"Usage: guix repl [OPTIONS...] [-- FILE ARGS...]\n" +"In the Guix execution environment, run FILE as a Guile script with\n" +"command-line arguments ARGS. If no FILE is given, start a Guile REPL.\n" +msgstr "" +"Použitie: guix repl [PREPÍNAČE...] [-- SÚBOR PARAMETRE...]\n" +"Spustiť SÚBOR ako Guile skript s PARAMETRAMI v spúšťacom prostredí\n" +"systému Guix. Ak nie je daný žiadny SÚBOR, spustiť Guile REPL.\n" + +#: guix/scripts/repl.scm:73 +msgid "" +"\n" +" -t, --type=TYPE start a REPL of the given TYPE" +msgstr "" +"\n" +" -t, --type=TYP spustiť REPL daného TYPU" + +#: guix/scripts/repl.scm:75 +msgid "" +"\n" +" --listen=ENDPOINT listen to ENDPOINT instead of standard input" +msgstr "" +"\n" +" --listen=KONCOVÝ-BOD počúvať na KONCOVOM-BODE namiesto štandardného " +"vstupu" + +#: guix/scripts/repl.scm:77 +#, scheme-format +msgid "" +"\n" +" -q inhibit loading of ~/.guile" +msgstr "" +"\n" +" -q zabrániť nahratiu ~/.guile" + +#: guix/scripts/repl.scm:106 +#, scheme-format +msgid "~A: invalid listen specification~%" +msgstr "~A: neplatné určenie počúvania~%" + +#: guix/scripts/repl.scm:117 +#, scheme-format +msgid "~A: unsupported protocol family~%" +msgstr "~A: nepodporovaná rodina protokolov~%" + +#: guix/scripts/repl.scm:125 +#, scheme-format +msgid "accepted connection~%" +msgstr "spojenie prijaté~%" + +#: guix/scripts/repl.scm:126 +#, scheme-format +msgid "accepted connection from ~a~%" +msgstr "prijaté spojenie od ~a~%" + +#: guix/scripts/repl.scm:137 +#, scheme-format +msgid "connection closed~%" +msgstr "spojenie ukončené~%" + +#: guix/scripts/repl.scm:210 +#, scheme-format +msgid "~a: unknown type of REPL~%" +msgstr "~a: neznámy typ REPL~%" + +#: guix/scripts/system/reconfigure.scm:313 +#, scheme-format +msgid "" +"aborting reconfiguration because commit ~a of channel '~a' is not a " +"descendant of ~a" +msgstr "" +"ruší sa opätovné nastavenie, pretože úprava (commit) ~a kanála „~a“ nie je " +"potomkom ~a" + +#: guix/scripts/system/reconfigure.scm:372 +#, scheme-format +msgid "cannot determine provenance for current system~%" +msgstr "nie je možné zistiť pôvod súčasného systému~%" + +#: guix/scripts/system/reconfigure.scm:374 +#, scheme-format +msgid "cannot determine provenance of ~a~%" +msgstr "nie je možné zistiť pôvod ~a~%" + +#: nix/nix-daemon/guix-daemon.cc:66 +msgid "guix-daemon -- perform derivation builds and store accesses" +msgstr "guix-daemon -- zostavuje odvodeniny a spravuje prístup k úložisku" + +#: nix/nix-daemon/guix-daemon.cc:68 +msgid "" +"This program is a daemon meant to run in the background. It serves requests " +"sent over a Unix-domain socket. It accesses the store, and builds " +"derivations on behalf of its clients." +msgstr "" +"Tento program je démon, ktorý sa spúšťa v pozadí. Odpovedá na požiadavky " +"odoslané prostredníctvom sieťových socketov typu Unix-domain. Pristupuje k " +"úložisku a zostavuje odvodeniny v mene svojich používateľov." + +#: nix/nix-daemon/guix-daemon.cc:96 +msgid "SYSTEM" +msgstr "SYSTÉM" + +#: nix/nix-daemon/guix-daemon.cc:97 +msgid "assume SYSTEM as the current system type" +msgstr "predpokladať SYSTÉM ako typ súčasného systému" + +#: nix/nix-daemon/guix-daemon.cc:98 nix/nix-daemon/guix-daemon.cc:101 +msgid "N" +msgstr "N" + +#: nix/nix-daemon/guix-daemon.cc:99 +msgid "use N CPU cores to build each derivation; 0 means as many as available" +msgstr "" +"použiť N jadier procesora na zostavenie každej odvodeniny; 0 znamená, že sa " +"použijú všetky dostupné jadrá" + +#: nix/nix-daemon/guix-daemon.cc:102 +msgid "allow at most N build jobs" +msgstr "povoliť najviac N zostavovacích úloh" + +#: nix/nix-daemon/guix-daemon.cc:103 nix/nix-daemon/guix-daemon.cc:105 +msgid "SECONDS" +msgstr "SEKÚND" + +#: nix/nix-daemon/guix-daemon.cc:104 +msgid "mark builds as failed after SECONDS of activity" +msgstr "označiť zostavenia za neúspešné po SEKUNDÁCH nečinnosti" + +#: nix/nix-daemon/guix-daemon.cc:106 +msgid "mark builds as failed after SECONDS of silence" +msgstr "označiť zostavenia za neúspešné po SEKUNDÁCH bez odpovede" + +#: nix/nix-daemon/guix-daemon.cc:108 +msgid "disable chroot builds" +msgstr "zakázať zostavenia chroot" + +#: nix/nix-daemon/guix-daemon.cc:109 +msgid "DIR" +msgstr "PRIEČINOK" + +#: nix/nix-daemon/guix-daemon.cc:110 +msgid "add DIR to the build chroot" +msgstr "pridať PRIEČINOK do zastavovacieho chrootu" + +#: nix/nix-daemon/guix-daemon.cc:111 +msgid "GROUP" +msgstr "SKUPINA" + +#: nix/nix-daemon/guix-daemon.cc:112 +msgid "perform builds as a user of GROUP" +msgstr "zostaviť ako používateľ SKUPINY" + +#: nix/nix-daemon/guix-daemon.cc:114 +msgid "do not use substitutes" +msgstr "nepoužívať náhrady" + +#: nix/nix-daemon/guix-daemon.cc:115 +msgid "URLS" +msgstr "PREPOJENIA" + +#: nix/nix-daemon/guix-daemon.cc:116 +msgid "use URLS as the default list of substitute providers" +msgstr "použiť PREPOJENIA ako predvolený zoznam poskytovateľov náhrad" + +#: nix/nix-daemon/guix-daemon.cc:118 nix/nix-daemon/guix-daemon.cc:121 +msgid "do not attempt to offload builds" +msgstr "nepokúšať sa o vzdialené zostavenie" + +#: nix/nix-daemon/guix-daemon.cc:123 +msgid "cache build failures" +msgstr "uložiť neúspešné zostavenia do vyrovnávacej pamäte" + +#: nix/nix-daemon/guix-daemon.cc:125 +msgid "build each derivation N times in a row" +msgstr "zostaviť každú odvodeninu N krát za sebou" + +#: nix/nix-daemon/guix-daemon.cc:127 +msgid "do not keep build logs" +msgstr "neukladať záznamy zostavovania" + +#: nix/nix-daemon/guix-daemon.cc:130 +msgid "disable compression of the build logs" +msgstr "zakázať kompresiu záznamov zostavovania" + +#: nix/nix-daemon/guix-daemon.cc:132 +msgid "use the specified compression type for build logs" +msgstr "použiť daný typ kompresie pre záznamy zostavovania" + +#: nix/nix-daemon/guix-daemon.cc:134 +msgid "use substitute servers discovered on the local network" +msgstr "použiť servery náhrad zistené v miestnej sieti" + +#: nix/nix-daemon/guix-daemon.cc:139 +msgid "disable automatic file \"deduplication\" in the store" +msgstr "zakázať automatické čistenie podvojných súborov v úložisku" + +#: nix/nix-daemon/guix-daemon.cc:149 +msgid "impersonate Linux 2.6" +msgstr "predstierať Linux 2.6" + +#: nix/nix-daemon/guix-daemon.cc:153 +msgid "tell whether the GC must keep outputs of live derivations" +msgstr "určiť či má zberač odpadkov ponechávať výstupy živých odvodenín" + +#: nix/nix-daemon/guix-daemon.cc:156 +msgid "tell whether the GC must keep derivations corresponding to live outputs" +msgstr "určiť či má zberač odpadkov uchovávať odvodeniny živých výstupov" + +#: nix/nix-daemon/guix-daemon.cc:159 +msgid "SOCKET" +msgstr "SOCKET" + +#: nix/nix-daemon/guix-daemon.cc:160 +msgid "listen for connections on SOCKET" +msgstr "počúvať spojenia na SOCKETE" + +#: nix/nix-daemon/guix-daemon.cc:162 +msgid "produce debugging output" +msgstr "vytvárať výstup ladenia" diff --git a/tests/go.scm b/tests/go.scm index 6ab99f508a..e5780e68b0 100644 --- a/tests/go.scm +++ b/tests/go.scm @@ -19,7 +19,7 @@ ;;; Summary ;; Tests for guix/import/go.scm -(define-module (test-import-go) +(define-module (tests-import-go) #:use-module (guix base32) #:use-module (guix build-system go) #:use-module (guix import go) @@ -147,7 +147,8 @@ require github.com/kr/pretty v0.2.1 ("https://pkg.go.dev/github.com/go-check/check" . ,pkg.go.dev) ("https://pkg.go.dev/github.com/go-check/check?tab=licenses" - . ,pkg.go.dev-licence)))) + . ,pkg.go.dev-licence) + ("https://proxy.golang.org/github.com/go-check/check/@v/list" . "")))) (test-begin "go") @@ -169,6 +170,12 @@ require github.com/kr/pretty v0.2.1 "daa7c04131f5" (go-version->git-ref "v1.2.4-0.20191109021931-daa7c04131f5")) +(test-assert "go-pseudo-version? multi-digit version number" + (go-pseudo-version? "v1.23.1-0.20200526195155-81db48ad09cc")) + +(test-assert "go-pseudo-version? semantic version with rc" + (go-pseudo-version? "v1.4.0-rc.4.0.20200313231945-b860323f09d0")) + ;;; Unit tests for (guix import go) (test-equal "go-path-escape" @@ -180,46 +187,43 @@ require github.com/kr/pretty v0.2.1 (define (testing-parse-mod name expected input) (define (inf? p1 p2) (string<? (car p1) (car p2))) - (let ((input-port (open-input-string input))) - (test-equal name - (sort expected inf?) - (sort - ( (@@ (guix import go) parse-go.mod) - input-port) - inf?)))) + (test-equal name + (sort expected inf?) + (sort ((@@ (guix import go) parse-go.mod) input) inf?))) (testing-parse-mod "parse-go.mod-simple" - '(("good/thing" . "v1.4.5") - ("new/thing/v2" . "v2.3.4") - ("other/thing" . "v1.0.2")) + '(("good/thing" "v1.4.5") + ("new/thing/v2" "v2.3.4") + ("other/thing" "v1.0.2")) fixture-go-mod-simple) (testing-parse-mod "parse-go.mod-with-block" - '(("A" . "v1") - ("B" . "v1.0.0") - ("C" . "v1.0.0") - ("D" . "v1.2.3") - ("E" . "dev")) + '(("A" "v1") + ("B" "v1.0.0") + ("C" "v1.0.0") + ("D" "v1.2.3") + ("E" "dev")) fixture-go-mod-with-block) -(testing-parse-mod "parse-go.mod-complete" - '(("github.com/corp/arbitrary-repo" . "v0.0.2") - ("quoted.example.com/abitrary/repo" . "v0.0.2") - ("one.example.com/abitrary/repo" . "v1.1.111") - ("hub.jazz.net/git/user/project/sub/directory" . "v1.1.19") - ("hub.jazz.net/git/user/project" . "v1.1.18") - ("launchpad.net/~user/project/branch/sub/directory" . "v1.1.17") - ("launchpad.net/~user/project/branch" . "v1.1.16") - ("launchpad.net/project/series/sub/directory" . "v1.1.15") - ("launchpad.net/project/series" . "v1.1.14") - ("launchpad.net/project" . "v1.1.13") - ("bitbucket.org/user/project/sub/directory" . "v1.11.21") - ("bitbucket.org/user/project" . "v1.11.20") - ("k8s.io/kubernetes/subproject" . "v1.1.101") - ("github.com/user/project/sub/directory" . "v1.1.12") - ("github.com/user/project" . "v1.1.11") - ("github.com/go-check/check" . "v0.0.0-20140225173054-eb6ee6f84d0a")) - fixture-go-mod-complete) +(testing-parse-mod + "parse-go.mod-complete" + '(("github.com/corp/arbitrary-repo" "v0.0.2") + ("quoted.example.com/abitrary/repo" "v0.0.2") + ("one.example.com/abitrary/repo" "v1.1.111") + ("hub.jazz.net/git/user/project/sub/directory" "v1.1.19") + ("hub.jazz.net/git/user/project" "v1.1.18") + ("launchpad.net/~user/project/branch/sub/directory" "v1.1.17") + ("launchpad.net/~user/project/branch" "v1.1.16") + ("launchpad.net/project/series/sub/directory" "v1.1.15") + ("launchpad.net/project/series" "v1.1.14") + ("launchpad.net/project" "v1.1.13") + ("bitbucket.org/user/project/sub/directory" "v1.11.21") + ("bitbucket.org/user/project" "v1.11.20") + ("k8s.io/kubernetes/subproject" "v1.1.101") + ("github.com/user/project/sub/directory" "v1.1.12") + ("github.com/user/project" "v1.1.11") + ("github.com/go-check/check" "v0.0.0-20140225173054-eb6ee6f84d0a")) + fixture-go-mod-complete) ;;; End-to-end tests for (guix import go) (define (mock-http-fetch testcase) @@ -249,44 +253,43 @@ require github.com/kr/pretty v0.2.1 (test-equal "go-module->guix-package" '(package - (name "go-github-com-go-check-check") - (version "0.0.0-20201130134442-10cb98267c6c") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-check/check.git") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5")))) - (build-system go-build-system) - (arguments - (quote (#:import-path "github.com/go-check/check"))) - (inputs - (quasiquote (("go-github-com-kr-pretty" - (unquote go-github-com-kr-pretty))))) - (home-page "https://github.com/go-check/check") - (synopsis "Instructions") - (description #f) - (license license:bsd-2)) + (name "go-github-com-go-check-check") + (version "0.0.0-20201130134442-10cb98267c6c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-check/check") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/go-check/check")) + (propagated-inputs + `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty))) + (home-page "https://github.com/go-check/check") + (synopsis "Instructions") + (description "Package check is a rich testing extension for Go's testing \ +package.") + (license license:bsd-2)) ;; Replace network resources with sample data. (call-with-temporary-directory (lambda (checkout) (mock ((web client) http-get (mock-http-get fixtures-go-check-test)) - (mock ((guix http-client) http-fetch - (mock-http-fetch fixtures-go-check-test)) - (mock ((guix git) update-cached-checkout - (lambda* (url #:key ref) - ;; Return an empty directory and its hash. - (values checkout - (nix-base32-string->bytevector - "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5") - #f))) - (go-module->guix-package "github.com/go-check/check"))))))) + (mock ((guix http-client) http-fetch + (mock-http-fetch fixtures-go-check-test)) + (mock ((guix git) update-cached-checkout + (lambda* (url #:key ref) + ;; Return an empty directory and its hash. + (values checkout + (nix-base32-string->bytevector + "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5") + #f))) + (go-module->guix-package "github.com/go-check/check"))))))) (test-end "go") - diff --git a/tests/ipfs.scm b/tests/ipfs.scm new file mode 100644 index 0000000000..3b662b22bd --- /dev/null +++ b/tests/ipfs.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 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-ipfs) + #:use-module (guix ipfs) + #:use-module ((guix utils) #:select (call-with-temporary-directory)) + #:use-module (guix tests) + #:use-module (web uri) + #:use-module (srfi srfi-64)) + +;; Test the (guix ipfs) module. + +(define (ipfs-gateway-running?) + "Return true if the IPFS gateway is running at %IPFS-BASE-URL." + (let* ((uri (string->uri (%ipfs-base-url))) + (socket (socket AF_INET SOCK_STREAM 0))) + (define connected? + (catch 'system-error + (lambda () + (format (current-error-port) + "probing IPFS gateway at localhost:~a...~%" + (uri-port uri)) + (connect socket AF_INET INADDR_LOOPBACK (uri-port uri)) + #t) + (const #f))) + + (close-port socket) + connected?)) + +(unless (ipfs-gateway-running?) + (test-skip 1)) + +(test-assert "add-file-tree + restore-file-tree" + (call-with-temporary-directory + (lambda (directory) + (let* ((source (dirname (search-path %load-path "guix/base32.scm"))) + (target (string-append directory "/r")) + (content (pk 'content (add-file-tree source)))) + (restore-file-tree (content-name content) target) + (file=? source target))))) diff --git a/tests/substitute.scm b/tests/substitute.scm index 697abc4684..21b513e1d8 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, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -198,7 +198,7 @@ a file for NARINFO." ;; Never use file descriptor 4, unlike what happens when invoked by the ;; daemon. -(%error-to-file-descriptor-4? #f) +(%reply-file-descriptor #f) (test-equal "query narinfo without signature" |