Merge branch 'master' into staging
This commit is contained in:
		
						commit
						998e6cdcd2
					
				
					 78 changed files with 3991 additions and 4914 deletions
				
			
		| 
						 | 
				
			
			@ -269,7 +269,7 @@ online}, together with
 | 
			
		|||
@uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/,
 | 
			
		||||
videos of the lectures by the authors}.  The book is available in Texinfo
 | 
			
		||||
format as the @code{sicp} Guix package.  Go ahead, run @code{guix install
 | 
			
		||||
sicp} and start reading with @code{info sicp} (or with the Emacs Info reader).
 | 
			
		||||
sicp} and start reading with @code{info sicp} (@pxref{,,, sicp, Structure and Interpretation of Computer Programs}).
 | 
			
		||||
An @uref{https://sarabander.github.io/sicp/, unofficial ebook is also
 | 
			
		||||
available}.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -331,6 +331,7 @@ It does not assume much knowledge of the Guix system nor of the Lisp language.
 | 
			
		|||
The reader is only expected to be familiar with the command line and to have some
 | 
			
		||||
basic programming knowledge.
 | 
			
		||||
 | 
			
		||||
@node A "Hello World" package
 | 
			
		||||
@subsection A "Hello World" package
 | 
			
		||||
 | 
			
		||||
The “Defining Packages” section of the manual introduces the basics of Guix
 | 
			
		||||
| 
						 | 
				
			
			@ -521,8 +522,785 @@ We've gone as far as we could without any knowledge of Scheme.  Before moving
 | 
			
		|||
on to more complex packages, now is the right time to brush up on your Scheme
 | 
			
		||||
knowledge.  @pxref{A Scheme Crash Course} to get up to speed.
 | 
			
		||||
 | 
			
		||||
@c TODO: Continue the tutorial
 | 
			
		||||
@node Setup
 | 
			
		||||
@subsection Setup
 | 
			
		||||
 | 
			
		||||
In the rest of this chapter we will rely on some basic Scheme
 | 
			
		||||
programming knowledge.  Now let's detail the different possible setups
 | 
			
		||||
for working on Guix packages.
 | 
			
		||||
 | 
			
		||||
There are several ways to set up a Guix packaging environment.
 | 
			
		||||
 | 
			
		||||
We recommend you work directly on the Guix source checkout since it makes it
 | 
			
		||||
easier for everyone to contribute to the project.
 | 
			
		||||
 | 
			
		||||
But first, let's look at other possibilities.
 | 
			
		||||
 | 
			
		||||
@node Local file
 | 
			
		||||
@subsubsection Local file
 | 
			
		||||
 | 
			
		||||
This is what we previously did with @samp{my-hello}.  With the Scheme basics we've
 | 
			
		||||
covered, we are now able to explain the leading chunks.  As stated in @code{guix
 | 
			
		||||
package --help}:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
  -f, --install-from-file=FILE
 | 
			
		||||
                         install the package that the code within FILE
 | 
			
		||||
                         evaluates to
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Thus the last expression @emph{must} return a package, which is the case in our
 | 
			
		||||
earlier example.
 | 
			
		||||
 | 
			
		||||
The @code{use-modules} expression tells which of the modules we need in the file.
 | 
			
		||||
Modules are a collection of values and procedures.  They are commonly called
 | 
			
		||||
"libraries" or "packages" in other programming languages.
 | 
			
		||||
 | 
			
		||||
@node @samp{GUIX_PACKAGE_PATH}
 | 
			
		||||
@subsubsection @samp{GUIX_PACKAGE_PATH}
 | 
			
		||||
 | 
			
		||||
@emph{Note: Starting from Guix 0.16, the more flexible Guix "channels" are the
 | 
			
		||||
preferred way and supersede @samp{GUIX_PACKAGE_PATH}.  See next section.}
 | 
			
		||||
 | 
			
		||||
It can be tedious to specify the file from the command line instead of simply
 | 
			
		||||
calling @code{guix package --install my-hello} as you would do with the official
 | 
			
		||||
packages.
 | 
			
		||||
 | 
			
		||||
Guix makes it possible to streamline the process by adding as many "package
 | 
			
		||||
declaration paths" as you want.
 | 
			
		||||
 | 
			
		||||
Create a directory, say @samp{~./guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH}
 | 
			
		||||
environment variable:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ mkdir ~/guix-packages
 | 
			
		||||
$ export GUIX_PACKAGE_PATH=~/guix-packages
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
To add several directories, separate them with a colon (@code{:}).
 | 
			
		||||
 | 
			
		||||
Our previous @samp{my-hello} needs some adjustments though:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
(define-module (my-hello)
 | 
			
		||||
  #:use-module (guix licenses)
 | 
			
		||||
  #:use-module (guix packages)
 | 
			
		||||
  #:use-module (guix build-system gnu)
 | 
			
		||||
  #:use-module (guix download))
 | 
			
		||||
 | 
			
		||||
(define-public my-hello
 | 
			
		||||
  (package
 | 
			
		||||
    (name "my-hello")
 | 
			
		||||
    (version "2.10")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://gnu/hello/hello-" version
 | 
			
		||||
                                  ".tar.gz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (synopsis "Hello, Guix world: An example custom Guix package")
 | 
			
		||||
    (description
 | 
			
		||||
     "GNU Hello prints the message \"Hello, world!\" and then exits.  It
 | 
			
		||||
serves as an example of standard GNU coding practices.  As such, it supports
 | 
			
		||||
command-line arguments, multiple languages, and so on.")
 | 
			
		||||
    (home-page "https://www.gnu.org/software/hello/")
 | 
			
		||||
    (license gpl3+)))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Note that we have assigned the package value to an exported variable name with
 | 
			
		||||
@code{define-public}.  This is effectively assigning the package to the @code{my-hello}
 | 
			
		||||
variable so that it can be referenced, among other as dependency of other
 | 
			
		||||
packages.
 | 
			
		||||
 | 
			
		||||
If you use @code{guix package --install-from-file=my-hello.scm} on the above file, it
 | 
			
		||||
will fail because the last expression, @code{define-public}, does not return a
 | 
			
		||||
package.  If you want to use @code{define-public} in this use-case nonetheless, make
 | 
			
		||||
sure the file ends with an evaluation of @code{my-hello}:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
; ...
 | 
			
		||||
(define-public my-hello
 | 
			
		||||
  ; ...
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
my-hello
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
This last example is not very typical.
 | 
			
		||||
 | 
			
		||||
Now @samp{my-hello} should be part of the package collection like all other official
 | 
			
		||||
packages.  You can verify this with:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ guix package --show=my-hello
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@node Guix channels
 | 
			
		||||
@subsubsection Guix channels
 | 
			
		||||
 | 
			
		||||
Guix 0.16 features channels, which is very similar to @samp{GUIX_PACKAGE_PATH} but
 | 
			
		||||
provides better integration and provenance tracking.  Channels are not
 | 
			
		||||
necessarily local, they can be maintained as a public Git repository for
 | 
			
		||||
instance.  Of course, several channels can be used at the same time.
 | 
			
		||||
 | 
			
		||||
@xref{Channels,,, guix, GNU Guix Reference Manual} for setup details.
 | 
			
		||||
 | 
			
		||||
@node Direct checkout hacking
 | 
			
		||||
@subsubsection Direct checkout hacking
 | 
			
		||||
 | 
			
		||||
Working directly on the Guix project is recommended: it reduces the friction
 | 
			
		||||
when the time comes to submit your changes upstream to let the community benefit
 | 
			
		||||
from your hard work!
 | 
			
		||||
 | 
			
		||||
Unlike most software distributions, the Guix repository holds in one place both
 | 
			
		||||
the tooling (including the package manager) and the package definitions.  This
 | 
			
		||||
choice was made so that it would give developers the flexibility to modify the
 | 
			
		||||
API without breakage by updating all packages at the same time.  This reduces
 | 
			
		||||
development inertia.
 | 
			
		||||
 | 
			
		||||
Check out the official @uref{https://git-scm.com/, Git} repository:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ git clone https://git.savannah.gnu.org/git/guix.git
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
In the rest of this article, we use @samp{$GUIX_CHECKOUT} to refer to the location of
 | 
			
		||||
the checkout.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Follow the instruction in the manual (@pxref{Contributing,,, guix, GNU Guix
 | 
			
		||||
Reference Manual}) to set up the repository environment.
 | 
			
		||||
 | 
			
		||||
Once ready, you should be able to use the package definitions from the
 | 
			
		||||
repository environment.
 | 
			
		||||
 | 
			
		||||
Feel free to edit package definitions found in @samp{$GUIX_CHECKOUT/gnu/packages}.
 | 
			
		||||
 | 
			
		||||
The @samp{$GUIX_CHECKOUT/pre-inst-env} script lets you use @samp{guix} over the package
 | 
			
		||||
collection of the repository.
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
Search packages, such as Ruby:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
  $ cd $GUIX_CHECKOUT
 | 
			
		||||
  $ ./pre-inst-env guix package --list-available=ruby
 | 
			
		||||
      ruby    1.8.7-p374      out     gnu/packages/ruby.scm:119:2
 | 
			
		||||
      ruby    2.1.6   out     gnu/packages/ruby.scm:91:2
 | 
			
		||||
      ruby    2.2.2   out     gnu/packages/ruby.scm:39:2
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Build a package, here Ruby version 2.1:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
  $ ./pre-inst-env guix build --keep-failed ruby@@2.1
 | 
			
		||||
  /gnu/store/c13v73jxmj2nir2xjqaz5259zywsa9zi-ruby-2.1.6
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Install it to your user profile:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
  $ ./pre-inst-env guix package --install ruby@@2.1
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Check for common mistakes:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
  $ ./pre-inst-env guix lint ruby@@2.1
 | 
			
		||||
@end example
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
Guix strives at maintaining a high packaging standard; when contributing to the
 | 
			
		||||
Guix project, remember to
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
follow the coding style (@pxref{Coding Style,,, guix, GNU Guix Reference Manual}),
 | 
			
		||||
@item
 | 
			
		||||
and review the check list from the manual (@pxref{Submitting Patches,,, guix, GNU Guix Reference Manual}).
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
Once you are happy with the result, you are welcome to send your contribution to
 | 
			
		||||
make it part of Guix.  This process is also detailed in the manual.  (@pxref{Contributing,,, guix, GNU Guix Reference Manual})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
It's a community effort so the more join in, the better Guix becomes!
 | 
			
		||||
 | 
			
		||||
@node Extended example
 | 
			
		||||
@subsection Extended example
 | 
			
		||||
 | 
			
		||||
The above "Hello World" example is as simple as it goes.  Packages can be more
 | 
			
		||||
complex than that and Guix can handle more advanced scenarios.  Let's look at
 | 
			
		||||
another, more sophisticated package (slightly modified from the source):
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
(define-module (gnu packages version-control)
 | 
			
		||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
			
		||||
  #:use-module (guix utils)
 | 
			
		||||
  #:use-module (guix packages)
 | 
			
		||||
  #:use-module (guix git-download)
 | 
			
		||||
  #:use-module (guix build-system cmake)
 | 
			
		||||
  #:use-module (gnu packages ssh)
 | 
			
		||||
  #:use-module (gnu packages web)
 | 
			
		||||
  #:use-module (gnu packages pkg-config)
 | 
			
		||||
  #:use-module (gnu packages python)
 | 
			
		||||
  #:use-module (gnu packages compression)
 | 
			
		||||
  #:use-module (gnu packages tls))
 | 
			
		||||
 | 
			
		||||
(define-public my-libgit2
 | 
			
		||||
  (let ((commit "e98d0a37c93574d2c6107bf7f31140b548c6a7bf")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "my-libgit2")
 | 
			
		||||
      (version (git-version "0.26.6" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://github.com/libgit2/libgit2/")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (git-file-name name version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "17pjvprmdrx4h6bb1hhc98w9qi6ki7yl57f090n9kbhswxqfs7s3"))
 | 
			
		||||
                (patches (search-patches "libgit2-mtime-0.patch"))
 | 
			
		||||
                (modules '((guix build utils)))
 | 
			
		||||
                (snippet '(begin
 | 
			
		||||
                            ;; Remove bundled software.
 | 
			
		||||
                            (delete-file-recursively "deps")
 | 
			
		||||
                            #t))))
 | 
			
		||||
      (build-system cmake-build-system)
 | 
			
		||||
      (outputs '("out" "debug"))
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:tests? #t                            ; Run the test suite (this is the default)
 | 
			
		||||
         #:configure-flags '("-DUSE_SHA1DC=ON") ; SHA-1 collision detection
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-after 'unpack 'fix-hardcoded-paths
 | 
			
		||||
             (lambda _
 | 
			
		||||
               (substitute* "tests/repo/init.c"
 | 
			
		||||
                 (("#!/bin/sh") (string-append "#!" (which "sh"))))
 | 
			
		||||
               (substitute* "tests/clar/fs.h"
 | 
			
		||||
                 (("/bin/cp") (which "cp"))
 | 
			
		||||
                 (("/bin/rm") (which "rm")))
 | 
			
		||||
               #t))
 | 
			
		||||
           ;; Run checks more verbosely.
 | 
			
		||||
           (replace 'check
 | 
			
		||||
             (lambda _ (invoke "./libgit2_clar" "-v" "-Q")))
 | 
			
		||||
           (add-after 'unpack 'make-files-writable-for-tests
 | 
			
		||||
               (lambda _ (for-each make-file-writable (find-files "." ".*")))))))
 | 
			
		||||
      (inputs
 | 
			
		||||
       `(("libssh2" ,libssh2)
 | 
			
		||||
         ("http-parser" ,http-parser)
 | 
			
		||||
         ("python" ,python-wrapper)))
 | 
			
		||||
      (native-inputs
 | 
			
		||||
       `(("pkg-config" ,pkg-config)))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       ;; These two libraries are in 'Requires.private' in libgit2.pc.
 | 
			
		||||
       `(("openssl" ,openssl)
 | 
			
		||||
         ("zlib" ,zlib)))
 | 
			
		||||
      (home-page "https://libgit2.github.com/")
 | 
			
		||||
      (synopsis "Library providing Git core methods")
 | 
			
		||||
      (description
 | 
			
		||||
       "Libgit2 is a portable, pure C implementation of the Git core methods
 | 
			
		||||
provided as a re-entrant linkable library with a solid API, allowing you to
 | 
			
		||||
write native speed custom Git applications in any language with bindings.")
 | 
			
		||||
      ;; GPLv2 with linking exception
 | 
			
		||||
      (license license:gpl2))))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
(In those cases were you only want to tweak a few fields from a package
 | 
			
		||||
definition, you should rely on inheritance instead of copy-pasting everything.
 | 
			
		||||
See below.)
 | 
			
		||||
 | 
			
		||||
Let's discuss those fields in depth.
 | 
			
		||||
 | 
			
		||||
@subsubsection @code{git-fetch} method
 | 
			
		||||
 | 
			
		||||
Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes
 | 
			
		||||
a Git repository and a commit.  The commit can be any Git reference such as
 | 
			
		||||
tags, so if the @code{version} is tagged, then it can be used directly.  Sometimes
 | 
			
		||||
the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append
 | 
			
		||||
"v" version))}.
 | 
			
		||||
 | 
			
		||||
To ensure that the source code from the Git repository is stored in a unique
 | 
			
		||||
directory with a readable name we use @code{(file-name (git-file-name name
 | 
			
		||||
version))}.
 | 
			
		||||
 | 
			
		||||
Note that there is also a @code{git-version} procedure that can be used to derive the
 | 
			
		||||
version when packaging programs for a specific commit.
 | 
			
		||||
 | 
			
		||||
@subsubsection Snippets
 | 
			
		||||
 | 
			
		||||
Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching
 | 
			
		||||
the source.  They are a Guix-y alternative to the traditional @samp{.patch} files.
 | 
			
		||||
Because of the quote, the code in only evaluated when passed to the Guix daemon
 | 
			
		||||
for building.
 | 
			
		||||
 | 
			
		||||
There can be as many snippet as needed.
 | 
			
		||||
 | 
			
		||||
Snippets might need additional Guile modules which can be imported from the
 | 
			
		||||
@code{modules} field.
 | 
			
		||||
 | 
			
		||||
@subsubsection Inputs
 | 
			
		||||
 | 
			
		||||
First, a syntactic comment: See the quasi-quote / comma syntax?
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("pkg-config" ,pkg-config)))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
is equivalent to
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     (list (list "pkg-config" pkg-config)))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
You'll mostly see the former because it's shorter.
 | 
			
		||||
 | 
			
		||||
There are 3 different input types.  In short:
 | 
			
		||||
 | 
			
		||||
@table @asis
 | 
			
		||||
@item native-inputs
 | 
			
		||||
Required for building but not runtime -- installing a package
 | 
			
		||||
through a substitute won't install these inputs.
 | 
			
		||||
@item inputs
 | 
			
		||||
Installed in the store but not in the profile, as well as being
 | 
			
		||||
present at build time.
 | 
			
		||||
@item propagated-inputs
 | 
			
		||||
Installed in the store and in the profile, as well as
 | 
			
		||||
being present at build time.
 | 
			
		||||
@end table
 | 
			
		||||
 | 
			
		||||
@xref{Package Reference,,, guix, GNU Guix Reference Manual} for more details.
 | 
			
		||||
 | 
			
		||||
The distinction between the various inputs is important: if a dependency can be
 | 
			
		||||
handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or
 | 
			
		||||
else it "pollutes" the user profile for no good reason.
 | 
			
		||||
 | 
			
		||||
For instance, a user installing a graphical program that depends on a
 | 
			
		||||
command line tool might only be interested in the graphical part, so there is no
 | 
			
		||||
need to force the command line tool into the user profile.  The dependency is a
 | 
			
		||||
concern to the package, not to the user.  @emph{Inputs} make it possible to handle
 | 
			
		||||
dependencies without bugging the user by adding undesired executable files (or
 | 
			
		||||
libraries) to their profile.
 | 
			
		||||
 | 
			
		||||
Same goes for @emph{native-inputs}: once the program is installed, build-time
 | 
			
		||||
dependencies can be safely garbage-collected.
 | 
			
		||||
It also matters when a substitute is available, in which case only the @emph{inputs}
 | 
			
		||||
and @emph{propagated inputs} will be fetched: the @emph{native inputs} are not required to
 | 
			
		||||
install a package from a substitute.
 | 
			
		||||
 | 
			
		||||
@subsubsection Outputs
 | 
			
		||||
 | 
			
		||||
Just like how a package can have multiple inputs, it can also produce multiple
 | 
			
		||||
outputs.
 | 
			
		||||
 | 
			
		||||
Each output corresponds to a separate directory in the store.
 | 
			
		||||
 | 
			
		||||
The user can choose which output to install; this is useful to save space or
 | 
			
		||||
to avoid polluting the user profile with unwanted executables or libraries.
 | 
			
		||||
 | 
			
		||||
Output separation is optional.  When the @code{outputs} field is left out, the
 | 
			
		||||
default and only output (the complete package) is referred to as @code{"out"}.
 | 
			
		||||
 | 
			
		||||
Typical separate output names include @code{debug} and @code{doc}.
 | 
			
		||||
 | 
			
		||||
It's advised to separate outputs only when you've shown it's worth it: if the
 | 
			
		||||
output size is significant (compare with @code{guix size}) or in case the package is
 | 
			
		||||
modular.
 | 
			
		||||
 | 
			
		||||
@subsubsection Build system arguments
 | 
			
		||||
 | 
			
		||||
The @code{arguments} is a keyword-value list used to configure the build process.
 | 
			
		||||
 | 
			
		||||
The simplest argument @code{#:tests?} can be used to disable the test suite when
 | 
			
		||||
building the package.  This is mostly useful when the package does not feature
 | 
			
		||||
any test suite.  It's strongly recommended to keep the test suite on if there is
 | 
			
		||||
one.
 | 
			
		||||
 | 
			
		||||
Another  common argument is @code{:make-flags}, which specifies a list of flags to
 | 
			
		||||
append when running make, as you would from the command line.  For instance, the
 | 
			
		||||
following flags
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
 | 
			
		||||
                   "CC=gcc")
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
translate into
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ make CC=gcc prefix=/gnu/store/...-<out>
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation
 | 
			
		||||
directory in Make parlance) to @code{(assoc-ref %outputs "out")}, which is a build-stage
 | 
			
		||||
global variable pointing to the destination directory in the store (something like
 | 
			
		||||
@samp{/gnu/store/...-my-libgit2-20180408}).
 | 
			
		||||
 | 
			
		||||
Similarly, it's possible to set the "configure" flags.
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
#:configure-flags '("-DUSE_SHA1DC=ON")
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
The @code{%build-inputs} variable is also generated in scope.  It's an association
 | 
			
		||||
table that maps the input names to their store directories.
 | 
			
		||||
 | 
			
		||||
The @code{phases} keyword lists the sequential steps of the build system.  Typically
 | 
			
		||||
phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}.  To know
 | 
			
		||||
more about those phases, you need to work out the appropriate build system
 | 
			
		||||
definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
(define %standard-phases
 | 
			
		||||
  ;; Standard build phases, as a list of symbol/procedure pairs.
 | 
			
		||||
  (let-syntax ((phases (syntax-rules ()
 | 
			
		||||
                         ((_ p ...) `((p . ,p) ...)))))
 | 
			
		||||
    (phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack
 | 
			
		||||
            bootstrap
 | 
			
		||||
            patch-usr-bin-file
 | 
			
		||||
            patch-source-shebangs configure patch-generated-file-shebangs
 | 
			
		||||
            build check install
 | 
			
		||||
            patch-shebangs strip
 | 
			
		||||
            validate-runpath
 | 
			
		||||
            validate-documentation-location
 | 
			
		||||
            delete-info-dir-file
 | 
			
		||||
            patch-dot-desktop-files
 | 
			
		||||
            install-license-files
 | 
			
		||||
            reset-gzip-timestamps
 | 
			
		||||
            compress-documentation)))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Or from the REPL:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
> (add-to-load-path "/path/to/guix/checkout")
 | 
			
		||||
> ,module (guix build gnu-build-system)
 | 
			
		||||
> (map first %standard-phases)
 | 
			
		||||
(set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
If you want to know more about what happens during those phases, consult the
 | 
			
		||||
associated procedures.
 | 
			
		||||
 | 
			
		||||
For instance, as of this writing the definition of @code{unpack} for the GNU build
 | 
			
		||||
system is
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
(define* (unpack #:key source #:allow-other-keys)
 | 
			
		||||
  "Unpack SOURCE in the working directory, and change directory within the
 | 
			
		||||
source.  When SOURCE is a directory, copy it in a sub-directory of the current
 | 
			
		||||
working directory."
 | 
			
		||||
  (if (file-is-directory? source)
 | 
			
		||||
      (begin
 | 
			
		||||
        (mkdir "source")
 | 
			
		||||
        (chdir "source")
 | 
			
		||||
 | 
			
		||||
        ;; Preserve timestamps (set to the Epoch) on the copied tree so that
 | 
			
		||||
        ;; things work deterministically.
 | 
			
		||||
        (copy-recursively source "."
 | 
			
		||||
                          #:keep-mtime? #t))
 | 
			
		||||
      (begin
 | 
			
		||||
        (if (string-suffix? ".zip" source)
 | 
			
		||||
            (invoke "unzip" source)
 | 
			
		||||
            (invoke "tar" "xvf" source))
 | 
			
		||||
        (chdir (first-subdirectory "."))))
 | 
			
		||||
  #t)
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Note the @code{chdir} call: it changes the working directory to where the source was
 | 
			
		||||
unpacked.
 | 
			
		||||
Thus every phase following the @code{unpack} will use the source as a working
 | 
			
		||||
directory, which is why we can directly work on the source files.
 | 
			
		||||
That is to say, unless a later phase changes the working directory to something
 | 
			
		||||
else.
 | 
			
		||||
 | 
			
		||||
We modify the list of @code{%standard-phases} of the build system with the
 | 
			
		||||
@code{modify-phases} macro as per the list of specified modifications, which may have
 | 
			
		||||
the following forms:
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
@code{(add-before PHASE NEW-PHASE PROCEDURE)}: Run @code{PROCEDURE} named @code{NEW-PHASE} before @code{PHASE}.
 | 
			
		||||
@item
 | 
			
		||||
@code{(add-after PHASE NEW-PHASE PROCEDURE)}: Same, but afterwards.
 | 
			
		||||
@item
 | 
			
		||||
@code{(replace PHASE PROCEDURE)}.
 | 
			
		||||
@item
 | 
			
		||||
@code{(delete PHASE)}.
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
The @code{PROCEDURE} supports the keyword arguments @code{inputs} and @code{outputs}.  Each
 | 
			
		||||
input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced
 | 
			
		||||
by their name in those variables.  Thus @code{(assoc-ref outputs "out")} is the store
 | 
			
		||||
directory of the main output of the package.  A phase procedure may look like
 | 
			
		||||
this:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
(lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
  (let (((bash-directory (assoc-ref inputs "bash"))
 | 
			
		||||
         (output-directory (assoc-ref outputs "out"))
 | 
			
		||||
         (doc-directory (assoc-ref outputs "doc"))
 | 
			
		||||
  ; ...
 | 
			
		||||
  #t)
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
The procedure must return @code{#t} on success.  It's brittle to rely on the return
 | 
			
		||||
value of the last expression used to tweak the phase because there is no
 | 
			
		||||
guarantee it would be a @code{#t}.  Hence the trailing @code{#t} to ensure the right value
 | 
			
		||||
is returned on success.
 | 
			
		||||
 | 
			
		||||
@subsubsection Code staging
 | 
			
		||||
 | 
			
		||||
The astute reader may have noticed the quasi-quote and comma syntax in the
 | 
			
		||||
argument field.  Indeed, the build code in the package declaration should not be
 | 
			
		||||
evaluated on the client side, but only when passed to the Guix daemon.  This
 | 
			
		||||
mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}.
 | 
			
		||||
 | 
			
		||||
@subsubsection "Utils" functions
 | 
			
		||||
 | 
			
		||||
When customizing @code{phases}, we often need to write code that mimics the
 | 
			
		||||
equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.) commonly used during
 | 
			
		||||
regular "Unix-style" installations.
 | 
			
		||||
 | 
			
		||||
Some like @code{chmod} are native to Guile.
 | 
			
		||||
@xref{,,, guile, Guile reference manual} for a complete list.
 | 
			
		||||
 | 
			
		||||
Guix provides additional helper functions which prove especially handy in the
 | 
			
		||||
context of package management.
 | 
			
		||||
 | 
			
		||||
Some of those functions can be found in
 | 
			
		||||
@samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}.  Most of them mirror the behaviour
 | 
			
		||||
of the traditional Unix system commands:
 | 
			
		||||
 | 
			
		||||
@table @asis
 | 
			
		||||
@item which
 | 
			
		||||
Like the @samp{which} system command.
 | 
			
		||||
@item find-files
 | 
			
		||||
Akin to the @samp{find} system command.
 | 
			
		||||
@item mkdir-p
 | 
			
		||||
Like @samp{mkdir -p}, which creates all parents as needed.
 | 
			
		||||
@item install-file
 | 
			
		||||
Similar to @samp{install} when installing a file to a (possibly
 | 
			
		||||
non-existing) directory.  Guile has @code{copy-file} which works
 | 
			
		||||
like @samp{cp}.
 | 
			
		||||
@item copy-recursively
 | 
			
		||||
Like @samp{cp -r}.
 | 
			
		||||
@item delete-file-recursively
 | 
			
		||||
Like @samp{rm -rf}.
 | 
			
		||||
@item invoke
 | 
			
		||||
Run an executable.  This should be used instead of @code{system*}.
 | 
			
		||||
@item with-directory-excursion
 | 
			
		||||
Run the body in a different working directory,
 | 
			
		||||
then restore the previous working directory.
 | 
			
		||||
@item substitute*
 | 
			
		||||
A "sed-like" function.
 | 
			
		||||
@end table
 | 
			
		||||
 | 
			
		||||
@subsubsection Module prefix
 | 
			
		||||
 | 
			
		||||
The license in our last example needs a prefix: this is because of how the
 | 
			
		||||
@code{license} module was imported in the package, as @code{#:use-module ((guix licenses)
 | 
			
		||||
#:prefix license:)}.  The Guile module import mechanism
 | 
			
		||||
(@pxref{Using Guile Modules,,, guile, Guile reference manual})
 | 
			
		||||
gives the user full control over namespacing: this is needed to avoid
 | 
			
		||||
clashes between, say, the
 | 
			
		||||
@samp{zlib} variable from @samp{licenses.scm} (a @emph{license} value) and the @samp{zlib} variable
 | 
			
		||||
from @samp{compression.scm} (a @emph{package} value).
 | 
			
		||||
 | 
			
		||||
@node Other build systems
 | 
			
		||||
@subsection Other build systems
 | 
			
		||||
 | 
			
		||||
What we've seen so far covers the majority of packages using a build system
 | 
			
		||||
other than the @code{trivial-build-system}.  The latter does not automate anything
 | 
			
		||||
and leaves you to build everything manually.  This can be more demanding and we
 | 
			
		||||
won't cover it here for now, but thankfully it is rarely necessary to fall back
 | 
			
		||||
on this system.
 | 
			
		||||
 | 
			
		||||
For the other build systems, such as ASDF, Emacs, Perl, Ruby and many more, the
 | 
			
		||||
process is very similar to the GNU build system except for a few specialized
 | 
			
		||||
arguments.
 | 
			
		||||
 | 
			
		||||
Learn more about build systems in
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
@uref{https://www.gnu.org/software/guix/manual/en/html_node/Build-Systems.html#Build-Systems, the manual, section 4.2 Build systems},
 | 
			
		||||
@item
 | 
			
		||||
the source code in the @samp{$GUIX_CHECKOUT/guix/build} and
 | 
			
		||||
@samp{$GUIX_CHECKOUT/guix/build-system} directories.
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
@node Programmable and automated package definition
 | 
			
		||||
@subsection Programmable and automated package definition
 | 
			
		||||
 | 
			
		||||
We can't repeat it enough: having a full-fledged programming language at hand
 | 
			
		||||
empowers us in ways that reach far beyond traditional package management.
 | 
			
		||||
 | 
			
		||||
Let's illustrate this with some awesome features of Guix!
 | 
			
		||||
 | 
			
		||||
@node Recursive importers
 | 
			
		||||
@subsubsection Recursive importers
 | 
			
		||||
 | 
			
		||||
You might find some build systems good enough that there is little to do at all
 | 
			
		||||
to write a package, to the point that it becomes repetitive and tedious after a
 | 
			
		||||
while.  A @emph{raison d'être} of computers is to replace human beings at those
 | 
			
		||||
boring tasks.  So let's tell Guix to do this for us and create the package
 | 
			
		||||
definition of an R package from CRAN (the output is trimmed for conciseness):
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ guix import cran --recursive walrus
 | 
			
		||||
 | 
			
		||||
(define-public r-mc2d
 | 
			
		||||
    ; ...
 | 
			
		||||
    (license gpl2+)))
 | 
			
		||||
 | 
			
		||||
(define-public r-jmvcore
 | 
			
		||||
    ; ...
 | 
			
		||||
    (license gpl2+)))
 | 
			
		||||
 | 
			
		||||
(define-public r-wrs2
 | 
			
		||||
    ; ...
 | 
			
		||||
    (license gpl3)))
 | 
			
		||||
 | 
			
		||||
(define-public r-walrus
 | 
			
		||||
  (package
 | 
			
		||||
    (name "r-walrus")
 | 
			
		||||
    (version "1.0.3")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (cran-uri "walrus" version))
 | 
			
		||||
        (sha256
 | 
			
		||||
          (base32
 | 
			
		||||
            "1nk2glcvy4hyksl5ipq2mz8jy4fss90hx6cq98m3w96kzjni6jjj"))))
 | 
			
		||||
    (build-system r-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
      `(("r-ggplot2" ,r-ggplot2)
 | 
			
		||||
        ("r-jmvcore" ,r-jmvcore)
 | 
			
		||||
        ("r-r6" ,r-r6)
 | 
			
		||||
        ("r-wrs2" ,r-wrs2)))
 | 
			
		||||
    (home-page "https://github.com/jamovi/walrus")
 | 
			
		||||
    (synopsis "Robust Statistical Methods")
 | 
			
		||||
    (description
 | 
			
		||||
      "This package provides a toolbox of common robust statistical
 | 
			
		||||
tests, including robust descriptives, robust t-tests, and robust ANOVA.
 | 
			
		||||
It is also available as a module for 'jamovi' (see
 | 
			
		||||
<https://www.jamovi.org> for more information).  Walrus is based on the
 | 
			
		||||
WRS2 package by Patrick Mair, which is in turn based on the scripts and
 | 
			
		||||
work of Rand Wilcox.  These analyses are described in depth in the book
 | 
			
		||||
'Introduction to Robust Estimation & Hypothesis Testing'.")
 | 
			
		||||
    (license gpl3)))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
The recursive importer won't import packages for which Guix already has package
 | 
			
		||||
definitions, except for the very first.
 | 
			
		||||
 | 
			
		||||
Not all applications can be packaged this way, only those relying on a select
 | 
			
		||||
number of supported systems.  Read about the full list of importers in
 | 
			
		||||
the guix import section of the manual
 | 
			
		||||
(@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual}).
 | 
			
		||||
 | 
			
		||||
@node Automatic update
 | 
			
		||||
@subsubsection Automatic update
 | 
			
		||||
 | 
			
		||||
Guix can be smart enough to check for updates on systems it knows.  It can
 | 
			
		||||
report outdated package definitions with
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ guix refresh hello
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
In most cases, updating a package to a newer version requires little more than
 | 
			
		||||
changing the version number and the checksum.  Guix can do that automatically as
 | 
			
		||||
well:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
$ guix refresh hello --update
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@node Inheritance
 | 
			
		||||
@subsubsection Inheritance
 | 
			
		||||
 | 
			
		||||
If you've started browsing the existing package definitions, you might have
 | 
			
		||||
noticed that a significant number of them have a @code{inherit} field:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
(define-public adwaita-icon-theme
 | 
			
		||||
  (package (inherit gnome-icon-theme)
 | 
			
		||||
    (name "adwaita-icon-theme")
 | 
			
		||||
    (version "3.26.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
			
		||||
                                  (version-major+minor version) "/"
 | 
			
		||||
                                  name "-" version ".tar.xz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "17fpahgh5dyckgz7rwqvzgnhx53cx9kr2xw0szprc6bnqy977fi8"))))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
All unspecified fields are inherited from the parent package.  This is very
 | 
			
		||||
convenient to create alternative packages, for instance with different source,
 | 
			
		||||
version or compilation options.
 | 
			
		||||
 | 
			
		||||
@node Getting help
 | 
			
		||||
@subsection Getting help
 | 
			
		||||
 | 
			
		||||
Sadly, some applications can be tough to package.  Sometimes they need a patch to
 | 
			
		||||
work with the non-standard filesystem hierarchy enforced by the store.
 | 
			
		||||
Sometimes the tests won't run properly.  (They can be skipped but this is not
 | 
			
		||||
recommended.)  Other times the resulting package won't be reproducible.
 | 
			
		||||
 | 
			
		||||
Should you be stuck, unable to figure out how to fix any sort of packaging
 | 
			
		||||
issue, don't hesitate to ask the community for help.
 | 
			
		||||
 | 
			
		||||
See the @uref{https://www.gnu.org/software/guix/contact/, Guix homepage} for information on the mailing lists, IRC, etc.
 | 
			
		||||
 | 
			
		||||
@node Conclusion
 | 
			
		||||
@subsection Conclusion
 | 
			
		||||
 | 
			
		||||
This tutorial was a showcase of the sophisticated package management that Guix
 | 
			
		||||
boasts.  At this point we have mostly restricted this introduction to the
 | 
			
		||||
@code{gnu-build-system} which is a core abstraction layer on which more advanced
 | 
			
		||||
abstractions are based.
 | 
			
		||||
 | 
			
		||||
Where do we go from here?  Next we ought to dissect the innards of the build
 | 
			
		||||
system by removing all abstractions, using the @code{trivial-build-system}: this
 | 
			
		||||
should give us a thorough understanding of the process before investigating some
 | 
			
		||||
more advanced packaging techniques and edge cases.
 | 
			
		||||
 | 
			
		||||
Other features worth exploring are the interactive editing and debugging
 | 
			
		||||
capabilities of Guix provided by the Guile REPL@.
 | 
			
		||||
 | 
			
		||||
Those fancy features are completely optional and can wait; now is a good time
 | 
			
		||||
to take a well-deserved break.  With what we've introduced here you should be
 | 
			
		||||
well armed to package lots of programs.  You can get started right away and
 | 
			
		||||
hopefully we will see your contributions soon!
 | 
			
		||||
 | 
			
		||||
@node References
 | 
			
		||||
@subsection References
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
The @uref{https://www.gnu.org/software/guix/manual/en/html_node/Defining-Packages.html, package reference in the manual}
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, "GNU Guix: Package without a scheme!"}, by Andreas Enge
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
@c *********************************************************************
 | 
			
		||||
@node System Configuration
 | 
			
		||||
| 
						 | 
				
			
			@ -801,7 +1579,7 @@ reference.
 | 
			
		|||
 | 
			
		||||
Guix provides a very useful feature that may be quite foreign to newcomers:
 | 
			
		||||
@emph{profiles}.  They are a way to group package installations together and all users
 | 
			
		||||
on a same system are free to use as many profiles as they want.
 | 
			
		||||
on the same system are free to use as many profiles as they want.
 | 
			
		||||
 | 
			
		||||
Whether you're a developer or not, you may find that multiple profiles bring you
 | 
			
		||||
great power and flexibility.  While they shift the paradigm somewhat compared to
 | 
			
		||||
| 
						 | 
				
			
			@ -830,7 +1608,7 @@ shells, each of them running different profiles.
 | 
			
		|||
 | 
			
		||||
@item
 | 
			
		||||
Isolation: Programs from one profile will not use programs from the other, and
 | 
			
		||||
they user can even install different versions of the same programs to the two
 | 
			
		||||
the user can even install different versions of the same programs to the two
 | 
			
		||||
profiles without conflict.
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
| 
						 | 
				
			
			@ -840,8 +1618,10 @@ This makes multiple profiles storage-efficient.
 | 
			
		|||
@item
 | 
			
		||||
Reproducible: when used with declarative manifests, a profile can be fully
 | 
			
		||||
specified by the Guix commit that was active when it was set up.  This means
 | 
			
		||||
that the exact same profile can be @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, set up anywhere, anytime}, with just the
 | 
			
		||||
commit information.  See the section on @ref{Reproducible profiles}.
 | 
			
		||||
that the exact same profile can be
 | 
			
		||||
@uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/,
 | 
			
		||||
set up anywhere and anytime}, with just the commit information.  See the
 | 
			
		||||
section on @ref{Reproducible profiles}.
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Easier upgrades and maintenance: Multiple profiles make it easy to keep
 | 
			
		||||
| 
						 | 
				
			
			@ -994,6 +1774,14 @@ You can roll-back to any generation of a given profile:
 | 
			
		|||
guix package -p "$GUIX_EXTRA_PROFILES"/my-project/my-project --switch-generations=17
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Finally, if you want to switch to a profile without inheriting from the
 | 
			
		||||
current environment, you can activate it from an empty shell:
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
env -i $(which bash) --login --noprofile --norc
 | 
			
		||||
. my-project/etc/profile
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@node Required packages
 | 
			
		||||
@subsection Required packages
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1012,7 +1800,7 @@ the profile is loaded, you've got two options:
 | 
			
		|||
@item
 | 
			
		||||
Either export the variable manually, e.g.
 | 
			
		||||
@example
 | 
			
		||||
export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH"
 | 
			
		||||
export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3666,6 +3666,21 @@ descriptions, and deploys it.  Source code is downloaded from a
 | 
			
		|||
@uref{https://git-scm.com, Git} repository, by default the official
 | 
			
		||||
GNU@tie{}Guix repository, though this can be customized.
 | 
			
		||||
 | 
			
		||||
Specifically, @command{guix pull} downloads code from the @dfn{channels}
 | 
			
		||||
(@pxref{Channels}) specified by one of the followings, in this order:
 | 
			
		||||
 | 
			
		||||
@enumerate
 | 
			
		||||
@item
 | 
			
		||||
the @option{--channels} option;
 | 
			
		||||
@item
 | 
			
		||||
the user's @file{~/.config/guix/channels.scm} file;
 | 
			
		||||
@item
 | 
			
		||||
the system-wide @file{/etc/guix/channels.scm} file;
 | 
			
		||||
@item
 | 
			
		||||
the built-in default channels specified in the @code{%default-channels}
 | 
			
		||||
variable.
 | 
			
		||||
@end enumerate
 | 
			
		||||
 | 
			
		||||
On completion, @command{guix package} will use packages and package
 | 
			
		||||
versions from this just-retrieved copy of Guix.  Not only that, but all
 | 
			
		||||
the Guix commands and Scheme modules will also be taken from that latest
 | 
			
		||||
| 
						 | 
				
			
			@ -3763,7 +3778,8 @@ configuration in the @file{~/.config/guix/channels.scm} file or using the
 | 
			
		|||
@item --channels=@var{file}
 | 
			
		||||
@itemx -C @var{file}
 | 
			
		||||
Read the list of channels from @var{file} instead of
 | 
			
		||||
@file{~/.config/guix/channels.scm}.  @var{file} must contain Scheme code that
 | 
			
		||||
@file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}.
 | 
			
		||||
@var{file} must contain Scheme code that
 | 
			
		||||
evaluates to a list of channel objects.  @xref{Channels}, for more
 | 
			
		||||
information.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -22378,9 +22394,69 @@ The port to run mpd on.
 | 
			
		|||
The address that mpd will bind to.  To use a Unix domain socket,
 | 
			
		||||
an absolute path can be specified here.
 | 
			
		||||
 | 
			
		||||
@item @code{outputs} (default: @code{"(list (mpd-output))"})
 | 
			
		||||
The audio outputs that MPD can use.  By default this is a single output using pulseaudio.
 | 
			
		||||
 | 
			
		||||
@end table
 | 
			
		||||
@end deftp
 | 
			
		||||
 | 
			
		||||
@deftp {Data Type} mpd-output
 | 
			
		||||
Data type representing an @command{mpd} audio output.
 | 
			
		||||
 | 
			
		||||
@table @asis
 | 
			
		||||
@item @code{name} (default: @code{"MPD"})
 | 
			
		||||
The name of the audio output.
 | 
			
		||||
 | 
			
		||||
@item @code{type} (default: @code{"pulse"})
 | 
			
		||||
The type of audio output.
 | 
			
		||||
 | 
			
		||||
@item @code{enabled?} (default: @code{#t})
 | 
			
		||||
Specifies whether this audio output is enabled when MPD is started.  By
 | 
			
		||||
default, all audio outputs are enabled.  This is just the default
 | 
			
		||||
setting when there is no state file; with a state file, the previous
 | 
			
		||||
state is restored.
 | 
			
		||||
 | 
			
		||||
@item @code{tags?} (default: @code{#t})
 | 
			
		||||
If set to @code{#f}, then MPD will not send tags to this output.  This
 | 
			
		||||
is only useful for output plugins that can receive tags, for example the
 | 
			
		||||
@code{httpd} output plugin.
 | 
			
		||||
 | 
			
		||||
@item @code{always-on?} (default: @code{#f})
 | 
			
		||||
If set to @code{#t}, then MPD attempts to keep this audio output always
 | 
			
		||||
open. This may be useful for streaming servers, when you don’t want to
 | 
			
		||||
disconnect all listeners even when playback is accidentally stopped.
 | 
			
		||||
 | 
			
		||||
@item @code{mixer-type}
 | 
			
		||||
This field accepts a symbol that specifies which mixer should be used
 | 
			
		||||
for this audio output: the @code{hardware} mixer, the @code{software}
 | 
			
		||||
mixer, the @code{null} mixer (allows setting the volume, but with no
 | 
			
		||||
effect; this can be used as a trick to implement an external mixer
 | 
			
		||||
External Mixer) or no mixer (@code{none}).
 | 
			
		||||
 | 
			
		||||
@item @code{extra-options} (default: @code{'()"})
 | 
			
		||||
An association list of option symbols to string values to be appended to
 | 
			
		||||
the audio output configuration.
 | 
			
		||||
 | 
			
		||||
@end table
 | 
			
		||||
@end deftp
 | 
			
		||||
 | 
			
		||||
The following example shows a configuration of @code{mpd} that provides
 | 
			
		||||
an HTTP audio streaming output.
 | 
			
		||||
 | 
			
		||||
@lisp
 | 
			
		||||
(service mpd-service-type
 | 
			
		||||
         (mpd-configuration
 | 
			
		||||
           (outputs
 | 
			
		||||
             (list (mpd-output
 | 
			
		||||
                     (name "streaming")
 | 
			
		||||
                     (type "httpd")
 | 
			
		||||
                     (mixer-type 'null)
 | 
			
		||||
                     (extra-options
 | 
			
		||||
                      `((encoder . "vorbis")
 | 
			
		||||
                        (port    . "8080"))))))))
 | 
			
		||||
@end lisp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@node Virtualization Services
 | 
			
		||||
@subsection Virtualization services
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								etc/news.scm
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								etc/news.scm
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -9,6 +9,22 @@
 | 
			
		|||
(channel-news
 | 
			
		||||
 (version 0)
 | 
			
		||||
 | 
			
		||||
 (entry (commit "49af34cfac89d384c46269bfd9388b2c73b1220a")
 | 
			
		||||
        (title (en "@command{guix pull} now honors
 | 
			
		||||
@file{/etc/guix/channels.scm}")
 | 
			
		||||
               (fr "@command{guix pull} lit maintenant
 | 
			
		||||
@file{/etc/guix/channels.scm}"))
 | 
			
		||||
        (body
 | 
			
		||||
         (en "The @command{guix pull} command will now read the
 | 
			
		||||
@file{/etc/guix/channels.scm} file if it exists and if the per-user
 | 
			
		||||
@file{~/.config/guix/channels.scm} is not present.  This allows administrators
 | 
			
		||||
of multi-user systems to define site-wide defaults.")
 | 
			
		||||
         (fr "La commande @command{guix pull} lira maintenant le fichier
 | 
			
		||||
@file{/etc/guix/channels.scm} s'il existe et si le fichier
 | 
			
		||||
@file{~/.config/guix/channels.scm} par utilisateur·rice n'est pas présent.
 | 
			
		||||
Cela permet aux personnes administrant des systèmes multi-utilisateurs de
 | 
			
		||||
définir les canaux par défaut.")))
 | 
			
		||||
 | 
			
		||||
 (entry (commit "81c580c8664bfeeb767e2c47ea343004e88223c7")
 | 
			
		||||
        (title (en "Insecure @file{/var/guix/profiles/per-user} permissions (CVE-2019-18192)")
 | 
			
		||||
               (de "Sicherheitslücke in @file{/var/guix/profiles/per-user}-Berechtigungen (CVE-2019-18192)")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -974,9 +974,8 @@ dist_patch_DATA =						\
 | 
			
		|||
  %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch        \
 | 
			
		||||
  %D%/packages/patches/hplip-remove-imageprocessor.patch	\
 | 
			
		||||
  %D%/packages/patches/hydra-disable-darcs-test.patch		\
 | 
			
		||||
  %D%/packages/patches/icecat-gnuzilla-fixes.patch			\
 | 
			
		||||
  %D%/packages/patches/icecat-makeicecat.patch			\
 | 
			
		||||
  %D%/packages/patches/icecat-default-search-ddg.patch		\
 | 
			
		||||
  %D%/packages/patches/icecat-disable-sync.patch		\
 | 
			
		||||
  %D%/packages/patches/icecat-avoid-bundled-libraries.patch	\
 | 
			
		||||
  %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch	\
 | 
			
		||||
  %D%/packages/patches/icecat-use-system-media-libs.patch	\
 | 
			
		||||
| 
						 | 
				
			
			@ -1066,7 +1065,6 @@ dist_patch_DATA =						\
 | 
			
		|||
  %D%/packages/patches/libmpeg2-global-symbol-test.patch	\
 | 
			
		||||
  %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
 | 
			
		||||
  %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
 | 
			
		||||
  %D%/packages/patches/libreoffice-boost.patch			\
 | 
			
		||||
  %D%/packages/patches/libreoffice-icu.patch			\
 | 
			
		||||
  %D%/packages/patches/libreoffice-glm.patch			\
 | 
			
		||||
  %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
 | 
			
		||||
| 
						 | 
				
			
			@ -1448,9 +1446,7 @@ dist_patch_DATA =						\
 | 
			
		|||
  %D%/packages/patches/xfce4-panel-plugins.patch		\
 | 
			
		||||
  %D%/packages/patches/xfce4-settings-defaults.patch		\
 | 
			
		||||
  %D%/packages/patches/xinetd-fix-fd-leak.patch			\
 | 
			
		||||
  %D%/packages/patches/xinetd-CVE-2013-4342.patch		\
 | 
			
		||||
  %D%/packages/patches/xorriso-no-partition-table-in-inner-efi.patch \
 | 
			
		||||
  %D%/packages/patches/xorriso-no-mbr-in-inner-efi.patch
 | 
			
		||||
  %D%/packages/patches/xinetd-CVE-2013-4342.patch
 | 
			
		||||
 | 
			
		||||
MISC_DISTRO_FILES =				\
 | 
			
		||||
  %D%/packages/ld-wrapper.in
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1128,7 +1128,7 @@ system administrator.")
 | 
			
		|||
(define-public sudo
 | 
			
		||||
  (package
 | 
			
		||||
    (name "sudo")
 | 
			
		||||
    (version "1.8.28p1")
 | 
			
		||||
    (version "1.8.29")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri
 | 
			
		||||
| 
						 | 
				
			
			@ -1138,7 +1138,7 @@ system administrator.")
 | 
			
		|||
                                    version ".tar.gz")))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "09xhx2k7j6wlqs9bl7snamd4k6lkyv9ycjwdspgbbqrimy25mfi3"))
 | 
			
		||||
                "0z4wyadh9cks17gdpfgx4kvbrlnyb6nai2sd6chk7qh4jsngylyf"))
 | 
			
		||||
              (modules '((guix build utils)))
 | 
			
		||||
              (snippet
 | 
			
		||||
               '(begin
 | 
			
		||||
| 
						 | 
				
			
			@ -1184,6 +1184,12 @@ system administrator.")
 | 
			
		|||
               (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
 | 
			
		||||
                ;; Don't try to create /var/db/sudo.
 | 
			
		||||
                "$(TMPDIR)/dummy"))
 | 
			
		||||
 | 
			
		||||
             ;; ‘Checking existing [/etc/]sudoers file for syntax errors’ is
 | 
			
		||||
             ;; not the task of the build system, and fails.
 | 
			
		||||
             (substitute* "plugins/sudoers/Makefile.in"
 | 
			
		||||
               (("^pre-install:" match)
 | 
			
		||||
                (string-append match "\ndisabled-" match)))
 | 
			
		||||
             #t)))
 | 
			
		||||
 | 
			
		||||
       ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -483,7 +483,7 @@ fast arithmetic.")
 | 
			
		|||
(define-public arb
 | 
			
		||||
  (package
 | 
			
		||||
    (name "arb")
 | 
			
		||||
    (version "2.16.0")
 | 
			
		||||
    (version "2.17.0")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
| 
						 | 
				
			
			@ -492,7 +492,7 @@ fast arithmetic.")
 | 
			
		|||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0478671wfwy3gl26sbxh1jq1ih36z4k72waa8y2y2lvn649gb7cd"))))
 | 
			
		||||
                "05lpy3hkl5f8ik19aw40cqydrb932xaf2n8hbq9ib5dnk7f010p1"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("flint" ,flint)))               ; flint.h is included by arf.h
 | 
			
		||||
| 
						 | 
				
			
			@ -508,8 +508,8 @@ fast arithmetic.")
 | 
			
		|||
                   (flint (assoc-ref inputs "flint"))
 | 
			
		||||
                   (gmp (assoc-ref inputs "gmp"))
 | 
			
		||||
                   (mpfr (assoc-ref inputs "mpfr")))
 | 
			
		||||
               ;; do not pass "--enable-fast-install", which makes the
 | 
			
		||||
               ;; homebrew configure process fail
 | 
			
		||||
               ;; Do not pass "--enable-fast-install", which makes the
 | 
			
		||||
               ;; homebrew configure process fail.
 | 
			
		||||
               (invoke "./configure"
 | 
			
		||||
                       (string-append "--prefix=" out)
 | 
			
		||||
                       (string-append "--with-flint=" flint)
 | 
			
		||||
| 
						 | 
				
			
			@ -522,7 +522,7 @@ arithmetic.  It supports efficient high-precision computation with
 | 
			
		|||
polynomials, power series, matrices and special functions over the
 | 
			
		||||
real and complex numbers, with automatic, rigorous error control.")
 | 
			
		||||
    (license license:lgpl2.1+)
 | 
			
		||||
    (home-page "http://fredrikj.net/arb/")))
 | 
			
		||||
    (home-page "http://arblib.org")))
 | 
			
		||||
 | 
			
		||||
(define-public python-flint
 | 
			
		||||
  (package
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1107,7 +1107,7 @@ follower.")
 | 
			
		|||
(define-public fluidsynth
 | 
			
		||||
  (package
 | 
			
		||||
    (name "fluidsynth")
 | 
			
		||||
    (version "2.0.7")
 | 
			
		||||
    (version "2.0.8")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
| 
						 | 
				
			
			@ -1116,7 +1116,7 @@ follower.")
 | 
			
		|||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1h1dj3wmjwzny2hgr41k3p67w4kxvzn365kkqwyfd6yk0v3rahic"))))
 | 
			
		||||
                "1s32c0jxjica2agy0mp36vgvpgj2vl5i5zvacd6igmbam0x4gs7c"))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:tests? #f                      ; no check target
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -416,7 +416,7 @@ desktops.")
 | 
			
		|||
(define-public qbittorrent
 | 
			
		||||
  (package
 | 
			
		||||
    (name "qbittorrent")
 | 
			
		||||
    (version "4.1.8")
 | 
			
		||||
    (version "4.1.9")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -425,7 +425,7 @@ desktops.")
 | 
			
		|||
             (commit (string-append "release-" version))))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "1mx59mazfmd5yaqdgb6cm8hr5sbp2xgzz3y3yipq1fwq85dj3r5w"))))
 | 
			
		||||
        (base32 "044r3y3vvm2rqagmwlqlhvb4kkyqpkmpnlhv68hzkl3w5bvf8zl8"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,6 +33,7 @@
 | 
			
		|||
  #:use-module ((guix derivations)
 | 
			
		||||
                #:select (derivation derivation-input derivation->output-path))
 | 
			
		||||
  #:use-module ((guix utils) #:select (gnu-triplet->nix-system))
 | 
			
		||||
  #:use-module ((guix gexp) #:select (lower-object))
 | 
			
		||||
  #:use-module (guix memoization)
 | 
			
		||||
  #:use-module (guix i18n)
 | 
			
		||||
  #:use-module (srfi srfi-1)
 | 
			
		||||
| 
						 | 
				
			
			@ -167,10 +168,12 @@ for system '~a'")
 | 
			
		|||
      ("patch" ,%bootstrap-coreutils&co)))
 | 
			
		||||
 | 
			
		||||
  (let ((orig-method (origin-method source)))
 | 
			
		||||
    (if (or (not (null? (origin-patches source)))
 | 
			
		||||
            (origin-snippet source))
 | 
			
		||||
        (origin (inherit source)
 | 
			
		||||
      (method (cond ((eq? orig-method url-fetch)
 | 
			
		||||
                     (boot url-fetch))
 | 
			
		||||
                    (else orig-method)))
 | 
			
		||||
                (method (if (eq? orig-method url-fetch)
 | 
			
		||||
                            (boot url-fetch)
 | 
			
		||||
                            orig-method))
 | 
			
		||||
                (patch-guile %bootstrap-guile)
 | 
			
		||||
                (patch-inputs %bootstrap-patch-inputs)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +182,8 @@ for system '~a'")
 | 
			
		|||
                                ((? origin? patch)
 | 
			
		||||
                                 (bootstrap-origin patch))
 | 
			
		||||
                                (patch patch))
 | 
			
		||||
                    (origin-patches source))))))
 | 
			
		||||
                              (origin-patches source))))
 | 
			
		||||
        source)))
 | 
			
		||||
 | 
			
		||||
(define* (package-from-tarball name source program-to-test description
 | 
			
		||||
                               #:key snippet)
 | 
			
		||||
| 
						 | 
				
			
			@ -345,7 +349,7 @@ or false to signal an error."
 | 
			
		|||
                    #:allow-other-keys)
 | 
			
		||||
  (define (->store file)
 | 
			
		||||
    (run-with-store store
 | 
			
		||||
      (origin->derivation (bootstrap-executable file system)
 | 
			
		||||
      (lower-object (bootstrap-executable file system)
 | 
			
		||||
                    system)))
 | 
			
		||||
 | 
			
		||||
  (let* ((tar   (->store "tar"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 | 
			
		||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 | 
			
		||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 | 
			
		||||
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 | 
			
		||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 | 
			
		||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 | 
			
		||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 | 
			
		||||
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
 | 
			
		||||
| 
						 | 
				
			
			@ -155,17 +155,14 @@ libcdio.")
 | 
			
		|||
(define-public xorriso
 | 
			
		||||
  (package
 | 
			
		||||
    (name "xorriso")
 | 
			
		||||
    (version "1.5.0")
 | 
			
		||||
    (version "1.5.2")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://gnu/xorriso/xorriso-"
 | 
			
		||||
                                 version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9"))
 | 
			
		||||
             (patches
 | 
			
		||||
              (search-patches "xorriso-no-partition-table-in-inner-efi.patch"
 | 
			
		||||
                              "xorriso-no-mbr-in-inner-efi.patch"))))
 | 
			
		||||
               "1rqpzj95f70jfwpn4lamasfgqpizjsipz12aprdhri777b4zas9v"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
| 
						 | 
				
			
			@ -815,14 +812,14 @@ DVD-RW, DVD-R, DVD-R/DL, BD-R, and BD-RE.")
 | 
			
		|||
(define-public libisofs
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libisofs")
 | 
			
		||||
    (version "1.5.0")
 | 
			
		||||
    (version "1.5.2")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "http://files.libburnia-project.org/releases/"
 | 
			
		||||
                                 "libisofs-" version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "001l3akf3wb6msl9man776w560iqyvsbwwzs7d7y7msx13irspys"))))
 | 
			
		||||
               "002mcyqwg625a8hqvsrmgm26mhhfwj0j7rahfhsqirmk02b16npg"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("zlib" ,zlib)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 | 
			
		||||
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
 | 
			
		||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
			
		||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 | 
			
		||||
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
			
		||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
| 
						 | 
				
			
			@ -47,8 +47,8 @@
 | 
			
		|||
  #:use-module (guix build-system gnu))
 | 
			
		||||
 | 
			
		||||
(define-public cuirass
 | 
			
		||||
  (let ((commit "80b6e89a7b2e9a6f9dee26dcf22277970930039f")
 | 
			
		||||
        (revision "25"))
 | 
			
		||||
  (let ((commit "e20ff86d97f7dd92dad140b5919e3cbdf2fb1ce6")
 | 
			
		||||
        (revision "26"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "cuirass")
 | 
			
		||||
      (version (string-append "0.0.1-" revision "." (string-take commit 7)))
 | 
			
		||||
| 
						 | 
				
			
			@ -60,7 +60,7 @@
 | 
			
		|||
                (file-name (string-append name "-" version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0m7g7wqa1l8gab8pcyi43a6w6rxhaqbpsrwlnadwsds1b95x9bka"))))
 | 
			
		||||
                  "1c3rcfmx7vm13x3nid9xbl18rrqljh5vb71qxps4yqid75br4hrb"))))
 | 
			
		||||
      (build-system gnu-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:modules ((guix build utils)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9556,14 +9556,13 @@ maps.")
 | 
			
		|||
(define-public r-tidytree
 | 
			
		||||
  (package
 | 
			
		||||
    (name "r-tidytree")
 | 
			
		||||
    (version "0.2.8")
 | 
			
		||||
    (version "0.2.9")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (cran-uri "tidytree" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1hkddl8kj1g01dy7xiracx81f6b405b3ga2qp4wlrl552b9xxpby"))))
 | 
			
		||||
        (base32 "1l9rk71dzlwg8736l0g4rdlq3pghxkfzmlxyln8y4bxx7ym51i6g"))))
 | 
			
		||||
    (build-system r-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("r-ape" ,r-ape)
 | 
			
		||||
| 
						 | 
				
			
			@ -10879,14 +10878,13 @@ This makes it a convenient and fast interface to C/C++ and Fortran code.")
 | 
			
		|||
(define-public r-spam
 | 
			
		||||
  (package
 | 
			
		||||
    (name "r-spam")
 | 
			
		||||
    (version "2.3-0.1")
 | 
			
		||||
    (version "2.3-0.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (cran-uri "spam" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0mas2ra7d5f9ccwxwsvxls3dz53prpf59hi2a0rvc347wbm6540b"))))
 | 
			
		||||
        (base32 "0czmzwhvcs0shm1asvphhz366df3n7vrlls4cfpq5b3i19fak3w4"))))
 | 
			
		||||
    (build-system r-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("r-dotcall64" ,r-dotcall64)))
 | 
			
		||||
| 
						 | 
				
			
			@ -11262,14 +11260,13 @@ regression coefficients can be conducted via jackknifing.")
 | 
			
		|||
(define-public r-huge
 | 
			
		||||
  (package
 | 
			
		||||
    (name "r-huge")
 | 
			
		||||
    (version "1.3.3")
 | 
			
		||||
    (version "1.3.4")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (cran-uri "huge" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "18f8w4hdp9fdi2k5ip6fnrn5z47w4ybgxs2m6a7jdvd2v4wfdr69"))))
 | 
			
		||||
        (base32 "07n3j1va2z4v30rj22cww72khgzbz2xsp0yc0qswlrwyxi4my5i3"))))
 | 
			
		||||
    (build-system r-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("r-igraph" ,r-igraph)
 | 
			
		||||
| 
						 | 
				
			
			@ -15547,13 +15544,13 @@ effect size.")
 | 
			
		|||
(define-public r-rgdal
 | 
			
		||||
  (package
 | 
			
		||||
    (name "r-rgdal")
 | 
			
		||||
    (version "1.4-6")
 | 
			
		||||
    (version "1.4-7")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (cran-uri "rgdal" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0lj1dax56dxxsj1hindxcvgz169p9dxd0y4wjypbyr01nja8rz4d"))))
 | 
			
		||||
        (base32 "05rvqy8lr2c3phaylmc4g5761208b0xrmgwn9c4a60x7p251dzjs"))))
 | 
			
		||||
    (properties `((upstream-name . "rgdal")))
 | 
			
		||||
    (build-system r-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -3028,7 +3028,7 @@ transforms idiomatic python function calls to well-formed SQL queries.")
 | 
			
		|||
    (native-inputs
 | 
			
		||||
     `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
 | 
			
		||||
       ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
 | 
			
		||||
       ("go-golang.org-x-crypto-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal)
 | 
			
		||||
       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
 | 
			
		||||
       ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
 | 
			
		||||
       ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
 | 
			
		||||
       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,7 +67,7 @@
 | 
			
		|||
  #:use-module (ice-9 match))
 | 
			
		||||
 | 
			
		||||
(define-public diffoscope
 | 
			
		||||
  (let ((version "126"))
 | 
			
		||||
  (let ((version "129"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "diffoscope")
 | 
			
		||||
      (version version)
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +79,7 @@
 | 
			
		|||
                (file-name (git-file-name name version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0lmn2116g5l05nns8qd2kwsnnd144zrqhs53fsr88inzf0mkqwhj"))))
 | 
			
		||||
                  "1r8hq93gga9n4jv4fyf1divc9cwvvjadkzl47lazzrfy3nn1qjwr"))))
 | 
			
		||||
      (build-system python-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:phases (modify-phases %standard-phases
 | 
			
		||||
| 
						 | 
				
			
			@ -153,6 +153,8 @@
 | 
			
		|||
      (native-inputs `(("python-pytest" ,python-pytest)
 | 
			
		||||
                       ("python-chardet" ,python-chardet)
 | 
			
		||||
                       ("python-binwalk" ,python-binwalk)
 | 
			
		||||
                       ("python-pypdf2" ,python-pypdf2)
 | 
			
		||||
                       ("python-progressbar33" ,python-progressbar33)
 | 
			
		||||
                       ;; test suite skips tests when tool is missing
 | 
			
		||||
                       ,@(match (%current-system)
 | 
			
		||||
                                ;; ghc is only available on x86 currently.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -612,7 +612,7 @@ passphrases.")
 | 
			
		|||
(define-public ndctl
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ndctl")
 | 
			
		||||
    (version "65")
 | 
			
		||||
    (version "67")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
| 
						 | 
				
			
			@ -621,7 +621,7 @@ passphrases.")
 | 
			
		|||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0d8hzfvyxs2q8kgkwgdizlml41kin4mhx3vpdsjk34pfi7mqy69y"))))
 | 
			
		||||
                "076jgw1g2aafqgnq705in0wnabysqk46dq5yxdv1qzgjmyhka39n"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("asciidoc" ,asciidoc)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -273,21 +273,33 @@ the two.")
 | 
			
		|||
(define-public libasr
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libasr")
 | 
			
		||||
    (version "201602131606")
 | 
			
		||||
    (version "1.0.3")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://www.opensmtpd.org/archives/"
 | 
			
		||||
                           name "-" version ".tar.gz"))
 | 
			
		||||
                           "libasr-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "18kdmbjsxrfai16d66qslp48b1zf7gr8him2jj5dcqgbsl44ls75"))))
 | 
			
		||||
        (base32 "13fn4sr4vlcx1xijpl26nmnxawyls4lr5q3mi11jdm76f80qxn4w"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (replace 'bootstrap
 | 
			
		||||
           ;; ‘GNU build system bootstrapping not needed’, the default lies.
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (invoke "sh" "./bootstrap")))
 | 
			
		||||
         (add-after 'install 'install-documentation
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (let ((out (assoc-ref outputs "out")))
 | 
			
		||||
               (install-file "src/asr_run.3"
 | 
			
		||||
                             (string-append out "/share/man/man3"))
 | 
			
		||||
               #t))))))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("autoconf" ,autoconf)
 | 
			
		||||
       ("automake" ,automake)
 | 
			
		||||
       ("pkg-config" ,pkg-config)
 | 
			
		||||
       ("groff" ,groff)))
 | 
			
		||||
       ("libtool" ,libtool)
 | 
			
		||||
       ("pkg-config" ,pkg-config)))
 | 
			
		||||
    (home-page "https://www.opensmtpd.org")
 | 
			
		||||
    (synopsis "Asynchronous resolver library by the OpenBSD project")
 | 
			
		||||
    (description
 | 
			
		||||
| 
						 | 
				
			
			@ -373,14 +385,14 @@ to result in system-wide compromise.")
 | 
			
		|||
(define-public unbound
 | 
			
		||||
  (package
 | 
			
		||||
    (name "unbound")
 | 
			
		||||
    (version "1.9.3")
 | 
			
		||||
    (version "1.9.4")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://www.unbound.net/downloads/unbound-"
 | 
			
		||||
                           version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "1ykdy62sgzv33ggkmzwx2h0ifm7hyyxyfkb4zckv7gz4f28xsm8v"))))
 | 
			
		||||
        (base32 "1c2bjm13x8bkw0ds1mhn9ivd2gzmfrb0x5y76bkz09a04bxjagix"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (outputs '("out" "python"))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -291,9 +291,9 @@ the required network abstractions for applications.")
 | 
			
		|||
       ("logrus" ,go-github-com-sirupsen-logrus)
 | 
			
		||||
       ("go-netlink" ,go-netlink)
 | 
			
		||||
       ("go-netns" ,go-netns)
 | 
			
		||||
       ("go-golang-org-x-crypto-ssh-terminal"
 | 
			
		||||
        ,go-golang-org-x-crypto-ssh-terminal)
 | 
			
		||||
       ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
       ("go-golang-org-x-crypto"
 | 
			
		||||
        ,go-golang-org-x-crypto)
 | 
			
		||||
       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
    (synopsis "Docker user-space proxy")
 | 
			
		||||
    (description "A proxy running in the user space.  It is used by the
 | 
			
		||||
built-in registry server of Docker.")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,7 +33,7 @@
 | 
			
		|||
(define-public dunst
 | 
			
		||||
  (package
 | 
			
		||||
    (name "dunst")
 | 
			
		||||
    (version "1.3.2")
 | 
			
		||||
    (version "1.4.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +42,7 @@
 | 
			
		|||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "12nj8qw3y3nl8sm24wizy2a7k06v1p88bnz1xr9l39h527xyidma"))))
 | 
			
		||||
                "1zmx30qp2s9ca4q70j9ny4aq97pp442j9vfvsyihfcxgks6gwqqm"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:tests? #f                      ; no check target
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6955,29 +6955,33 @@ for search-based navigation of buffers.")
 | 
			
		|||
as well as features for editing search results.")
 | 
			
		||||
      (license license:gpl3+))))
 | 
			
		||||
 | 
			
		||||
;; There hasn't been a tag or release since 2016, so we take the latest
 | 
			
		||||
;; commit.
 | 
			
		||||
(define-public emacs-helm-projectile
 | 
			
		||||
  (let ((commit "5328b74dddcee8d1913803ca8167868831a07463")
 | 
			
		||||
        (version "0.14.0")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "emacs-helm-projectile")
 | 
			
		||||
    (version "0.14.0")
 | 
			
		||||
      (version (git-version version revision commit))
 | 
			
		||||
      (source
 | 
			
		||||
       (origin
 | 
			
		||||
         (method git-fetch)
 | 
			
		||||
         (uri (git-reference
 | 
			
		||||
               (url "https://github.com/bbatsov/helm-projectile.git")
 | 
			
		||||
             (commit (string-append "v" version))))
 | 
			
		||||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name name version))
 | 
			
		||||
         (sha256
 | 
			
		||||
        (base32 "0lph38p112fridighqcizpsyzjbv7qr3d8prbfj6w6q6gfl6cna4"))))
 | 
			
		||||
          (base32 "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"))))
 | 
			
		||||
      (build-system emacs-build-system)
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
     `(("emacs-dash" ,emacs-dash)
 | 
			
		||||
       ("emacs-helm" ,emacs-helm)
 | 
			
		||||
       `(("emacs-helm" ,emacs-helm)
 | 
			
		||||
         ("emacs-projectile" ,emacs-projectile)))
 | 
			
		||||
      (home-page "https://github.com/bbatsov/helm-projectile")
 | 
			
		||||
      (synopsis "Helm integration for Projectile")
 | 
			
		||||
      (description
 | 
			
		||||
       "This Emacs library provides a Helm interface for Projectile.")
 | 
			
		||||
    (license license:gpl3+)))
 | 
			
		||||
      (license license:gpl3+))))
 | 
			
		||||
 | 
			
		||||
(define-public emacs-taskrunner
 | 
			
		||||
  (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
 | 
			
		||||
| 
						 | 
				
			
			@ -7417,10 +7421,15 @@ news items, openrc and runscripts.")
 | 
			
		|||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-before 'check 'fix-test-helpers
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (substitute* "evil-test-helpers.el"
 | 
			
		||||
               (("\\(undo-tree-mode 1\\)") ""))
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (build-system emacs-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("emacs-undo-tree" ,emacs-undo-tree)
 | 
			
		||||
       ("emacs-goto-chg" ,emacs-goto-chg)))
 | 
			
		||||
    (home-page "https://github.com/emacs-evil/evil")
 | 
			
		||||
    (synopsis "Extensible Vi layer for Emacs")
 | 
			
		||||
    (description
 | 
			
		||||
| 
						 | 
				
			
			@ -10823,14 +10832,14 @@ let users kill or mark things easily.")
 | 
			
		|||
(define-public emacs-csv-mode
 | 
			
		||||
  (package
 | 
			
		||||
    (name "emacs-csv-mode")
 | 
			
		||||
    (version "1.9")
 | 
			
		||||
    (version "1.10")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://elpa.gnu.org/packages/csv-mode-"
 | 
			
		||||
                           version ".el"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0sdnyi9in904k49yy5imapypnmk75lv14k9c1yyjhjpalvvh6br1"))))
 | 
			
		||||
        (base32 "0q7j2cmj7vs6hz8cnf7j7lmlcjmig3jn2p6az345z96agl8a5xsq"))))
 | 
			
		||||
    (build-system emacs-build-system)
 | 
			
		||||
    (home-page "https://elpa.gnu.org/packages/csv-mode.html")
 | 
			
		||||
    (synopsis "Major mode for editing comma/char separated values")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1053,7 +1053,7 @@ emulation community.  It provides highly accurate emulation.")
 | 
			
		|||
(define-public retroarch
 | 
			
		||||
  (package
 | 
			
		||||
    (name "retroarch")
 | 
			
		||||
    (version "1.7.9.2")
 | 
			
		||||
    (version "1.8.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1062,7 +1062,7 @@ emulation community.  It provides highly accurate emulation.")
 | 
			
		|||
             (commit (string-append "v" version))))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "14kay5g9rnm79mly7b4x5jwkidjaki8qqkpf21hnj1r2z1q7bp5b"))))
 | 
			
		||||
        (base32 "1mgszd8gb5nk08kfykap9b1l5rl4qfy39dbba8crjj0zkc4z1jga"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f                      ; no tests
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,7 +87,7 @@
 | 
			
		|||
(define-public bitcoin-core
 | 
			
		||||
  (package
 | 
			
		||||
    (name "bitcoin-core")
 | 
			
		||||
    (version "0.18.0")
 | 
			
		||||
    (version "0.18.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +95,7 @@
 | 
			
		|||
                             version "/bitcoin-" version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0ps0vw9iknz1b1sx74rabd1yhlxvwbd0aimjzn9hlqkvw286hkjy"))))
 | 
			
		||||
               "15mz0gmm058gmq2gdpffbw25jpv7mksyhyfws6i7mqvrapqr6zaw"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("pkg-config" ,pkg-config)
 | 
			
		||||
| 
						 | 
				
			
			@ -103,7 +103,7 @@
 | 
			
		|||
       ("util-linux" ,util-linux)       ; provides the hexdump command for tests
 | 
			
		||||
       ("qttools" ,qttools)))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("bdb" ,bdb-4.8) ; Bitcoin Core requires bdb 4.8 for compatibility
 | 
			
		||||
     `(("bdb" ,bdb-4.8)                 ; 4.8 required for compatibility
 | 
			
		||||
       ("boost" ,boost)
 | 
			
		||||
       ("libevent" ,libevent)
 | 
			
		||||
       ("miniupnpc" ,miniupnpc)
 | 
			
		||||
| 
						 | 
				
			
			@ -134,7 +134,7 @@
 | 
			
		|||
            #t))
 | 
			
		||||
          (add-before 'check 'set-home
 | 
			
		||||
           (lambda _
 | 
			
		||||
            (setenv "HOME" (getenv "TMPDIR"))  ; Tests write to $HOME.
 | 
			
		||||
            (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
 | 
			
		||||
            #t))
 | 
			
		||||
          (add-after 'check 'check-functional
 | 
			
		||||
           (lambda _
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1101,14 +1101,15 @@ messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
 | 
			
		|||
(define-public telepathy-mission-control
 | 
			
		||||
  (package
 | 
			
		||||
    (name "telepathy-mission-control")
 | 
			
		||||
    (version "5.16.4")
 | 
			
		||||
    (source (origin
 | 
			
		||||
    (version "5.16.5")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://telepathy.freedesktop.org/releases/"
 | 
			
		||||
                                  name "/" name "-" version ".tar.gz"))
 | 
			
		||||
                           "telepathy-mission-control/"
 | 
			
		||||
                           "telepathy-mission-control-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1jz6wwgsfxixha6ys2hbzbk5faqnj9kh2m5qdlgx5anqgandsscp"))))
 | 
			
		||||
        (base32 "00xxv38cfdirnfvgyd56m60j0nkmsv5fz6p2ydyzsychicxl6ssc"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@
 | 
			
		|||
;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com>
 | 
			
		||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 | 
			
		||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 | 
			
		||||
;;; Copyright © 2019 Comrade Yuri <yuri@nijino>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -622,14 +623,14 @@ archive on a per-file basis.")
 | 
			
		|||
(define-public love
 | 
			
		||||
  (package
 | 
			
		||||
    (name "love")
 | 
			
		||||
    (version "11.1")
 | 
			
		||||
    (version "11.3")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "https://bitbucket.org/rude/love/downloads/"
 | 
			
		||||
                                 "love-" version "-linux-src.tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "1pkwiszmjs0xrwk0wqbc5cp9108b1y8gwsid0gqk1s0x09q9lpmw"))))
 | 
			
		||||
               "0m8lvlabmcchskx4qpzkdlsm44360f3j0q3vvvj2388cfnvhv7v4"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("pkg-config" ,pkg-config)))
 | 
			
		||||
| 
						 | 
				
			
			@ -971,6 +972,329 @@ to create fully featured games and multimedia programs in the python language.")
 | 
			
		|||
(define-public python2-pygame
 | 
			
		||||
  (package-with-python2 python-pygame))
 | 
			
		||||
 | 
			
		||||
(define-public python2-pygame-sdl2
 | 
			
		||||
  (let ((real-version "2.1.0")
 | 
			
		||||
        (renpy-version "7.3.5"))
 | 
			
		||||
    (package
 | 
			
		||||
      (inherit python2-pygame)
 | 
			
		||||
      (name "python2-pygame-sdl2")
 | 
			
		||||
      (version (string-append real-version "-for-renpy-" renpy-version))
 | 
			
		||||
      (source
 | 
			
		||||
       (origin
 | 
			
		||||
         (method url-fetch)
 | 
			
		||||
         (uri (string-append "https://www.renpy.org/dl/" renpy-version
 | 
			
		||||
                             "/pygame_sdl2-" version ".tar.gz"))
 | 
			
		||||
         (sha256 (base32 "1bmr7j9mlsc4czpgw70ld15ymyp4wxrk9hdsqad40wjwdxvvg2dr"))))
 | 
			
		||||
      (build-system python-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:tests? #f                ; tests require pygame to be installed first
 | 
			
		||||
         #:python ,python-2
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-after 'set-paths 'set-sdl-vars
 | 
			
		||||
             (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
               (setenv "PYGAME_SDL2_CFLAGS"
 | 
			
		||||
                       (string-append "-I"
 | 
			
		||||
                                      (assoc-ref inputs "sdl-union")
 | 
			
		||||
                                      "/include/SDL2 -D_REENTRANT"))
 | 
			
		||||
               (setenv "PYGAME_SDL2_LDFLAGS"
 | 
			
		||||
                       (string-append "-L"
 | 
			
		||||
                                      (assoc-ref inputs "sdl-union")
 | 
			
		||||
                                      "/lib -Wl,-rpath,"
 | 
			
		||||
                                      (assoc-ref inputs "sdl-union")
 | 
			
		||||
                                      "/lib -Wl,--enable-new-dtags -lSDL2"))
 | 
			
		||||
               #t))
 | 
			
		||||
           (add-before 'build 'drop-generated-files
 | 
			
		||||
             (lambda args
 | 
			
		||||
               (delete-file-recursively "gen")
 | 
			
		||||
               (delete-file-recursively "gen3")
 | 
			
		||||
               #t)))))
 | 
			
		||||
      (inputs
 | 
			
		||||
       `(("sdl-union"
 | 
			
		||||
          ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
 | 
			
		||||
      (native-inputs
 | 
			
		||||
       `(("python2-cython" ,python2-cython)))
 | 
			
		||||
      (home-page "http://www.renpy.org/")
 | 
			
		||||
      (synopsis "Reimplementation of the Pygame API using SDL2")
 | 
			
		||||
      (description "Pygame_SDL2 reimplements the Pygame API using SDL2,
 | 
			
		||||
staying close to the original, but also adding some SDL2-specific features.
 | 
			
		||||
While it aims to be used as a drop-in replacement, it appears to be
 | 
			
		||||
developed mainly for Ren'py.")
 | 
			
		||||
      (license (list license:lgpl2.1 license:zlib)))))
 | 
			
		||||
 | 
			
		||||
(define-public python2-renpy
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python2-renpy")
 | 
			
		||||
    (version "7.3.5")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://www.renpy.org/dl/" version
 | 
			
		||||
                           "/renpy-" version "-source.tar.bz2"))
 | 
			
		||||
       (sha256 (base32 "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f ; Ren'py doesn't seem to package tests
 | 
			
		||||
       #:python ,python-2
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-after 'unpack 'fix-commands
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (substitute* "renpy/editor.py"
 | 
			
		||||
               (("xdg-open")
 | 
			
		||||
                (which "xdg-open")))
 | 
			
		||||
             #t))
 | 
			
		||||
         (add-after 'set-paths 'set-build-vars
 | 
			
		||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
             (setenv "RENPY_CYTHON"
 | 
			
		||||
                     (string-append (assoc-ref inputs "python2-cython")
 | 
			
		||||
                                    "/bin/cython"))
 | 
			
		||||
             (setenv "RENPY_DEPS_INSTALL" (string-join (map cdr inputs) ":"))
 | 
			
		||||
             #t))
 | 
			
		||||
         (replace 'build
 | 
			
		||||
           (lambda args
 | 
			
		||||
             (apply
 | 
			
		||||
              (lambda* (build-root #:key inputs outputs #:allow-other-keys)
 | 
			
		||||
                ;; The "module" subdirectory contains a python (really cython)
 | 
			
		||||
                ;; project, which is built using a script, that is thankfully
 | 
			
		||||
                ;; named "setup.py".
 | 
			
		||||
                (chdir "module")
 | 
			
		||||
                (apply (assoc-ref %standard-phases 'build) args)
 | 
			
		||||
                ;; the above causes renpy.__init__ to be compiled but does not
 | 
			
		||||
                ;; compile anything else, hence we do that here
 | 
			
		||||
                (chdir build-root)
 | 
			
		||||
                (delete-file "renpy/__init__.pyc")
 | 
			
		||||
                (invoke "python" "-m" "compileall" "renpy"))
 | 
			
		||||
              (getcwd) args)
 | 
			
		||||
             #t))
 | 
			
		||||
         (replace 'install
 | 
			
		||||
           (lambda args
 | 
			
		||||
             (apply
 | 
			
		||||
              (lambda* (build-root #:key inputs outputs #:allow-other-keys)
 | 
			
		||||
                ;; Again, we have to wrap the module installation.
 | 
			
		||||
                ;; Additionally, we want to install the python code
 | 
			
		||||
                ;; (both source and compiled) in the same directory.
 | 
			
		||||
                (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                       (site (string-append "/lib/python"
 | 
			
		||||
                                            ,(version-major+minor
 | 
			
		||||
                                              (package-version python-2))
 | 
			
		||||
                                            "/site-packages")))
 | 
			
		||||
                  (chdir "module")
 | 
			
		||||
                  (apply (assoc-ref %standard-phases 'install) args)
 | 
			
		||||
                  (chdir build-root)
 | 
			
		||||
                  (copy-recursively "renpy"
 | 
			
		||||
                                    (string-append out site "/renpy"))))
 | 
			
		||||
              (getcwd) args)
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("ffmpeg" ,ffmpeg)
 | 
			
		||||
       ("freetype" ,freetype)
 | 
			
		||||
       ("glew" ,glew)
 | 
			
		||||
       ("libpng" ,libpng)
 | 
			
		||||
       ("python2-pygame" ,python2-pygame-sdl2)
 | 
			
		||||
       ("sdl-union"
 | 
			
		||||
        ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("python2-cython" ,python2-cython)
 | 
			
		||||
       ("xdg-utils" ,xdg-utils)))
 | 
			
		||||
    (home-page "http://www.renpy.org/")
 | 
			
		||||
    (synopsis "Ren'py python module")
 | 
			
		||||
    (description "This package contains the shared libraries and Python
 | 
			
		||||
modules of Ren'py.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public renpy
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit python2-renpy)
 | 
			
		||||
    (name "renpy")
 | 
			
		||||
    (version "7.3.5")
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f ; see python2-renpy
 | 
			
		||||
       #:python ,python-2
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-after 'unpack 'fix-commands
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (substitute* "launcher/game/choose_directory.rpy"
 | 
			
		||||
               (("/usr/bin/python") (which "python2")))
 | 
			
		||||
             (substitute* "launcher/game/front_page.rpy"
 | 
			
		||||
               (("xdg-open")
 | 
			
		||||
                (which "xdg-open")))
 | 
			
		||||
             (substitute* "launcher/game/project.rpy"
 | 
			
		||||
               (("cmd = \\[ executable, \"-EO\", sys.argv\\[0\\] \\]")
 | 
			
		||||
                (string-append "cmd = [ \"" (assoc-ref outputs "out")
 | 
			
		||||
                               "/bin/renpy\" ]"))
 | 
			
		||||
               ;; Projects are still created in the usual style, so we need
 | 
			
		||||
               ;; to adjust the path.
 | 
			
		||||
               (("cmd.append\\(self.path\\)")
 | 
			
		||||
                "cmd.append(self.path + \"/game\")"))
 | 
			
		||||
             #t))
 | 
			
		||||
         (add-after 'unpack 'drop-game-from-paths
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (substitute* (list "launcher/game/gui7.rpy"
 | 
			
		||||
                                "launcher/game/gui7/images.py")
 | 
			
		||||
               ((", \"game\",") ","))
 | 
			
		||||
             #t))
 | 
			
		||||
         (add-before 'build 'start-xserver
 | 
			
		||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
             (let ((xorg-server (assoc-ref inputs "xorg-server")))
 | 
			
		||||
               (setenv "HOME" (getcwd))
 | 
			
		||||
               (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
 | 
			
		||||
               (setenv "DISPLAY" ":1")
 | 
			
		||||
               #t)))
 | 
			
		||||
         (replace 'build
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (invoke "python" "renpy.py" "launcher" "quit")
 | 
			
		||||
             (invoke "python" "renpy.py" "the_question" "quit")
 | 
			
		||||
             (invoke "python" "renpy.py" "tutorial" "quit")
 | 
			
		||||
             #t))
 | 
			
		||||
         (replace 'install
 | 
			
		||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
             ;; Here we install our custom renpy program.
 | 
			
		||||
             ;; After finishing this step, "out" will have the following:
 | 
			
		||||
             ;; |-- bin/renpy
 | 
			
		||||
             ;; `-- share/renpy ; i.e. path_to_renpy_base()
 | 
			
		||||
             ;;     `-- common
 | 
			
		||||
             ;;
 | 
			
		||||
             ;; Note that common is also a de facto unused directory in
 | 
			
		||||
             ;; python2-renpy. On other systems, renpy_base would point to
 | 
			
		||||
             ;; site-packages or even somewhere in /opt.
 | 
			
		||||
             ;; The former approach is not as straightforward as it seems
 | 
			
		||||
             ;; -- it causes renpy to load files twice for some weird reason --
 | 
			
		||||
             ;; and the latter is impossible on Guix. Hence the detour through
 | 
			
		||||
             ;; share/renpy and the custom renpy program.
 | 
			
		||||
             ;;
 | 
			
		||||
             ;; As a convention, other games should be installed as
 | 
			
		||||
             ;; subdirectories of share/renpy in their respective outputs as
 | 
			
		||||
             ;; well. This differs from the traditional layout, which is
 | 
			
		||||
             ;; roughly the following:
 | 
			
		||||
             ;; `-- Super Awesome Game
 | 
			
		||||
             ;;     |-- game      ; <- the folder we actually want
 | 
			
		||||
             ;;     |-- lib       ; compiled renpy module and dependencies
 | 
			
		||||
             ;;     |-- renpy     ; Ren'py python code (source + compiled)
 | 
			
		||||
             ;;     |-- Super Awesome Game.py
 | 
			
		||||
             ;;     `-- Super Awesome Game.sh
 | 
			
		||||
             (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                    (bin/renpy (string-append out "/bin/renpy")))
 | 
			
		||||
               (mkdir-p (string-append out "/bin"))
 | 
			
		||||
               (copy-recursively "renpy/common"
 | 
			
		||||
                                 (string-append out "/share/renpy/common"))
 | 
			
		||||
               (copy-recursively "gui"
 | 
			
		||||
                                 (string-append out "/share/renpy/gui"))
 | 
			
		||||
 | 
			
		||||
               (call-with-output-file bin/renpy
 | 
			
		||||
                 (lambda (port)
 | 
			
		||||
                   (format port "#!~a~%" (which "python2"))
 | 
			
		||||
                   (format port "
 | 
			
		||||
from __future__ import print_function
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import warnings
 | 
			
		||||
 | 
			
		||||
def path_to_common(renpy_base):
 | 
			
		||||
    return renpy_base + \"/common\"
 | 
			
		||||
 | 
			
		||||
def path_to_saves(gamedir, save_directory=None):
 | 
			
		||||
    import renpy  # @UnresolvedImport
 | 
			
		||||
 | 
			
		||||
    if save_directory is None:
 | 
			
		||||
        save_directory = renpy.config.save_directory
 | 
			
		||||
        save_directory = renpy.exports.fsencode(save_directory)
 | 
			
		||||
 | 
			
		||||
    if not save_directory:
 | 
			
		||||
        return gamedir + \"/saves\"
 | 
			
		||||
 | 
			
		||||
    return os.path.expanduser(\"~~/.renpy/\" + save_directory)
 | 
			
		||||
 | 
			
		||||
def path_to_renpy_base():
 | 
			
		||||
    return \"~a\"
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    renpy_base = path_to_renpy_base()
 | 
			
		||||
    try:
 | 
			
		||||
        import renpy.bootstrap
 | 
			
		||||
        import renpy.arguments
 | 
			
		||||
    except ImportError:
 | 
			
		||||
        print(\"\"\"Could not import renpy.bootstrap.
 | 
			
		||||
Please ensure you decompressed Ren'Py correctly, preserving the directory
 | 
			
		||||
structure.\"\"\", file=sys.stderr)
 | 
			
		||||
        raise
 | 
			
		||||
 | 
			
		||||
    args = renpy.arguments.bootstrap()
 | 
			
		||||
    if not args.basedir:
 | 
			
		||||
        print(\"\"\"This Ren'py requires a basedir to launch.
 | 
			
		||||
The basedir is the directory, in which .rpy files live -- usually the 'game'
 | 
			
		||||
subdirectory of a game packaged by Ren'py.
 | 
			
		||||
 | 
			
		||||
If you want the Ren'py launcher, use renpy-launcher instead.\"\"\",
 | 
			
		||||
              file=sys.stderr)
 | 
			
		||||
        sys.exit()
 | 
			
		||||
 | 
			
		||||
    renpy.bootstrap.bootstrap(renpy_base)
 | 
			
		||||
 | 
			
		||||
if __name__ == \"__main__\":
 | 
			
		||||
    main()
 | 
			
		||||
"
 | 
			
		||||
                           (string-append out "/share/renpy"))))
 | 
			
		||||
               (chmod bin/renpy #o755)
 | 
			
		||||
               #t)))
 | 
			
		||||
 | 
			
		||||
         (add-after 'install 'install-games
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (define renpy (assoc-ref outputs "out"))
 | 
			
		||||
             ;; TODO: We should offer a renpy-build-system to make the
 | 
			
		||||
             ;; installation of Ren'py games easier.
 | 
			
		||||
             (define* (install-renpy-game #:key output game name (renpy renpy)
 | 
			
		||||
                                          #:allow-other-keys)
 | 
			
		||||
               (let* ((name (or name (basename game)))
 | 
			
		||||
                      (launcher (string-append output "/bin/renpy-" name))
 | 
			
		||||
                      (share (string-append output "/share/renpy/" name)))
 | 
			
		||||
                 (copy-recursively (string-append game "/game") share)
 | 
			
		||||
                 (mkdir-p (string-append output "/bin"))
 | 
			
		||||
                 (with-output-to-file launcher
 | 
			
		||||
                   (lambda ()
 | 
			
		||||
                     (format #t
 | 
			
		||||
                             "#!~a~%~a ~a \"$@\""
 | 
			
		||||
                             (which "bash")
 | 
			
		||||
                             (string-append renpy "/bin/renpy")
 | 
			
		||||
                             share)))
 | 
			
		||||
                 (chmod launcher #o755)))
 | 
			
		||||
 | 
			
		||||
             (install-renpy-game #:output (assoc-ref outputs "out")
 | 
			
		||||
                                 #:game "launcher")
 | 
			
		||||
 | 
			
		||||
             (install-renpy-game #:output (assoc-ref outputs "the-question")
 | 
			
		||||
                                 #:game "the_question"
 | 
			
		||||
                                 #:name "the-question")
 | 
			
		||||
 | 
			
		||||
             (install-renpy-game #:output (assoc-ref outputs "tutorial")
 | 
			
		||||
                                 #:game "tutorial")
 | 
			
		||||
             #t))
 | 
			
		||||
         (replace 'wrap
 | 
			
		||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
             (wrap-program (string-append (assoc-ref outputs "out")
 | 
			
		||||
                                          "/bin/renpy")
 | 
			
		||||
               `("PYTHONPATH" = (,(getenv "PYTHONPATH"))))
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("python2-tkinter" ,python-2 "tk")
 | 
			
		||||
       ("python2-pygame" ,python2-pygame-sdl2)
 | 
			
		||||
       ("python2-renpy" ,python2-renpy)
 | 
			
		||||
       ("xorg-server" ,xorg-server)))
 | 
			
		||||
    (outputs
 | 
			
		||||
     (list "out" "tutorial" "the-question"))
 | 
			
		||||
    (home-page "http://www.renpy.org/")
 | 
			
		||||
    (synopsis "Visual Novel Engine")
 | 
			
		||||
    (description "Ren'Py is a visual novel engine that helps you use words,
 | 
			
		||||
images, and sounds to tell interactive stories that run on computers and
 | 
			
		||||
mobile devices.  These can be both visual novels and life simulation games.
 | 
			
		||||
The easy to learn script language allows anyone to efficiently write large
 | 
			
		||||
visual novels, while its Python scripting is enough for complex simulation
 | 
			
		||||
games.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public grafx2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "grafx2")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,7 @@
 | 
			
		|||
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 | 
			
		||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 | 
			
		||||
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
 | 
			
		||||
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -2594,24 +2595,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
 | 
			
		|||
(define openttd-engine
 | 
			
		||||
  (package
 | 
			
		||||
    (name "openttd-engine")
 | 
			
		||||
    (version "1.8.0")
 | 
			
		||||
    (version "1.9.3")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin (method url-fetch)
 | 
			
		||||
             (uri (string-append "http://binaries.openttd.org/releases/"
 | 
			
		||||
             (uri (string-append "https://proxy.binaries.openttd.org/openttd-releases/"
 | 
			
		||||
                                 version "/openttd-" version "-source.tar.xz"))
 | 
			
		||||
             (patches
 | 
			
		||||
              (list
 | 
			
		||||
               (origin (method url-fetch)
 | 
			
		||||
                       (uri (string-append
 | 
			
		||||
                             "https://github.com/OpenTTD/OpenTTD/commit/"
 | 
			
		||||
                             "19076c24c1f3baf2a22d1fa832d5688216cf54a3.patch"))
 | 
			
		||||
                       (file-name "openttd-fix-compilation-with-ICU-61.patch")
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
                         "02d1xmb75yv4x6rfnvxk3vvq4l3lvvwr2pfsdzn7lzalic51ziqh")))))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0zq8xdg0k92p3s4j9x76591zaqz7k9ra69q008m209vdfffjvly2"))
 | 
			
		||||
               "0ijq72kgx997ggw40i5f4a3nf7y2g72z37l47i18yjvgbdzy320r"))
 | 
			
		||||
             (modules '((guix build utils)))
 | 
			
		||||
             (snippet
 | 
			
		||||
              ;; The DOS port contains proprietary software.
 | 
			
		||||
| 
						 | 
				
			
			@ -2656,7 +2647,7 @@ Tycoon Deluxe with many enhancements including multiplayer mode,
 | 
			
		|||
internationalization support, conditional orders and the ability to clone,
 | 
			
		||||
autoreplace and autoupdate vehicles.  This package only includes the game
 | 
			
		||||
engine.  When you start it you will be prompted to download a graphics set.")
 | 
			
		||||
    (home-page "http://openttd.org/")
 | 
			
		||||
    (home-page "https://www.openttd.org/")
 | 
			
		||||
    ;; This package is GPLv2, except for a few files located in
 | 
			
		||||
    ;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib
 | 
			
		||||
    ;; licenses.  In addition, this software contains an in-game downloader
 | 
			
		||||
| 
						 | 
				
			
			@ -2667,7 +2658,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
 | 
			
		|||
(define openttd-opengfx
 | 
			
		||||
  (package
 | 
			
		||||
    (name "openttd-opengfx")
 | 
			
		||||
    (version "0.5.2")
 | 
			
		||||
    (version "0.5.5")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -2675,7 +2666,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
 | 
			
		|||
                           version "/opengfx-" version "-source.tar.xz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0iz66q7p1mf00njfjbc4vibh3jaybki7armkl18iz7p6x4chp9zv"))))
 | 
			
		||||
         "009fa1bdin1bk0ynzhzc30hzkmmwzmwkk6j591ax3f6w75l28n49"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:make-flags (list "CC=gcc"
 | 
			
		||||
| 
						 | 
				
			
			@ -2910,7 +2901,7 @@ Transport Tycoon Deluxe.")
 | 
			
		|||
(define-public openrct2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "openrct2")
 | 
			
		||||
    (version "0.2.3")
 | 
			
		||||
    (version "0.2.4")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -2919,7 +2910,7 @@ Transport Tycoon Deluxe.")
 | 
			
		|||
             (commit (string-append "v" version))))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "01mj6jlbl2cn3wpk6sy34ldzdl0qykpn7fncznjykklj2nqzr4ig"))))
 | 
			
		||||
        (base32 "1rlw3w20llg36sj3bk50g661qw766ng8ma3p42sdkj8br9dw800h"))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
(define-public gramps
 | 
			
		||||
  (package
 | 
			
		||||
    (name "gramps")
 | 
			
		||||
    (version "5.0.2")
 | 
			
		||||
    (version "5.1.1")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -48,13 +48,14 @@
 | 
			
		|||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0wg743q8ixy5dmwricgkl4zck4109vq5ppmkyi18qjmna9m0aq7r"))))
 | 
			
		||||
         "1zrvr543zzsiapda75vdd2669fgijmx4cv7nfj5d1jsyz4qnif7b"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("gettext" ,gettext-minimal)
 | 
			
		||||
       ("intltool" ,intltool)))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("font-gnu-freefont-ttf" ,font-gnu-freefont-ttf)
 | 
			
		||||
     `(("cairo" ,cairo)
 | 
			
		||||
       ("font-gnu-freefont-ttf" ,font-gnu-freefont-ttf)
 | 
			
		||||
       ("geocode-glib" ,geocode-glib)
 | 
			
		||||
       ("gexiv2" ,gexiv2)
 | 
			
		||||
       ("ghostscript" ,ghostscript)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -634,14 +634,14 @@ utilities for data translation and processing.")
 | 
			
		|||
(define-public postgis
 | 
			
		||||
  (package
 | 
			
		||||
    (name "postgis")
 | 
			
		||||
    (version "2.4.4")
 | 
			
		||||
    (version "2.4.8")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "https://download.osgeo.org/postgis/source/postgis-"
 | 
			
		||||
                                  version ".tar.gz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1hm8migjb53cymp4qvg1h20yqllmy9f7x0awv5450391i6syyqq6"))))
 | 
			
		||||
                "0nanza15xzfhbpbq49p1xqz96dgbsam5332y9zj6snmz2mq685ll"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -708,6 +708,33 @@ useful for C++.")
 | 
			
		|||
       ("pkg-config" ,pkg-config)
 | 
			
		||||
       ("python-pytest" ,python2-pytest)))))
 | 
			
		||||
 | 
			
		||||
;; Newer version of this core-updates package, for Lollypop.
 | 
			
		||||
(define-public python-pygobject-3.34
 | 
			
		||||
  (package/inherit
 | 
			
		||||
   python-pygobject
 | 
			
		||||
   (version "3.34.0")
 | 
			
		||||
   (source
 | 
			
		||||
    (origin
 | 
			
		||||
      (method url-fetch)
 | 
			
		||||
      (uri (string-append "mirror://gnome/sources/pygobject/"
 | 
			
		||||
                          (version-major+minor version)
 | 
			
		||||
                          "/pygobject-" version ".tar.xz"))
 | 
			
		||||
      (sha256
 | 
			
		||||
       (base32 "06i7ynnbvgpz0gw09zsjbvhgcp5qz4yzdifw27qjwdazg2mckql7"))))
 | 
			
		||||
   (build-system meson-build-system)
 | 
			
		||||
   (arguments
 | 
			
		||||
    `(#:phases
 | 
			
		||||
      (modify-phases %standard-phases
 | 
			
		||||
        (add-after 'unpack 'delete-broken-tests
 | 
			
		||||
          (lambda _
 | 
			
		||||
            (with-directory-excursion "tests"
 | 
			
		||||
              (for-each
 | 
			
		||||
               delete-file
 | 
			
		||||
               ;; FIXME: these tests require Gdk and/or Gtk 4.
 | 
			
		||||
               '("test_atoms.py"
 | 
			
		||||
                 "test_overrides_gtk.py")))
 | 
			
		||||
            #t)))))))
 | 
			
		||||
 | 
			
		||||
(define-public perl-glib
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-glib")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -772,7 +772,7 @@ forgotten when the session ends.")
 | 
			
		|||
(define-public evince
 | 
			
		||||
  (package
 | 
			
		||||
    (name "evince")
 | 
			
		||||
    (version "3.30.2")
 | 
			
		||||
    (version "3.34.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://gnome/sources/" name "/"
 | 
			
		||||
| 
						 | 
				
			
			@ -780,7 +780,7 @@ forgotten when the session ends.")
 | 
			
		|||
                                 name "-" version ".tar.xz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0k7jln6dpg4bpv61niicjzkzyq6fhb3yfld7pc8ck71c8pmvsnx9"))))
 | 
			
		||||
               "1pr6fvbaam1mzxjwyqd53hcxzdjzf73idn10j4j7n54nwg6hgr45"))))
 | 
			
		||||
    (build-system glib-or-gtk-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags '("--disable-nautilus")
 | 
			
		||||
| 
						 | 
				
			
			@ -2062,17 +2062,17 @@ Hints specification (EWMH).")
 | 
			
		|||
(define-public goffice
 | 
			
		||||
  (package
 | 
			
		||||
    (name "goffice")
 | 
			
		||||
    (version "0.10.44")
 | 
			
		||||
    (version "0.10.45")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
			
		||||
              (uri (string-append "mirror://gnome/sources/goffice/"
 | 
			
		||||
                                  (version-major+minor version)  "/"
 | 
			
		||||
                                  name "-" version ".tar.xz"))
 | 
			
		||||
                                  "goffice-" version ".tar.xz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32 "1fd7cm6j0g0mqgpqs4y22b4gd2ll4mcyvg4d0q22d5ndjapl4q3d"))))
 | 
			
		||||
               (base32 "0iqrygv2bh8kiw98kjx6ay6qdd288v91q5m8n7cvs2zcx5ksaavh"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (outputs '("out"
 | 
			
		||||
               "doc"))                            ;4.0 MiB of gtk-doc
 | 
			
		||||
               "doc"))                  ; 4.0 MiB of gtk-doc
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:configure-flags (list (string-append "--with-html-dir="
 | 
			
		||||
                                              (assoc-ref %outputs "doc")
 | 
			
		||||
| 
						 | 
				
			
			@ -7784,16 +7784,15 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
 | 
			
		|||
(define-public lollypop
 | 
			
		||||
  (package
 | 
			
		||||
    (name "lollypop")
 | 
			
		||||
    (version "1.1.3.1")
 | 
			
		||||
    (version "1.2.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
 | 
			
		||||
                           "5a7cd7c72b6d83ae08d0c54c4691f9df/"
 | 
			
		||||
                           name "-" version ".tar.xz"))
 | 
			
		||||
                           "aa4fbd92bf338296c28e54710271ccab/"
 | 
			
		||||
                           "lollypop-" version ".tar.xz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1r5wn0bja9psz6nr1rcaysdkkwz84rbyzpdfw66cxa6wiy52pkjm"))))
 | 
			
		||||
        (base32 "1wz5fna24qr3v7h29ijwhdxza85r9srz9xsqz4f4df3p5f8rfyql"))))
 | 
			
		||||
    (build-system meson-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:imported-modules ((guix build python-build-system)
 | 
			
		||||
| 
						 | 
				
			
			@ -7831,7 +7830,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
 | 
			
		|||
       ("python-gst" ,python-gst)
 | 
			
		||||
       ("python-pil" ,python-pillow)
 | 
			
		||||
       ("python-pycairo" ,python-pycairo)
 | 
			
		||||
       ("python-pygobject" ,python-pygobject)
 | 
			
		||||
       ("python-pygobject" ,python-pygobject-3.34)
 | 
			
		||||
       ("python-pylast" ,python-pylast)
 | 
			
		||||
       ("totem-pl-parser" ,totem-pl-parser)
 | 
			
		||||
       ("webkitgtk" ,webkitgtk)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,14 +147,14 @@ tool to extract metadata from a file and print the results.")
 | 
			
		|||
(define-public libmicrohttpd
 | 
			
		||||
  (package
 | 
			
		||||
   (name "libmicrohttpd")
 | 
			
		||||
   (version "0.9.66")
 | 
			
		||||
   (version "0.9.68")
 | 
			
		||||
   (source (origin
 | 
			
		||||
            (method url-fetch)
 | 
			
		||||
            (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
 | 
			
		||||
                                version ".tar.gz"))
 | 
			
		||||
            (sha256
 | 
			
		||||
             (base32
 | 
			
		||||
              "06xblz77bnn29y7sl43avxbcrjbw486x3416plpr3x3l2pdx8rjf"))))
 | 
			
		||||
              "0q8bc4hrxn6llml7w2vam6n833x8injs39wgdkhwkawr50m6wwf5"))))
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
   (inputs
 | 
			
		||||
    `(("curl" ,curl)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -550,7 +550,8 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
                      #:system system
 | 
			
		||||
                      #:guile-for-build guile)))
 | 
			
		||||
 | 
			
		||||
(define %icecat-version "68.2.0-guix0-preview1")
 | 
			
		||||
(define %icecat-version "68.2.0-guix0-preview2")
 | 
			
		||||
(define %icecat-build-id "20191028000000") ;must be of the form YYYYMMDDhhmmss
 | 
			
		||||
 | 
			
		||||
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
 | 
			
		||||
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
 | 
			
		||||
| 
						 | 
				
			
			@ -576,7 +577,7 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
 | 
			
		||||
         (upstream-icecat-base-version "68.1.0") ; maybe older than base-version
 | 
			
		||||
         ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
 | 
			
		||||
         (gnuzilla-commit "395cc0798600cde44a30abaa3f5d08ce8b68f782")
 | 
			
		||||
         (gnuzilla-commit "aa7ab9483a64c43e77736917dd83841ccc437300")
 | 
			
		||||
         (gnuzilla-source
 | 
			
		||||
          (origin
 | 
			
		||||
            (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -586,8 +587,10 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
            (file-name (git-file-name "gnuzilla" upstream-icecat-base-version))
 | 
			
		||||
            (sha256
 | 
			
		||||
             (base32
 | 
			
		||||
              "1ll3j2kpsfp1f9dxy67fay1cidsng02l8a3a23wdjqkxgrg1cf4g"))))
 | 
			
		||||
              "03jygq1zna621y0ba6370cff4v2g9l57g3015y3vxbahnmzn9msa"))))
 | 
			
		||||
 | 
			
		||||
         (gnuzilla-fixes-patch
 | 
			
		||||
          (local-file (search-patch "icecat-gnuzilla-fixes.patch")))
 | 
			
		||||
         (makeicecat-patch
 | 
			
		||||
          (local-file (search-patch "icecat-makeicecat.patch"))))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -633,6 +636,8 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
 | 
			
		||||
                (with-directory-excursion "/tmp/gnuzilla"
 | 
			
		||||
                  (make-file-writable "makeicecat")
 | 
			
		||||
                  (invoke "patch" "--force" "--no-backup-if-mismatch"
 | 
			
		||||
                          "-p1" "--input" #+gnuzilla-fixes-patch)
 | 
			
		||||
                  (invoke "patch" "--force" "--no-backup-if-mismatch"
 | 
			
		||||
                          "-p1" "--input" #+makeicecat-patch)
 | 
			
		||||
                  (patch-shebang "makeicecat")
 | 
			
		||||
| 
						 | 
				
			
			@ -772,10 +777,6 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
       ;;  ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch"))
 | 
			
		||||
       ;; ("icecat-use-system-media-libs.patch"
 | 
			
		||||
       ;;  ,(search-patch "icecat-use-system-media-libs.patch"))
 | 
			
		||||
       ("icecat-default-search-ddg.patch"
 | 
			
		||||
        ,(search-patch "icecat-default-search-ddg.patch"))
 | 
			
		||||
       ("icecat-disable-sync.patch"
 | 
			
		||||
        ,(search-patch "icecat-disable-sync.patch"))
 | 
			
		||||
 | 
			
		||||
       ("patch" ,(canonical-package patch))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1008,6 +1009,7 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
               (setenv "CONFIG_SHELL" bash)
 | 
			
		||||
               (setenv "AUTOCONF" (which "autoconf")) ; must be autoconf-2.13
 | 
			
		||||
               (setenv "CC" "gcc")  ; apparently needed when Stylo is enabled
 | 
			
		||||
               (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp
 | 
			
		||||
               (mkdir "../build")
 | 
			
		||||
               (chdir "../build")
 | 
			
		||||
               (format #t "build directory: ~s~%" (getcwd))
 | 
			
		||||
| 
						 | 
				
			
			@ -1071,8 +1073,7 @@ from forcing GEXP-PROMISE."
 | 
			
		|||
                    (pulseaudio-lib (string-append pulseaudio "/lib")))
 | 
			
		||||
               (wrap-program (car (find-files lib "^icecat$"))
 | 
			
		||||
                 `("XDG_DATA_DIRS" prefix (,gtk-share))
 | 
			
		||||
                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib))
 | 
			
		||||
                 `("MOZ_LEGACY_PROFILES" = ("1")))
 | 
			
		||||
                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib)))
 | 
			
		||||
               #t))))))
 | 
			
		||||
    (home-page "https://www.gnu.org/software/gnuzilla/")
 | 
			
		||||
    (synopsis "Entirely free browser derived from Mozilla Firefox")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -216,192 +216,11 @@ in the style of communicating sequential processes (@dfn{CSP}).")
 | 
			
		|||
    (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-1.11
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-1.4)
 | 
			
		||||
    (name "go")
 | 
			
		||||
    (version "1.11.12")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://storage.googleapis.com/golang/"
 | 
			
		||||
                           name version ".src.tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
 | 
			
		||||
    (arguments
 | 
			
		||||
     (substitute-keyword-arguments (package-arguments go-1.4)
 | 
			
		||||
       ((#:phases phases)
 | 
			
		||||
        `(modify-phases ,phases
 | 
			
		||||
           (replace 'prebuild
 | 
			
		||||
             (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
               (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
 | 
			
		||||
                      (ld (string-append (assoc-ref inputs "libc") "/lib"))
 | 
			
		||||
                      (loader (car (find-files ld "^ld-linux.+")))
 | 
			
		||||
                      (net-base (assoc-ref inputs "net-base"))
 | 
			
		||||
                      (tzdata-path
 | 
			
		||||
                       (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
 | 
			
		||||
                      (output (assoc-ref outputs "out")))
 | 
			
		||||
 | 
			
		||||
                 (for-each delete-file
 | 
			
		||||
                           ;; Removing net/ tests, which fail when attempting to access
 | 
			
		||||
                           ;; network resources not present in the build container.
 | 
			
		||||
                           '("net/listen_test.go"
 | 
			
		||||
                             "net/parse_test.go"
 | 
			
		||||
                             "net/cgo_unix_test.go"
 | 
			
		||||
                             ;; A side effect of these test scripts is testing
 | 
			
		||||
                             ;; cgo. Attempts at using cgo flags and
 | 
			
		||||
                             ;; directives with these scripts as specified
 | 
			
		||||
                             ;; here (https://golang.org/cmd/cgo/) have not
 | 
			
		||||
                             ;; worked. The tests continue to state that they
 | 
			
		||||
                             ;; can not find crt1.o despite being present.
 | 
			
		||||
                             "cmd/go/testdata/script/list_compiled_imports.txt"
 | 
			
		||||
                             "cmd/go/testdata/script/mod_case_cgo.txt"
 | 
			
		||||
                             ;; https://github.com/golang/go/issues/24884
 | 
			
		||||
                             "os/user/user_test.go"))
 | 
			
		||||
 | 
			
		||||
                 (substitute* "os/os_test.go"
 | 
			
		||||
                   (("/usr/bin") (getcwd))
 | 
			
		||||
                   (("/bin/pwd") (which "pwd"))
 | 
			
		||||
                   (("/bin/sh") (which "sh")))
 | 
			
		||||
 | 
			
		||||
                 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
 | 
			
		||||
                   (("/usr/bin") "/tmp"))
 | 
			
		||||
 | 
			
		||||
                 ;; Add libgcc to runpath
 | 
			
		||||
                 (substitute* "cmd/link/internal/ld/lib.go"
 | 
			
		||||
                   (("!rpath.set") "true"))
 | 
			
		||||
                 (substitute* "cmd/go/internal/work/gccgo.go"
 | 
			
		||||
                   (("cgoldflags := \\[\\]string\\{\\}")
 | 
			
		||||
                    (string-append "cgoldflags := []string{"
 | 
			
		||||
                                   "\"-rpath=" gcclib "\""
 | 
			
		||||
                                   "}"))
 | 
			
		||||
                   (("\"-lgcc_s\", ")
 | 
			
		||||
                    (string-append
 | 
			
		||||
                     "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
 | 
			
		||||
                 (substitute* "cmd/go/internal/work/gc.go"
 | 
			
		||||
                   (("ldflags = setextld\\(ldflags, compiler\\)")
 | 
			
		||||
                    (string-append
 | 
			
		||||
                     "ldflags = setextld(ldflags, compiler)\n"
 | 
			
		||||
                     "ldflags = append(ldflags, \"-r\")\n"
 | 
			
		||||
                     "ldflags = append(ldflags, \"" gcclib "\")\n")))
 | 
			
		||||
 | 
			
		||||
                 ;; Disable failing tests: these tests attempt to access
 | 
			
		||||
                 ;; commands or network resources which are neither available
 | 
			
		||||
                 ;; nor necessary for the build to succeed.
 | 
			
		||||
                 (for-each
 | 
			
		||||
                  (match-lambda
 | 
			
		||||
                    ((file regex)
 | 
			
		||||
                     (substitute* file
 | 
			
		||||
                       ((regex all before test_name)
 | 
			
		||||
                        (string-append before "Disabled" test_name)))))
 | 
			
		||||
                  '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
 | 
			
		||||
                    ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
 | 
			
		||||
                    ("os/os_test.go" "(.+)(TestHostname.+)")
 | 
			
		||||
                    ("time/format_test.go" "(.+)(TestParseInSydney.+)")
 | 
			
		||||
                    ("time/format_test.go" "(.+)(TestParseInLocation.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
 | 
			
		||||
                    ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
 | 
			
		||||
                    ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
 | 
			
		||||
                    ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
 | 
			
		||||
                    ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
 | 
			
		||||
                    ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
 | 
			
		||||
                    ("syscall/exec_linux_test.go"
 | 
			
		||||
                     "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
 | 
			
		||||
 | 
			
		||||
                 ;; fix shebang for testar script
 | 
			
		||||
                 ;; note the target script is generated at build time.
 | 
			
		||||
                 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
 | 
			
		||||
                   (("#!/usr/bin/env") (string-append "#!" (which "env"))))
 | 
			
		||||
 | 
			
		||||
                 (substitute* "net/lookup_unix.go"
 | 
			
		||||
                   (("/etc/protocols") (string-append net-base "/etc/protocols")))
 | 
			
		||||
                 (substitute* "net/port_unix.go"
 | 
			
		||||
                   (("/etc/services") (string-append net-base "/etc/services")))
 | 
			
		||||
                 (substitute* "time/zoneinfo_unix.go"
 | 
			
		||||
                   (("/usr/share/zoneinfo/") tzdata-path))
 | 
			
		||||
                 (substitute* (find-files "cmd" "\\.go")
 | 
			
		||||
                   (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
 | 
			
		||||
                 #t)))
 | 
			
		||||
           (add-before 'build 'set-bootstrap-variables
 | 
			
		||||
             (lambda* (#:key outputs inputs #:allow-other-keys)
 | 
			
		||||
               ;; Tell the build system where to find the bootstrap Go.
 | 
			
		||||
               (let ((go  (assoc-ref inputs "go")))
 | 
			
		||||
                 (setenv "GOROOT_BOOTSTRAP" go)
 | 
			
		||||
                 (setenv "GOGC" "400")
 | 
			
		||||
                 #t)))
 | 
			
		||||
           (replace 'build
 | 
			
		||||
             (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
               ;; FIXME: Some of the .a files are not bit-reproducible.
 | 
			
		||||
               (let* ((output (assoc-ref outputs "out")))
 | 
			
		||||
                 (setenv "CC" (which "gcc"))
 | 
			
		||||
                 (setenv "GOOS" "linux")
 | 
			
		||||
                 (setenv "GOROOT" (dirname (getcwd)))
 | 
			
		||||
                 (setenv "GOROOT_FINAL" output)
 | 
			
		||||
                 (setenv "CGO_ENABLED" "1")
 | 
			
		||||
                 (invoke "sh" "all.bash"))))
 | 
			
		||||
 | 
			
		||||
           (replace 'install
 | 
			
		||||
             ;; TODO: Most of this could be factorized with Go 1.4.
 | 
			
		||||
             (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
               (let* ((output (assoc-ref outputs "out"))
 | 
			
		||||
                      (doc_out (assoc-ref outputs "doc"))
 | 
			
		||||
                      (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
 | 
			
		||||
                      (src (string-append
 | 
			
		||||
                            (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
 | 
			
		||||
                 (delete-file-recursively "../pkg/bootstrap")
 | 
			
		||||
                 ;; Prevent installation of the build cache, which contains
 | 
			
		||||
                 ;; store references to most of the tools used to build Go and
 | 
			
		||||
                 ;; would unnecessarily increase the size of Go's closure if it
 | 
			
		||||
                 ;; was installed.
 | 
			
		||||
                 (delete-file-recursively "../pkg/obj")
 | 
			
		||||
 | 
			
		||||
                 (mkdir-p src)
 | 
			
		||||
                 (copy-recursively "../test" (string-append src "/test"))
 | 
			
		||||
                 (delete-file-recursively "../test")
 | 
			
		||||
                 (mkdir-p docs)
 | 
			
		||||
                 (copy-recursively "../api" (string-append docs "/api"))
 | 
			
		||||
                 (delete-file-recursively "../api")
 | 
			
		||||
                 (copy-recursively "../doc" (string-append docs "/doc"))
 | 
			
		||||
                 (delete-file-recursively "../doc")
 | 
			
		||||
 | 
			
		||||
                 (for-each
 | 
			
		||||
                  (lambda (file)
 | 
			
		||||
                    (let* ((filein (string-append "../" file))
 | 
			
		||||
                           (fileout (string-append docs "/" file)))
 | 
			
		||||
                      (copy-file filein fileout)
 | 
			
		||||
                      (delete-file filein)))
 | 
			
		||||
                  ;; Note the slightly different file names compared to 1.4.
 | 
			
		||||
                  '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
 | 
			
		||||
                    "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
 | 
			
		||||
 | 
			
		||||
                 (copy-recursively "../" output)
 | 
			
		||||
                 #t)))))))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("go" ,go-1.4)
 | 
			
		||||
       ,@(match (%current-system)
 | 
			
		||||
           ((or "armhf-linux" "aarch64-linux")
 | 
			
		||||
            `(("gold" ,binutils-gold)))
 | 
			
		||||
           (_ `()))
 | 
			
		||||
       ,@(package-native-inputs go-1.4)))
 | 
			
		||||
    (supported-systems %supported-systems)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(define-public go-1.12
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-1.4)
 | 
			
		||||
    (name "go")
 | 
			
		||||
    (version "1.12.7")
 | 
			
		||||
    (version "1.12.10")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -409,7 +228,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
 | 
			
		|||
                           name version ".src.tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
 | 
			
		||||
         "0m1rvawvpdl7kd0asw10m50xbxlhykix6dng9p4x6ih6x3y4hvpm"))))
 | 
			
		||||
    (arguments
 | 
			
		||||
     (substitute-keyword-arguments (package-arguments go-1.4)
 | 
			
		||||
       ((#:phases phases)
 | 
			
		||||
| 
						 | 
				
			
			@ -841,182 +660,18 @@ Go programming language.")
 | 
			
		|||
                      ".*\\.gz$"))
 | 
			
		||||
               #t)))))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
 | 
			
		||||
       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
      (synopsis "Supplementary cryptographic libraries in Go")
 | 
			
		||||
      (description "This package provides supplementary cryptographic libraries
 | 
			
		||||
for the Go language.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/crypto/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-bcrypt
 | 
			
		||||
  (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-crypto-bcrypt")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/crypto")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-crypto-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/crypto/bcrypt"
 | 
			
		||||
         #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
      (synopsis "Bcrypt in Go")
 | 
			
		||||
      (description "This package provides a Go implementation of the bcrypt
 | 
			
		||||
password hashing function.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/crypto/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-blowfish
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-blowfish")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/blowfish"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "Blowfish in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the Blowfish
 | 
			
		||||
symmetric-key block cipher.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-pbkdf2
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-pbkdf2")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/pbkdf2"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "PBKDF2 in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the PBKDF2 key
 | 
			
		||||
derivation function.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-tea
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-tea")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/tea"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "Tiny Encryption Algorithm (TEA) in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the Tiny Encryption
 | 
			
		||||
Algorithm (TEA) block cipher.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-salsa20
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-salsa20")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/salsa20"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "Salsa20 in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the Salsa20
 | 
			
		||||
stream cipher.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-cast5
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-cast5")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/cast5"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "Cast5 in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the Cast5
 | 
			
		||||
symmetric-key block cipher.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-twofish
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-twofish")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/twofish"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "Twofish in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the Twofish
 | 
			
		||||
symmetric-key block cipher.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-xtea
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-xtea")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/xtea"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the eXtended
 | 
			
		||||
Tiny Encryption Algorithm (XTEA) block cipher.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-ed25519
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-ed25519")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/ed25519"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (map (lambda (file)
 | 
			
		||||
                    (make-file-writable file))
 | 
			
		||||
                  (find-files
 | 
			
		||||
                    (string-append (assoc-ref outputs "out")
 | 
			
		||||
                                   "/src/golang.org/x/crypto/ed25519/testdata")
 | 
			
		||||
                    ".*\\.gz$"))
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (synopsis "ED25519 in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the ED25519
 | 
			
		||||
signature algorithm.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-ripemd160
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-ripemd160")
 | 
			
		||||
    (arguments
 | 
			
		||||
     (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
       ((#:import-path _)
 | 
			
		||||
        "golang.org/x/crypto/ripemd160")))
 | 
			
		||||
    (synopsis "RIPEMD-160 in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the RIPEMD-160
 | 
			
		||||
hash algorithm.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-blake2s
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-blake2s")
 | 
			
		||||
    (arguments
 | 
			
		||||
     (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
       ((#:import-path _)
 | 
			
		||||
        "golang.org/x/crypto/blake2s")))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
 | 
			
		||||
    (synopsis "BLAKE2s in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the BLAKE2s
 | 
			
		||||
hash algorithm.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-sha3
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-sha3")
 | 
			
		||||
    (arguments
 | 
			
		||||
     (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
       ((#:import-path _)
 | 
			
		||||
        "golang.org/x/crypto/sha3")))
 | 
			
		||||
    (synopsis "SHA-3 in Go")
 | 
			
		||||
    (description "This package provides a Go implementation of the SHA-3
 | 
			
		||||
fixed-output-length hash functions and the SHAKE variable-output-length hash
 | 
			
		||||
functions defined by FIPS-202.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-ipv4
 | 
			
		||||
(define-public go-golang-org-x-net
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-ipv4")
 | 
			
		||||
      (name "go-golang-org-x-net")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1029,208 +684,22 @@ functions defined by FIPS-202.")))
 | 
			
		|||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/ipv4"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
      (synopsis "Go IPv4 support")
 | 
			
		||||
      (description "This package provides @code{ipv4}, which implements IP-level
 | 
			
		||||
socket options for the Internet Protocol version 4.")
 | 
			
		||||
       `(#:import-path "golang.org/x/net"
 | 
			
		||||
         ; Source-only package
 | 
			
		||||
         #:tests? #f
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (delete 'build))))
 | 
			
		||||
      (synopsis "Go supplemental networking libraries")
 | 
			
		||||
      (description "This package provides supplemental Go networking libraries.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-bpf
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-bpf")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/bpf"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
      (synopsis "Berkeley Packet Filters (BPF) in Go")
 | 
			
		||||
      (description "This package provides a Go implementation of the Berkeley
 | 
			
		||||
Packet Filter (BPF) virtual machine.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-context
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-context")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/context"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (synopsis "Golang Context type")
 | 
			
		||||
      (description "This package provides @code{context}, which defines the
 | 
			
		||||
Context type, which carries deadlines, cancellation signals, and other
 | 
			
		||||
request-scoped values across API boundaries and between processes.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-internal-socks
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-internal-socks")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/internal/socks"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (synopsis "")
 | 
			
		||||
      (description "")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-internal-socket
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-internal-socket")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/internal/socket"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
      (synopsis "")
 | 
			
		||||
      (description "")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-internal-iana
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-internal-iana")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/internal/iana"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (synopsis "Go support for assigned numbers (IANA)")
 | 
			
		||||
      (description "This package provides @code{iana}, which provides protocol
 | 
			
		||||
number resources managed by the Internet Assigned Numbers Authority (IANA).")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-ipv6
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-ipv6")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/ipv6"
 | 
			
		||||
         #:unpack-path "golang.org/x/net"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
      (synopsis "Go IPv6 support")
 | 
			
		||||
      (description "This package provides @code{ipv6}, which implements
 | 
			
		||||
IP-level socket options for the Internet Protocol version 6.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-net-proxy
 | 
			
		||||
  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-net-proxy")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/net")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go.googlesource.com-net-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/net/proxy"
 | 
			
		||||
         #:unpack-path "golang.org/x/net/"))
 | 
			
		||||
      (synopsis "Go support for network proxies")
 | 
			
		||||
      (description "This package provides @code{proxy}, which provides support
 | 
			
		||||
for a variety of protocols to proxy network data.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/net")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-sys-unix
 | 
			
		||||
(define-public go-golang-org-x-sys
 | 
			
		||||
  (let ((commit "04f50cda93cbb67f2afa353c52f342100e80e625")
 | 
			
		||||
        (revision "4"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-sys-unix")
 | 
			
		||||
      (name "go-golang-org-x-sys")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1243,28 +712,21 @@ for a variety of protocols to proxy network data.")
 | 
			
		|||
                  "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/sys/unix"
 | 
			
		||||
         #:unpack-path "golang.org/x/sys"))
 | 
			
		||||
       `(#:import-path "golang.org/x/sys"
 | 
			
		||||
         ;; Source-only package
 | 
			
		||||
         #:tests? #f
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (delete 'build))))
 | 
			
		||||
      (synopsis "Go support for low-level system interaction")
 | 
			
		||||
      (description "This package provides @code{unix}, which offers Go support
 | 
			
		||||
for low-level interaction with the operating system.")
 | 
			
		||||
      (description "This package provides supplemental libraries offering Go
 | 
			
		||||
support for low-level interaction with the operating system.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/sys")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-sys-cpu
 | 
			
		||||
(define-public go-golang-org-x-text
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-sys-unix)
 | 
			
		||||
    (name "go-golang-org-x-sys-cpu")
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:import-path "golang.org/x/sys/cpu"
 | 
			
		||||
       #:unpack-path "golang.org/x/sys"))
 | 
			
		||||
    (synopsis "CPU feature detection")
 | 
			
		||||
    (description "Thi spackage provides @code{cpu}, which offers tools for CPU
 | 
			
		||||
feature detection in Go.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-text-encoding
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-golang-org-x-text-encoding")
 | 
			
		||||
    (name "go-golang-org-x-text")
 | 
			
		||||
    (version "0.3.2")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1278,45 +740,23 @@ feature detection in Go.")))
 | 
			
		|||
                "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/text/encoding"
 | 
			
		||||
       #:unpack-path "golang.org/x/text"))
 | 
			
		||||
    (synopsis "Interface for character encodings for conversion to and from
 | 
			
		||||
UTF-8")
 | 
			
		||||
    (description "This package defines an interface for character encodings.
 | 
			
		||||
Specific implementations of encoding for CJK text as well as simple character
 | 
			
		||||
encodings are provided in subpackages.")
 | 
			
		||||
     `(#:import-path "golang.org/x/text"
 | 
			
		||||
       ; Source-only package
 | 
			
		||||
       #:tests? #f
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (delete 'build))))
 | 
			
		||||
    (synopsis "Supplemental Go text processing libraries")
 | 
			
		||||
    (description "This package provides supplemental Go libraries for text
 | 
			
		||||
    processing.")
 | 
			
		||||
    (home-page "https://go.googlesource.com/text")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-text-transform
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-text-encoding)
 | 
			
		||||
    (name "go-golang-org-x-text-transform")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/text/transform"
 | 
			
		||||
       #:unpack-path "golang.org/x/text"))
 | 
			
		||||
    (synopsis "Go text transformation")
 | 
			
		||||
    (description "This package provides @code{transform}, which provides
 | 
			
		||||
reader and writer wrappers that transform the bytes passing through.  Example
 | 
			
		||||
transformations provided by other packages include normalization and conversion
 | 
			
		||||
between character sets.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-text-unicode-norm
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-text-encoding)
 | 
			
		||||
    (name "go-golang-org-x-text-unicode-norm")
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/text/unicode/norm"
 | 
			
		||||
       #:unpack-path "golang.org/x/text"))
 | 
			
		||||
    (synopsis "Unicode normalization in Go")
 | 
			
		||||
    (description "This package provides @code{norm}, which contains types and
 | 
			
		||||
functions for normalizing Unicode strings.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-time-rate
 | 
			
		||||
(define-public go-golang-org-x-time
 | 
			
		||||
  (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang-org-x-time-rate")
 | 
			
		||||
      (name "go-golang-org-x-time")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1329,29 +769,20 @@ functions for normalizing Unicode strings.")))
 | 
			
		|||
                  "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "golang.org/x/time/rate"
 | 
			
		||||
         #:unpack-path "golang.org/x/time"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
 | 
			
		||||
      (synopsis "Rate limiting in Go")
 | 
			
		||||
      (description "This package provides @{rate}, which implements rate
 | 
			
		||||
limiting in Go.")
 | 
			
		||||
       `(#:import-path "golang.org/x/time"
 | 
			
		||||
         ; Source-only package
 | 
			
		||||
         #:tests? #f
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (delete 'build))))
 | 
			
		||||
;      (propagated-inputs
 | 
			
		||||
;       `(("go-golang-org-x-net" ,go-golang-org-x-net)))
 | 
			
		||||
      (synopsis "Supplemental Go time libraries")
 | 
			
		||||
      (description "This package provides supplemental Go libraries related to
 | 
			
		||||
time.")
 | 
			
		||||
      (home-page "https://godoc.org/golang.org/x/time/rate")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang-org-x-crypto-ssh-terminal
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit go-golang-org-x-crypto-bcrypt)
 | 
			
		||||
    (name "go-golang-org-x-crypto-ssh-terminal")
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "golang.org/x/crypto/ssh/terminal"
 | 
			
		||||
       #:unpack-path "golang.org/x/crypto"))
 | 
			
		||||
    (synopsis "Terminal functions for Go")
 | 
			
		||||
    (description "This package provides @{terminal}, which implements support
 | 
			
		||||
functions for dealing with terminals, as commonly found on UNIX systems.")))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-burntsushi-toml
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-github-com-burntsushi-toml")
 | 
			
		||||
| 
						 | 
				
			
			@ -1740,12 +1171,11 @@ GNU extensions} to the POSIX recommendations for command-line options.")
 | 
			
		|||
         "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("go-golang-org-x-crypto-ssh-terminal"
 | 
			
		||||
        ,go-golang-org-x-crypto-ssh-terminal)
 | 
			
		||||
     `(("go-golang-org-x-crypto"
 | 
			
		||||
        ,go-golang-org-x-crypto)
 | 
			
		||||
       ("go-github-com-stretchr-testify"
 | 
			
		||||
        ,go-github-com-stretchr-testify)
 | 
			
		||||
       ("go-golang-org-x-sys-unix"
 | 
			
		||||
        ,go-golang-org-x-sys-unix)))
 | 
			
		||||
       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:tests? #f                    ;FIXME missing dependencies
 | 
			
		||||
       #:import-path "github.com/sirupsen/logrus"))
 | 
			
		||||
| 
						 | 
				
			
			@ -1834,12 +1264,11 @@ SysVinit, and more.")
 | 
			
		|||
           "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (native-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix"
 | 
			
		||||
          ,go-golang-org-x-sys-unix)
 | 
			
		||||
       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
 | 
			
		||||
         ("go-github-com-sirupsen-logrus"
 | 
			
		||||
          ,go-github-com-sirupsen-logrus)
 | 
			
		||||
         ("go-golang-org-x-crypto-ssh-terminal"
 | 
			
		||||
          ,go-golang-org-x-crypto-ssh-terminal)))
 | 
			
		||||
         ("go-golang-org-x-crypto"
 | 
			
		||||
          ,go-golang-org-x-crypto)))
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/docker/distribution"
 | 
			
		||||
         #:phases
 | 
			
		||||
| 
						 | 
				
			
			@ -2011,7 +1440,7 @@ values.")
 | 
			
		|||
         "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:import-path "github.com/mattn/go-isatty"))
 | 
			
		||||
    (home-page "https://github.com/mattn/go-isatty")
 | 
			
		||||
| 
						 | 
				
			
			@ -2350,7 +1779,7 @@ and lookup requests.  Browse requests are not supported yet.")
 | 
			
		|||
         ("taglib" ,taglib)))
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "github.com/wtolson/go-taglib"
 | 
			
		||||
         ;; Tests don't pass "vet" on go-1.11.  See
 | 
			
		||||
         ;; Tests don't pass "vet" on Go since 1.11.  See
 | 
			
		||||
         ;; https://github.com/wtolson/go-taglib/issues/12.
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
| 
						 | 
				
			
			@ -2379,8 +1808,12 @@ and lookup requests.  Browse requests are not supported yet.")
 | 
			
		|||
                "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "github.com/gogo/protobuf/proto"
 | 
			
		||||
       #:unpack-path "github.com/gogo/protobuf"))
 | 
			
		||||
     `(#:import-path "github.com/gogo/protobuf"
 | 
			
		||||
       ; Source-only package
 | 
			
		||||
       #:tests? #f
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (delete 'build))))
 | 
			
		||||
    (synopsis "Protocol Buffers for Go with Gadgets")
 | 
			
		||||
    (description "Gogoprotobuf is a fork of golang/protobuf with extra code
 | 
			
		||||
generation features.  This code generation is used to achieve:
 | 
			
		||||
| 
						 | 
				
			
			@ -2395,86 +1828,6 @@ generation features.  This code generation is used to achieve:
 | 
			
		|||
    (home-page "https://github.com/gogo/protobuf")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-gogo-protobuf-protoc-gen-gogo
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
 | 
			
		||||
    (version "1.2.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
                    (url "https://github.com/gogo/protobuf")
 | 
			
		||||
                    (commit (string-append "v" version))))
 | 
			
		||||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
 | 
			
		||||
       #:unpack-path "github.com/gogo/protobuf"
 | 
			
		||||
       #:tests? #f)) ; Requires the unpackaged 'protoc-min-version'
 | 
			
		||||
    (synopsis "Protocol Buffers for Go with Gadgets")
 | 
			
		||||
    (description "Gogoprotobuf is a fork of golang/protobuf with extra code
 | 
			
		||||
generation features.  This code generation is used to achieve:
 | 
			
		||||
@itemize
 | 
			
		||||
@item fast marshalling and unmarshalling
 | 
			
		||||
@item more canonical Go structures
 | 
			
		||||
@item goprotobuf compatibility
 | 
			
		||||
@item less typing by optionally generating extra helper code
 | 
			
		||||
@item peace of mind by optionally generating test and benchmark code
 | 
			
		||||
@item other serialization formats
 | 
			
		||||
@end itemize")
 | 
			
		||||
    (home-page "https://github.com/gogo/protobuf")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-gogo-protobuf-gogoproto
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-github-com-gogo-protobuf-gogoproto")
 | 
			
		||||
    (version "1.2.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method git-fetch)
 | 
			
		||||
        (uri (git-reference
 | 
			
		||||
               (url "https://github.com/gogo/protobuf.git")
 | 
			
		||||
               (commit (string-append "v" version))))
 | 
			
		||||
        (file-name (git-file-name name version))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:unpack-path "github.com/gogo/protobuf"
 | 
			
		||||
       #:import-path "github.com/gogo/protobuf/gogoproto"))
 | 
			
		||||
    (home-page "https://github.com/gogo/protobuf")
 | 
			
		||||
    (synopsis "Extensions to protocol buffers")
 | 
			
		||||
    (description "This package provides extensions to the Gogo protocol buffers
 | 
			
		||||
implementation.")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-gogo-protobuf-proto
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-github-com-gogo-protobuf-proto")
 | 
			
		||||
    (version "1.2.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method git-fetch)
 | 
			
		||||
        (uri (git-reference
 | 
			
		||||
               (url "https://github.com/gogo/protobuf.git")
 | 
			
		||||
               (commit (string-append "v" version))))
 | 
			
		||||
        (file-name (git-file-name name version))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:unpack-path "github.com/gogo/protobuf"
 | 
			
		||||
       #:import-path "github.com/gogo/protobuf/proto"))
 | 
			
		||||
    (home-page "https://github.com/gogo/protobuf")
 | 
			
		||||
    (synopsis "Protocol buffers component")
 | 
			
		||||
    (description "This is a component of the Gogo protocol buffers
 | 
			
		||||
implementation.")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-libp2p-go-flow-metrics
 | 
			
		||||
  (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
 | 
			
		||||
        (revision "0"))
 | 
			
		||||
| 
						 | 
				
			
			@ -2663,9 +2016,9 @@ Architecture Processors\" by J. Guilford et al.")
 | 
			
		|||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
 | 
			
		||||
      (native-inputs
 | 
			
		||||
       `(("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
 | 
			
		||||
       `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
 | 
			
		||||
         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
 | 
			
		||||
         ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
 | 
			
		||||
         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
 | 
			
		||||
      (home-page
 | 
			
		||||
       "https://github.com/libp2p/go-libp2p-crypto")
 | 
			
		||||
| 
						 | 
				
			
			@ -2811,8 +2164,7 @@ required by Go's standard Hash interface.")
 | 
			
		|||
         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
 | 
			
		||||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
 | 
			
		||||
         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
         ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
 | 
			
		||||
         ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
 | 
			
		||||
         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
      (home-page "https://github.com/multiformats/go-multihash")
 | 
			
		||||
      (synopsis "Multihash implementation in Go")
 | 
			
		||||
      (description "Multihash implementation in Go.")
 | 
			
		||||
| 
						 | 
				
			
			@ -2839,7 +2191,7 @@ required by Go's standard Hash interface.")
 | 
			
		|||
       '(#:import-path "github.com/libp2p/go-libp2p-peer"))
 | 
			
		||||
      (native-inputs
 | 
			
		||||
       `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
 | 
			
		||||
         ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
 | 
			
		||||
         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
 | 
			
		||||
         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
 | 
			
		||||
         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
 | 
			
		||||
| 
						 | 
				
			
			@ -2847,9 +2199,7 @@ required by Go's standard Hash interface.")
 | 
			
		|||
         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
 | 
			
		||||
         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
 | 
			
		||||
         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
         ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
 | 
			
		||||
         ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
 | 
			
		||||
         ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
 | 
			
		||||
         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
      (home-page "https://github.com/libp2p/go-libp2p-peer")
 | 
			
		||||
      (synopsis "PKI based identities for use in go-libp2p")
 | 
			
		||||
      (description "PKI based identities for use in @command{go-libp2p}.")
 | 
			
		||||
| 
						 | 
				
			
			@ -2907,14 +2257,12 @@ required by Go's standard Hash interface.")
 | 
			
		|||
         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
 | 
			
		||||
         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
 | 
			
		||||
         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
 | 
			
		||||
         ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
 | 
			
		||||
         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
 | 
			
		||||
         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
 | 
			
		||||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
 | 
			
		||||
         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
         ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
 | 
			
		||||
         ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
 | 
			
		||||
         ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
 | 
			
		||||
         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
      (home-page "https://github.com/libp2p/go-libp2p-metrics")
 | 
			
		||||
      (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
 | 
			
		||||
      (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
 | 
			
		||||
| 
						 | 
				
			
			@ -2987,8 +2335,7 @@ cross-compilation.")
 | 
			
		|||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
 | 
			
		||||
         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
 | 
			
		||||
         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
         ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
 | 
			
		||||
         ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
 | 
			
		||||
         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
      (home-page "https://github.com/multiformats/go-multiaddr")
 | 
			
		||||
      (synopsis "Composable and future-proof network addresses")
 | 
			
		||||
      (description "Multiaddr is a standard way to represent addresses that
 | 
			
		||||
| 
						 | 
				
			
			@ -3032,8 +2379,7 @@ does the following:
 | 
			
		|||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
 | 
			
		||||
         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
 | 
			
		||||
         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
         ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
 | 
			
		||||
         ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
 | 
			
		||||
         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
      (home-page "https://github.com/multiformats/go-multiaddr-net")
 | 
			
		||||
      (synopsis "Multiaddress net tools")
 | 
			
		||||
      (description "This package provides Multiaddr specific versions of
 | 
			
		||||
| 
						 | 
				
			
			@ -3388,8 +2734,7 @@ colorspaces.")
 | 
			
		|||
    (arguments
 | 
			
		||||
     '(#:import-path "github.com/gdamore/encoding"))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
 | 
			
		||||
       ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
 | 
			
		||||
     `(("go-golang-org-x-text" ,go-golang-org-x-text)))
 | 
			
		||||
    (home-page "https://github.com/gdamore/encoding")
 | 
			
		||||
    (synopsis "Provide encodings missing from Go")
 | 
			
		||||
    (description "This package provides useful encodings not included in the
 | 
			
		||||
| 
						 | 
				
			
			@ -3430,8 +2775,7 @@ non-UTF-friendly sources.")
 | 
			
		|||
      (inputs
 | 
			
		||||
       `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
 | 
			
		||||
         ("go-golang-org-colorful" ,go-golang-org-colorful)
 | 
			
		||||
         ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
 | 
			
		||||
         ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
 | 
			
		||||
         ("go-golang-org-x-text" ,go-golang-org-x-text)
 | 
			
		||||
         ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
 | 
			
		||||
      (home-page "https://github.com/gdamore/tcell")
 | 
			
		||||
      (synopsis "Provide a cell-based view for text terminals")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -171,7 +171,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
 | 
			
		|||
(define-public gpxsee
 | 
			
		||||
  (package
 | 
			
		||||
    (name "gpxsee")
 | 
			
		||||
    (version "7.12")
 | 
			
		||||
    (version "7.16")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +180,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
 | 
			
		|||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0c3axs3mm6xzabwbvy9vgq1sryjpi4h91nwzy9iyv9zjxz7phgzc"))))
 | 
			
		||||
                "1mkfhb2c9qafjpva600nyn6yik49l4q1k6id1xvrci37wsn6ijav"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:phases
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1085,7 +1085,7 @@ toolkit.")
 | 
			
		|||
(define-public gtkmm
 | 
			
		||||
  (package
 | 
			
		||||
    (name "gtkmm")
 | 
			
		||||
    (version "3.24.1")
 | 
			
		||||
    (version "3.24.2")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://gnome/sources/" name "/"
 | 
			
		||||
| 
						 | 
				
			
			@ -1093,7 +1093,7 @@ toolkit.")
 | 
			
		|||
                                 name "-" version ".tar.xz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "1zfj89spr8ianib5y10wcw63ybdmyjy58a15vqs0m8jq4knl5znx"))))
 | 
			
		||||
               "1hxdnhavjyvbcpxhd5z17l9fj4182028s66lc0s16qqqrldhjwbd"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs `(("pkg-config" ,pkg-config)
 | 
			
		||||
                     ("glib" ,glib "bin")        ;for 'glib-compile-resources'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,6 +41,7 @@
 | 
			
		|||
(define-module (gnu packages guile-xyz)
 | 
			
		||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
			
		||||
  #:use-module (gnu packages)
 | 
			
		||||
  #:use-module (gnu packages algebra)
 | 
			
		||||
  #:use-module (gnu packages aspell)
 | 
			
		||||
  #:use-module (gnu packages autotools)
 | 
			
		||||
  #:use-module (gnu packages base)
 | 
			
		||||
| 
						 | 
				
			
			@ -2608,3 +2609,47 @@ bindings to Vigra C (a C wrapper to most of the Vigra functionality) and is
 | 
			
		|||
enriched with pure Guile Scheme algorithms, all accessible through a nice,
 | 
			
		||||
clean and easy to use high level API.")
 | 
			
		||||
    (license license:gpl3+)))
 | 
			
		||||
 | 
			
		||||
(define-public guile-ffi-fftw
 | 
			
		||||
  (let ((commit "95d7ffb55860f3163c5283ecec1ef43bc3d174dd")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "guile-ffi-fftw")
 | 
			
		||||
      (version (git-version "0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://github.com/lloda/guile-ffi-fftw.git")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (git-file-name "guile-ffi-fftw" version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0v9vk9cr4x9gn36lihi9gfkxyiqak0i598v5li6qw8bg95004p49"))))
 | 
			
		||||
      (build-system guile-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:source-directory "mod"
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-after 'unpack 'prepare-build
 | 
			
		||||
             (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
               (substitute* "mod/ffi/fftw.scm"
 | 
			
		||||
                 (("\\(getenv \"GUILE_FFI_FFTW_LIBFFTW3_PATH\"\\)")
 | 
			
		||||
                  (format #f "\"~a/lib\"" (assoc-ref inputs "fftw"))))
 | 
			
		||||
               #t))
 | 
			
		||||
           (add-after 'build 'check
 | 
			
		||||
             (lambda _
 | 
			
		||||
               (invoke "guile" "-L" "mod"
 | 
			
		||||
                       "-s" "test/test-ffi-fftw.scm"))))))
 | 
			
		||||
      (inputs
 | 
			
		||||
       `(("fftw" ,fftw)
 | 
			
		||||
         ("guile" ,guile-2.2)))
 | 
			
		||||
      (home-page "https://github.com/lloda/guile-ffi-fftw/")
 | 
			
		||||
      (synopsis "Access FFTW through Guile's FFI")
 | 
			
		||||
      (description "This is a minimal set of Guile FFI bindings for the FFTW
 | 
			
		||||
library's ‘guru interface’.  It provides two functions: @code{fftw-dft! rank
 | 
			
		||||
sign in out} and @code{fftw-dft rank sign in}.  These bindings being minimal,
 | 
			
		||||
there is no support for computing & reusing plans, or split r/i transforms, or
 | 
			
		||||
anything other than straight complex DFTs.")
 | 
			
		||||
      ;; TODO: This might actually be LGPLv3+
 | 
			
		||||
      ;; See https://github.com/lloda/guile-ffi-fftw/issues/1
 | 
			
		||||
      (license license:gpl3+))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,8 @@
 | 
			
		|||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 | 
			
		||||
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 | 
			
		||||
;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
 | 
			
		||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 | 
			
		||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -256,7 +258,7 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
 | 
			
		|||
    (build-system haskell-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags
 | 
			
		||||
       '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV")
 | 
			
		||||
       '("--flags=-Android -Assistant -Pairing -Webapp -WebDAV")
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-before 'configure 'patch-shell-for-tests
 | 
			
		||||
| 
						 | 
				
			
			@ -317,6 +319,7 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
 | 
			
		|||
     `(("curl" ,curl)
 | 
			
		||||
       ("ghc-aeson" ,ghc-aeson)
 | 
			
		||||
       ("ghc-async" ,ghc-async)
 | 
			
		||||
       ("ghc-aws" ,ghc-aws)
 | 
			
		||||
       ("ghc-bloomfilter" ,ghc-bloomfilter)
 | 
			
		||||
       ("ghc-byteable" ,ghc-byteable)
 | 
			
		||||
       ("ghc-case-insensitive" ,ghc-case-insensitive)
 | 
			
		||||
| 
						 | 
				
			
			@ -496,6 +499,64 @@ with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
 | 
			
		|||
and mIRC chat codes.")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public kmonad
 | 
			
		||||
  (package
 | 
			
		||||
    (name "kmonad")
 | 
			
		||||
    (version "0.2.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
       (uri (git-reference
 | 
			
		||||
             (url "https://github.com/david-janssen/kmonad.git")
 | 
			
		||||
             (commit "06d7b8c709efa695be35df9bde91275cbb2ba099")))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "1rjr4h5yq63x3kad6yn4p8v26389sd9dgr5n2w73s1chafapzwwd"))))
 | 
			
		||||
    (build-system haskell-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (delete 'haddock)             ; Haddock fails to generate docs
 | 
			
		||||
         (add-after 'install 'install-udev-rules
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                    (rules (string-append out "/lib/udev/rules.d")))
 | 
			
		||||
               (mkdir-p rules)
 | 
			
		||||
               (call-with-output-file (string-append rules "/70-kmonad.rules")
 | 
			
		||||
                 (lambda (port)
 | 
			
		||||
                   (display
 | 
			
		||||
                    (string-append
 | 
			
		||||
                     "KERNEL==\"uinput\", MODE=\"0660\", "
 | 
			
		||||
                     "GROUP=\"input\", OPTIONS+=\"static_node=uinput\"\n")
 | 
			
		||||
                    port)))
 | 
			
		||||
               #t)))
 | 
			
		||||
         (add-after 'install-udev-rules 'install-documentation
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                    (doc (string-append out "/share/doc/kmonad-" ,version)))
 | 
			
		||||
               (install-file "README.md" doc)
 | 
			
		||||
               (copy-recursively "doc" doc)
 | 
			
		||||
               (copy-recursively "example" (string-append doc "/example"))
 | 
			
		||||
               #t))))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("ghc-cereal" ,ghc-cereal)
 | 
			
		||||
       ("ghc-exceptions" ,ghc-exceptions)
 | 
			
		||||
       ("ghc-hashable" ,ghc-hashable)
 | 
			
		||||
       ("ghc-lens" ,ghc-lens)
 | 
			
		||||
       ("ghc-megaparsec" ,ghc-megaparsec-7)
 | 
			
		||||
       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
 | 
			
		||||
       ("ghc-unagi-chan" ,ghc-unagi-chan)
 | 
			
		||||
       ("ghc-unliftio" ,ghc-unliftio)
 | 
			
		||||
       ("ghc-unordered-containers" ,ghc-unordered-containers)))
 | 
			
		||||
    (home-page "https://github.com/david-janssen/kmonad")
 | 
			
		||||
    (synopsis "Advanced keyboard manager")
 | 
			
		||||
    (description "KMonad is a keyboard remapping utility that supports
 | 
			
		||||
advanced functionality, such as custom keymap layers and modifiers, macros,
 | 
			
		||||
and conditional mappings that send a different keycode when tapped or held.
 | 
			
		||||
By operating at a lower level than most similar tools, it supports X11,
 | 
			
		||||
Wayland, and Linux console environments alike.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public raincat
 | 
			
		||||
  (package
 | 
			
		||||
    (name "raincat")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@
 | 
			
		|||
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
 | 
			
		||||
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
 | 
			
		||||
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 | 
			
		||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -381,6 +382,28 @@ over threads in Haskell, in which @code{Async a} is a concurrent thread that
 | 
			
		|||
will eventually deliver a value of type @code{a}.")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public ghc-atomic-primops
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ghc-atomic-primops")
 | 
			
		||||
    (version "0.8.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://hackage.haskell.org/package/atomic-primops"
 | 
			
		||||
                           "/atomic-primops-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0cyr2x6xqz6s233znrz9rnrfj56m9bmnawwnka0lsqqy1hp8gy37"))))
 | 
			
		||||
    (build-system haskell-build-system)
 | 
			
		||||
    (inputs `(("ghc-primitive" ,ghc-primitive)))
 | 
			
		||||
    (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
 | 
			
		||||
    (synopsis "Safe approach to CAS and other atomic ops")
 | 
			
		||||
    (description
 | 
			
		||||
     "GHC 7.4 introduced a new @code{casMutVar} PrimOp which is difficult to
 | 
			
		||||
use safely, because pointer equality is a highly unstable property in Haskell.
 | 
			
		||||
This library provides a safer method based on the concept of @code{Ticket}s.")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public ghc-atomic-write
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ghc-atomic-write")
 | 
			
		||||
| 
						 | 
				
			
			@ -10605,6 +10628,37 @@ processes.  It wraps around the @code{process} library, and intends to improve
 | 
			
		|||
upon it.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public ghc-unagi-chan
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ghc-unagi-chan")
 | 
			
		||||
    (version "0.4.1.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://hackage.haskell.org/package/unagi-chan"
 | 
			
		||||
                           "/unagi-chan-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1lnl5n4jnjmm4chp461glcwkrrw63rjz3fvprwxcy3lkpbkrqvgn"))))
 | 
			
		||||
    (build-system haskell-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("ghc-atomic-primops" ,ghc-atomic-primops)
 | 
			
		||||
       ("ghc-primitive" ,ghc-primitive)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f ; FIXME: Tests expect primitive 0.7
 | 
			
		||||
       #:cabal-revision
 | 
			
		||||
       ("1"
 | 
			
		||||
        "09pqi867wskwgc5lpn197f895mbn1174ydgllvcppcsmrz2b6yr6")))
 | 
			
		||||
    (home-page "http://hackage.haskell.org/package/unagi-chan")
 | 
			
		||||
    (synopsis "Fast concurrent queues with a Chan-like API, and more")
 | 
			
		||||
    (description
 | 
			
		||||
     "This library provides implementations of concurrent FIFO queues (for
 | 
			
		||||
both general boxed and primitive unboxed values) that are fast, perform well
 | 
			
		||||
under contention, and offer a Chan-like interface.  The library may be of
 | 
			
		||||
limited usefulness outside of x86 architectures where the fetch-and-add
 | 
			
		||||
instruction is not available.")
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public ghc-unbounded-delays
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ghc-unbounded-delays")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -86,14 +86,12 @@ that are shared between @command{go-ipfs/commands} and its rewrite
 | 
			
		|||
         ("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
 | 
			
		||||
         ("go-github-com-multiformats-go-multiaddr-net" ,go-github-com-multiformats-go-multiaddr-net)
 | 
			
		||||
         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
 | 
			
		||||
         ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
 | 
			
		||||
         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
 | 
			
		||||
         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
 | 
			
		||||
         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
 | 
			
		||||
         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
 | 
			
		||||
         ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
 | 
			
		||||
         ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
 | 
			
		||||
         ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
 | 
			
		||||
         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
 | 
			
		||||
         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
 | 
			
		||||
         ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
 | 
			
		||||
| 
						 | 
				
			
			@ -140,15 +138,13 @@ that are shared between @command{go-ipfs/commands} and its rewrite
 | 
			
		|||
       ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
       ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
 | 
			
		||||
       ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
 | 
			
		||||
       ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
 | 
			
		||||
       ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
       ("go-github-com-sabhiram-go-gitignore" ,go-github-com-sabhiram-go-gitignore)
 | 
			
		||||
       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
 | 
			
		||||
       ("go-github-com-whyrusleeping-json-filter" ,go-github-com-whyrusleeping-json-filter)
 | 
			
		||||
       ("go-github-com-whyrusleeping-progmeter" ,go-github-com-whyrusleeping-progmeter)
 | 
			
		||||
       ("go-github-com-whyrusleeping-stump" ,go-github-com-whyrusleeping-stump)
 | 
			
		||||
       ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
 | 
			
		||||
       ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
 | 
			
		||||
       ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
 | 
			
		||||
       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
    (home-page "https://github.com/whyrusleeping/gx")
 | 
			
		||||
    (synopsis "Package management tool using IPFS")
 | 
			
		||||
    (description "@command{gx} is a packaging tool built around the
 | 
			
		||||
| 
						 | 
				
			
			@ -202,14 +198,12 @@ powerful and simple.")
 | 
			
		|||
       ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
 | 
			
		||||
       ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
 | 
			
		||||
       ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
 | 
			
		||||
       ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
 | 
			
		||||
       ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
       ("go-github-com-sabhiram-go-gitignore" ,go-github-com-sabhiram-go-gitignore)
 | 
			
		||||
       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
 | 
			
		||||
       ("go-github-com-whyrusleeping-progmeter" ,go-github-com-whyrusleeping-progmeter)
 | 
			
		||||
       ("go-github-com-whyrusleeping-stump" ,go-github-com-whyrusleeping-stump)
 | 
			
		||||
       ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
 | 
			
		||||
       ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
 | 
			
		||||
       ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
 | 
			
		||||
       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
    (home-page "https://github.com/whyrusleeping/gx-go")
 | 
			
		||||
    (synopsis "Golang subtool for the @command{gx} package manager")
 | 
			
		||||
    (description "A subtool for the @command{gx} package manager for packages
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,14 +29,14 @@
 | 
			
		|||
(define-public libedit
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libedit")
 | 
			
		||||
    (version "20190324-3.1")
 | 
			
		||||
    (version "20191025-3.1")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
      (method url-fetch)
 | 
			
		||||
      (uri (string-append "http://thrysoee.dk/editline"
 | 
			
		||||
      (uri (string-append "https://thrysoee.dk/editline"
 | 
			
		||||
                          "/libedit-" version ".tar.gz"))
 | 
			
		||||
      (sha256
 | 
			
		||||
       (base32 "1bhvp8xkkgrg89k4ci1k8vjl3nhb6szd4ghy9lp4jrfgq58hz3xc"))))
 | 
			
		||||
       (base32 "0fdznw6fklis39xqk30ihw8dl8kdw9fzq1z42jmbyy6lc1k07zvd"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("ncurses" ,ncurses)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -929,7 +929,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 | 
			
		|||
(define-public libreoffice
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libreoffice")
 | 
			
		||||
    (version "6.1.5.2")
 | 
			
		||||
    (version "6.2.8.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -939,36 +939,9 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 | 
			
		|||
         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1wh8qhqkmb89nmfcb0w6iwpdzxwqr7c5kzxgpk4gy60xin6gwjgb"))
 | 
			
		||||
       (patches
 | 
			
		||||
        (append (list (origin
 | 
			
		||||
                        ;; Support newer versions of Orcus and MDDS.  These patches
 | 
			
		||||
                        ;; are taken from upstream, but we use the patches from Arch
 | 
			
		||||
                        ;; because they are adapted for the release tarball.
 | 
			
		||||
                        ;; Note: remove the related substitutions below when these
 | 
			
		||||
                        ;; are no longer needed.
 | 
			
		||||
                        (method url-fetch)
 | 
			
		||||
                        (uri (string-append "https://git.archlinux.org/svntogit"
 | 
			
		||||
                                            "/packages.git/plain/trunk/"
 | 
			
		||||
                                            "0001-Update-orcus-to-0.14.0.patch?&id="
 | 
			
		||||
                                            "4002fa927f2a143bd2ec008a0c400b2ce9f2c8a7"))
 | 
			
		||||
                        (file-name "libreoffice-orcus.patch")
 | 
			
		||||
                        (sha256
 | 
			
		||||
                         (base32
 | 
			
		||||
                          "0v1knblrmfzkb4g9pm5mdnrmjib59bznvca1ygbwlap2ln1h4mk0")))
 | 
			
		||||
                      (origin
 | 
			
		||||
                        (method url-fetch)
 | 
			
		||||
                        (uri (string-append "https://git.archlinux.org/svntogit"
 | 
			
		||||
                                            "/packages.git/plain/trunk/"
 | 
			
		||||
                                            "0001-Update-mdds-to-1.4.1.patch?&id="
 | 
			
		||||
                                            "4002fa927f2a143bd2ec008a0c400b2ce9f2c8a7"))
 | 
			
		||||
                        (file-name "libreoffice-mdds.patch")
 | 
			
		||||
                        (sha256
 | 
			
		||||
                         (base32
 | 
			
		||||
                          "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f"))))
 | 
			
		||||
                (search-patches "libreoffice-boost.patch"
 | 
			
		||||
                                "libreoffice-icu.patch"
 | 
			
		||||
                                "libreoffice-glm.patch")))
 | 
			
		||||
         "1npxyj0hklls3jnaxx9kj3r6bgydgrbz6nacy05n0zhq8i6zb5ir"))
 | 
			
		||||
       (patches (search-patches "libreoffice-icu.patch"
 | 
			
		||||
                                "libreoffice-glm.patch"))
 | 
			
		||||
       (modules '((guix build utils)))
 | 
			
		||||
       (snippet
 | 
			
		||||
        '(begin
 | 
			
		||||
| 
						 | 
				
			
			@ -992,6 +965,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 | 
			
		|||
       ("cups" ,cups)
 | 
			
		||||
       ("dbus-glib" ,dbus-glib)
 | 
			
		||||
       ("fontconfig" ,fontconfig)
 | 
			
		||||
       ("fontforge" ,fontforge)
 | 
			
		||||
       ("gconf" ,gconf)
 | 
			
		||||
       ("glew" ,glew)
 | 
			
		||||
       ("glm" ,glm)
 | 
			
		||||
| 
						 | 
				
			
			@ -1031,6 +1005,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 | 
			
		|||
       ("libxt" ,libxt)
 | 
			
		||||
       ("libzmf" ,libzmf)
 | 
			
		||||
       ("lpsolve" ,lpsolve)
 | 
			
		||||
       ("mariadb" ,mariadb)
 | 
			
		||||
       ("mdds" ,mdds)
 | 
			
		||||
       ("mythes" ,mythes)
 | 
			
		||||
       ("neon" ,neon)
 | 
			
		||||
| 
						 | 
				
			
			@ -1066,13 +1041,6 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 | 
			
		|||
                         "solenv/gbuild/platform/unxgcc.mk")
 | 
			
		||||
                 (("/bin/sh") (which "sh")))
 | 
			
		||||
 | 
			
		||||
               ;; XXX: Adjust the checks for MDDS and liborcus to avoid having
 | 
			
		||||
               ;; to re-bootstrap the whole thing.  Remove this with the related
 | 
			
		||||
               ;; patches above.
 | 
			
		||||
               (substitute* "configure"
 | 
			
		||||
                 (("mdds-1.2 >= 1.2.3") "mdds-1.4 >= 1.4.1")
 | 
			
		||||
                 (("liborcus-0.13 >= 0.13.3") "liborcus-0.14 >= 0.14.0"))
 | 
			
		||||
 | 
			
		||||
               ;; GPGME++ headers are installed in a gpgme++ subdirectory, but
 | 
			
		||||
               ;; files in "xmlsecurity/source/gpg/" and elsewhere expect to
 | 
			
		||||
               ;; find them on the include path without a prefix.
 | 
			
		||||
| 
						 | 
				
			
			@ -1161,16 +1129,15 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 | 
			
		|||
          ;; With java, the build fails since sac.jar is missing.
 | 
			
		||||
          "--without-java"
 | 
			
		||||
          ;; FIXME: Enable once the corresponding inputs are packaged.
 | 
			
		||||
          "--without-system-npapi-headers"
 | 
			
		||||
          "--disable-coinmp"
 | 
			
		||||
          "--disable-firebird-sdbc" ; embedded firebird
 | 
			
		||||
          "--disable-gltf"
 | 
			
		||||
          ;; XXX: PDFium support requires fetching an external tarball and
 | 
			
		||||
          ;; patching the build scripts to work with GCC5.  Try enabling this
 | 
			
		||||
          ;; when our default compiler is >=GCC 6.
 | 
			
		||||
          "--disable-pdfium"
 | 
			
		||||
          "--disable-gtk" ; disable use of GTK+ 2
 | 
			
		||||
          "--without-doxygen")))
 | 
			
		||||
          "--without-doxygen"
 | 
			
		||||
          "--enable-build-opensymbol")))
 | 
			
		||||
    (home-page "https://www.libreoffice.org/")
 | 
			
		||||
    (synopsis "Office suite")
 | 
			
		||||
    (description "LibreOffice is a comprehensive office suite.  It contains
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -351,42 +351,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 | 
			
		|||
                        "linux-" version ".tar.xz"))
 | 
			
		||||
    (sha256 hash)))
 | 
			
		||||
 | 
			
		||||
(define-public linux-libre-5.3-version "5.3.7")
 | 
			
		||||
(define-public linux-libre-5.3-version "5.3.8")
 | 
			
		||||
(define-public linux-libre-5.3-pristine-source
 | 
			
		||||
  (let ((version linux-libre-5.3-version)
 | 
			
		||||
        (hash (base32 "00j8sdrmmppqf38vl50a4zas5gy7yv37n43b61f8472k45773jf6")))
 | 
			
		||||
        (hash (base32 "0jb6yya9yx4z52p5m32dqj0kgc6aaz9df8mvq0hzy40bqb3czwvq")))
 | 
			
		||||
   (make-linux-libre-source version
 | 
			
		||||
                            (%upstream-linux-source version hash)
 | 
			
		||||
                            deblob-scripts-5.3)))
 | 
			
		||||
 | 
			
		||||
(define-public linux-libre-4.19-version "4.19.80")
 | 
			
		||||
(define-public linux-libre-4.19-version "4.19.81")
 | 
			
		||||
(define-public linux-libre-4.19-pristine-source
 | 
			
		||||
  (let ((version linux-libre-4.19-version)
 | 
			
		||||
        (hash (base32 "1v776s6q5wxn8ci86dwa8s8y41b94g09fnpgvzysg2h89rvbmac0")))
 | 
			
		||||
        (hash (base32 "17g2wiaa7l7mxi72k79drxij2zqk3nsj8wi17bl4nfvb1ypc2gi9")))
 | 
			
		||||
    (make-linux-libre-source version
 | 
			
		||||
                             (%upstream-linux-source version hash)
 | 
			
		||||
                             deblob-scripts-4.19)))
 | 
			
		||||
 | 
			
		||||
(define-public linux-libre-4.14-version "4.14.150")
 | 
			
		||||
(define-public linux-libre-4.14-version "4.14.151")
 | 
			
		||||
(define-public linux-libre-4.14-pristine-source
 | 
			
		||||
  (let ((version linux-libre-4.14-version)
 | 
			
		||||
        (hash (base32 "1c2pxfvv31af0mzcqnbfjk8pc0wrhg4yhspl8a3ab2w5dfwa9ib5")))
 | 
			
		||||
        (hash (base32 "1bizb1wwni5r4m5i0mrsqbc5qw73lwrfrdadm09vbfz9ir19qlgz")))
 | 
			
		||||
    (make-linux-libre-source version
 | 
			
		||||
                             (%upstream-linux-source version hash)
 | 
			
		||||
                             deblob-scripts-4.14)))
 | 
			
		||||
 | 
			
		||||
(define-public linux-libre-4.9-version "4.9.197")
 | 
			
		||||
(define-public linux-libre-4.9-version "4.9.198")
 | 
			
		||||
(define-public linux-libre-4.9-pristine-source
 | 
			
		||||
  (let ((version linux-libre-4.9-version)
 | 
			
		||||
        (hash (base32 "032as6g4xvqjarqhvx7mr14yhn6idak4g0ps1skmsl4dfav6hdam")))
 | 
			
		||||
        (hash (base32 "1b05jra6q695s1d4rzdr39i6m8xsi5xjrdn73sgwzvx0dgxfnwlm")))
 | 
			
		||||
    (make-linux-libre-source version
 | 
			
		||||
                             (%upstream-linux-source version hash)
 | 
			
		||||
                             deblob-scripts-4.9)))
 | 
			
		||||
 | 
			
		||||
(define-public linux-libre-4.4-version "4.4.197")
 | 
			
		||||
(define-public linux-libre-4.4-version "4.4.198")
 | 
			
		||||
(define-public linux-libre-4.4-pristine-source
 | 
			
		||||
  (let ((version linux-libre-4.4-version)
 | 
			
		||||
        (hash (base32 "0ypfl1q1bdbk81hk0bm8a0grqzz4z5rp7z7asa3191ji3r8q9x4w")))
 | 
			
		||||
        (hash (base32 "04pkryy1lc75c88vq5wcjjcxs43i7bb8hhplbfi6s204ipc0iy7c")))
 | 
			
		||||
    (make-linux-libre-source version
 | 
			
		||||
                             (%upstream-linux-source version hash)
 | 
			
		||||
                             deblob-scripts-4.4)))
 | 
			
		||||
| 
						 | 
				
			
			@ -2076,14 +2076,14 @@ devices.  It replaces @code{iwconfig}, which is deprecated.")
 | 
			
		|||
(define-public powertop
 | 
			
		||||
  (package
 | 
			
		||||
    (name "powertop")
 | 
			
		||||
    (version "2.10")
 | 
			
		||||
    (version "2.11")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://01.org/sites/default/files/downloads/"
 | 
			
		||||
                           "powertop-v" version ".tar.gz"))
 | 
			
		||||
                           "powertop-v" version "-1-g7ef7f79.tar_0.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0xaazqccyd42v2q532dxx40nqhb9sfsa6cyx8641rl57mfg4bdyk"))))
 | 
			
		||||
        (base32 "0kynypj5cydfbma0ssblq1k4m1arixc1s2vf0ybv8y2gg09wjs5f"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:phases
 | 
			
		||||
| 
						 | 
				
			
			@ -3901,7 +3901,7 @@ and copy/paste text in the console and in xterm.")
 | 
			
		|||
(define-public btrfs-progs
 | 
			
		||||
  (package
 | 
			
		||||
    (name "btrfs-progs")
 | 
			
		||||
    (version "5.3")
 | 
			
		||||
    (version "5.3.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://kernel.org/linux/kernel/"
 | 
			
		||||
| 
						 | 
				
			
			@ -3909,7 +3909,7 @@ and copy/paste text in the console and in xterm.")
 | 
			
		|||
                                  "btrfs-progs-v" version ".tar.xz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "13ivb1b627qkiiqxh2y7zawynarkmgxrnwwpqhx6cci621yyqqqp"))))
 | 
			
		||||
                "0f6s1iwiqbncrvxp74k50s88x6zqf85sjxg04kyni82l1vk1m8xz"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (outputs '("out"
 | 
			
		||||
               "static"))      ; static versions of the binaries in "out"
 | 
			
		||||
| 
						 | 
				
			
			@ -5855,7 +5855,7 @@ management tools in userspace.")
 | 
			
		|||
    (arguments
 | 
			
		||||
     `(#:import-path "github.com/vishvananda/netlink"))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)
 | 
			
		||||
     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
 | 
			
		||||
       ("go-netns" ,go-netns)))
 | 
			
		||||
    (home-page "https://github.com/vishvananda/netlink")
 | 
			
		||||
    (synopsis "Simple netlink library for Go")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -320,21 +320,30 @@ to run without any changes.")
 | 
			
		|||
(define-public fetchmail
 | 
			
		||||
  (package
 | 
			
		||||
    (name "fetchmail")
 | 
			
		||||
    (version "6.3.26")
 | 
			
		||||
    (source (origin
 | 
			
		||||
    (version "6.4.1")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://sourceforge/fetchmail/branch_6.3/fetchmail-"
 | 
			
		||||
                                 version ".tar.xz"))
 | 
			
		||||
       (uri (string-append "mirror://sourceforge/fetchmail/branch_"
 | 
			
		||||
                           (version-major+minor version) "/"
 | 
			
		||||
                           "fetchmail-" version ".tar.xz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0l78ayvi9dm8hd190gl139cs2xqsrf7r9ncilslw20mgvd6cbd3r"))))
 | 
			
		||||
        (base32 "1859wvfc9fq72mwp4njdiy0x89hnddlfr3nix71qqglcs0fz2crz"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("openssl" ,openssl)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags (list (string-append "--with-ssl="
 | 
			
		||||
                                              (assoc-ref %build-inputs "openssl")))))
 | 
			
		||||
    (home-page "http://www.fetchmail.info/")
 | 
			
		||||
     `(#:configure-flags
 | 
			
		||||
       (list (string-append "--with-ssl="
 | 
			
		||||
                            (assoc-ref %build-inputs "openssl")))
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-before 'check 'create-test-environment
 | 
			
		||||
           (lambda _
 | 
			
		||||
             ;; Fix ‘Cannot find absolute path for user's home directory’.
 | 
			
		||||
             (setenv "HOME" "/tmp")
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (home-page "https://www.fetchmail.info/")
 | 
			
		||||
    (synopsis "Remote-mail retrieval and forwarding utility")
 | 
			
		||||
    (description
 | 
			
		||||
     "Fetchmail is a full-featured, robust, well-documented remote-mail
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -251,15 +251,11 @@ automatically.")
 | 
			
		|||
       "00zc3rzj97gscby31djlqyczvqpyhrl66i44czwzmmn7rc5j03m1"))))
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
   (arguments
 | 
			
		||||
    `(#:make-flags '("CC=gcc")
 | 
			
		||||
    `(#:make-flags
 | 
			
		||||
      (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
			
		||||
      #:phases
 | 
			
		||||
      (modify-phases %standard-phases
 | 
			
		||||
        (delete 'configure)
 | 
			
		||||
        (add-before 'install 'hardcode-paths
 | 
			
		||||
          (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
            (substitute* "Makefile"
 | 
			
		||||
                         (("/usr/local") (assoc-ref outputs "out")))
 | 
			
		||||
            #t)))))
 | 
			
		||||
        (delete 'configure))))
 | 
			
		||||
   (home-page "https://git.sr.ht/~sircmpwn/scdoc")
 | 
			
		||||
   (synopsis "Simple man page generator")
 | 
			
		||||
   (description "scdoc is a simple man page generator written for POSIX systems
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1627,6 +1627,14 @@ are both supported).")
 | 
			
		|||
               (base32
 | 
			
		||||
                "0nxh81j8ky0fzv47pip1jb7rs5rrin3jx0f3h632bvpjiya45r1z"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:configure-flags
 | 
			
		||||
       (list "--enable-c-plugins"
 | 
			
		||||
             "--enable-otr"
 | 
			
		||||
             "--enable-omemo"
 | 
			
		||||
             "--enable-pgp"
 | 
			
		||||
             "--enable-icons"
 | 
			
		||||
             "--enable-notifications")))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("curl" ,curl)
 | 
			
		||||
       ("expat" ,expat)
 | 
			
		||||
| 
						 | 
				
			
			@ -1642,12 +1650,15 @@ are both supported).")
 | 
			
		|||
       ("autoconf-archive" ,autoconf-archive)
 | 
			
		||||
       ("automake" ,automake)
 | 
			
		||||
       ("cmocka" ,cmocka)
 | 
			
		||||
       ("gtk+" ,gtk+-2)
 | 
			
		||||
       ("libnotify" ,libnotify)
 | 
			
		||||
       ("libtool" ,libtool)
 | 
			
		||||
       ("libsignal-protocol-c" ,libsignal-protocol-c)
 | 
			
		||||
       ("pkg-config" ,pkg-config)))
 | 
			
		||||
    (synopsis "Console-based XMPP client")
 | 
			
		||||
    (description "Profanity is a console based XMPP client written in C
 | 
			
		||||
using ncurses and libmesode, inspired by Irssi.")
 | 
			
		||||
    (home-page "http://www.profanity.im")
 | 
			
		||||
    (home-page "https://profanity-im.github.io")
 | 
			
		||||
    (license license:gpl3+)))
 | 
			
		||||
 | 
			
		||||
(define-public libircclient
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -306,7 +306,7 @@ This package contains the binary.")
 | 
			
		|||
(define-public mpg123
 | 
			
		||||
  (package
 | 
			
		||||
    (name "mpg123")
 | 
			
		||||
    (version "1.25.12")
 | 
			
		||||
    (version "1.25.13")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
 | 
			
		||||
| 
						 | 
				
			
			@ -316,7 +316,7 @@ This package contains the binary.")
 | 
			
		|||
                          version ".tar.bz2")))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1l9iwwgqzw6yg5zk9pqmlbfyq6d8dqysbmj0j3m8dyrxd34wgzhz"))))
 | 
			
		||||
                "02l915jq0ymndb082g6w89bpf66z04ifa1lr7ga3yycw6m46hc4h"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments '(#:configure-flags '("--with-default-audio=pulse")))
 | 
			
		||||
    (native-inputs `(("pkg-config" ,pkg-config)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2383,24 +2383,18 @@ follows a traditional multi-track tape recorder control paradigm.")
 | 
			
		|||
    (license license:gpl2+)))
 | 
			
		||||
 | 
			
		||||
(define-public ams-lv2
 | 
			
		||||
  ;; Version 1.2.1 built with Python 3.7 raises an error in the waf-script.
 | 
			
		||||
  ;; Therefore, we take two more commmits than 1.2.1 that introduce an updated
 | 
			
		||||
  ;; waf-script and fix one error.
 | 
			
		||||
  (let ((commit "377d166db54a787b48979171c5652d2eb4f1bbb5")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ams-lv2")
 | 
			
		||||
      (version (git-version "1.2.1" revision commit))
 | 
			
		||||
    (version "1.2.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
       (uri (git-reference
 | 
			
		||||
             (url "https://github.com/blablack/ams-lv2.git")
 | 
			
		||||
               (commit commit)))
 | 
			
		||||
             (commit (string-append "v" version))))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
          (base32
 | 
			
		||||
           "1ndgxcxjxwidg7436k0nb5clxkyi878k1j999sbbd1gk2fm0kcqm"))))
 | 
			
		||||
        (base32 "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk"))))
 | 
			
		||||
    (build-system waf-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
| 
						 | 
				
			
			@ -2414,21 +2408,21 @@ follows a traditional multi-track tape recorder control paradigm.")
 | 
			
		|||
             #t)))
 | 
			
		||||
       #:tests? #f))                    ; no tests
 | 
			
		||||
    (inputs
 | 
			
		||||
       `(("lv2" ,lv2)
 | 
			
		||||
         ("lvtk" ,lvtk)
 | 
			
		||||
         ("gtkmm" ,gtkmm-2)
 | 
			
		||||
     `(("cairo" ,cairo)
 | 
			
		||||
       ("fftw" ,fftw)
 | 
			
		||||
       ("gtk" ,gtk+-2)
 | 
			
		||||
         ("cairo" ,cairo)
 | 
			
		||||
         ("fftw" ,fftw)))
 | 
			
		||||
       ("gtkmm" ,gtkmm-2)
 | 
			
		||||
       ("lv2" ,lv2)
 | 
			
		||||
       ("lvtk" ,lvtk)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("pkg-config" ,pkg-config)))
 | 
			
		||||
      (home-page "https://objectivewave.wordpress.com/ams-lv2/")
 | 
			
		||||
    (home-page "https://github.com/blablack/ams-lv2")
 | 
			
		||||
    (synopsis "Port of Alsa Modular Synth internal modules into LV2")
 | 
			
		||||
    (description "This set of LV2 plugins is a port of the internal modules
 | 
			
		||||
found in Alsa Modular Synth.  These plugins are used to create modular
 | 
			
		||||
synthesizers and contain: VCO, VCF, VCA, LFO, slew limiter, envelopes, sample
 | 
			
		||||
and hold, etc.")
 | 
			
		||||
      (license license:gpl2))))
 | 
			
		||||
    (license license:gpl2)))
 | 
			
		||||
 | 
			
		||||
(define-public gxtuner
 | 
			
		||||
  (package
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -595,14 +595,14 @@ of the same name.")
 | 
			
		|||
(define-public wireshark
 | 
			
		||||
  (package
 | 
			
		||||
    (name "wireshark")
 | 
			
		||||
    (version "3.0.5")
 | 
			
		||||
    (version "3.0.6")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
 | 
			
		||||
                           version ".tar.xz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "087qv7nd7zlbckvcs37fkkg7v0mw0hjd5yfbghqym764fpjgqlf5"))))
 | 
			
		||||
        (base32 "0gp3qg0280ysrsaa97yfazka8xcyrspsrw8bfgqxnpf1l0i40zx8"))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,7 +115,7 @@ human.")
 | 
			
		|||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://github.com/keepassxreboot/" name
 | 
			
		||||
       (uri (string-append "https://github.com/keepassxreboot/keepassxc"
 | 
			
		||||
                           "/releases/download/" version "/keepassxc-"
 | 
			
		||||
                           version "-src.tar.xz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -1,9 +0,0 @@
 | 
			
		|||
--- a/browser/app/profile/icecat.js.orig	1980-01-01 18:59:51.000000000 -0500
 | 
			
		||||
+++ b/browser/app/profile/icecat.js	2019-10-25 06:24:03.065989309 -0400
 | 
			
		||||
@@ -2275,3 +2275,6 @@
 | 
			
		||||
 pref("general.buildID.override", "Gecko/20100101");
 | 
			
		||||
 pref("general.oscpu.override", "Windows NT 6.1");
 | 
			
		||||
 pref("general.platform.override", "Win32");
 | 
			
		||||
+
 | 
			
		||||
+// Disable Firefox Accounts and Sign in to Sync.
 | 
			
		||||
+pref("identity.fxaccounts.enabled", false);
 | 
			
		||||
							
								
								
									
										241
									
								
								gnu/packages/patches/icecat-gnuzilla-fixes.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										241
									
								
								gnu/packages/patches/icecat-gnuzilla-fixes.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,241 @@
 | 
			
		|||
From 2676d4e1eb64e18d2e4722c0ea0babdc1f716fa4 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Mark H Weaver <mhw@netris.org>
 | 
			
		||||
Date: Mon, 28 Oct 2019 01:54:19 -0400
 | 
			
		||||
Subject: [PATCH 1/4] Update to 68.2.0-gnu1.
 | 
			
		||||
 | 
			
		||||
* makeicecat: Update to FFMINOR to 2, and update the expected
 | 
			
		||||
sha256sum of the firefox source tarball.
 | 
			
		||||
---
 | 
			
		||||
 makeicecat | 4 ++--
 | 
			
		||||
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/makeicecat b/makeicecat
 | 
			
		||||
index 97ee473..1bcf465 100644
 | 
			
		||||
--- a/makeicecat
 | 
			
		||||
+++ b/makeicecat
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
 set -euxo pipefail
 | 
			
		||||
 
 | 
			
		||||
 FFMAJOR=68
 | 
			
		||||
-FFMINOR=1
 | 
			
		||||
+FFMINOR=2
 | 
			
		||||
 FFSUB=0
 | 
			
		||||
 GNUVERSION=1
 | 
			
		||||
 FFVERSION=$FFMAJOR.$FFMINOR.$FFSUB
 | 
			
		||||
@@ -43,7 +43,7 @@ wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr
 | 
			
		||||
 wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 | 
			
		||||
 gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 | 
			
		||||
 gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
 | 
			
		||||
-echo -n f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 | 
			
		||||
+echo -n 85f1c2eaf68ebedcbc0b78a342f6d16ef0865dedd426a1bba94b75c85f716f38 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 | 
			
		||||
 
 | 
			
		||||
 echo Extracting Firefox tarball
 | 
			
		||||
 tar -xf firefox-${FFVERSION}esr.source.tar.xz
 | 
			
		||||
-- 
 | 
			
		||||
2.23.0
 | 
			
		||||
 | 
			
		||||
From c3a7b761f11c75d3764779e731a7c7e86b072d2f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Mark H Weaver <mhw@netris.org>
 | 
			
		||||
Date: Mon, 28 Oct 2019 04:18:26 -0400
 | 
			
		||||
Subject: [PATCH 2/4] Disable MOZ_SERVICES_HEALTHREPORT and MOZ_DATA_REPORTING.
 | 
			
		||||
 | 
			
		||||
* data/patches/fix-data-reporting-check.patch: New file.
 | 
			
		||||
* data/patches/legacy-profiles.patch: Rename to ...
 | 
			
		||||
* data/patches/moz-configure-changes.patch: ... this,
 | 
			
		||||
and set MOZ_SERVICES_HEALTHREPORT to False.
 | 
			
		||||
---
 | 
			
		||||
 data/patches/fix-data-reporting-check.patch | 22 +++++++++++++++++++++
 | 
			
		||||
 data/patches/legacy-profiles.patch          | 11 -----------
 | 
			
		||||
 data/patches/moz-configure-changes.patch    | 14 +++++++++++++
 | 
			
		||||
 3 files changed, 36 insertions(+), 11 deletions(-)
 | 
			
		||||
 create mode 100644 data/patches/fix-data-reporting-check.patch
 | 
			
		||||
 delete mode 100644 data/patches/legacy-profiles.patch
 | 
			
		||||
 create mode 100644 data/patches/moz-configure-changes.patch
 | 
			
		||||
 | 
			
		||||
diff --git a/data/patches/fix-data-reporting-check.patch b/data/patches/fix-data-reporting-check.patch
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..d586dc5
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/data/patches/fix-data-reporting-check.patch
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
+--- a/old-configure.in.orig	1980-01-01 18:59:51.000000000 -0500
 | 
			
		||||
++++ b/old-configure.in	2019-10-28 04:13:17.343606008 -0400
 | 
			
		||||
+@@ -3116,7 +3116,7 @@
 | 
			
		||||
+ dnl If we have any service that uploads data (and requires data submission
 | 
			
		||||
+ dnl policy alert), set MOZ_DATA_REPORTING.
 | 
			
		||||
+ dnl We need SUBST for build system and DEFINE for xul preprocessor.
 | 
			
		||||
+-if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT" || test -n "$MOZ_CRASHREPORTER"; then
 | 
			
		||||
++if test "$MOZ_TELEMETRY_REPORTING" = 1 || test "$MOZ_SERVICES_HEALTHREPORT" = 1 || test "$MOZ_CRASHREPORTER" = 1; then
 | 
			
		||||
+   MOZ_DATA_REPORTING=1
 | 
			
		||||
+   AC_DEFINE(MOZ_DATA_REPORTING)
 | 
			
		||||
+   AC_SUBST(MOZ_DATA_REPORTING)
 | 
			
		||||
+--- a/old-configure.orig	1980-01-01 18:59:51.000000000 -0500
 | 
			
		||||
++++ b/old-configure	2019-10-28 04:15:41.772322191 -0400
 | 
			
		||||
+@@ -12150,7 +12150,7 @@
 | 
			
		||||
+ 
 | 
			
		||||
+ 
 | 
			
		||||
+ 
 | 
			
		||||
+-if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT" || test -n "$MOZ_CRASHREPORTER"; then
 | 
			
		||||
++if test "$MOZ_TELEMETRY_REPORTING" = 1 || test "$MOZ_SERVICES_HEALTHREPORT" = 1 || test "$MOZ_CRASHREPORTER" = 1; then
 | 
			
		||||
+   MOZ_DATA_REPORTING=1
 | 
			
		||||
+   cat >> confdefs.pytmp <<\EOF
 | 
			
		||||
+     (''' MOZ_DATA_REPORTING ''', ' 1 ')
 | 
			
		||||
diff --git a/data/patches/legacy-profiles.patch b/data/patches/legacy-profiles.patch
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 33e9e99..0000000
 | 
			
		||||
--- a/data/patches/legacy-profiles.patch
 | 
			
		||||
+++ /dev/null
 | 
			
		||||
@@ -1,11 +0,0 @@
 | 
			
		||||
---- a/browser/moz.configure.orig	1980-01-01 18:59:51.000000000 -0500
 | 
			
		||||
-+++ b/browser/moz.configure	2019-10-26 21:58:37.719617701 -0400
 | 
			
		||||
-@@ -7,7 +7,7 @@
 | 
			
		||||
- imply_option('MOZ_PLACES', True)
 | 
			
		||||
- imply_option('MOZ_SERVICES_HEALTHREPORT', True)
 | 
			
		||||
- imply_option('MOZ_SERVICES_SYNC', True)
 | 
			
		||||
--imply_option('MOZ_DEDICATED_PROFILES', True)
 | 
			
		||||
-+imply_option('MOZ_DEDICATED_PROFILES', False)
 | 
			
		||||
- imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', True)
 | 
			
		||||
- 
 | 
			
		||||
- with only_when(target_is_linux & compile_environment):
 | 
			
		||||
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..aa6f1a5
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/data/patches/moz-configure-changes.patch
 | 
			
		||||
@@ -0,0 +1,14 @@
 | 
			
		||||
+--- a/browser/moz.configure.orig	1980-01-01 18:59:51.000000000 -0500
 | 
			
		||||
++++ b/browser/moz.configure	2019-10-28 01:36:13.132873871 -0400
 | 
			
		||||
+@@ -5,9 +5,9 @@
 | 
			
		||||
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
			
		||||
+ 
 | 
			
		||||
+ imply_option('MOZ_PLACES', True)
 | 
			
		||||
+-imply_option('MOZ_SERVICES_HEALTHREPORT', True)
 | 
			
		||||
++imply_option('MOZ_SERVICES_HEALTHREPORT', False)
 | 
			
		||||
+ imply_option('MOZ_SERVICES_SYNC', True)
 | 
			
		||||
+-imply_option('MOZ_DEDICATED_PROFILES', True)
 | 
			
		||||
++imply_option('MOZ_DEDICATED_PROFILES', False)
 | 
			
		||||
+ imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', True)
 | 
			
		||||
+ 
 | 
			
		||||
+ with only_when(target_is_linux & compile_environment):
 | 
			
		||||
-- 
 | 
			
		||||
2.23.0
 | 
			
		||||
 | 
			
		||||
From 62f50f15abc91483c6aa7a2ac7ebb972e6f9affd Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Mark H Weaver <mhw@netris.org>
 | 
			
		||||
Date: Mon, 28 Oct 2019 13:05:28 -0400
 | 
			
		||||
Subject: [PATCH 3/4] Disable MOZ_BLOCK_PROFILE_DOWNGRADE.
 | 
			
		||||
 | 
			
		||||
It would be desirable to prevent downgrades from one major version of
 | 
			
		||||
IceCat to another.  However, as MOZ_BLOCK_PROFILE_DOWNGRADE is
 | 
			
		||||
currently implemented, it prevents downgrades from one build of
 | 
			
		||||
IceCat-68.2 to an earlier build of IceCat-68.2.  Until we can find a
 | 
			
		||||
satisfactory solution, we disable this functionality entirely.
 | 
			
		||||
 | 
			
		||||
* data/patches/moz-configure-changes.patch: Set
 | 
			
		||||
MOZ_BLOCK_PROFILE_DOWNGRADE to 'False'.
 | 
			
		||||
---
 | 
			
		||||
 data/patches/moz-configure-changes.patch | 8 +++++---
 | 
			
		||||
 1 file changed, 5 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
 | 
			
		||||
index aa6f1a5..53091a4 100644
 | 
			
		||||
--- a/data/patches/moz-configure-changes.patch
 | 
			
		||||
+++ b/data/patches/moz-configure-changes.patch
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
 --- a/browser/moz.configure.orig	1980-01-01 18:59:51.000000000 -0500
 | 
			
		||||
-+++ b/browser/moz.configure	2019-10-28 01:36:13.132873871 -0400
 | 
			
		||||
-@@ -5,9 +5,9 @@
 | 
			
		||||
++++ b/browser/moz.configure	2019-10-28 13:04:11.469562089 -0400
 | 
			
		||||
+@@ -5,10 +5,10 @@
 | 
			
		||||
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
			
		||||
  
 | 
			
		||||
  imply_option('MOZ_PLACES', True)
 | 
			
		||||
@@ -8,7 +8,9 @@
 | 
			
		||||
 +imply_option('MOZ_SERVICES_HEALTHREPORT', False)
 | 
			
		||||
  imply_option('MOZ_SERVICES_SYNC', True)
 | 
			
		||||
 -imply_option('MOZ_DEDICATED_PROFILES', True)
 | 
			
		||||
+-imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', True)
 | 
			
		||||
 +imply_option('MOZ_DEDICATED_PROFILES', False)
 | 
			
		||||
- imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', True)
 | 
			
		||||
++imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', False)
 | 
			
		||||
  
 | 
			
		||||
  with only_when(target_is_linux & compile_environment):
 | 
			
		||||
+     option(env='MOZ_NO_PIE_COMPAT',
 | 
			
		||||
-- 
 | 
			
		||||
2.23.0
 | 
			
		||||
 | 
			
		||||
From 036f74092d223976054f9eafd8caa056f5975c54 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Mark H Weaver <mhw@netris.org>
 | 
			
		||||
Date: Mon, 28 Oct 2019 19:57:37 -0400
 | 
			
		||||
Subject: [PATCH 4/4] Improve branding for version 68 ESR.
 | 
			
		||||
 | 
			
		||||
* data/branding/icecat/locales/en-US/brand.dtd: Add brandProductName.
 | 
			
		||||
* data/branding/icecat/locales/en-US/brand.ftl: Add
 | 
			
		||||
brand-shorter-name, brand-full-name, brand-product-name,
 | 
			
		||||
vendor-short-name, and trademarkInfo.
 | 
			
		||||
* data/branding/icecat/locales/en-US/brand.properties: Add
 | 
			
		||||
brandProductName.
 | 
			
		||||
* makeicecat: Limit replacement of trademarkInfo.part1 of brand.dtd
 | 
			
		||||
files to only be done within l10n directory.  Replace trademarkInfo of
 | 
			
		||||
brand.ftl files within l10n directory.
 | 
			
		||||
---
 | 
			
		||||
 data/branding/icecat/locales/en-US/brand.dtd        | 1 +
 | 
			
		||||
 data/branding/icecat/locales/en-US/brand.ftl        | 5 +++++
 | 
			
		||||
 data/branding/icecat/locales/en-US/brand.properties | 1 +
 | 
			
		||||
 makeicecat                                          | 3 ++-
 | 
			
		||||
 4 files changed, 9 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/data/branding/icecat/locales/en-US/brand.dtd b/data/branding/icecat/locales/en-US/brand.dtd
 | 
			
		||||
index 3788266..475ce7d 100644
 | 
			
		||||
--- a/data/branding/icecat/locales/en-US/brand.dtd
 | 
			
		||||
+++ b/data/branding/icecat/locales/en-US/brand.dtd
 | 
			
		||||
@@ -5,5 +5,6 @@
 | 
			
		||||
 <!ENTITY  brandShorterName      "IceCat">
 | 
			
		||||
 <!ENTITY  brandShortName        "IceCat">
 | 
			
		||||
 <!ENTITY  brandFullName         "GNU IceCat">
 | 
			
		||||
+<!ENTITY  brandProductName      "IceCat">
 | 
			
		||||
 <!ENTITY  vendorShortName       "GNU">
 | 
			
		||||
 <!ENTITY  trademarkInfo.part1   "The IceCat logo is Copyright 2008-2015 Free Software Foundation, released under the terms of the GNU Lesser General Public License, version 3 or any later version.">
 | 
			
		||||
diff --git a/data/branding/icecat/locales/en-US/brand.ftl b/data/branding/icecat/locales/en-US/brand.ftl
 | 
			
		||||
index bd7fbe0..7c9fcc8 100644
 | 
			
		||||
--- a/data/branding/icecat/locales/en-US/brand.ftl
 | 
			
		||||
+++ b/data/branding/icecat/locales/en-US/brand.ftl
 | 
			
		||||
@@ -2,4 +2,9 @@
 | 
			
		||||
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
			
		||||
 
 | 
			
		||||
+-brand-shorter-name = IceCat
 | 
			
		||||
 -brand-short-name = IceCat
 | 
			
		||||
+-brand-full-name = GNU IceCat
 | 
			
		||||
+-brand-product-name = IceCat
 | 
			
		||||
+-vendor-short-name = GNU
 | 
			
		||||
+trademarkInfo = The IceCat logo is Copyright 2008-2015 Free Software Foundation, released under the terms of the GNU Lesser General Public License, version 3 or any later version.
 | 
			
		||||
diff --git a/data/branding/icecat/locales/en-US/brand.properties b/data/branding/icecat/locales/en-US/brand.properties
 | 
			
		||||
index 85e2894..9b9cf97 100644
 | 
			
		||||
--- a/data/branding/icecat/locales/en-US/brand.properties
 | 
			
		||||
+++ b/data/branding/icecat/locales/en-US/brand.properties
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
 brandShorterName=IceCat
 | 
			
		||||
 brandShortName=IceCat
 | 
			
		||||
 brandFullName=IceCat
 | 
			
		||||
+brandProductName=IceCat
 | 
			
		||||
 vendorShortName=GNU
 | 
			
		||||
 
 | 
			
		||||
 syncBrandShortName=Sync
 | 
			
		||||
diff --git a/makeicecat b/makeicecat
 | 
			
		||||
index 1bcf465..3ff2ead 100644
 | 
			
		||||
--- a/makeicecat
 | 
			
		||||
+++ b/makeicecat
 | 
			
		||||
@@ -226,7 +226,8 @@ cp $DATA/bookmarks.html.in browser/locales/generic/profile/bookmarks.html.in
 | 
			
		||||
 
 | 
			
		||||
 # Custom legal about pages
 | 
			
		||||
 
 | 
			
		||||
-find -wholename '*/brand.dtd' |xargs /bin/sed 's/trademarkInfo.part1.*/trademarkInfo.part1 "">/' -i
 | 
			
		||||
+find l10n -wholename '*/brand.dtd' |xargs /bin/sed 's/trademarkInfo.part1.*/trademarkInfo.part1 "">/' -i
 | 
			
		||||
+find l10n -wholename '*/brand.ftl' |xargs /bin/sed 's/^trademarkInfo = .*/trademarkInfo = The IceCat logo is Copyright 2008-2015 Free Software Foundation, released under the terms of the GNU Lesser General Public License, version 3 or any later version./' -i
 | 
			
		||||
 
 | 
			
		||||
 for STRING in rights.intro-point3-unbranded rights.intro-point4a-unbranded rights.intro-point4b-unbranded rights.intro-point4c-unbranded
 | 
			
		||||
 do
 | 
			
		||||
-- 
 | 
			
		||||
2.23.0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ index b04c731..06d1f3f 100644
 | 
			
		|||
-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 | 
			
		||||
-gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 | 
			
		||||
-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
 | 
			
		||||
-echo -n f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 | 
			
		||||
-echo -n 85f1c2eaf68ebedcbc0b78a342f6d16ef0865dedd426a1bba94b75c85f716f38 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 | 
			
		||||
-
 | 
			
		||||
-echo Extracting Firefox tarball
 | 
			
		||||
-tar -xf firefox-${FFVERSION}esr.source.tar.xz
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ index b04c731..06d1f3f 100644
 | 
			
		|||
+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 | 
			
		||||
+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 | 
			
		||||
+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
 | 
			
		||||
+# echo -n f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 | 
			
		||||
+# echo -n 85f1c2eaf68ebedcbc0b78a342f6d16ef0865dedd426a1bba94b75c85f716f38 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 | 
			
		||||
+# 
 | 
			
		||||
+# echo Extracting Firefox tarball
 | 
			
		||||
+# tar -xf firefox-${FFVERSION}esr.source.tar.xz
 | 
			
		||||
| 
						 | 
				
			
			@ -96,24 +96,9 @@ index b04c731..06d1f3f 100644
 | 
			
		|||
-cd $SOURCEDIR
 | 
			
		||||
+# cd $SOURCEDIR
 | 
			
		||||
 
 | 
			
		||||
 #for patch in $DATA/patches/*; do
 | 
			
		||||
 #    echo Patching with file: $patch
 | 
			
		||||
@@ -226,10 +226,10 @@ cp $DATA/bookmarks.html.in browser/locales/generic/profile/bookmarks.html.in
 | 
			
		||||
 
 | 
			
		||||
 find -wholename '*/brand.dtd' |xargs /bin/sed 's/trademarkInfo.part1.*/trademarkInfo.part1 "">/' -i
 | 
			
		||||
 
 | 
			
		||||
-for STRING in rights.intro-point3-unbranded rights.intro-point4a-unbranded rights.intro-point4b-unbranded rights.intro-point4c-unbranded
 | 
			
		||||
-do
 | 
			
		||||
- find -name aboutRights.dtd | xargs sed -i "s/ENTITY $STRING.*/ENTITY $STRING \"\">/"
 | 
			
		||||
-done
 | 
			
		||||
+# for STRING in rights.intro-point3-unbranded rights.intro-point4a-unbranded rights.intro-point4b-unbranded rights.intro-point4c-unbranded
 | 
			
		||||
+# do
 | 
			
		||||
+#  find -name aboutRights.dtd | xargs sed -i "s/ENTITY $STRING.*/ENTITY $STRING \"\">/"
 | 
			
		||||
+# done
 | 
			
		||||
 
 | 
			
		||||
 for STRING in rights-intro-point-2 rights-intro-point-3 rights-intro-point-4 rights-intro-point-5 rights-intro-point-6 rights-webservices rights-safebrowsing
 | 
			
		||||
 do
 | 
			
		||||
@@ -595,6 +595,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in
 | 
			
		||||
 shopt -s nullglob
 | 
			
		||||
 for patch in $DATA/patches/*.patch; do
 | 
			
		||||
@@ -598,6 +598,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in
 | 
			
		||||
 # Fix CVE-2012-3386
 | 
			
		||||
 /bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +0,0 @@
 | 
			
		|||
Fix compatibility with newer Boost.
 | 
			
		||||
 | 
			
		||||
Extracted from this upstream commit:
 | 
			
		||||
https://cgit.freedesktop.org/libreoffice/core/commit/?id=23a8d5ffbbe58761b89f590f0735abccd69a3681
 | 
			
		||||
 | 
			
		||||
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
 | 
			
		||||
--- a/sfx2/source/appl/shutdownicon.cxx
 | 
			
		||||
+++ b/sfx2/source/appl/shutdownicon.cxx
 | 
			
		||||
@@ -144,7 +144,7 @@ bool LoadModule()
 | 
			
		||||
 #endif // ENABLE_QUICKSTART_APPLET
 | 
			
		||||
     }
 | 
			
		||||
     assert(!boost::logic::indeterminate(loaded));
 | 
			
		||||
-    return loaded;
 | 
			
		||||
+    return bool(loaded);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Make weasyprint load dynamic libraries from hard-coded path.
 | 
			
		||||
 | 
			
		||||
From NixOS
 | 
			
		||||
pkgs/development/python-modules/weasyprint/library-paths.patch
 | 
			
		||||
 | 
			
		||||
diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py
 | 
			
		||||
index 377716c1..2016e01c 100644
 | 
			
		||||
--- a/weasyprint/fonts.py
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,47 +0,0 @@
 | 
			
		|||
https://dev.lovelyhq.com/libburnia/libisoburn/commit/1eb51f44dadb8b6c5f87533ca357186cdc1ac625
 | 
			
		||||
diff --git a/frontend/grub-mkrescue-sed.sh b/frontend/grub-mkrescue-sed.sh
 | 
			
		||||
index b3948c99..dcd9d696 100755
 | 
			
		||||
--- a/frontend/grub-mkrescue-sed.sh
 | 
			
		||||
+++ b/frontend/grub-mkrescue-sed.sh
 | 
			
		||||
@@ -120,6 +120,7 @@ fi
 | 
			
		||||
 # "yes" overwrites the MBR partition table area in the EFI boot image by zeros.
 | 
			
		||||
 # Some EFI implementations get stuck when seeing in the EFI partition a
 | 
			
		||||
 # partition table entry which begins at LBA 0.
 | 
			
		||||
+# "extra" not only zeros the partition table but also the MBR signature.
 | 
			
		||||
 efi_zero_inner_pt=no
 | 
			
		||||
 if test -n "$MKRESCUE_SED_IN_EFI_NO_PT"
 | 
			
		||||
 then
 | 
			
		||||
@@ -192,24 +193,31 @@ then
 | 
			
		||||
   find "$dir"
 | 
			
		||||
 fi
 | 
			
		||||
 
 | 
			
		||||
-if test "$efi_zero_inner_pt" = yes
 | 
			
		||||
+if test "$efi_zero_inner_pt" = yes -o "$efi_zero_inner_pt" = extra
 | 
			
		||||
 then
 | 
			
		||||
   did_dd=0
 | 
			
		||||
   if test -e "$dir"/efi.img
 | 
			
		||||
   then
 | 
			
		||||
+    # Look for 0x55 0xAA in bytes 510 and 511
 | 
			
		||||
     magic=$(dd bs=1 skip=510 count=2 if="$dir"/efi.img 2>/dev/null | \
 | 
			
		||||
             od -c | head -1 | awk '{print $2 " " $3}')
 | 
			
		||||
     if test "$magic" = "U 252"
 | 
			
		||||
     then
 | 
			
		||||
+      echo "Performing actions for MKRESCUE_SED_IN_EFI_NO_PT=$efi_zero_inner_pt" >&2
 | 
			
		||||
       dd if=/dev/zero bs=1 seek=446 count=64 conv=notrunc of="$dir"/efi.img
 | 
			
		||||
       did_dd=1
 | 
			
		||||
+      if test "$efi_zero_inner_pt" = extra
 | 
			
		||||
+      then
 | 
			
		||||
+        dd if=/dev/zero bs=1 seek=510 count=2 conv=notrunc of="$dir"/efi.img
 | 
			
		||||
+      fi
 | 
			
		||||
+      echo >&2
 | 
			
		||||
     fi
 | 
			
		||||
   fi
 | 
			
		||||
   if test "$did_dd" = 0
 | 
			
		||||
   then
 | 
			
		||||
     echo >&2
 | 
			
		||||
     echo "$0 : NOTE : No EFI image found or no MBR signature in it." >&2
 | 
			
		||||
-    echo "$0 : NOTE : Will not obey MKRESCUE_SED_IN_EFI_NO_PT=yes" >&2
 | 
			
		||||
+    echo "$0 : NOTE : Will not obey MKRESCUE_SED_IN_EFI_NO_PT=$efi_zero_inner_pt" >&2
 | 
			
		||||
     echo >&2
 | 
			
		||||
   fi
 | 
			
		||||
 fi
 | 
			
		||||
| 
						 | 
				
			
			@ -1,107 +0,0 @@
 | 
			
		|||
https://dev.lovelyhq.com/libburnia/libisoburn/commit/3a2a3ba737a06162c22ace0ae09d33ba97aa2673
 | 
			
		||||
diff --git a/frontend/grub-mkrescue-sed.sh b/frontend/grub-mkrescue-sed.sh
 | 
			
		||||
index d772ff22..b3948c99 100755
 | 
			
		||||
--- a/frontend/grub-mkrescue-sed.sh
 | 
			
		||||
+++ b/frontend/grub-mkrescue-sed.sh
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
 #!/bin/sh
 | 
			
		||||
 
 | 
			
		||||
-# Copyright (C) 2015 - 2016
 | 
			
		||||
+# Copyright (C) 2015 - 2019
 | 
			
		||||
 # Thomas Schmitt <scdbackup@gmx.net>, libburnia-project.org
 | 
			
		||||
 # Provided under BSD license: Use, modify, and distribute as you like.
 | 
			
		||||
 
 | 
			
		||||
@@ -117,6 +117,15 @@ fi
 | 
			
		||||
 #  command line.)
 | 
			
		||||
 # Each argument must be a single word. No whitespace. No quotation marks.
 | 
			
		||||
 
 | 
			
		||||
+# "yes" overwrites the MBR partition table area in the EFI boot image by zeros.
 | 
			
		||||
+# Some EFI implementations get stuck when seeing in the EFI partition a
 | 
			
		||||
+# partition table entry which begins at LBA 0.
 | 
			
		||||
+efi_zero_inner_pt=no
 | 
			
		||||
+if test -n "$MKRESCUE_SED_IN_EFI_NO_PT"
 | 
			
		||||
+then
 | 
			
		||||
+  efi_zero_inner_pt="$MKRESCUE_SED_IN_EFI_NO_PT"
 | 
			
		||||
+fi
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 #
 | 
			
		||||
 #                               Do the work 
 | 
			
		||||
@@ -183,12 +192,48 @@ then
 | 
			
		||||
   find "$dir"
 | 
			
		||||
 fi
 | 
			
		||||
 
 | 
			
		||||
+if test "$efi_zero_inner_pt" = yes
 | 
			
		||||
+then
 | 
			
		||||
+  did_dd=0
 | 
			
		||||
+  if test -e "$dir"/efi.img
 | 
			
		||||
+  then
 | 
			
		||||
+    magic=$(dd bs=1 skip=510 count=2 if="$dir"/efi.img 2>/dev/null | \
 | 
			
		||||
+            od -c | head -1 | awk '{print $2 " " $3}')
 | 
			
		||||
+    if test "$magic" = "U 252"
 | 
			
		||||
+    then
 | 
			
		||||
+      dd if=/dev/zero bs=1 seek=446 count=64 conv=notrunc of="$dir"/efi.img
 | 
			
		||||
+      did_dd=1
 | 
			
		||||
+    fi
 | 
			
		||||
+  fi
 | 
			
		||||
+  if test "$did_dd" = 0
 | 
			
		||||
+  then
 | 
			
		||||
+    echo >&2
 | 
			
		||||
+    echo "$0 : NOTE : No EFI image found or no MBR signature in it." >&2
 | 
			
		||||
+    echo "$0 : NOTE : Will not obey MKRESCUE_SED_IN_EFI_NO_PT=yes" >&2
 | 
			
		||||
+    echo >&2
 | 
			
		||||
+  fi
 | 
			
		||||
+fi
 | 
			
		||||
+
 | 
			
		||||
 efi_tmp_name=
 | 
			
		||||
+if test x"$mode" = xmjg \
 | 
			
		||||
+     -o x"$mode" = xmbr_only \
 | 
			
		||||
+     -o x"$mode" = xgpt_appended \
 | 
			
		||||
+     -o x"$mode" = xmbr_hfs
 | 
			
		||||
+then
 | 
			
		||||
+  # Move EFI partition image file out of the "$dir" tree, i.e. out of the ISO
 | 
			
		||||
+  efi_tmp_name=grub-mkrescue-sed-efi-img.$$
 | 
			
		||||
+  if test -e "$dir"/efi.img
 | 
			
		||||
+  then
 | 
			
		||||
+    mv "$dir"/efi.img /tmp/$efi_tmp_name
 | 
			
		||||
+  elif test -e /tmp/$efi_tmp_name
 | 
			
		||||
+  then
 | 
			
		||||
+    rm /tmp/$efi_tmp_name
 | 
			
		||||
+  fi
 | 
			
		||||
+fi
 | 
			
		||||
+
 | 
			
		||||
 if test x"$mode" = xmjg
 | 
			
		||||
 then
 | 
			
		||||
   # Exchange arguments for the experimental GRUB2 mjg layout
 | 
			
		||||
-  efi_tmp_name=grub-mkrescue-sed-efi-img.$$
 | 
			
		||||
-  mv "$dir"/efi.img /tmp/$efi_tmp_name
 | 
			
		||||
   x=$(echo " $*" | sed \
 | 
			
		||||
     -e "s/-efi-boot-part --efi-boot-image/-no-pad -append_partition $partno 0xef \/tmp\/$efi_tmp_name/" \
 | 
			
		||||
     -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_${partno}:all:: -no-emul-boot -isohybrid-gpt-basdat/" \
 | 
			
		||||
@@ -207,8 +252,6 @@ then
 | 
			
		||||
 elif test x"$mode" = xmbr_only
 | 
			
		||||
 then
 | 
			
		||||
   # Exchange arguments for no-HFS MBR-only layout
 | 
			
		||||
-  efi_tmp_name=grub-mkrescue-sed-efi-img.$$
 | 
			
		||||
-  mv "$dir"/efi.img /tmp/$efi_tmp_name
 | 
			
		||||
   x=$(echo " $*" | sed \
 | 
			
		||||
     -e "s/-efi-boot-part --efi-boot-image/$iso_mbr_part_type -no-pad -append_partition 2 0xef \/tmp\/$efi_tmp_name/" \
 | 
			
		||||
     -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_2:all:: -no-emul-boot/" \
 | 
			
		||||
@@ -228,8 +271,6 @@ then
 | 
			
		||||
 elif test x"$mode" = xmbr_hfs
 | 
			
		||||
 then
 | 
			
		||||
   # Exchange arguments for MBR and HFS+ layout
 | 
			
		||||
-  efi_tmp_name=grub-mkrescue-sed-efi-img.$$
 | 
			
		||||
-  mv "$dir"/efi.img /tmp/$efi_tmp_name
 | 
			
		||||
   x=$(echo " $*" | sed \
 | 
			
		||||
     -e "s/-efi-boot-part --efi-boot-image/$iso_mbr_part_type -no-pad -append_partition 2 0xef \/tmp\/$efi_tmp_name/" \
 | 
			
		||||
     -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_2:all:: -no-emul-boot/" \
 | 
			
		||||
@@ -247,8 +288,6 @@ then
 | 
			
		||||
 elif test x"$mode" = xgpt_appended
 | 
			
		||||
 then
 | 
			
		||||
   # Exchange arguments for no-HFS MBR-only layout
 | 
			
		||||
-  efi_tmp_name=grub-mkrescue-sed-efi-img.$$
 | 
			
		||||
-  mv "$dir"/efi.img /tmp/$efi_tmp_name
 | 
			
		||||
   x=$(echo " $*" | sed \
 | 
			
		||||
     -e "s/-efi-boot-part --efi-boot-image/-no-pad -append_partition 2 0xef \/tmp\/$efi_tmp_name -appended_part_as_gpt -partition_offset 16/" \
 | 
			
		||||
     -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_2:all:: -no-emul-boot/" \
 | 
			
		||||
| 
						 | 
				
			
			@ -265,11 +265,17 @@ GiB).")
 | 
			
		|||
    (inputs
 | 
			
		||||
     `(("python-cairo" ,python-pycairo)
 | 
			
		||||
       ("python-gobject" ,python-pygobject)
 | 
			
		||||
       ("gtksourceview" ,gtksourceview)))
 | 
			
		||||
       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
 | 
			
		||||
       ("gtksourceview" ,gtksourceview-3)))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("dconf" ,dconf)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
     `(#:imported-modules ((guix build glib-or-gtk-build-system)
 | 
			
		||||
                           ,@%python-build-system-modules)
 | 
			
		||||
       #:modules ((guix build python-build-system)
 | 
			
		||||
                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
 | 
			
		||||
                  (guix build utils))
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         ;; This setup.py script does not support one of the Python build
 | 
			
		||||
         ;; system's default flags, "--single-version-externally-managed".
 | 
			
		||||
| 
						 | 
				
			
			@ -292,7 +298,16 @@ GiB).")
 | 
			
		|||
             (setenv "HOME" "/tmp")
 | 
			
		||||
             (invoke "py.test" "-v" "-k"
 | 
			
		||||
                     ;; TODO: Those tests fail, why?
 | 
			
		||||
                     "not test_classify_change_actions"))))))
 | 
			
		||||
                     "not test_classify_change_actions")))
 | 
			
		||||
         (add-after 'wrap 'glib-or-gtk-wrap
 | 
			
		||||
           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
 | 
			
		||||
         (add-after 'wrap 'wrap-typelib
 | 
			
		||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
             (let ((out (assoc-ref outputs "out")))
 | 
			
		||||
               (wrap-program (string-append out "/bin/meld")
 | 
			
		||||
                 `("GI_TYPELIB_PATH" prefix
 | 
			
		||||
                   ,(search-path-as-string->list (getenv "GI_TYPELIB_PATH"))))
 | 
			
		||||
               #t))))))
 | 
			
		||||
    (home-page "https://meldmerge.org/")
 | 
			
		||||
    (synopsis "Compare files, directories and working copies")
 | 
			
		||||
    (description "Meld is a visual diff and merge tool targeted at
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1120,40 +1120,21 @@ presentation.  The input files processed by pdfpc are PDF documents.")
 | 
			
		|||
    (license license:gpl2+)))
 | 
			
		||||
 | 
			
		||||
(define-public paps
 | 
			
		||||
  (let ((commit "37e6ca1cd96d751bbbff5539d795c90d657289a5")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
  (package
 | 
			
		||||
    (name "paps")
 | 
			
		||||
      ;; The last release was in 2015, but since then there have been security
 | 
			
		||||
      ;; bug fixes.
 | 
			
		||||
      (version (git-version "0.7.0" revision commit))
 | 
			
		||||
    (version "0.7.1")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
         (method git-fetch)
 | 
			
		||||
         (uri (git-reference
 | 
			
		||||
               (url "https://github.com/dov/paps.git")
 | 
			
		||||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name name version))
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "https://github.com/dov/paps/releases/download/v"
 | 
			
		||||
                           version "/paps-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
          (base32
 | 
			
		||||
           "1ilcyjqdynxsd2p8dnn8h4592dwf531x9pbkxa1w09hkcdn7hgwc"))))
 | 
			
		||||
        (base32 "1z1w1fg2bvb8p92n1jlpqp3n9mq42szb2mqhh4xqmmnmfcdkpi9s"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-after 'unpack 'do-not-run-configure-script-during-bootstrap
 | 
			
		||||
             (lambda _
 | 
			
		||||
               (substitute* "autogen.sh"
 | 
			
		||||
                 (("^./configure") "#"))
 | 
			
		||||
               #t)))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("pango" ,pango)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
       `(("autoconf" ,autoconf)
 | 
			
		||||
         ("automake" ,automake)
 | 
			
		||||
         ("gettext" ,gettext-minimal)
 | 
			
		||||
         ("glib" ,glib "bin")
 | 
			
		||||
         ("intltool" ,intltool)
 | 
			
		||||
     `(("intltool" ,intltool)
 | 
			
		||||
       ("pkg-config" ,pkg-config)))
 | 
			
		||||
    (home-page "https://github.com/dov/paps")
 | 
			
		||||
    (synopsis "Pango to PostScript converter")
 | 
			
		||||
| 
						 | 
				
			
			@ -1161,7 +1142,7 @@ presentation.  The input files processed by pdfpc are PDF documents.")
 | 
			
		|||
     "Paps reads a UTF-8 encoded file and generates a PostScript language
 | 
			
		||||
rendering of the file.  The rendering is done by creating outline curves
 | 
			
		||||
through the Pango @code{ft2} backend.")
 | 
			
		||||
      (license license:lgpl2.0+))))
 | 
			
		||||
    (license license:lgpl2.0+)))
 | 
			
		||||
 | 
			
		||||
(define-public stapler
 | 
			
		||||
  (package
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1611,14 +1611,14 @@ CPAN::Meta object are present.")
 | 
			
		|||
(define-public perl-cpanel-json-xs
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-cpanel-json-xs")
 | 
			
		||||
    (version "4.12")
 | 
			
		||||
    (version "4.15")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
 | 
			
		||||
                           "Cpanel-JSON-XS-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0n66da8s88srr591i7gm1d611z9jbcz488fhqxy604diiw8pnha9"))))
 | 
			
		||||
        (base32 "1695408fj6jjx6dv5082hhxg5am480x1nz7s0f355npv0wm776wx"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("perl-common-sense" ,perl-common-sense)))
 | 
			
		||||
| 
						 | 
				
			
			@ -4287,7 +4287,7 @@ Perl IO idioms.  It exports a single function called io, which returns a new
 | 
			
		|||
(define-public perl-io-captureoutput
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-io-captureoutput")
 | 
			
		||||
    (version "1.1104")
 | 
			
		||||
    (version "1.1105")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -4296,8 +4296,7 @@ Perl IO idioms.  It exports a single function called io, which returns a new
 | 
			
		|||
             version
 | 
			
		||||
             ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0c437zvzpqi8f0h3nmblwdi2bvsb92b7g30fndr7my9qnky35izw"))))
 | 
			
		||||
        (base32 "11zlfbahac09q3jvwmpijmkwgihwxps85jwy2q7q0wqjragh16df"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (home-page "https://metacpan.org/release/IO-CaptureOutput")
 | 
			
		||||
    (synopsis "Capture STDOUT and STDERR from Perl code, subprocesses or XS")
 | 
			
		||||
| 
						 | 
				
			
			@ -5552,15 +5551,14 @@ Moose and is optimised for rapid startup.")
 | 
			
		|||
  (package
 | 
			
		||||
    (inherit perl-moo)
 | 
			
		||||
    (name "perl-moo-2")
 | 
			
		||||
    (version "2.003004")
 | 
			
		||||
    (version "2.003006")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
 | 
			
		||||
                           "Moo-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1qciprcgb4661g2g4ks0fxkx5gbjvn7h9yfg0nzflqz9z0jvdfzq"))))
 | 
			
		||||
        (base32 "0wi4gyp5kn4lbags0hrax3c9jj9spxg4d11fbrdh0ican4m0kcmw"))))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("perl-role-tiny" ,perl-role-tiny-2)
 | 
			
		||||
       ("perl-sub-name" ,perl-sub-name)
 | 
			
		||||
| 
						 | 
				
			
			@ -6549,7 +6547,7 @@ name, but they won't show up as methods on your class or instances.")
 | 
			
		|||
(define-public perl-net-dns-native
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-net-dns-native")
 | 
			
		||||
    (version "0.21")
 | 
			
		||||
    (version "0.22")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -6557,7 +6555,7 @@ name, but they won't show up as methods on your class or instances.")
 | 
			
		|||
             "mirror://cpan/authors/id/O/OL/OLEG/Net-DNS-Native-"
 | 
			
		||||
             version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0jjcgzmgas7k5rwalirrmbnlj4ihdxyydajc18qviwg863qjannl"))))
 | 
			
		||||
        (base32 "1m9hbj83ikg52wvq7z8bjm78i50qvqk5alh11mmazzxrpbnrv38h"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (home-page "https://metacpan.org/release/Net-DNS-Native")
 | 
			
		||||
    (synopsis "Non-blocking system DNS resolver")
 | 
			
		||||
| 
						 | 
				
			
			@ -9632,15 +9630,14 @@ files, using JSON::PP and/or CPAN::Meta::YAML.")
 | 
			
		|||
(define-public perl-scalar-list-utils
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-scalar-list-utils")
 | 
			
		||||
    (version "1.50")
 | 
			
		||||
    (version "1.53")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
 | 
			
		||||
                           "Scalar-List-Utils-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0x9n0617gjjcqa4nk5biiwkxdi90xpdfg6z07gjr009qjg3bkah6"))))
 | 
			
		||||
        (base32 "16dfpnrcf5846j998rdd6gra16m9030rnz9fpsh1hfzvcsq8ch5x"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (home-page "https://metacpan.org/release/Scalar-List-Utils")
 | 
			
		||||
    (synopsis "Common Scalar and List utility subroutines")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2013,7 +2013,7 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
 | 
			
		|||
(define-public python-cachecontrol
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-cachecontrol")
 | 
			
		||||
    (version "0.11.6")
 | 
			
		||||
    (version "0.12.5")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -2024,25 +2024,12 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
 | 
			
		|||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0pb16bzbkk99nh317xyfk8fxc2ngimsbz7lz9pxsw8c82n83d4dh"))))
 | 
			
		||||
         "03lgc65sl04n0cgzmmgg99bk83f9i6k8yrmcd4hpl46q1pymn0kz"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (replace 'check
 | 
			
		||||
           (lambda _
 | 
			
		||||
             ;; Drop test that requires internet access.
 | 
			
		||||
             (delete-file "tests/test_regressions.py")
 | 
			
		||||
             (setenv "PYTHONPATH"
 | 
			
		||||
                     (string-append (getcwd) "/build/lib:"
 | 
			
		||||
                                    (getenv "PYTHONPATH")))
 | 
			
		||||
             (invoke "py.test" "-vv")
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("python-pytest" ,python-pytest)
 | 
			
		||||
       ("python-redis" ,python-redis)
 | 
			
		||||
       ("python-webtest" ,python-webtest)
 | 
			
		||||
       ("python-mock" ,python-mock)))
 | 
			
		||||
     ;; Versions > 0.11.6 depend on CherryPy for testing.
 | 
			
		||||
     ;; It's too much work to package CherryPy for now.
 | 
			
		||||
     `(#:tests? #f))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-requests" ,python-requests)
 | 
			
		||||
       ("python-lockfile" ,python-lockfile)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -548,14 +548,13 @@ concepts.")
 | 
			
		|||
(define-public python-cftime
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-cftime")
 | 
			
		||||
    (version "1.0.3.4")
 | 
			
		||||
    (version "1.0.4.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "cftime" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0362dhxbzk593walyjz30dll6y2y79wialik647cbwdsf3ad0x6x"))))
 | 
			
		||||
        (base32 "0w0gi6jnch38hiygl62j4xkcirv4y3dcwrvxl9p7bsk6j27lzihs"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-numpy" ,python-numpy)))
 | 
			
		||||
| 
						 | 
				
			
			@ -934,14 +933,14 @@ add the log levels NOTICE, SPAM, SUCCESS and VERBOSE.")
 | 
			
		|||
(define-public python-coloredlogs
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-coloredlogs")
 | 
			
		||||
    (version "7.3")
 | 
			
		||||
    (version "10.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "coloredlogs" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1blcann6dyg5dhps9pg12rn0q0rjrlajpmmil0gy0j4cbvnl2il9"))))
 | 
			
		||||
         "0dkw6xp0r1dwgz4s2f58npx5nxfq51wf4l6qkm5ib27slgfs4sdq"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(;Tests require some updated modules
 | 
			
		||||
| 
						 | 
				
			
			@ -1158,13 +1157,13 @@ human-friendly syntax.")
 | 
			
		|||
(define-public python-pandas
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-pandas")
 | 
			
		||||
    (version "0.24.2")
 | 
			
		||||
    (version "0.25.2")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "pandas" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "18imlm8xbhcbwy4wa957a1fkamrcb0z988z006jpfda3ki09z4ag"))))
 | 
			
		||||
        (base32 "1gp2pvzdiakvgjmykdzdlzrsfbg4vjm49jjdl9s0ha0a3yfs34fa"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:modules ((guix build utils)
 | 
			
		||||
| 
						 | 
				
			
			@ -1227,10 +1226,22 @@ structures designed to make working with structured (tabular,
 | 
			
		|||
multidimensional, potentially heterogeneous) and time series data both easy
 | 
			
		||||
and intuitive.  It aims to be the fundamental high-level building block for
 | 
			
		||||
doing practical, real world data analysis in Python.")
 | 
			
		||||
    (properties `((python2-variant . ,(delay python2-pandas))))
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
;; Pandas 0.24.x are the last versions that support Python 2.
 | 
			
		||||
(define-public python2-pandas
 | 
			
		||||
  (package-with-python2 python-pandas))
 | 
			
		||||
  (let ((pandas (package-with-python2
 | 
			
		||||
                 (strip-python2-variant python-pandas))))
 | 
			
		||||
    (package/inherit
 | 
			
		||||
     pandas
 | 
			
		||||
     (version "0.24.2")
 | 
			
		||||
     (source (origin
 | 
			
		||||
               (method url-fetch)
 | 
			
		||||
               (uri (pypi-uri "pandas" version))
 | 
			
		||||
               (sha256
 | 
			
		||||
                (base32
 | 
			
		||||
                 "18imlm8xbhcbwy4wa957a1fkamrcb0z988z006jpfda3ki09z4ag")))))))
 | 
			
		||||
 | 
			
		||||
(define-public python2-mechanize
 | 
			
		||||
  (package
 | 
			
		||||
| 
						 | 
				
			
			@ -3451,7 +3462,7 @@ between language specification and implementation aspects.")
 | 
			
		|||
(define-public python-numpy
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-numpy")
 | 
			
		||||
    (version "1.15.4")
 | 
			
		||||
    (version "1.17.3")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -3460,7 +3471,7 @@ between language specification and implementation aspects.")
 | 
			
		|||
             version "/numpy-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "102vcl2qq4pjbm7a3d67vkkvn4466ngia1d8wi5avqwqh8j0jvkn"))))
 | 
			
		||||
         "1ak9dmjja0q90a7fsxli51ypcwssh8c4pb6f8wkrsnf2xgdk6dy9"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("openblas" ,openblas)
 | 
			
		||||
| 
						 | 
				
			
			@ -3525,10 +3536,24 @@ with Python.  It contains among other things: a powerful N-dimensional array
 | 
			
		|||
object, sophisticated (broadcasting) functions, tools for integrating C/C++
 | 
			
		||||
and Fortran code, useful linear algebra, Fourier transform, and random number
 | 
			
		||||
capabilities.")
 | 
			
		||||
    (properties `((python2-variant . ,(delay python2-numpy))))
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
;; Numpy 1.16.x are the last versions that support Python 2.
 | 
			
		||||
(define-public python2-numpy
 | 
			
		||||
  (package-with-python2 python-numpy))
 | 
			
		||||
  (let ((numpy (package-with-python2
 | 
			
		||||
                (strip-python2-variant python-numpy))))
 | 
			
		||||
    (package/inherit
 | 
			
		||||
     numpy
 | 
			
		||||
      (version "1.16.5")
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method url-fetch)
 | 
			
		||||
                (uri (string-append
 | 
			
		||||
                      "https://github.com/numpy/numpy/releases/download/v"
 | 
			
		||||
                      version "/numpy-" version ".tar.gz"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0lg1cycxzi4rvvrd5zxinpdz0ni792fpx6xjd75z1923zcac8qrb")))))))
 | 
			
		||||
 | 
			
		||||
;; NOTE: NumPy 1.8 is packaged only for Python 2 because it is of
 | 
			
		||||
;; interest only for legacy code going back to NumPy's predecessor
 | 
			
		||||
| 
						 | 
				
			
			@ -5218,13 +5243,13 @@ releases.")
 | 
			
		|||
(define-public python-pathpy
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-pathpy")
 | 
			
		||||
    (version "11.5.0")
 | 
			
		||||
    (version "11.5.1")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "path.py" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "1jxkf91syzxlpiwgm83fjfz1m5xh3jrvv4iyl5wjsnkk599pls5n"))))
 | 
			
		||||
        (base32 "0ir9j1haq2jbi7aip6k2fa9l7q1l03k4hp1awxhjhcwzsnwp3ll8"))))
 | 
			
		||||
    (outputs '("out" "doc"))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
| 
						 | 
				
			
			@ -5625,13 +5650,13 @@ computing.")
 | 
			
		|||
(define-public python-ipython
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-ipython")
 | 
			
		||||
    (version "7.5.0")
 | 
			
		||||
    (version "7.9.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "ipython" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "09mbxq37mfn88xjnib7qfzaq9krr7gf1jxwy1p6mcjr254082h78"))))
 | 
			
		||||
        (base32 "103jkw18z7fnwdal1mdbijjxi1fndzn31g887lmj7ddpf2r07lyz"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-backcall" ,python-backcall)
 | 
			
		||||
| 
						 | 
				
			
			@ -5964,15 +5989,20 @@ the GObject Introspection bindings to libnotify for non-GTK applications.")
 | 
			
		|||
(define-public python-lxml
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-lxml")
 | 
			
		||||
    (version "4.2.5")
 | 
			
		||||
    (version "4.4.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (pypi-uri "lxml" version))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0zw0y9hs0nflxhl9cs6ipwwh53szi3w2x06wl0k9cylyqac0cwin"))))
 | 
			
		||||
          "14jnpfcpgqr9sx8ppd286jzcbk0b36hbqsvd8jkvffipzw5v8768"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases (modify-phases %standard-phases
 | 
			
		||||
                  (replace 'check
 | 
			
		||||
                    (lambda _
 | 
			
		||||
                      (invoke "make" "test"))))))
 | 
			
		||||
    (inputs
 | 
			
		||||
      `(("libxml2" ,libxml2)
 | 
			
		||||
        ("libxslt" ,libxslt)))
 | 
			
		||||
| 
						 | 
				
			
			@ -7243,21 +7273,23 @@ Supported netlink families and protocols include:
 | 
			
		|||
(define-public python-xlrd
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-xlrd")
 | 
			
		||||
    (version "1.0.0")
 | 
			
		||||
    (version "1.2.0")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (pypi-uri "xlrd" version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0s8hjiz01vbhy85xalrz0qlsmd9ypf36zjqrf97hh984spapvy0g"))))
 | 
			
		||||
                "1ci93fda4n67qhdvfl16zasyxrpygzk53hs6m8z0rd4dxrnb6vjl"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         ;; Current test in setup.py does not work as of 1.0.0, so use nose to
 | 
			
		||||
         ;; run tests instead for now.
 | 
			
		||||
         (replace 'check (lambda _ (invoke "nosetests"))))))
 | 
			
		||||
    (native-inputs `(("python-nose"       ,python-nose)))
 | 
			
		||||
         ;; Some tests depend on writing a temporary file to the user's home
 | 
			
		||||
         ;; directory.
 | 
			
		||||
         (add-after 'unpack 'fix-tests
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (delete-file "tests/test_open_workbook.py")
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (home-page "http://www.python-excel.org/")
 | 
			
		||||
    (synopsis "Library for extracting data from Excel files")
 | 
			
		||||
    (description "This package provides a library to extract data from
 | 
			
		||||
| 
						 | 
				
			
			@ -9558,6 +9590,7 @@ useful for solving the Assignment Problem.")
 | 
			
		|||
        (base32
 | 
			
		||||
         "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments '(#:tests? #f)) ; Test invocation is no longer supported by Python.
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("python-pytest" ,python-pytest)))
 | 
			
		||||
    (home-page "https://bitbucket.org/mchaput/whoosh")
 | 
			
		||||
| 
						 | 
				
			
			@ -10588,16 +10621,16 @@ Wikipedia code samples at
 | 
			
		|||
(define-public python-cleo
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-cleo")
 | 
			
		||||
    (version "0.6.1")
 | 
			
		||||
    (version "0.6.8")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (pypi-uri "cleo" version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0q1cf0szr0d54am4pypzwdnm74zpladdsinad94c2fz5i06fdpf7"))))
 | 
			
		||||
                "06zp695hq835rkaq6irr1ds1dp2qfzyf32v60vxpd8rcnxv319l5"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(;; For testing
 | 
			
		||||
     `( ;; For testing
 | 
			
		||||
       ("python-mock" ,python-mock)
 | 
			
		||||
       ("python-pytest-mock" ,python-pytest-mock)
 | 
			
		||||
       ("python-pytest" ,python-pytest)))
 | 
			
		||||
| 
						 | 
				
			
			@ -10615,6 +10648,191 @@ docstring and colored output.")
 | 
			
		|||
(define-public python2-cleo
 | 
			
		||||
  (package-with-python2 python-cleo))
 | 
			
		||||
 | 
			
		||||
(define-public python-tomlkit
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-tomlkit")
 | 
			
		||||
    (version "0.5.7")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "tomlkit" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "18820ga5z3if1w8dvykxrfm000akracq01ic402xrbljgbn5grn4"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("python-pytest" ,python-pytest)))
 | 
			
		||||
    (home-page
 | 
			
		||||
     "https://github.com/sdispater/tomlkit")
 | 
			
		||||
    (synopsis "Style preserving TOML library")
 | 
			
		||||
    (description
 | 
			
		||||
     "TOML Kit is a 0.5.0-compliant TOML library.  It includes a parser that
 | 
			
		||||
preserves all comments, indentations, whitespace and internal element ordering,
 | 
			
		||||
and makes them accessible and editable via an intuitive API.  It can also
 | 
			
		||||
create new TOML documents from scratch using the provided helpers.  Part of the
 | 
			
		||||
implementation as been adapted, improved and fixed from Molten.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public python-shellingham
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-shellingham")
 | 
			
		||||
    (version "1.3.1")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "shellingham" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1q7kws7w4x2hji3g7y0ni9ddk4sd676ylrb3db54gbpys6xj6nwq"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (home-page
 | 
			
		||||
     "https://github.com/sarugaku/shellingham")
 | 
			
		||||
    (synopsis "Tool to detect surrounding shell")
 | 
			
		||||
    (description
 | 
			
		||||
     "Shellingham detects what shell the current Python executable is
 | 
			
		||||
running in.")
 | 
			
		||||
    (license license:isc)))
 | 
			
		||||
 | 
			
		||||
(define-public python-memcached
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-memcached")
 | 
			
		||||
    (version "1.59")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "python-memcached" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (propagated-inputs `(("python-six" ,python-six)))
 | 
			
		||||
    (home-page
 | 
			
		||||
     "https://github.com/linsomniac/python-memcached")
 | 
			
		||||
    (synopsis "Pure python memcached client")
 | 
			
		||||
    (description
 | 
			
		||||
     "This software is a pure Python interface to the memcached memory cache
 | 
			
		||||
daemon.  It is the client side software which allows storing values in one or
 | 
			
		||||
more, possibly remote, memcached servers.")
 | 
			
		||||
    (license license:psfl)))
 | 
			
		||||
 | 
			
		||||
(define-public python-clikit
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-clikit")
 | 
			
		||||
    (version "0.2.4")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "clikit" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0dc8czib5f4j9px1ivcpqnmivnx2zjpc0xb00ldrhsqylks7r06n"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-pastel" ,python-pastel)
 | 
			
		||||
       ("python-pylev" ,python-pylev)))
 | 
			
		||||
    (home-page "https://github.com/sdispater/clikit")
 | 
			
		||||
    (synopsis "Group of utilities to build command line interfaces")
 | 
			
		||||
    (description
 | 
			
		||||
     "CliKit is a group of utilities to build testable command line
 | 
			
		||||
interfaces.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public python-msgpack-python
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-msgpack-python")
 | 
			
		||||
    (version "0.5.6")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "msgpack-python" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "16wh8qgybmfh4pjp8vfv78mdlkxfmcasg78lzlnm6nslsfkci31p"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (home-page "http://msgpack.org/")
 | 
			
		||||
    (synopsis "Package to deserialize messages in MessagePack binary format")
 | 
			
		||||
    (description
 | 
			
		||||
     "MessagePack is an efficient binary serialization format.  It lets you
 | 
			
		||||
exchange data among multiple languages like JSON.  But it's faster and
 | 
			
		||||
smaller.  Small integers are encoded into a single byte, and typical short
 | 
			
		||||
strings require only one extra byte in addition to the strings themselves.")
 | 
			
		||||
    (license license:asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public python-cachy
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-cachy")
 | 
			
		||||
    (version "0.2.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "cachy" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0v6mjyhgx6j7ya20bk69cr3gdzdkdf6psay0h090rscclgji65dp"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("python-fakeredis" ,python-fakeredis)
 | 
			
		||||
       ("python-flexmock" ,python-flexmock)
 | 
			
		||||
       ("python-pytest" ,python-pytest)))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-memcached" ,python-memcached)
 | 
			
		||||
       ("python-msgpack-python" ,python-msgpack-python)
 | 
			
		||||
       ("python-redis" ,python-redis)))
 | 
			
		||||
    (home-page "https://github.com/sdispater/cachy")
 | 
			
		||||
    (synopsis "Simple yet effective caching library")
 | 
			
		||||
    (description
 | 
			
		||||
     "Cachy provides a simple yet effective caching library.  A simple but
 | 
			
		||||
powerful API: thread-safety; decorator syntax; support for memcached, redis,
 | 
			
		||||
database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public poetry
 | 
			
		||||
  (package
 | 
			
		||||
    (name "poetry")
 | 
			
		||||
    (version "0.12.17")
 | 
			
		||||
    ;; Poetry can only be built from source with poetry.
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "poetry" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "0gxwcd65qjmzqzppf53x51sic1rbcd9py6cdzx3aprppipimslvf"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f ;; Pypi does not have tests.
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (replace 'build
 | 
			
		||||
           (lambda _
 | 
			
		||||
             ;; Bug in poetry https://github.com/sdispater/poetry/issues/866.
 | 
			
		||||
             (invoke "sed" "-i" "-e" "s/from distutils.core/from setuptools/"
 | 
			
		||||
                     "setup.py")
 | 
			
		||||
             #t)))))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-cachecontrol" ,python-cachecontrol)
 | 
			
		||||
       ("python-cachy" ,python-cachy)
 | 
			
		||||
       ("python-cleo" ,python-cleo)
 | 
			
		||||
       ("python-glob2" ,python-glob2)
 | 
			
		||||
       ("python-html5lib" ,python-html5lib)
 | 
			
		||||
       ("python-jsonschema" ,python-jsonschema)
 | 
			
		||||
       ("python-msgpack" ,python-msgpack)
 | 
			
		||||
       ("python-pathlib2" ,python-pathlib2)
 | 
			
		||||
       ("python-pkginfo" ,python-pkginfo)
 | 
			
		||||
       ("python-pyparsing" ,python-pyparsing)
 | 
			
		||||
       ("python-pyrsistent" ,python-pyrsistent)
 | 
			
		||||
       ("python-requests" ,python-requests)
 | 
			
		||||
       ("python-requests-toolbelt" ,python-requests-toolbelt)
 | 
			
		||||
       ("python-shellingham" ,python-shellingham)
 | 
			
		||||
       ("python-tomlkit" ,python-tomlkit)
 | 
			
		||||
       ("python-virtualenv" ,python-virtualenv)))
 | 
			
		||||
    (home-page "https://poetry.eustace.io/")
 | 
			
		||||
    (synopsis "Python dependency management and packaging made easy")
 | 
			
		||||
    (description "Poetry is a tool for dependency management and packaging
 | 
			
		||||
in Python.  It allows you to declare the libraries your project depends on and
 | 
			
		||||
it will manage (install/update) them for you.")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public python-lazy-object-proxy
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-lazy-object-proxy")
 | 
			
		||||
| 
						 | 
				
			
			@ -14325,14 +14543,20 @@ such as figshare or Zenodo.")
 | 
			
		|||
(define-public python-pyro4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-pyro4")
 | 
			
		||||
    (version "4.75")
 | 
			
		||||
    (version "4.77")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (pypi-uri "Pyro4" version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "1dfpp36imddx19yv0kd28gk1l71ckhpqy6jd590wpm2680jw15rq"))))
 | 
			
		||||
        (base32 "0gsjg869y4gpy265s1gj1f2qy6jn5iz8r2bwwnq78r1r5yi15zib"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:tests? #f)) ;FIXME: Some tests require network access.
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("python-cloudpickle" ,python-cloudpickle)
 | 
			
		||||
       ("python-dill" ,python-dill)
 | 
			
		||||
       ("python-msgpack" ,python-msgpack)))
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("python-serpent" ,python-serpent)))
 | 
			
		||||
    (home-page "https://pyro4.readthedocs.io")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,8 @@
 | 
			
		|||
  #:use-module ((guix licenses) #:prefix license:)
 | 
			
		||||
  #:use-module (guix packages)
 | 
			
		||||
  #:use-module (guix download)
 | 
			
		||||
  #:use-module (guix build-system cargo))
 | 
			
		||||
  #:use-module (guix build-system cargo)
 | 
			
		||||
  #:use-module (gnu packages crates-io))
 | 
			
		||||
 | 
			
		||||
(define-public rust-cbindgen
 | 
			
		||||
  (package
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +51,7 @@
 | 
			
		|||
       (("ansi-term" ,rust-ansi-term-0.11)
 | 
			
		||||
        ("atty" ,rust-atty-0.2)
 | 
			
		||||
        ("autocfg" ,rust-autocfg-0.1)
 | 
			
		||||
        ("bitflags" ,rust-bitflags-1.1)
 | 
			
		||||
        ("bitflags" ,rust-bitflags-1)
 | 
			
		||||
        ("cfg-if" ,rust-cfg-if-0.1)
 | 
			
		||||
        ("cloudabi" ,rust-cloudabi-0.0)
 | 
			
		||||
        ("fuchsia-cprng" ,rust-fuchsia-cprng-0.1)
 | 
			
		||||
| 
						 | 
				
			
			@ -84,936 +85,3 @@
 | 
			
		|||
    (description
 | 
			
		||||
     "This package provides a tool for generating C/C++ bindings to Rust code.")
 | 
			
		||||
    (license license:mpl2.0)))
 | 
			
		||||
 | 
			
		||||
;;;
 | 
			
		||||
;;;^L
 | 
			
		||||
;;;
 | 
			
		||||
 | 
			
		||||
(define rust-ansi-term-0.11
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-ansi-term")
 | 
			
		||||
    (version "0.11.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "ansi_term" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/ogham/rust-ansi-term")
 | 
			
		||||
    (synopsis "Library for ANSI terminal colours and styles")
 | 
			
		||||
    (description
 | 
			
		||||
     "This is a library for controlling colours and formatting, such as red bold
 | 
			
		||||
text or blue underlined text, on ANSI terminals.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-atty-0.2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-atty")
 | 
			
		||||
    (version "0.2.13")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "atty" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "140sswp1bwqwc4zk80bxkbnfb3g936hgrb77g9g0k1zcld3wc0qq"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/softprops/atty")
 | 
			
		||||
    (synopsis "A simple interface for querying atty")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a simple interface for querying atty.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-autocfg-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-autocfg")
 | 
			
		||||
    (version "0.1.7")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "autocfg" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/cuviper/autocfg")
 | 
			
		||||
    (synopsis "Automatic cfg for Rust compiler features")
 | 
			
		||||
    (description "Rust library for build scripts to automatically configure
 | 
			
		||||
code based on compiler support.  Code snippets are dynamically tested to see
 | 
			
		||||
if the @code{rustc} will accept them, rather than hard-coding specific version
 | 
			
		||||
support.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-bitflags-1.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-bitflags")
 | 
			
		||||
    (version "1.1.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "bitflags" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1zc1qb1hwsnl2d8rhzicsv9kqd5b2hwbrscrcfw5as4sfr35659x"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/bitflags/bitflags")
 | 
			
		||||
    (synopsis "Macro to generate structures which behave like bitflags")
 | 
			
		||||
    (description "This package provides a macro to generate structures which
 | 
			
		||||
behave like a set of bitflags.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-cfg-if-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-cfg-if")
 | 
			
		||||
    (version "0.1.10")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "cfg-if" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/alexcrichton/cfg-if")
 | 
			
		||||
    (synopsis "Define an item depending on parameters")
 | 
			
		||||
    (description "This package provides a macro to ergonomically define an item
 | 
			
		||||
depending on a large number of #[cfg] parameters.  Structured like an
 | 
			
		||||
@code{if-else} chain, the first matching branch is the item that gets emitted.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-clap-2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-clap")
 | 
			
		||||
    (version "2.33.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "clap" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1nf6ld3bims1n5vfzhkvcb55pdzh04bbhzf8nil5vvw05nxzarsh"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://clap.rs/")
 | 
			
		||||
    (synopsis "Command Line Argument Parser")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a simple to use, efficient, and full-featured
 | 
			
		||||
Command Line Argument Parser.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-cloudabi-0.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-cloudabi")
 | 
			
		||||
    (version "0.0.3")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "cloudabi" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://nuxi.nl/cloudabi/")
 | 
			
		||||
    (synopsis "Low level interface to CloudABI")
 | 
			
		||||
    (description
 | 
			
		||||
     "Low level interface to CloudABI.  Contains all syscalls and related types.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:bsd-2)))
 | 
			
		||||
 | 
			
		||||
(define rust-fuchsia-cprng-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-fuchsia-cprng")
 | 
			
		||||
    (version "0.1.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "fuchsia-cprng" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1fnkqrbz7ixxzsb04bsz9p0zzazanma8znfdqjvh39n14vapfvx0"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-cprng")
 | 
			
		||||
    (synopsis "Fuchsia cryptographically secure pseudorandom number generator")
 | 
			
		||||
    (description "Thix package provides a rust crate for the Fuchsia
 | 
			
		||||
cryptographically secure pseudorandom number generator.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define rust-itoa-0.4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-itoa")
 | 
			
		||||
    (version "0.4.4")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "itoa" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0zvg2d9qv3avhf3d8ggglh6fdyw8kkwqg3r4622ly5yhxnvnc4jh"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/dtolnay/itoa")
 | 
			
		||||
    (synopsis "Fast functions for printing integer primitives")
 | 
			
		||||
    (description "This crate provides fast functions for printing integer
 | 
			
		||||
primitives to an @code{io::Write}.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-libc-0.2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-libc")
 | 
			
		||||
    (version "0.2.65")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (crate-uri "libc" version))
 | 
			
		||||
       (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "1s14bjxnz6haw0gr1h3j4sr7s2s407hpgm8dxhwnl7yzgxia0c8s"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/rust-lang/libc")
 | 
			
		||||
    (synopsis "Raw FFI bindings to platform libraries like libc")
 | 
			
		||||
    (description
 | 
			
		||||
     "libc provides all of the definitions necessary to easily
 | 
			
		||||
interoperate with C code (or \"C-like\" code) on each of the platforms
 | 
			
		||||
that Rust supports. This includes type definitions (e.g., c_int),
 | 
			
		||||
constants (e.g., EINVAL) as well as function headers (e.g., malloc).
 | 
			
		||||
 | 
			
		||||
This crate exports all underlying platform types, functions, and
 | 
			
		||||
constants under the crate root, so all items are accessible as
 | 
			
		||||
@samp{libc::foo}.  The types and values of all the exported APIs match
 | 
			
		||||
the platform that libc is compiled for.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat
 | 
			
		||||
                   license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-log-0.4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-log")
 | 
			
		||||
    (version "0.4.8")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "log" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1xz18ixccl5c6np4linv3ypc7hpmmgpc5zzd2ymp2ssfx0mhbdhl"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/rust-lang/log")
 | 
			
		||||
    (synopsis "Lightweight logging facade for Rust")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a lightweight logging facade for Rust.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-numtoa-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-numtoa")
 | 
			
		||||
    (version "0.1.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "numtoa" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1vs9rhggqbql1p26x8nkha1j06wawwgb2jp5fs88b5gi7prvvy5q"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://gitlab.com/mmstick/numtoa")
 | 
			
		||||
    (synopsis "Convert numbers into stack-allocated byte arrays")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package can convert numbers into stack-allocated byte arrays.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-proc-macro2-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-proc-macro2")
 | 
			
		||||
    (version "1.0.6")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "proc-macro2" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "09rgb5ab0jgw39kyad0lgqs4nb9yaf7mwcrgxqnsxbn4il54g7lw"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/alexcrichton/proc-macro2")
 | 
			
		||||
    (synopsis "Stable implementation of the upcoming new `proc_macro` API")
 | 
			
		||||
    (description "This package provides a stable implementation of the upcoming new
 | 
			
		||||
`proc_macro` API.  Comes with an option, off by default, to also reimplement itself
 | 
			
		||||
in terms of the upstream unstable API.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-quote-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-quote")
 | 
			
		||||
    (version "1.0.2")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "quote" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1zkc46ryacf2jdkc6krsy2z615xbk1x8kp1830rcxz3irj5qqfh5"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/dtolnay/quote")
 | 
			
		||||
    (synopsis "Quasi-quoting macro quote!(...)")
 | 
			
		||||
    (description "Quasi-quoting macro quote!(...)")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-0.6
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand")
 | 
			
		||||
    (version "0.6.5")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1jl4449jcl4wgmzld6ffwqj5gwxrp8zvx8w573g1z368qg6xlwbd"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand")
 | 
			
		||||
    (synopsis "Random number generators and other randomness functionality")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package contains random number generators and other randomness
 | 
			
		||||
functionality.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-chacha-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-chacha")
 | 
			
		||||
    (version "0.1.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_chacha" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1vxwyzs4fy1ffjc8l00fsyygpiss135irjf7nyxgq2v0lqf3lvam"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_chacha")
 | 
			
		||||
    (synopsis "ChaCha random number generator")
 | 
			
		||||
    (description "ChaCha random number generator")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-core-0.4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-core")
 | 
			
		||||
    (version "0.4.2")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_core" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1p09ynysrq1vcdlmcqnapq4qakl2yd1ng3kxh3qscpx09k2a6cww"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_core")
 | 
			
		||||
    (synopsis
 | 
			
		||||
      "Core random number generator traits and tools for implementation.")
 | 
			
		||||
    (description
 | 
			
		||||
      "Core random number generator traits and tools for implementation.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-core-0.3
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit rust-rand-core-0.4)
 | 
			
		||||
    (name "rust-rand-core")
 | 
			
		||||
    (version "0.3.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_core" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0jzdgszfa4bliigiy4hi66k7fs3gfwi2qxn8vik84ph77fwdwvvs"))))
 | 
			
		||||
    ;; This version is a 0.3 API wrapper around the 0.4 version.
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:cargo-inputs (("rand-core" ,rust-rand-core-0.4))))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-hc-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-hc")
 | 
			
		||||
    (version "0.1.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_hc" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1i0vl8q5ddvvy0x8hf1zxny393miyzxkwqnw31ifg6p0gdy6fh3v"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_hc")
 | 
			
		||||
    (synopsis "HC128 random number generator")
 | 
			
		||||
    (description "HC128 random number generator")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-isaac-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-isaac")
 | 
			
		||||
    (version "0.1.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_isaac" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "027flpjr4znx2csxk7gxb7vrf9c7y5mydmvg5az2afgisp4rgnfy"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_isaac")
 | 
			
		||||
    (synopsis "ISAAC random number generator")
 | 
			
		||||
    (description "ISAAC random number generator")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-jitter-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-jitter")
 | 
			
		||||
    (version "0.1.4")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_jitter" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "16z387y46bfz3csc42zxbjq89vcr1axqacncvv8qhyy93p4xarhi"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/rust-random/rand")
 | 
			
		||||
    (synopsis
 | 
			
		||||
      "Random number generator based on timing jitter")
 | 
			
		||||
    (description
 | 
			
		||||
      "Random number generator based on timing jitter")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-os-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-os")
 | 
			
		||||
    (version "0.1.3")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_os" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0wahppm0s64gkr2vmhcgwc0lij37in1lgfxg5rbgqlz0l5vgcxbv"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_os")
 | 
			
		||||
    (synopsis "OS backed Random Number Generator")
 | 
			
		||||
    (description "OS backed Random Number Generator")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-pcg-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-pcg")
 | 
			
		||||
    (version "0.1.2")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_pcg" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0i0bdla18a8x4jn1w0fxsbs3jg7ajllz6azmch1zw33r06dv1ydb"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_pcg")
 | 
			
		||||
    (synopsis
 | 
			
		||||
      "Selected PCG random number generators")
 | 
			
		||||
    (description
 | 
			
		||||
      "Selected PCG random number generators")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rand-xorshift-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rand-xorshift")
 | 
			
		||||
    (version "0.1.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rand_xorshift" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0p2x8nr00hricpi2m6ca5vysiha7ybnghz79yqhhx6sl4gkfkxyb"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://crates.io/crates/rand_xorshift")
 | 
			
		||||
    (synopsis "Xorshift random number generator")
 | 
			
		||||
    (description
 | 
			
		||||
      "Xorshift random number generator")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-rdrand-0.4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-rdrand")
 | 
			
		||||
    (version "0.4.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "rdrand" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1cjq0kwx1bk7jx3kzyciiish5gqsj7620dm43dc52sr8fzmm9037"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/nagisa/rust_rdrand/")
 | 
			
		||||
    (synopsis "Random number generator")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package is an implementation of random number generator based on
 | 
			
		||||
@code{rdrand} and @cpde{rdseed} instructions")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:isc)))
 | 
			
		||||
 | 
			
		||||
(define rust-redox-syscall-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-redox-syscall")
 | 
			
		||||
    (version "0.1.56")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "redox_syscall" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "110y7dyfm2vci4x5vk7gr0q551dvp31npl99fnsx2fb17wzwcf94"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://gitlab.redox-os.org/redox-os/syscall")
 | 
			
		||||
    (synopsis "Rust library to access raw Redox system calls")
 | 
			
		||||
    (description "This package provides a Rust library to access raw Redox
 | 
			
		||||
system calls.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-redox-termios-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-redox-termios")
 | 
			
		||||
    (version "0.1.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "redox-termios" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0xhgvdh62mymgdl3jqrngl8hr4i8xwpnbsxnldq0l47993z1r2by"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/redox-os/termios")
 | 
			
		||||
    (synopsis "Rust library to access Redox termios functions")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a Rust library to access Redox termios functions.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-remove-dir-all-0.5
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-remove-dir-all")
 | 
			
		||||
    (version "0.5.2")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "remove-dir-all" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0bkrlyg26mgizpiy1yb2hhpgscxcag8r5fnckqsvk25608vzm0sa"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/XAMPPRocky/remove_dir_all.git")
 | 
			
		||||
    (synopsis "Implementation of remove_dir_all for Windows")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a safe, reliable implementation of remove_dir_all
 | 
			
		||||
for Windows.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-ryu-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-ryu")
 | 
			
		||||
    (version "1.0.2")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "ryu" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1j0h74f1xqf9hjkhanp8i20mqc1aw35kr1iq9i79q7713mn51a5z"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/dtolnay/ryu")
 | 
			
		||||
    (synopsis
 | 
			
		||||
      "Fast floating point to string conversion")
 | 
			
		||||
    (description
 | 
			
		||||
      "Fast floating point to string conversion")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0 license:boost1.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-serde-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-serde")
 | 
			
		||||
    (version "1.0.101")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "serde" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1p8r24hagcsrl92w5z32nfrg9040qkgqf8iwwnf7mzigpavwk5lp"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://serde.rs")
 | 
			
		||||
    (synopsis "Generic serialization/deserialization framework")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a generic serialization/deserialization framework.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-serde-derive-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-serde-derive")
 | 
			
		||||
    (version "1.0.101")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "serde-derive" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0bn0wz3j48248187mfmypyqnh73mq734snxxhr05vmgcl51kl4sb"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://serde.rs")
 | 
			
		||||
    (synopsis
 | 
			
		||||
      "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
 | 
			
		||||
    (description
 | 
			
		||||
      "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-serde-json-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-serde-json")
 | 
			
		||||
    (version "1.0.41")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "serde-json" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1hipk84x40454mf599752mi7l08wb8qakz8vd6d3zp57d0mfnwig"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/serde-rs/json")
 | 
			
		||||
    (synopsis "A JSON serialization file format")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a JSON serialization file format.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-strsim-0.8
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-strsim")
 | 
			
		||||
    (version "0.8.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "strsim" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/dguo/strsim-rs")
 | 
			
		||||
    (synopsis "Rust implementations of string similarity metrics")
 | 
			
		||||
    (description "This crate includes implementations of string similarity
 | 
			
		||||
metrics.  It includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro,
 | 
			
		||||
and Jaro-Winkler.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-syn-1.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-syn")
 | 
			
		||||
    (version "1.0.5")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "syn" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1gw03w7lzrlqmp2vislcybikgl5wkhrqi6sy70w93xss2abhx1b6"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/dtolnay/syn")
 | 
			
		||||
    (synopsis "Parser for Rust source code")
 | 
			
		||||
    (description "Parser for Rust source code")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-tempfile-3.0
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-tempfile")
 | 
			
		||||
    (version "3.0.8")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "tempfile" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1vqk7aq2l04my2r3jiyyxirnf8f90nzcvjasvrajivb85s7p7i3x"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "http://stebalien.com/projects/tempfile-rs")
 | 
			
		||||
    (synopsis "Library for managing temporary files and directories")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a library for managing temporary files and
 | 
			
		||||
directories.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:expat license:asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define rust-termion-1.5
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-termion")
 | 
			
		||||
    (version "1.5.3")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "termion" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0c634rg520zjjfhwnxrc2jbfjz7db0rcpsjs1qici0nyghpv53va"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://gitlab.redox-os.org/redox-os/termion")
 | 
			
		||||
    (synopsis "Library for manipulating terminals")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a bindless library for manipulating terminals.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-textwrap-0.11
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-textwrap")
 | 
			
		||||
    (version "0.11.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "textwrap" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0q5hky03ik3y50s9sz25r438bc4nwhqc6dqwynv4wylc807n29nk"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/mgeisler/textwrap")
 | 
			
		||||
    (synopsis "Library for word wrapping, indenting, and dedenting strings")
 | 
			
		||||
    (description
 | 
			
		||||
     "Textwrap is a small library for word wrapping, indenting, and dedenting
 | 
			
		||||
strings.  You can use it to format strings (such as help and error messages)
 | 
			
		||||
for display in commandline applications.  It is designed to be efficient and
 | 
			
		||||
handle Unicode characters correctly.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define rust-toml-0.5
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-toml")
 | 
			
		||||
    (version "0.5.3")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "toml" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "093p48vpqm4bb8q3514xsij0dkljxlr3jp9ypxr4p48xjisvxan7"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/alexcrichton/toml-rs")
 | 
			
		||||
    (synopsis "Rust encoder and decoder of TOML-formatted files and streams")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a native Rust encoder and decoder of TOML-formatted
 | 
			
		||||
files and streams.  Provides implementations of the standard
 | 
			
		||||
Serialize/Deserialize traits for TOML data to facilitate deserializing and
 | 
			
		||||
serializing Rust structures.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-unicode-width-0.1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-unicode-width")
 | 
			
		||||
    (version "0.1.6")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "unicode-width" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "082f9hv1r3gcd1xl33whjhrm18p0w9i77zhhhkiccb5r47adn1vh"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/unicode-rs/unicode-width")
 | 
			
		||||
    (synopsis "Determine displayed width according to Unicode rules")
 | 
			
		||||
    (description "This crate allows you to determine displayed width of
 | 
			
		||||
@code{char} and @code{str} types according to Unicode Standard Annex #11 rules.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-unicode-xid-0.2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-unicode-xid")
 | 
			
		||||
    (version "0.2.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "unicode-xid" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0z09fn515xm7zyr0mmdyxa9mx2f7azcpv74pqmg611iralwpcvl2"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/unicode-rs/unicode-xid")
 | 
			
		||||
    (synopsis "Determine Unicode XID related properties")
 | 
			
		||||
    (description "Determine whether characters have the XID_Start
 | 
			
		||||
or XID_Continue properties according to Unicode Standard Annex #31.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0 license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-vec-map-0.8
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-vec-map")
 | 
			
		||||
    (version "0.8.1")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "vec_map" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "06n8hw4hlbcz328a3gbpvmy0ma46vg1lc0r5wf55900szf3qdiq5"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/contain-rs/vec-map")
 | 
			
		||||
    (synopsis "Simple map based on a vector for small integer keys")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a simple map based on a vector for small integer keys.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-winapi-0.3
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-winapi")
 | 
			
		||||
    (version "0.3.8")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "winapi" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1ii9j9lzrhwri0902652awifzx9fpayimbp6hfhhc296xcg0k4w0"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    ;; This package depends unconditionally on these two crates.
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:cargo-inputs
 | 
			
		||||
       (("winapi-i686-pc-windows-gnu" ,rust-winapi-i686-pc-windows-gnu-0.4)
 | 
			
		||||
        ("winapi-x86-64-pc-windows-gnu" ,rust-winapi-x86-64-pc-windows-gnu-0.4))))
 | 
			
		||||
    (home-page "https://github.com/retep998/winapi-rs")
 | 
			
		||||
    (synopsis "Raw FFI bindings for all of Windows API")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package contains raw FFI bindings for all of Windows API.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define-public rust-winapi-i686-pc-windows-gnu-0.4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-winapi-i686-pc-windows-gnu")
 | 
			
		||||
    (version "0.4.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "winapi-i686-pc-windows-gnu" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/retep998/winapi-rs")
 | 
			
		||||
    (synopsis "Import libraries for the i686-pc-windows-gnu target")
 | 
			
		||||
    (description "This crate provides import libraries for the
 | 
			
		||||
i686-pc-windows-gnu target.  Please don't use this crate directly, depend on
 | 
			
		||||
@code{winapi} instead.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
 | 
			
		||||
(define rust-winapi-x86-64-pc-windows-gnu-0.4
 | 
			
		||||
  (package
 | 
			
		||||
    (name "rust-winapi-x86-64-pc-windows-gnu")
 | 
			
		||||
    (version "0.4.0")
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
        (method url-fetch)
 | 
			
		||||
        (uri (crate-uri "winapi-x86_64-pc-windows-gnu" version))
 | 
			
		||||
        (file-name (string-append name "-" version ".crate"))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"))))
 | 
			
		||||
    (build-system cargo-build-system)
 | 
			
		||||
    (home-page "https://github.com/retep998/winapi-rs")
 | 
			
		||||
    (synopsis "Import libraries for the x86_64-pc-windows-gnu target")
 | 
			
		||||
    (description "This package provides import libraries for the
 | 
			
		||||
x86_64-pc-windows-gnu target.  Please don't use this crate directly, depend on
 | 
			
		||||
@code{winapi} instead.")
 | 
			
		||||
    (properties '((hidden? . #t)))
 | 
			
		||||
    (license (list license:asl2.0
 | 
			
		||||
                   license:expat))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -499,6 +499,43 @@ Registration and U2F Authentication operations, and functionality for
 | 
			
		|||
verifying the cryptographic operations.")
 | 
			
		||||
    (license license:bsd-2)))
 | 
			
		||||
 | 
			
		||||
(define-public pam-u2f
 | 
			
		||||
  (package
 | 
			
		||||
    (name "pam-u2f")
 | 
			
		||||
    (version "1.0.8")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri
 | 
			
		||||
               (git-reference
 | 
			
		||||
                (url "https://github.com/Yubico/pam-u2f.git")
 | 
			
		||||
                (commit (string-append "pam_u2f-" version))))
 | 
			
		||||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "04d9davyi33gqbvga1rvh9fijp6f16mx2xmnn4n61rnhcn2jac98"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags
 | 
			
		||||
       (list (string-append "--with-pam-dir="
 | 
			
		||||
                            (assoc-ref %outputs "out") "/lib/security"))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("libu2f-host" ,libu2f-host)
 | 
			
		||||
       ("libu2f-server" ,libu2f-server)
 | 
			
		||||
       ("linux-pam" ,linux-pam)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("autoconf" ,autoconf)
 | 
			
		||||
       ("automake" ,automake)
 | 
			
		||||
       ("libtool" ,libtool)
 | 
			
		||||
       ("asciidoc" ,asciidoc)
 | 
			
		||||
       ("pkg-config" ,pkg-config)))
 | 
			
		||||
    (home-page "https://developers.yubico.com/pam-u2f/")
 | 
			
		||||
    (synopsis "PAM module for U2F authentication")
 | 
			
		||||
    (description
 | 
			
		||||
     "This package provides a module implementing PAM over U2F, providing an
 | 
			
		||||
easy way to integrate the YubiKey (or other U2F compliant authenticators) into
 | 
			
		||||
your existing infrastructure.")
 | 
			
		||||
    (license license:bsd-2)))
 | 
			
		||||
 | 
			
		||||
(define-public python-fido2
 | 
			
		||||
  (package
 | 
			
		||||
    (name "python-fido2")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,14 +53,15 @@
 | 
			
		|||
  (package
 | 
			
		||||
    (name "cereal")
 | 
			
		||||
    (version "1.2.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "https://github.com/USCiLab/cereal/archive/v"
 | 
			
		||||
                                  version ".tar.gz"))
 | 
			
		||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
       (uri (git-reference
 | 
			
		||||
             (url "https://github.com/USCiLab/cereal.git")
 | 
			
		||||
             (commit (string-append "v" version))))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0kj32h3j2128anig0g9gzw82kfyd5xqfkwq6vdyv900jx8i1qckx"))))
 | 
			
		||||
        (base32 "1vxkrsnxkiblzi1z61vfix167c184fy868sgwj2dxxgbgjcq2nrh"))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(;; The only included tests are portability tests requiring
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,33 +74,18 @@
 | 
			
		|||
       ("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-rate" ,go-golang-org-x-time-rate)
 | 
			
		||||
       ("go-golang-org-x-time" ,go-golang-org-x-time)
 | 
			
		||||
       ("go-gopkg.in-ldap.v2" ,go-gopkg.in-ldap.v2)
 | 
			
		||||
       ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
 | 
			
		||||
       ("go-github-com-gogo-protobuf-gogoproto"
 | 
			
		||||
        ,go-github-com-gogo-protobuf-gogoproto)
 | 
			
		||||
       ("go-github-com-gogo-protobuf-protoc-gen-gogo"
 | 
			
		||||
        ,go-github-com-gogo-protobuf-protoc-gen-gogo)
 | 
			
		||||
       ("go-github-com-prometheus-client-golang-prometheus"
 | 
			
		||||
        ,go-github-com-prometheus-client-golang-prometheus)
 | 
			
		||||
       ("go-github-com-shirou-gopsutil" ,go-github-com-shirou-gopsutil)
 | 
			
		||||
       ("go-golang-org-x-net-bpf" ,go-golang-org-x-net-bpf)
 | 
			
		||||
       ("go-golang-org-x-net-internal-iana" ,go-golang-org-x-net-internal-iana)
 | 
			
		||||
       ("go-golang-org-x-net-internal-socket"
 | 
			
		||||
        ,go-golang-org-x-net-internal-socket)
 | 
			
		||||
       ("go-golang-org-x-net-internal-socks"
 | 
			
		||||
        ,go-golang-org-x-net-internal-socks)
 | 
			
		||||
       ("go-golang-org-x-net-ipv4" ,go-golang-org-x-net-ipv4)
 | 
			
		||||
       ("go-golang-org-x-net-ipv6" ,go-golang-org-x-net-ipv6)
 | 
			
		||||
       ("go-golang-org-x-net-proxy" ,go-golang-org-x-net-proxy)
 | 
			
		||||
       ("go-golang-org-x-text-unicode-norm" ,go-golang-org-x-text-unicode-norm)
 | 
			
		||||
       ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
 | 
			
		||||
       ("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-qr" ,go-github-com-vitrun-qart-qr)
 | 
			
		||||
       ("go-github-com-vitrun-qart-coding" ,go-github-com-vitrun-qart-coding)
 | 
			
		||||
       ("go-github-com-vitrun-qart-gf256" ,go-github-com-vitrun-qart-gf256)
 | 
			
		||||
       ("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"
 | 
			
		||||
| 
						 | 
				
			
			@ -461,7 +446,7 @@ database/sql package.")
 | 
			
		|||
    (propagated-inputs
 | 
			
		||||
     `(("go-github-com-oschwald-maxminddb-golang"
 | 
			
		||||
        ,go-github-com-oschwald-maxminddb-golang)
 | 
			
		||||
       ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "github.com/oschwald/geoip2-golang"
 | 
			
		||||
       #:tests? #f)) ; Requires some unpackaged software and test data
 | 
			
		||||
| 
						 | 
				
			
			@ -488,7 +473,7 @@ GeoLite2 and GeoIP2 databases in Go.")
 | 
			
		|||
                  "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "github.com/oschwald/maxminddb-golang"
 | 
			
		||||
         #:tests? #f)) ; Requires some unpackaged software and test data
 | 
			
		||||
| 
						 | 
				
			
			@ -629,11 +614,11 @@ environment")
 | 
			
		|||
    (home-page "https://github.com/thejerf/suture")
 | 
			
		||||
    (license expat)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-vitrun-qart-coding
 | 
			
		||||
(define-public go-github-com-vitrun-qart
 | 
			
		||||
  (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
 | 
			
		||||
        (revision "0"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-vitrun-qart-coding")
 | 
			
		||||
      (name "go-github-com-vitrun-qart")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -647,77 +632,16 @@ environment")
 | 
			
		|||
                  "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "github.com/vitrun/qart/coding"
 | 
			
		||||
         #:unpack-path "github.com/vitrun/qart"))
 | 
			
		||||
      (synopsis "Low-level QR coding library")
 | 
			
		||||
       `(#:import-path "github.com/vitrun/qart"))
 | 
			
		||||
      (synopsis "Create QR codes with an embedded image")
 | 
			
		||||
      (description "This package provides a library for embedding
 | 
			
		||||
human-meaningful graphics in QR codes.  However, instead of scribbling on
 | 
			
		||||
redundant pieces and relying on error correction to preserve the meaning,
 | 
			
		||||
@code{qart} engineers the encoded values to create the picture in a code with no
 | 
			
		||||
inherent errors.  This @code{qart} component, @code{coding}, implements
 | 
			
		||||
low-level QR coding details.")
 | 
			
		||||
      (home-page "https://github.com/vitrun/qart/")
 | 
			
		||||
      (license bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-vitrun-qart-gf256
 | 
			
		||||
  (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
 | 
			
		||||
        (revision "0"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-vitrun-qart-gf256")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://github.com/vitrun/qart")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go-github-com-vitrun-qart-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "github.com/vitrun/qart/gf256"
 | 
			
		||||
         #:unpack-path "github.com/vitrun/qart"))
 | 
			
		||||
      (synopsis "Qart library for Galois Field GF(256) math")
 | 
			
		||||
      (description "This package, a component of @code{qart}, provides @code{gf256},
 | 
			
		||||
implements arithmetic over the Galois Field GF(256).")
 | 
			
		||||
inherent errors.")
 | 
			
		||||
      (home-page "https://github.com/vitrun/qart")
 | 
			
		||||
      (license bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-vitrun-qart-qr
 | 
			
		||||
  (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
 | 
			
		||||
        (revision "0"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-vitrun-qart-qr")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://github.com/vitrun/qart")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (string-append "go-github-com-vitrun-qart-"
 | 
			
		||||
                                          version "-checkout"))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:import-path "github.com/vitrun/qart/qr"
 | 
			
		||||
         #:unpack-path "github.com/vitrun/qart"))
 | 
			
		||||
      (synopsis "Qart component for generating QR codes")
 | 
			
		||||
      (description "This package provides a library for embedding
 | 
			
		||||
human-meaningful graphics in QR codes.  However, instead of scribbling on
 | 
			
		||||
redundant pieces and relying on error correction to preserve the meaning,
 | 
			
		||||
@code{qart} engineers the encoded values to create the picture in a code with no
 | 
			
		||||
inherent errors.  This @code{qart} component, @code{qr}, provides QR code
 | 
			
		||||
generation.")
 | 
			
		||||
      (home-page "https://github.com/vitrun/qart")
 | 
			
		||||
      (license bsd-3))))
 | 
			
		||||
 | 
			
		||||
;; XXX Syncthing actually imports 'github.com/chmduquesne/rollinghash/adler32'.
 | 
			
		||||
;; Normally we'd package this module indpendenctly but the adler32 module itself
 | 
			
		||||
;; imports 'github.com/chmduquesne/rollinghash/', so this is the easy way out.
 | 
			
		||||
(define-public go-github-com-chmduquesne-rollinghash
 | 
			
		||||
  (let ((commit "a60f8e7142b536ea61bb5d84014171189eeaaa81")
 | 
			
		||||
        (revision "0"))
 | 
			
		||||
| 
						 | 
				
			
			@ -811,7 +735,7 @@ using sh's word-splitting rules.")
 | 
			
		|||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/syncthing/notify"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
 | 
			
		||||
       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
 | 
			
		||||
      (synopsis "File system event notification library")
 | 
			
		||||
      (description "This package provides @code{notify}, a file system event
 | 
			
		||||
notification library in Go.")
 | 
			
		||||
| 
						 | 
				
			
			@ -869,11 +793,11 @@ data serialization format.")
 | 
			
		|||
      (home-page "https://github.com/golang/protobuf")
 | 
			
		||||
      (license bsd-3)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-prometheus-client-model-go
 | 
			
		||||
(define-public go-github-com-prometheus-client-model
 | 
			
		||||
  (let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-prometheus-client-model-go")
 | 
			
		||||
      (name "go-github-com-prometheus-client-model")
 | 
			
		||||
      (version (git-version "0.0.2" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -886,8 +810,12 @@ data serialization format.")
 | 
			
		|||
                  "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/prometheus/client_model/go"
 | 
			
		||||
         #:unpack-path "github.com/prometheus/client_model"))
 | 
			
		||||
       '(#:import-path "github.com/prometheus/client_model"
 | 
			
		||||
         #:tests? #f
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           ;; Source-only package
 | 
			
		||||
           (delete 'build))))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-github-com-golang-protobuf-proto"
 | 
			
		||||
          ,go-github-com-golang-protobuf-proto)))
 | 
			
		||||
| 
						 | 
				
			
			@ -927,9 +855,9 @@ message streaming.")
 | 
			
		|||
      (home-page "https://github.com/matttproud/golang_protobuf_extensions")
 | 
			
		||||
      (license asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-prometheus-common-expfmt
 | 
			
		||||
(define-public go-github-com-prometheus-common
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-prometheus-common-expfmt")
 | 
			
		||||
      (name "go-github-com-prometheus-common")
 | 
			
		||||
      (version "0.4.1")
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -942,8 +870,8 @@ message streaming.")
 | 
			
		|||
                  "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/prometheus/common/expfmt"
 | 
			
		||||
         #:unpack-path "github.com/prometheus/common"
 | 
			
		||||
       '(#:import-path "github.com/prometheus/common"
 | 
			
		||||
         #:tests? #f
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
 | 
			
		||||
| 
						 | 
				
			
			@ -955,49 +883,21 @@ message streaming.")
 | 
			
		|||
                                     "/src/github.com/prometheus/common/expfmt/testdata/")
 | 
			
		||||
                      ".*\\.gz$"))
 | 
			
		||||
               #t))
 | 
			
		||||
           (replace 'check
 | 
			
		||||
             ;; Tests don't pass "vet" on go-1.11.  See
 | 
			
		||||
             ;; https://github.com/syncthing/syncthing/issues/5311.
 | 
			
		||||
             (lambda* (#:key import-path #:allow-other-keys)
 | 
			
		||||
               (invoke "go" "test"
 | 
			
		||||
                       "-vet=off"
 | 
			
		||||
                       import-path))))))
 | 
			
		||||
           ;; Source-only package
 | 
			
		||||
           (delete 'build))))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-github-com-golang-protobuf-proto"
 | 
			
		||||
          ,go-github-com-golang-protobuf-proto)
 | 
			
		||||
         ("go-github-com-matttproud-golang-protobuf-extensions-pbutil"
 | 
			
		||||
          ,go-github-com-matttproud-golang-protobuf-extensions-pbutil)
 | 
			
		||||
         ("go-github-com-prometheus-client-model-go"
 | 
			
		||||
          ,go-github-com-prometheus-client-model-go)))
 | 
			
		||||
         ("go-github-com-prometheus-client-model"
 | 
			
		||||
          ,go-github-com-prometheus-client-model)))
 | 
			
		||||
      (synopsis "Prometheus metrics")
 | 
			
		||||
      (description "This package provides tools for reading and writing
 | 
			
		||||
Prometheus metrics.")
 | 
			
		||||
      (home-page "https://github.com/prometheus/common")
 | 
			
		||||
      (license asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-prometheus-common-model
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-prometheus-common-model")
 | 
			
		||||
      (version "0.4.1")
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                       (url "https://github.com/prometheus/common.git")
 | 
			
		||||
                       (commit (string-append "v" version))))
 | 
			
		||||
                (file-name (git-file-name name version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/prometheus/common/model"
 | 
			
		||||
         #:unpack-path "github.com/prometheus/common"))
 | 
			
		||||
      (synopsis "Prometheus component")
 | 
			
		||||
      (description "This package provides a component of the Go Prometheus
 | 
			
		||||
implementation.")
 | 
			
		||||
      (home-page "https://github.com/prometheus/common")
 | 
			
		||||
      (license asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-prometheus-procfs
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-prometheus-procfs")
 | 
			
		||||
| 
						 | 
				
			
			@ -1023,9 +923,9 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
 | 
			
		|||
      (home-page "https://github.com/prometheus/procfs")
 | 
			
		||||
      (license asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-client-golang-prometheus-promhttp
 | 
			
		||||
(define-public go-github-com-prometheus-client-golang
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-client-golang-prometheus-promhttp")
 | 
			
		||||
      (name "go-github-com-prometheus-client-golang")
 | 
			
		||||
      (version "0.9.4")
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1038,22 +938,21 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
 | 
			
		|||
                  "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:tests? #f ; The tests require internet access
 | 
			
		||||
         #:import-path "github.com/prometheus/client_golang/prometheus/promhttp"
 | 
			
		||||
         #:unpack-path "github.com/prometheus/client_golang"))
 | 
			
		||||
       '(#:tests? #f
 | 
			
		||||
         #:import-path "github.com/prometheus/client_golang"
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           ;; Source-only package
 | 
			
		||||
           (delete 'build))))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-github-com-beorn7-perks-quantile"
 | 
			
		||||
          ,go-github-com-beorn7-perks-quantile)
 | 
			
		||||
         ("go-github-com-golang-protobuf-proto"
 | 
			
		||||
          ,go-github-com-golang-protobuf-proto)
 | 
			
		||||
         ("go-github-com-prometheus-common-model"
 | 
			
		||||
          ,go-github-com-prometheus-common-model)
 | 
			
		||||
         ("go-github-com-prometheus-client-model-go"
 | 
			
		||||
          ,go-github-com-prometheus-client-model-go)
 | 
			
		||||
         ("go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg"
 | 
			
		||||
          ,go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg)
 | 
			
		||||
         ("go-github-com-prometheus-common-expfmt"
 | 
			
		||||
          ,go-github-com-prometheus-common-expfmt)
 | 
			
		||||
         ("go-github-com-prometheus-client-model"
 | 
			
		||||
          ,go-github-com-prometheus-client-model)
 | 
			
		||||
         ("go-github-com-prometheus-common"
 | 
			
		||||
          ,go-github-com-prometheus-common)
 | 
			
		||||
         ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)))
 | 
			
		||||
      (synopsis "HTTP server and client tools for Prometheus")
 | 
			
		||||
      (description "This package @code{promhttp} provides HTTP client and
 | 
			
		||||
| 
						 | 
				
			
			@ -1061,43 +960,6 @@ server tools for Prometheus metrics.")
 | 
			
		|||
      (home-page "https://github.com/prometheus/client_golang")
 | 
			
		||||
      (license asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-prometheus-client-golang-prometheus
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-github-com-prometheus-client-golang-prometheus")
 | 
			
		||||
      (version "0.9.4")
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                       (url "https://github.com/prometheus/client_golang.git")
 | 
			
		||||
                       (commit (string-append "v" version))))
 | 
			
		||||
                (file-name (git-file-name name version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/prometheus/client_golang/prometheus"
 | 
			
		||||
         #:unpack-path "github.com/prometheus/client_golang"
 | 
			
		||||
         #:tests? #f)) ; 'TestHandler' test fails in this non-critical dependency
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-github-com-beorn7-perks-quantile"
 | 
			
		||||
          ,go-github-com-beorn7-perks-quantile)
 | 
			
		||||
         ("go-github-com-prometheus-common-model" ,go-github-com-prometheus-common-model)
 | 
			
		||||
         ("go-github-com-prometheus-client-model-go"
 | 
			
		||||
          ,go-github-com-prometheus-client-model-go)
 | 
			
		||||
         ("go-github-com-prometheus-common-expfmt"
 | 
			
		||||
          ,go-github-com-prometheus-common-expfmt)
 | 
			
		||||
         ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)
 | 
			
		||||
         ("go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg"
 | 
			
		||||
          ,go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg)))
 | 
			
		||||
      (synopsis "Prometheus instrumentation library for Go applications")
 | 
			
		||||
      (description "This package provides the Go client library for the
 | 
			
		||||
Prometheus monitoring and alerting system.  It has two separate parts, one for
 | 
			
		||||
instrumenting application code, and one for creating clients that talk to the
 | 
			
		||||
Prometheus HTTP API.")
 | 
			
		||||
      (home-page "https://github.com/prometheus/client_golang")
 | 
			
		||||
      (license asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public go-gopkg.in-asn1-ber.v1
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-gopkg.in-asn1-ber.v1")
 | 
			
		||||
| 
						 | 
				
			
			@ -1114,7 +976,7 @@ Prometheus HTTP API.")
 | 
			
		|||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:import-path "gopkg.in/asn1-ber.v1"
 | 
			
		||||
       ;; Tests don't pass "vet" on go-1.11.  See
 | 
			
		||||
       ;; Tests don't pass "vet" on Go since 1.11.  See
 | 
			
		||||
       ;; https://github.com/go-asn1-ber/asn1-ber/issues/20.
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
| 
						 | 
				
			
			@ -1178,28 +1040,6 @@ quoting, commenting, and escaping.")
 | 
			
		|||
      (home-page "https://github.com/flynn-archive/go-shlex")
 | 
			
		||||
      (license asl2.0))))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg")
 | 
			
		||||
    (version "0.4.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
                     (url "https://github.com/prometheus/common.git")
 | 
			
		||||
                     (commit (string-append "v" version))))
 | 
			
		||||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
 | 
			
		||||
    (build-system go-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:import-path "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg"
 | 
			
		||||
       #:unpack-path "github.com/prometheus/common"))
 | 
			
		||||
    (synopsis "Internal Prometheus component")
 | 
			
		||||
    (description "This package is an internal component of Prometheus.")
 | 
			
		||||
    (home-page "https://github.com/prometheus/common")
 | 
			
		||||
    (license asl2.0)))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-audriusbutkevicius-pfilter
 | 
			
		||||
  (let ((commit "c55ef6137fc6f075801eac099cc2687ede0f101d")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -721,42 +721,6 @@ programmer to write text-based user interfaces.")
 | 
			
		|||
      (home-page "https://github.com/nsf/termbox-go")
 | 
			
		||||
      (license license:expat))))
 | 
			
		||||
 | 
			
		||||
(define-public go-golang.org-x-crypto-ssh-terminal
 | 
			
		||||
  (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
 | 
			
		||||
        (revision "0"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "go-golang.org-x-crypto-ssh-terminal")
 | 
			
		||||
      (version (git-version "0.0.0" revision commit))
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method git-fetch)
 | 
			
		||||
                (uri (git-reference
 | 
			
		||||
                      (url "https://go.googlesource.com/crypto")
 | 
			
		||||
                      (commit commit)))
 | 
			
		||||
                (file-name (git-file-name name version))
 | 
			
		||||
                (sha256
 | 
			
		||||
                 (base32
 | 
			
		||||
                  "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
 | 
			
		||||
      (build-system go-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       '(#:import-path "golang.org/x/crypto/ssh/terminal"
 | 
			
		||||
         #:unpack-path "golang.org/x/crypto"
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
 | 
			
		||||
             (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
               (map (lambda (file)
 | 
			
		||||
                      (make-file-writable file))
 | 
			
		||||
                    (find-files
 | 
			
		||||
                     (string-append (assoc-ref outputs "out")
 | 
			
		||||
                                    "/src/golang.org/x/crypto/ed25519/testdata")
 | 
			
		||||
                     ".*\\.gz$"))
 | 
			
		||||
               #t)))))
 | 
			
		||||
      (synopsis "Support functions for dealing with terminals in Go")
 | 
			
		||||
      (description "@code{terminal} provides support functions for dealing
 | 
			
		||||
with terminals in Go.")
 | 
			
		||||
      (home-page "https://go.googlesource.com/crypto/")
 | 
			
		||||
      (license license:bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public go-github-com-junegunn-fzf
 | 
			
		||||
  (package
 | 
			
		||||
    (name "go-github-com-junegunn-fzf")
 | 
			
		||||
| 
						 | 
				
			
			@ -779,7 +743,7 @@ with terminals in Go.")
 | 
			
		|||
       ("go-github-com-mattn-go-shellwords" ,go-github-com-mattn-go-shellwords)
 | 
			
		||||
       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
 | 
			
		||||
       ("go-github-com-gdamore-tcell" ,go-github-com-gdamore-tcell)
 | 
			
		||||
       ("go-golang-org-x-crypto-ssh-terminal" ,go-golang-org-x-crypto-ssh-terminal)))
 | 
			
		||||
       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
 | 
			
		||||
    (home-page "https://github.com/junegunn/fzf")
 | 
			
		||||
    (synopsis "Command-line fuzzy-finder")
 | 
			
		||||
    (description "This package provides an interactive command-line filter
 | 
			
		||||
| 
						 | 
				
			
			@ -805,8 +769,8 @@ usable with any list--including files, command history, processes and more.")
 | 
			
		|||
      (arguments
 | 
			
		||||
       '(#:import-path "github.com/howeyc/gopass"))
 | 
			
		||||
      (propagated-inputs
 | 
			
		||||
       `(("go-golang.org-x-crypto-ssh-terminal"
 | 
			
		||||
          ,go-golang.org-x-crypto-ssh-terminal)))
 | 
			
		||||
       `(("go-golang-org-x-crypto"
 | 
			
		||||
          ,go-golang-org-x-crypto)))
 | 
			
		||||
      (synopsis "Retrieve password from a terminal or piped input in Go")
 | 
			
		||||
      (description
 | 
			
		||||
       "@code{gopass} is a Go package for retrieving a password from user
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
			
		||||
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +18,10 @@
 | 
			
		|||
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
(define-module (gnu packages toys)
 | 
			
		||||
  #:use-module (gnu packages bison)
 | 
			
		||||
  #:use-module (gnu packages flex)
 | 
			
		||||
  #:use-module (gnu packages ncurses)
 | 
			
		||||
  #:use-module (gnu packages perl)
 | 
			
		||||
  #:use-module (guix build-system gnu)
 | 
			
		||||
  #:use-module (guix git-download)
 | 
			
		||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
			
		||||
| 
						 | 
				
			
			@ -64,3 +68,91 @@ on the text terminal.  It serves no useful purpose but to discourage mistakenly
 | 
			
		|||
typing @command{sl} instead of @command{ls}.")
 | 
			
		||||
    (license (license:non-copyleft "file://LICENSE"
 | 
			
		||||
                                   "See LICENSE in the distribution."))))
 | 
			
		||||
 | 
			
		||||
(define-public filters
 | 
			
		||||
  (let ((version "2.55")
 | 
			
		||||
        (commit "c5c291916b52ed9e6418448a8eee30475fb9adcf"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "filters")
 | 
			
		||||
      (version "2.55")
 | 
			
		||||
      (source
 | 
			
		||||
       (origin
 | 
			
		||||
         (method git-fetch)
 | 
			
		||||
         (uri (git-reference
 | 
			
		||||
               (url "https://git.joeyh.name/filters")
 | 
			
		||||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name name version))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32 "1gaigpda1w9wxfh8an3sam1hpacc1bhxl696w4yj0vzhc6izqvxs"))
 | 
			
		||||
         (modules '((guix build utils)))
 | 
			
		||||
         (snippet '(begin
 | 
			
		||||
                     ;; kenny is under nonfree Artistic License (Perl) 1.0.
 | 
			
		||||
                     (delete-file "kenny")
 | 
			
		||||
                     (substitute* "Makefile"
 | 
			
		||||
                       (("kenny")
 | 
			
		||||
                        ""))))))
 | 
			
		||||
      (build-system gnu-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:make-flags
 | 
			
		||||
         (list "CC=gcc" (string-append "DESTDIR=" %output))
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (delete 'configure)
 | 
			
		||||
           (add-after 'unpack 'fix-install-directories
 | 
			
		||||
             (lambda _
 | 
			
		||||
               (substitute* "Makefile"
 | 
			
		||||
                 (("/usr/games")
 | 
			
		||||
                  "/bin/")
 | 
			
		||||
                 (("/usr/share/")
 | 
			
		||||
                  "/share/"))
 | 
			
		||||
               #t)))
 | 
			
		||||
         #:tests? #f))                  ; no test suite
 | 
			
		||||
      (native-inputs
 | 
			
		||||
       `(("bison" ,bison)
 | 
			
		||||
         ("flex" ,flex)))
 | 
			
		||||
      (inputs
 | 
			
		||||
       `(("perl" ,perl)))
 | 
			
		||||
      (home-page "https://joeyh.name/code/filters/")
 | 
			
		||||
      (synopsis "Various amusing text filters")
 | 
			
		||||
      (description
 | 
			
		||||
       "The filters collection harks back to the late 1980s, when various text
 | 
			
		||||
filters were written to munge written language in amusing ways.  The earliest
 | 
			
		||||
and best known were legends such as the Swedish Chef filter and B1FF.
 | 
			
		||||
 | 
			
		||||
This package contains the following filter commands:
 | 
			
		||||
@enumerate
 | 
			
		||||
@item b1ff: a satire of a stereotypical Usenet newbie
 | 
			
		||||
@item censor: comply with the @acronym{CDA, Communications Decency Act}
 | 
			
		||||
@item chef: convert English to Mock Swedish
 | 
			
		||||
@item cockney: Cockney English
 | 
			
		||||
@item elee: k3wl hacker slang
 | 
			
		||||
@item fanboy: a stereotypical fan (supports custom fandoms)
 | 
			
		||||
@item fudd: Elmer Fudd
 | 
			
		||||
@item jethro: hillbilly text filter
 | 
			
		||||
@item jibberish: a random selection of these filters
 | 
			
		||||
@item jive: Jive English
 | 
			
		||||
@item ken: turn English into Cockney
 | 
			
		||||
@item kraut: a bad German accent
 | 
			
		||||
@item ky00te: a very cute accent
 | 
			
		||||
@item LOLCAT: as seen in Internet GIFs everywhere
 | 
			
		||||
@item nethackify: wiped-out text as found in nethack
 | 
			
		||||
@item newspeak: à la 1984
 | 
			
		||||
@item nyc: Brooklyn English
 | 
			
		||||
@item pirate: talk like a pirate
 | 
			
		||||
@item rasterman: straight from the keyboard of Carsten Haitzler
 | 
			
		||||
@item scottish: fake Scottish (Dwarven) accent
 | 
			
		||||
@item scramble: scramble the \"inner\" letters of each word
 | 
			
		||||
@item spammer: turn honest text into something liable to be flagged as spam
 | 
			
		||||
@item studly: studly caps.
 | 
			
		||||
@item uniencode: use glorious Unicode to the fullest possible extent
 | 
			
		||||
@item upside-down: flip the text upside down
 | 
			
		||||
@end enumerate
 | 
			
		||||
 | 
			
		||||
The GNU project hosts a similar collection of filters, the GNU talkfilters.")
 | 
			
		||||
      (license                    ; see debian/copyright
 | 
			
		||||
       (list license:gpl2+        ; most of the filters
 | 
			
		||||
             license:gpl2         ; rasterman, ky00te.dir/* nethackify, pirate
 | 
			
		||||
             license:gpl3+        ; scramble, scottish
 | 
			
		||||
             license:public-domain      ; jethro, kraut, ken, studly
 | 
			
		||||
             license:gpl1+         ; cockney, jive, nyc only say "gpl"
 | 
			
		||||
             license:expat)))))    ; newspeak
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -508,7 +508,7 @@ H.264 (MPEG-4 AVC) video streams.")
 | 
			
		|||
(define-public x265
 | 
			
		||||
  (package
 | 
			
		||||
    (name "x265")
 | 
			
		||||
    (version "3.1.2")
 | 
			
		||||
    (version "3.2")
 | 
			
		||||
    (outputs '("out" "static"))
 | 
			
		||||
    (source
 | 
			
		||||
      (origin
 | 
			
		||||
| 
						 | 
				
			
			@ -518,8 +518,7 @@ H.264 (MPEG-4 AVC) video streams.")
 | 
			
		|||
                   (string-append "https://download.videolan.org/videolan/x265/"
 | 
			
		||||
                                  "x265_" version ".tar.gz")))
 | 
			
		||||
        (sha256
 | 
			
		||||
         (base32
 | 
			
		||||
          "1ajr59gjj47gnczfb2qhmzclj746pdiq9a1d81b0mq22k8f5yy3g"))
 | 
			
		||||
         (base32 "0fqkhfhr22gzavxn60cpnj3agwdf5afivszxf3haj5k1sny7jk9n"))
 | 
			
		||||
        (patches (search-patches "x265-arm-flags.patch"))
 | 
			
		||||
        (modules '((guix build utils)))
 | 
			
		||||
        (snippet '(begin
 | 
			
		||||
| 
						 | 
				
			
			@ -1342,7 +1341,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 | 
			
		|||
(define-public mpv
 | 
			
		||||
  (package
 | 
			
		||||
    (name "mpv")
 | 
			
		||||
    (version "0.29.1")
 | 
			
		||||
    (version "0.30.0")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method git-fetch)
 | 
			
		||||
              (uri (git-reference
 | 
			
		||||
| 
						 | 
				
			
			@ -1351,7 +1350,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 | 
			
		|||
              (file-name (git-file-name name version))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m"))))
 | 
			
		||||
                "17mxjgcfljlv6h0ik3332xsqbs0ybvk6dkwflyl0cjh15vl1iv6f"))))
 | 
			
		||||
    (build-system waf-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("perl" ,perl) ; for zsh completion file
 | 
			
		||||
| 
						 | 
				
			
			@ -1417,9 +1416,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 | 
			
		|||
            #t)))
 | 
			
		||||
       #:configure-flags (list "--enable-libmpv-shared"
 | 
			
		||||
                               "--enable-cdda"
 | 
			
		||||
                               "--enable-dvdread"
 | 
			
		||||
                               "--enable-dvdnav"
 | 
			
		||||
                               "--enable-zsh-comp"
 | 
			
		||||
                               "--disable-build-date")
 | 
			
		||||
       ;; No check function defined.
 | 
			
		||||
       #:tests? #f))
 | 
			
		||||
| 
						 | 
				
			
			@ -1494,7 +1491,7 @@ projects while introducing many more.")
 | 
			
		|||
(define-public youtube-dl
 | 
			
		||||
  (package
 | 
			
		||||
    (name "youtube-dl")
 | 
			
		||||
    (version "2019.10.22")
 | 
			
		||||
    (version "2019.10.29")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "https://github.com/ytdl-org/youtube-dl/"
 | 
			
		||||
| 
						 | 
				
			
			@ -1502,7 +1499,7 @@ projects while introducing many more.")
 | 
			
		|||
                                  version ".tar.gz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "06wg6wpyq0fawjxjrhd7zasfjr9b6w9wsk2amiqdl712zqlq2rwb"))))
 | 
			
		||||
                "1lq6ycjbx07831s24yx42q6m6svas4mf02vbszw0965dbbzs7vp4"))))
 | 
			
		||||
    (build-system python-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     ;; The problem here is that the directory for the man page and completion
 | 
			
		||||
| 
						 | 
				
			
			@ -1928,7 +1925,7 @@ for use with HTML5 video.")
 | 
			
		|||
(define-public avidemux
 | 
			
		||||
  (package
 | 
			
		||||
    (name "avidemux")
 | 
			
		||||
    (version "2.7.3")
 | 
			
		||||
    (version "2.7.4")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append
 | 
			
		||||
| 
						 | 
				
			
			@ -1936,7 +1933,7 @@ for use with HTML5 video.")
 | 
			
		|||
                   "avidemux_" version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "17x2mnnr5h8pp764p55l1xcn2ljnzhbj8cykajlllvk4rc4qwxld"))
 | 
			
		||||
               "1acdb3m37vdzzbm8mwyibcn8msi7birb5v30qfi7jli5r00src3x"))
 | 
			
		||||
             (patches (search-patches "avidemux-install-to-lib.patch"))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
| 
						 | 
				
			
			@ -1969,7 +1966,7 @@ for use with HTML5 video.")
 | 
			
		|||
       #:phases
 | 
			
		||||
       ;; Make sure files inside the included ffmpeg tarball are
 | 
			
		||||
       ;; patch-shebanged.
 | 
			
		||||
       (let ((ffmpeg "ffmpeg-4.1.1"))
 | 
			
		||||
       (let ((ffmpeg "ffmpeg-4.1.4"))
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-before 'patch-source-shebangs 'unpack-ffmpeg
 | 
			
		||||
             (lambda _
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@
 | 
			
		|||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 | 
			
		||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 | 
			
		||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
			
		||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
			
		||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
			
		||||
;;; Copyright © 2019 HiPhish <hiphish@posteo.de>
 | 
			
		||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -609,7 +609,7 @@ and powerline symbols, etc.")
 | 
			
		|||
(define-public vim-syntastic
 | 
			
		||||
  (package
 | 
			
		||||
    (name "vim-syntastic")
 | 
			
		||||
    (version "3.9.0")
 | 
			
		||||
    (version "3.10.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -618,8 +618,7 @@ and powerline symbols, etc.")
 | 
			
		|||
             (commit version)))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "121a1mxgfng2y5zmivyyk02mca8pyw72crivf4f1q9nhn0barf57"))))
 | 
			
		||||
        (base32 "0j91f72jaz1s6aw1hpjiz30vk2ds2aqd9gisk91grsldy6nz6hhz"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2860,7 +2860,7 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
 | 
			
		|||
(define-public perl-http-cookies
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-http-cookies")
 | 
			
		||||
    (version "6.04")
 | 
			
		||||
    (version "6.05")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append
 | 
			
		||||
| 
						 | 
				
			
			@ -2868,7 +2868,7 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
 | 
			
		|||
                   version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "1m0kxcirbvbkrm2c59p1bkbvzlcdymg8fdpa7wlxijlx0xwz1iqc"))))
 | 
			
		||||
               "0pbgns2gwgvgg9rglah7ryw0jj13aykyf38lnhm3rwzw3c2cvqaq"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("perl-http-message" ,perl-http-message)))
 | 
			
		||||
| 
						 | 
				
			
			@ -3204,7 +3204,7 @@ select or poll.")
 | 
			
		|||
(define-public perl-libwww
 | 
			
		||||
  (package
 | 
			
		||||
    (name "perl-libwww")
 | 
			
		||||
    (version "6.39")
 | 
			
		||||
    (version "6.41")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append
 | 
			
		||||
| 
						 | 
				
			
			@ -3212,7 +3212,7 @@ select or poll.")
 | 
			
		|||
                   version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "1mblfwz3g7vmyykmb0mcbmmad77rwx55fwaca9ymv9wajd3pg3cs"))))
 | 
			
		||||
               "0jh67946fwd33ap3xy8df0421d2mr6lmhalhkf1p7dx2b7fil9wf"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("perl-test-fatal" ,perl-test-fatal)
 | 
			
		||||
| 
						 | 
				
			
			@ -6806,7 +6806,7 @@ Anonip can also be uses as a Python module in your own Python application.")
 | 
			
		|||
    (build-system go-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
 | 
			
		||||
       ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)))
 | 
			
		||||
       ("go-golang-org-x-time" ,go-golang-org-x-time)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:import-path "github.com/tsileo/poussetaches"))
 | 
			
		||||
    (home-page "https://github.com/tsileo/poussetaches")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -691,14 +691,14 @@ Haskell, no knowledge of the language is required to install and use it.")
 | 
			
		|||
(define-public ghc-xmonad-contrib
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ghc-xmonad-contrib")
 | 
			
		||||
    (version "0.15")
 | 
			
		||||
    (version "0.16")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
       (uri (string-append "mirror://hackage/package/xmonad-contrib/"
 | 
			
		||||
                           "xmonad-contrib-" version ".tar.gz"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0r9yzgy67j4mi3dyxx714f0ssk5qzca5kh4zw0fhiz1pf008cxms"))))
 | 
			
		||||
        (base32 "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd"))))
 | 
			
		||||
    (build-system haskell-build-system)
 | 
			
		||||
    (propagated-inputs
 | 
			
		||||
     `(("ghc-old-time" ,ghc-old-time)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@
 | 
			
		|||
;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
 | 
			
		||||
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
 | 
			
		||||
;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
 | 
			
		||||
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -190,6 +191,43 @@ that can be activated based on the connected hardware.  Hook scripts can be
 | 
			
		|||
used to further tweak the behaviour of the different profiles.")
 | 
			
		||||
      (license license:gpl3+))))
 | 
			
		||||
 | 
			
		||||
(define-public bemenu
 | 
			
		||||
  (package
 | 
			
		||||
    (name "bemenu")
 | 
			
		||||
    (version "0.2.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
       (uri (git-reference
 | 
			
		||||
             (url "https://github.com/Cloudef/bemenu.git")
 | 
			
		||||
             (commit version)))
 | 
			
		||||
       (file-name (git-file-name name version))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "0piax49az5kp96r1g6dcgj87fi6p4jl286wlkxsdvljzpkn8q6gv"))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:configure-flags '("-DBEMENU_WAYLAND_RENDERER=ON")))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("cairo" ,cairo)
 | 
			
		||||
       ("libx11" ,libx11)
 | 
			
		||||
       ("libxkbcomon" ,libxkbcommon)
 | 
			
		||||
       ("libxinerama" ,libxinerama)
 | 
			
		||||
       ("ncurses" ,ncurses)
 | 
			
		||||
       ("pango" ,pango)
 | 
			
		||||
       ("wayland" ,wayland)
 | 
			
		||||
       ("wayland-protocols" ,wayland-protocols)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("doxygen" ,doxygen)
 | 
			
		||||
       ("pkg-config" ,pkg-config)))
 | 
			
		||||
    (home-page "https://github.com/Cloudef/bemenu")
 | 
			
		||||
    (synopsis "Dynamic menu library and client program inspired by dmenu")
 | 
			
		||||
    (description
 | 
			
		||||
     "bemenu is a dynamic menu which allows the user to flexibly select from a
 | 
			
		||||
list of options (usually programs to launch).  It renders the menu graphically
 | 
			
		||||
with X11 or Wayland, or in a text terminal with ncurses.")
 | 
			
		||||
    (license (list license:gpl3+        ; client program[s] and other sources
 | 
			
		||||
                   license:lgpl3+))))   ; library and bindings
 | 
			
		||||
 | 
			
		||||
(define-public xclip
 | 
			
		||||
  (package
 | 
			
		||||
    (name "xclip")
 | 
			
		||||
| 
						 | 
				
			
			@ -997,7 +1035,7 @@ Wacom tablet applet.")
 | 
			
		|||
(define-public xf86-input-wacom
 | 
			
		||||
  (package
 | 
			
		||||
    (name "xf86-input-wacom")
 | 
			
		||||
    (version "0.36.1")
 | 
			
		||||
    (version "0.38.0")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -1006,8 +1044,7 @@ Wacom tablet applet.")
 | 
			
		|||
             "xf86-input-wacom-" version "/"
 | 
			
		||||
             "xf86-input-wacom-" version ".tar.bz2"))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32
 | 
			
		||||
         "029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij"))))
 | 
			
		||||
        (base32 "0w53hv3g7d5vv328x04wb57sa1lyv2h631c37csp1drfp7ghikd1"))))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags
 | 
			
		||||
       (list (string-append "--with-sdkdir="
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 | 
			
		||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +24,9 @@
 | 
			
		|||
  #:use-module (gnu packages mpd)
 | 
			
		||||
  #:use-module (guix records)
 | 
			
		||||
  #:use-module (ice-9 match)
 | 
			
		||||
  #:export (mpd-configuration
 | 
			
		||||
  #:export (mpd-output
 | 
			
		||||
            mpd-output?
 | 
			
		||||
            mpd-configuration
 | 
			
		||||
            mpd-configuration?
 | 
			
		||||
            mpd-service-type))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -33,6 +36,25 @@
 | 
			
		|||
;;;
 | 
			
		||||
;;; Code:
 | 
			
		||||
 | 
			
		||||
(define-record-type* <mpd-output>
 | 
			
		||||
  mpd-output make-mpd-output
 | 
			
		||||
  mpd-output?
 | 
			
		||||
  (type          mpd-output-type
 | 
			
		||||
                 (default "pulse"))
 | 
			
		||||
  (name          mpd-output-name
 | 
			
		||||
                 (default "MPD"))
 | 
			
		||||
  (enabled?      mpd-output-enabled?
 | 
			
		||||
                 (default #t))
 | 
			
		||||
  (tags?         mpd-output-tags?
 | 
			
		||||
                 (default #t))
 | 
			
		||||
  (always-on?    mpd-output-always-on?
 | 
			
		||||
                 (default #f))
 | 
			
		||||
  (mixer-type    mpd-output-mixer-type
 | 
			
		||||
                 ;; valid: hardware, software, null, none
 | 
			
		||||
                 (default #f))
 | 
			
		||||
  (extra-options mpd-output-extra-options
 | 
			
		||||
                 (default '())))
 | 
			
		||||
 | 
			
		||||
(define-record-type* <mpd-configuration>
 | 
			
		||||
  mpd-configuration make-mpd-configuration
 | 
			
		||||
  mpd-configuration?
 | 
			
		||||
| 
						 | 
				
			
			@ -51,16 +73,45 @@
 | 
			
		|||
  (port         mpd-configuration-port
 | 
			
		||||
                (default "6600"))
 | 
			
		||||
  (address      mpd-configuration-address
 | 
			
		||||
                (default "any")))
 | 
			
		||||
                (default "any"))
 | 
			
		||||
  (outputs      mpd-configuration-outputs
 | 
			
		||||
                (default (list (mpd-output)))))
 | 
			
		||||
 | 
			
		||||
(define (mpd-output->string output)
 | 
			
		||||
  "Convert the OUTPUT of type <mpd-output> to a configuration file snippet."
 | 
			
		||||
  (let ((extra (string-join
 | 
			
		||||
                (map (match-lambda
 | 
			
		||||
                       ((key . value)
 | 
			
		||||
                        (format #f "  ~a \"~a\""
 | 
			
		||||
                                (string-map
 | 
			
		||||
                                 (lambda (c) (if (char=? c #\-) #\_ c))
 | 
			
		||||
                                 (symbol->string key))
 | 
			
		||||
                                value)))
 | 
			
		||||
                     (mpd-output-extra-options output))
 | 
			
		||||
                "\n")))
 | 
			
		||||
    (format #f "\
 | 
			
		||||
audio_output {
 | 
			
		||||
  type \"~a\"
 | 
			
		||||
  name \"~a\"
 | 
			
		||||
~:[  enabled \"no\"~%~;~]\
 | 
			
		||||
~:[  tags \"no\"~%~;~]\
 | 
			
		||||
~:[~;  always_on \"yes\"~%~]\
 | 
			
		||||
~@[  mixer_type \"~a\"~%~]\
 | 
			
		||||
~a~%}~%"
 | 
			
		||||
            (mpd-output-type output)
 | 
			
		||||
            (mpd-output-name output)
 | 
			
		||||
            (mpd-output-enabled? output)
 | 
			
		||||
            (mpd-output-tags? output)
 | 
			
		||||
            (mpd-output-always-on? output)
 | 
			
		||||
            (mpd-output-mixer-type output)
 | 
			
		||||
            extra)))
 | 
			
		||||
 | 
			
		||||
(define (mpd-config->file config)
 | 
			
		||||
  (apply
 | 
			
		||||
   mixed-text-file "mpd.conf"
 | 
			
		||||
   "audio_output {\n"
 | 
			
		||||
   "  type \"pulse\"\n"
 | 
			
		||||
   "  name \"MPD\"\n"
 | 
			
		||||
   "}\n"
 | 
			
		||||
   "pid_file \"" (mpd-file-name config "pid") "\"\n"
 | 
			
		||||
   (append (map mpd-output->string
 | 
			
		||||
                (mpd-configuration-outputs config))
 | 
			
		||||
           (map (match-lambda
 | 
			
		||||
                  ((config-name config-val)
 | 
			
		||||
                   (string-append config-name " \"" (config-val config) "\"\n")))
 | 
			
		||||
| 
						 | 
				
			
			@ -71,7 +122,7 @@
 | 
			
		|||
                  ("state_file" ,mpd-configuration-state-file)
 | 
			
		||||
                  ("sticker_file" ,mpd-configuration-sticker-file)
 | 
			
		||||
                  ("port" ,mpd-configuration-port)
 | 
			
		||||
          ("bind_to_address" ,mpd-configuration-address)))))
 | 
			
		||||
                  ("bind_to_address" ,mpd-configuration-address))))))
 | 
			
		||||
 | 
			
		||||
(define (mpd-file-name config file)
 | 
			
		||||
  "Return a path in /var/run/mpd/ that is writable
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -505,7 +505,7 @@ modules in the old ~/.config/guix/latest style."
 | 
			
		|||
                   ;; In the "old style", %SELF-BUILD-FILE would simply return a
 | 
			
		||||
                   ;; derivation that builds modules.  We have to infer what the
 | 
			
		||||
                   ;; dependencies of these modules were.
 | 
			
		||||
                   (list guile-json guile-git guile-bytestructures
 | 
			
		||||
                   (list guile-json-3 guile-git guile-bytestructures
 | 
			
		||||
                         (ssh -> guile-ssh) (tls -> gnutls)))))
 | 
			
		||||
 | 
			
		||||
(define (old-style-guix? drv)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -622,7 +622,7 @@ that form."
 | 
			
		|||
     (display ")" port))))
 | 
			
		||||
 | 
			
		||||
(define derivation->bytevector
 | 
			
		||||
  (mlambda (drv)
 | 
			
		||||
  (lambda (drv)
 | 
			
		||||
    "Return the external representation of DRV as a UTF-8-encoded string."
 | 
			
		||||
    (with-fluids ((%default-port-encoding "UTF-8"))
 | 
			
		||||
      (call-with-values open-bytevector-output-port
 | 
			
		||||
| 
						 | 
				
			
			@ -919,7 +919,6 @@ derivation.  It is kept as-is, uninterpreted, in the derivation."
 | 
			
		|||
long-running processes that know what they're doing.  Use with care!"
 | 
			
		||||
  ;; Typically this is meant to be used by Cuirass and Hydra, which can clear
 | 
			
		||||
  ;; caches when they start evaluating packages for another architecture.
 | 
			
		||||
  (invalidate-memoization! derivation->bytevector)
 | 
			
		||||
  (invalidate-memoization! derivation-base16-hash)
 | 
			
		||||
 | 
			
		||||
  ;; FIXME: Comment out to work around <https://bugs.gnu.org/36487>.
 | 
			
		||||
| 
						 | 
				
			
			@ -1207,6 +1206,26 @@ they can refer to each other."
 | 
			
		|||
                                  #:guile-for-build guile
 | 
			
		||||
                                  #:local-build? #t)))
 | 
			
		||||
 | 
			
		||||
(define %module-cache
 | 
			
		||||
  ;; Map a list of modules to its 'imported+compiled-modules' result.
 | 
			
		||||
  (make-weak-value-hash-table))
 | 
			
		||||
 | 
			
		||||
(define* (imported+compiled-modules store modules #:key
 | 
			
		||||
                                    (system (%current-system))
 | 
			
		||||
                                    (guile (%guile-for-build)))
 | 
			
		||||
  "Return a pair containing the derivation to import MODULES and that where
 | 
			
		||||
MODULES are compiled."
 | 
			
		||||
  (define key
 | 
			
		||||
    (list modules (derivation-file-name guile) system))
 | 
			
		||||
 | 
			
		||||
  (or (hash-ref %module-cache key)
 | 
			
		||||
      (let ((result (cons (%imported-modules store modules
 | 
			
		||||
                                             #:system system #:guile guile)
 | 
			
		||||
                          (%compiled-modules store modules
 | 
			
		||||
                                             #:system system #:guile guile))))
 | 
			
		||||
        (hash-set! %module-cache key result)
 | 
			
		||||
        result)))
 | 
			
		||||
 | 
			
		||||
(define* (build-expression->derivation store name exp ;deprecated
 | 
			
		||||
                                       #:key
 | 
			
		||||
                                       (system (%current-system))
 | 
			
		||||
| 
						 | 
				
			
			@ -1330,16 +1349,15 @@ and PROPERTIES."
 | 
			
		|||
                                      ;; fixed-output.
 | 
			
		||||
                                      (filter-map source-path inputs)))
 | 
			
		||||
 | 
			
		||||
         (mod-drv  (and (pair? modules)
 | 
			
		||||
                        (%imported-modules store modules
 | 
			
		||||
         (mod+go-drv  (if (pair? modules)
 | 
			
		||||
                          (imported+compiled-modules store modules
 | 
			
		||||
                                                     #:guile guile-drv
 | 
			
		||||
                                           #:system system)))
 | 
			
		||||
                                                     #:system system)
 | 
			
		||||
                          '(#f . #f)))
 | 
			
		||||
         (mod-drv  (car mod+go-drv))
 | 
			
		||||
         (go-drv   (cdr mod+go-drv))
 | 
			
		||||
         (mod-dir  (and mod-drv
 | 
			
		||||
                        (derivation->output-path mod-drv)))
 | 
			
		||||
         (go-drv   (and (pair? modules)
 | 
			
		||||
                        (%compiled-modules store modules
 | 
			
		||||
                                           #:guile guile-drv
 | 
			
		||||
                                           #:system system)))
 | 
			
		||||
         (go-dir   (and go-drv
 | 
			
		||||
                        (derivation->output-path go-drv))))
 | 
			
		||||
    (derivation store name guile
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -654,6 +654,31 @@ names and file names suitable for the #:allowed-references argument to
 | 
			
		|||
  (load-path           lowered-gexp-load-path)    ;list of store items
 | 
			
		||||
  (load-compiled-path  lowered-gexp-load-compiled-path)) ;list of store items
 | 
			
		||||
 | 
			
		||||
(define* (imported+compiled-modules modules system
 | 
			
		||||
                                    #:key (extensions '())
 | 
			
		||||
                                    deprecation-warnings guile
 | 
			
		||||
                                    (module-path %load-path))
 | 
			
		||||
  "Return a pair where the first element is the imported MODULES and the
 | 
			
		||||
second element is the derivation to compile them."
 | 
			
		||||
  (mcached equal?
 | 
			
		||||
           (mlet %store-monad ((modules  (if (pair? modules)
 | 
			
		||||
                                             (imported-modules modules
 | 
			
		||||
                                                               #:system system
 | 
			
		||||
                                                               #:module-path module-path)
 | 
			
		||||
                                             (return #f)))
 | 
			
		||||
                               (compiled (if (pair? modules)
 | 
			
		||||
                                             (compiled-modules modules
 | 
			
		||||
                                                               #:system system
 | 
			
		||||
                                                               #:module-path module-path
 | 
			
		||||
                                                               #:extensions extensions
 | 
			
		||||
                                                               #:guile guile
 | 
			
		||||
                                                               #:deprecation-warnings
 | 
			
		||||
                                                               deprecation-warnings)
 | 
			
		||||
                                             (return #f))))
 | 
			
		||||
             (return (cons modules compiled)))
 | 
			
		||||
           modules
 | 
			
		||||
           system extensions guile deprecation-warnings module-path))
 | 
			
		||||
 | 
			
		||||
(define* (lower-gexp exp
 | 
			
		||||
                     #:key
 | 
			
		||||
                     (module-path %load-path)
 | 
			
		||||
| 
						 | 
				
			
			@ -719,20 +744,15 @@ derivations--e.g., code evaluated for its side effects."
 | 
			
		|||
                                       (lambda (obj)
 | 
			
		||||
                                         (lower-object obj system))
 | 
			
		||||
                                       extensions))
 | 
			
		||||
                       (modules  (if (pair? %modules)
 | 
			
		||||
                                     (imported-modules %modules
 | 
			
		||||
                                                       #:system system
 | 
			
		||||
                                                       #:module-path module-path)
 | 
			
		||||
                                     (return #f)))
 | 
			
		||||
                       (compiled (if (pair? %modules)
 | 
			
		||||
                                     (compiled-modules %modules
 | 
			
		||||
                                                       #:system system
 | 
			
		||||
                                                       #:module-path module-path
 | 
			
		||||
                       (modules+compiled (imported+compiled-modules
 | 
			
		||||
                                          %modules system
 | 
			
		||||
                                          #:extensions extensions
 | 
			
		||||
                                                       #:guile guile
 | 
			
		||||
                                          #:deprecation-warnings
 | 
			
		||||
                                                       deprecation-warnings)
 | 
			
		||||
                                     (return #f))))
 | 
			
		||||
                                          deprecation-warnings
 | 
			
		||||
                                          #:guile guile
 | 
			
		||||
                                          #:module-path module-path))
 | 
			
		||||
                       (modules ->  (car modules+compiled))
 | 
			
		||||
                       (compiled -> (cdr modules+compiled)))
 | 
			
		||||
    (define load-path
 | 
			
		||||
      (search-path modules exts
 | 
			
		||||
                   (string-append "/share/guile/site/" effective-version)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -714,6 +714,9 @@ transformations specified in OPTS (resulting from '--url', '--commit', or
 | 
			
		|||
  (define default-file
 | 
			
		||||
    (string-append (config-directory) "/channels.scm"))
 | 
			
		||||
 | 
			
		||||
  (define global-file
 | 
			
		||||
    (string-append %sysconfdir "/guix/channels.scm"))
 | 
			
		||||
 | 
			
		||||
  (define (load-channels file)
 | 
			
		||||
    (let ((result (load* file (make-user-module '((guix channels))))))
 | 
			
		||||
      (if (and (list? result) (every channel? result))
 | 
			
		||||
| 
						 | 
				
			
			@ -725,6 +728,8 @@ transformations specified in OPTS (resulting from '--url', '--commit', or
 | 
			
		|||
           (load-channels file))
 | 
			
		||||
          ((file-exists? default-file)
 | 
			
		||||
           (load-channels default-file))
 | 
			
		||||
          ((file-exists? global-file)
 | 
			
		||||
           (load-channels global-file))
 | 
			
		||||
          (else
 | 
			
		||||
           %default-channels)))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1612,10 +1612,11 @@ This makes sense only when the daemon was started with '--cache-failures'."
 | 
			
		|||
;; from %STATE-MONAD.
 | 
			
		||||
(template-directory instantiations %store-monad)
 | 
			
		||||
 | 
			
		||||
(define* (cache-object-mapping object keys result)
 | 
			
		||||
(define* (cache-object-mapping object keys result
 | 
			
		||||
                               #:key (vhash-cons vhash-consq))
 | 
			
		||||
  "Augment the store's object cache with a mapping from OBJECT/KEYS to RESULT.
 | 
			
		||||
KEYS is a list of additional keys to match against, for instance a (SYSTEM
 | 
			
		||||
TARGET) tuple.
 | 
			
		||||
TARGET) tuple.  Use VHASH-CONS to insert OBJECT into the cache.
 | 
			
		||||
 | 
			
		||||
OBJECT is typically a high-level object such as a <package> or an <origin>,
 | 
			
		||||
and RESULT is typically its derivation."
 | 
			
		||||
| 
						 | 
				
			
			@ -1623,7 +1624,7 @@ and RESULT is typically its derivation."
 | 
			
		|||
    (values result
 | 
			
		||||
            (store-connection
 | 
			
		||||
             (inherit store)
 | 
			
		||||
             (object-cache (vhash-consq object (cons result keys)
 | 
			
		||||
             (object-cache (vhash-cons object (cons result keys)
 | 
			
		||||
                                       (store-connection-object-cache store)))))))
 | 
			
		||||
 | 
			
		||||
(define record-cache-lookup!
 | 
			
		||||
| 
						 | 
				
			
			@ -1653,11 +1654,12 @@ and RESULT is typically its derivation."
 | 
			
		|||
      (lambda (x y)
 | 
			
		||||
        #t)))
 | 
			
		||||
 | 
			
		||||
(define* (lookup-cached-object object #:optional (keys '()))
 | 
			
		||||
(define* (lookup-cached-object object #:optional (keys '())
 | 
			
		||||
                               #:key (vhash-fold* vhash-foldq*))
 | 
			
		||||
  "Return the cached object in the store connection corresponding to OBJECT
 | 
			
		||||
and KEYS.  KEYS is a list of additional keys to match against, and which are
 | 
			
		||||
compared with 'equal?'.  Return #f on failure and the cached result
 | 
			
		||||
otherwise."
 | 
			
		||||
and KEYS; use VHASH-FOLD* to look for OBJECT in the cache.  KEYS is a list of
 | 
			
		||||
additional keys to match against, and which are compared with 'equal?'.
 | 
			
		||||
Return #f on failure and the cached result otherwise."
 | 
			
		||||
  (lambda (store)
 | 
			
		||||
    (let* ((cache (store-connection-object-cache store))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1665,7 +1667,7 @@ otherwise."
 | 
			
		|||
           ;; the whole vlist chain and significantly reduces the number of
 | 
			
		||||
           ;; 'hashq' calls.
 | 
			
		||||
           (value (let/ec return
 | 
			
		||||
                    (vhash-foldq* (lambda (item result)
 | 
			
		||||
                    (vhash-fold* (lambda (item result)
 | 
			
		||||
                                   (match item
 | 
			
		||||
                                     ((value . keys*)
 | 
			
		||||
                                      (if (equal? keys keys*)
 | 
			
		||||
| 
						 | 
				
			
			@ -1676,22 +1678,39 @@ otherwise."
 | 
			
		|||
      (record-cache-lookup! value cache)
 | 
			
		||||
      (values value store))))
 | 
			
		||||
 | 
			
		||||
(define* (%mcached mthunk object #:optional (keys '()))
 | 
			
		||||
(define* (%mcached mthunk object #:optional (keys '())
 | 
			
		||||
                   #:key
 | 
			
		||||
                   (vhash-cons vhash-consq)
 | 
			
		||||
                   (vhash-fold* vhash-foldq*))
 | 
			
		||||
  "Bind the monadic value returned by MTHUNK, which supposedly corresponds to
 | 
			
		||||
OBJECT/KEYS, or return its cached value."
 | 
			
		||||
  (mlet %store-monad ((cached (lookup-cached-object object keys)))
 | 
			
		||||
OBJECT/KEYS, or return its cached value.  Use VHASH-CONS to insert OBJECT into
 | 
			
		||||
the cache, and VHASH-FOLD* to look it up."
 | 
			
		||||
  (mlet %store-monad ((cached (lookup-cached-object object keys
 | 
			
		||||
                                                    #:vhash-fold* vhash-fold*)))
 | 
			
		||||
    (if cached
 | 
			
		||||
        (return cached)
 | 
			
		||||
        (>>= (mthunk)
 | 
			
		||||
             (lambda (result)
 | 
			
		||||
               (cache-object-mapping object keys result))))))
 | 
			
		||||
               (cache-object-mapping object keys result
 | 
			
		||||
                                     #:vhash-cons vhash-cons))))))
 | 
			
		||||
 | 
			
		||||
(define-syntax-rule (mcached mvalue object keys ...)
 | 
			
		||||
(define-syntax mcached
 | 
			
		||||
  (syntax-rules (eq? equal?)
 | 
			
		||||
    "Run MVALUE, which corresponds to OBJECT/KEYS, and cache it; or return the
 | 
			
		||||
value associated with OBJECT/KEYS in the store's object cache if there is
 | 
			
		||||
one."
 | 
			
		||||
    ((_ eq? mvalue object keys ...)
 | 
			
		||||
     (%mcached (lambda () mvalue)
 | 
			
		||||
            object (list keys ...)))
 | 
			
		||||
               object (list keys ...)
 | 
			
		||||
               #:vhash-cons vhash-consq
 | 
			
		||||
               #:vhash-fold* vhash-foldq*))
 | 
			
		||||
    ((_ equal? mvalue object keys ...)
 | 
			
		||||
     (%mcached (lambda () mvalue)
 | 
			
		||||
               object (list keys ...)
 | 
			
		||||
               #:vhash-cons vhash-cons
 | 
			
		||||
               #:vhash-fold* vhash-fold*))
 | 
			
		||||
    ((_ mvalue object keys ...)
 | 
			
		||||
     (mcached eq? mvalue object keys ...))))
 | 
			
		||||
 | 
			
		||||
(define (preserve-documentation original proc)
 | 
			
		||||
  "Return PROC with documentation taken from ORIGINAL."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue