gnu: ungoogled-chromium: Update to 81.0.4044.129-0.c2a89fb [security fixes].
[jackhill/guix/guix.git] / gnu / packages / golang.scm
index 5b7814c..69f46df 100644 (file)
@@ -1,10 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
-;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -14,7 +14,9 @@
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright @ 2018, 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
 ;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
-;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright @ 2019, 2020 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +42,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system go)
+  #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages base)
     (inputs
      `(("tzdata" ,tzdata)
        ("pcre" ,pcre)
-       ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
-       ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
-       ;; the race doesn't seem to be present:
-       ;; https://github.com/golang/go/issues/24046
-       ("gcc:lib" ,gcc-6 "lib")))
+       ("gcc:lib" ,gcc "lib")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("which" ,which)
@@ -218,11 +217,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
+(define-public go-1.13
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.11.12")
+    (version "1.13.9")
     (source
      (origin
        (method url-fetch)
@@ -230,7 +229,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
+         "07gksk9194wa90xyd6yhagxfv7syvsx29bh8ypc4mg700vc1kfrl"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -245,186 +244,11 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                        (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")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://storage.googleapis.com/golang/"
-                           name version ".src.tar.gz"))
-       (sha256
-        (base32
-         "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
-    (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")))
+                 ;; Having the patch in the 'patches' field of <origin> breaks
+                 ;; the 'TestServeContent' test due to the fact that
+                 ;; timestamps are reset.  Thus, apply it from here.
+                 (invoke "patch" "-p2" "--force" "-i"
+                         (assoc-ref inputs "go-skip-gc-test.patch"))
 
                  ;; A side effect of these test scripts is testing
                  ;; cgo. Attempts at using cgo flags and directives with these
@@ -443,9 +267,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                    (("/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"))
@@ -547,7 +368,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                       (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
@@ -577,6 +397,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                  #t)))))))
     (native-inputs
      `(("go" ,go-1.4)
+       ("go-skip-gc-test.patch" ,(search-patch "go-skip-gc-test.patch"))
        ,@(match (%current-system)
            ((or "armhf-linux" "aarch64-linux")
             `(("gold" ,binutils-gold)))
@@ -584,7 +405,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        ,@(package-native-inputs go-1.4)))
     (supported-systems %supported-systems)))
 
-(define-public go go-1.11)
+(define-public go go-1.13)
 
 (define-public go-github-com-alsm-ioprogress
   (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
@@ -802,8 +623,8 @@ Go programming language.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-crypto
-  (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
-        (revision "3"))
+  (let ((commit "9756ffdc24725223350eb3266ffb92590d28f278")
+        (revision "4"))
     (package
       (name "go-golang-org-x-crypto")
       (version (git-version "0.0.0" revision commit))
@@ -816,7 +637,7 @@ Go programming language.")
                                           version "-checkout"))
                 (sha256
                  (base32
-                  "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
+                  "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "golang.org/x/crypto"
@@ -836,509 +657,159 @@ 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"))
+(define-public go-golang-org-x-net
+  (let ((commit "ba9fcec4b297b415637633c5a6e8fa592e4a16c3")
+        (revision "4"))
     (package
-      (name "go-golang-org-x-crypto-bcrypt")
+      (name "go-golang-org-x-net")
       (version (git-version "0.0.0" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
+                      (url "https://go.googlesource.com/net")
                       (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
+                  "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"))))
       (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/")
+       `(#: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-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
-  (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
+(define-public go-golang-org-x-image
+  (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
+        (revision "1"))
     (package
-      (name "go-golang-org-x-net-ipv4")
+      (name "go-golang-org-x-image")
       (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 (git-file-name name version))
+                       (url "https://go.googlesource.com/image")
+                       (commit commit)))
+                (file-name (string-append "go.googlesource.com-image-"
+                                          version "-checkout"))
                 (sha256
                  (base32
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
+                  "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
       (build-system go-build-system)
       (arguments
-       `(#:import-path "golang.org/x/net/ipv4"
-         #:unpack-path "golang.org/x/net"))
-      (synopsis "Go IPv4 support")
-      (description "This package provides @code{ipv4}, which implements IP-level
-socket options for the Internet Protocol version 4.")
-      (home-page "https://go.googlesource.com/net")
+       `(#:import-path "golang.org/x/image"
+         ; Source-only package
+         #:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'build))))
+      (home-page "https://go.googlesource.com/image")
+      (synopsis "Supplemental Go image libraries")
+      (description "This package provides supplemental Go libraries for image
+processing.")
       (license license:bsd-3))))
 
-(define-public go-golang-org-x-net-bpf
-  (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
+(define-public go-golang-org-x-sys
+  (let ((commit "749cb33beabd9aa6d3178e3de05bcc914f70b2bf")
+        (revision "5"))
     (package
-      (name "go-golang-org-x-net-bpf")
+      (name "go-golang-org-x-sys")
       (version (git-version "0.0.0" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://go.googlesource.com/net")
+                      (url "https://go.googlesource.com/sys")
                       (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
+                  "0dm3257q3rv2kyn5lmqqim2fqg634v6rhrqq4glvbk4wx4l3v337"))))
       (build-system go-build-system)
       (arguments
-       `(#:import-path "golang.org/x/net/bpf"
-         #:unpack-path "golang.org/x/net"))
-      (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/")
+       `(#: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 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-net-context
-  (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
+(define-public go-golang-org-x-text
+  (package
+    (name "go-golang-org-x-text")
+    (version "0.3.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/text")
+                    (commit (string-append "v" version))))
+              (file-name (string-append "go.googlesource.com-text-"
+                                        version "-checkout"))
+              (sha256
+               (base32
+                "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
+    (build-system go-build-system)
+    (arguments
+     `(#: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-time
+  (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
         (revision "2"))
     (package
-      (name "go-golang-org-x-net-context")
+      (name "go-golang-org-x-time")
       (version (git-version "0.0.0" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://go.googlesource.com/net")
+                      (url "https://go.googlesource.com/time")
                       (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
+                  "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
       (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 "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
-    (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
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
-      (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 "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
-    (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
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/internal/socket"
-         #: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-iana
-  (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
-    (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
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
-      (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 "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
-    (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
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/ipv6"
-         #:unpack-path "golang.org/x/net"))
-      (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 "351d144fa1fc0bd934e2408202be0c29f25e35a0")
-        (revision "2"))
-    (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
-                  "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
-      (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
-  (let ((commit "4d1cda033e0619309c606fc686de3adcf599539e")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-sys-unix")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/sys")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1wgaldbnkmh568v8kkgvnmkskaj96fqrbzhx23yji2kh1432q6gh"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/sys/unix"
-         #:unpack-path "golang.org/x/sys"))
-      (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.")
-      (home-page "https://go.googlesource.com/sys")
-      (license license:bsd-3))))
-
-(define-public go-golang-org-x-sys-cpu
-  (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")
-    (version "0.3.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://go.googlesource.com/text")
-                    (commit (string-append "v" version))))
-              (file-name (string-append "go.googlesource.com-text-"
-                                        version "-checkout"))
-              (sha256
-               (base32
-                "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.")
-    (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
-  (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-time-rate")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/time")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "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")
@@ -1684,33 +1155,31 @@ incoming requests with their respective handler.")
       (license license:asl2.0))))
 
 (define-public go-github-com-spf13-pflag
-  (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
-        (revision "0"))
-    (package
-      (name "go-github-com-spf13-pflag")
-      (version (git-version "0.0.0" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/spf13/pflag.git")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-            (base32
-              "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
-      (build-system go-build-system)
-      (arguments
-        '(#:import-path "github.com/spf13/pflag"))
-      (home-page "https://github.com/spf13/pflag")
-      (synopsis "Replacement for Go's @code{flag} package")
-      (description
-       "Pflag is library to replace Go's @code{flag} package.  It implements
+  (package
+    (name "go-github-com-spf13-pflag")
+    (version "1.0.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/spf13/pflag.git")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31"))))
+    (build-system go-build-system)
+    (arguments
+      '(#:import-path "github.com/spf13/pflag"))
+    (home-page "https://github.com/spf13/pflag")
+    (synopsis "Replacement for Go's @code{flag} package")
+    (description
+     "Pflag is library to replace Go's @code{flag} package.  It implements
 POSIX/GNU-style command-line options with double hyphens.  It is is compatible
 with the
 @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
 GNU extensions} to the POSIX recommendations for command-line options.")
-      (license license:bsd-3))))
+    (license license:bsd-3)))
 
 (define-public go-github-com-sirupsen-logrus
   (package
@@ -1722,17 +1191,17 @@ GNU extensions} to the POSIX recommendations for command-line options.")
        (uri (git-reference
              (url "https://github.com/sirupsen/logrus.git")
              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
     (build-system go-build-system)
-    (native-inputs
-     `(("go-golang-org-x-crypto-ssh-terminal"
-        ,go-golang-org-x-crypto-ssh-terminal)
+    (propagated-inputs
+     `(("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"))
@@ -1742,6 +1211,31 @@ GNU extensions} to the POSIX recommendations for command-line options.")
 compatible with the standard library logger.")
     (license license:expat)))
 
+(define-public go-github-com-rifflock-lfshook
+  (package
+    (name "go-github-com-rifflock-lfshook")
+    (version "2.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/rifflock/lfshook.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/rifflock/lfshook"))
+    (propagated-inputs
+     `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
+    (home-page "https://github.com/rifflock/lfshook")
+    (synopsis "Local File System hook for Logrus logger")
+    (description "This package provides a hook for Logrus to write directly to
+a file on the filesystem.  The log levels are dynamic at instantiation of the
+hook, so it is capable of logging at some or all levels.")
+    (license license:expat)))
+
 (define-public go-github-com-kardianos-osext
   (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
         (revision "1"))
@@ -1821,12 +1315,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
@@ -1931,11 +1424,11 @@ which satisfies the cron expression.")
                      license:asl2.0)))))
 
 (define-public go-gopkg-in-check-v1
-  (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
-        (revision "0"))
+  (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
+        (revision "1"))
     (package
       (name "go-gopkg-in-check-v1")
-      (version (git-version "0.0.0" revision commit))
+      (version (git-version "1.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -1945,14 +1438,15 @@ which satisfies the cron expression.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
+           "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "gopkg.in/check.v1"))
+      (propagated-inputs
+       `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
       (home-page "https://gopkg.in/check.v1")
       (synopsis "Test framework for the Go language")
-      (description
-       "This package provides a test library for the Go language.")
+      (description "This package provides a test library for the Go language.")
       (license license:asl2.0))))
 
 (define-public go-gopkg-in-yaml-v2
@@ -1984,7 +1478,7 @@ values.")
 (define-public go-github-com-mattn-go-isatty
   (package
     (name "go-github-com-mattn-go-isatty")
-    (version "0.0.7")
+    (version "0.0.11")
     (source
      (origin
        (method git-fetch)
@@ -1994,10 +1488,10 @@ values.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
+         "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
     (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")
@@ -2336,7 +1830,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
@@ -2353,38 +1847,7 @@ and lookup requests.  Browse requests are not supported yet.")
 (define-public go-github-com-gogo-protobuf
   (package
     (name "go-github-com-gogo-protobuf")
-    (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/proto"
-       #:unpack-path "github.com/gogo/protobuf"))
-    (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-protoc-gen-gogo
-  (package
-    (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
-    (version "1.2.1")
+    (version "1.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2393,12 +1856,15 @@ generation features.  This code generation is used to achieve:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
+                "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
     (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'
+     `(#: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:
@@ -2413,54 +1879,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-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"))
@@ -2594,27 +2012,25 @@ needing to use secp256k1 elliptic curve cryptography.")
       (license license:isc))))
 
 (define-public go-github-com-minio-sha256-simd
-  (let ((commit "cc1980cb03383b1d46f518232672584432d7532d")
-        (revision "3"))
-    (package
-      (name "go-github-com-minio-sha256-simd")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/minio/sha256-simd.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "04fp98nal0wsb26zwhw82spn5camxslc68g3xp8g4af9w6k9g31j"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/minio/sha256-simd"))
-      (home-page "https://github.com/minio/sha256-simd")
-      (synopsis "Accelerate SHA256 computations in pure Go")
-      (description "Accelerate SHA256 computations in pure Go using AVX512 and
+  (package
+    (name "go-github-com-minio-sha256-simd")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minio/sha256-simd.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/minio/sha256-simd"))
+    (home-page "https://github.com/minio/sha256-simd")
+    (synopsis "Accelerate SHA256 computations in pure Go")
+    (description "Accelerate SHA256 computations in pure Go using AVX512 and
 AVX2 for Intel and ARM64 for ARM.  On AVX512 it provides an up to 8x
 improvement (over 3 GB/s per core) in comparison to AVX2.
 
@@ -2627,7 +2043,7 @@ This package uses Golang assembly.  The AVX512 version is based on the Intel's
 \"multi-buffer crypto library for IPSec\" whereas the other Intel
 implementations are described in \"Fast SHA-256 Implementations on Intel
 Architecture Processors\" by J. Guilford et al.")
-      (license license:asl2.0))))
+    (license license:asl2.0)))
 
 (define-public go-github-com-libp2p-go-libp2p-crypto
   (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
@@ -2649,9 +2065,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")
@@ -2745,25 +2161,51 @@ increase approaching hashing speeds of 1GB/sec on a single core.")
       (license license:asl2.0))))
 
 (define-public go-github-com-spaolacci-murmur3
-  (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
+  (package
+    (name "go-github-com-spaolacci-murmur3")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/spaolacci/murmur3.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/spaolacci/murmur3"))
+    (home-page "https://github.com/spaolacci/murmur3")
+    (synopsis "Native MurmurHash3 Go implementation")
+    (description "Native Go implementation of Austin Appleby's third MurmurHash
+revision (aka MurmurHash3).
+
+Reference algorithm has been slightly hacked as to support the streaming mode
+required by Go's standard Hash interface.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-calmh-murmur3
+  (let ((commit "74e9af8f47ac56901c490d45546ca167b60c7066")
         (revision "0"))
     (package
-      (name "go-github-com-spaolacci-murmur3")
-      (version (git-version "1.1" revision commit))
+      (name "go-github-com-calmh-murmur3")
+      (version (git-version "1.1.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/spaolacci/murmur3.git")
+               (url "https://github.com/calmh/murmur3.git")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
+           "0k8345ivx228qdbkl8bisd2wxwsinkb44ghba6r09538fr3fbr5w"))))
       (build-system go-build-system)
       (arguments
-       '(#:import-path "github.com/spaolacci/murmur3"))
-      (home-page "https://github.com/spaolacci/murmur3")
+       '(#:import-path "github.com/calmh/murmur3"))
+      (home-page "https://github.com/calmh/murmur3")
       (synopsis "Native MurmurHash3 Go implementation")
       (description "Native Go implementation of Austin Appleby's third
 MurmurHash revision (aka MurmurHash3).
@@ -2797,8 +2239,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.")
@@ -2825,7 +2266,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)
@@ -2833,9 +2274,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}.")
@@ -2893,14 +2332,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
@@ -2973,8 +2410,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
@@ -3018,8 +2454,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
@@ -3113,30 +2548,131 @@ as conversion to and from @command{net.Addr}.")
       (license license:expat))))
 
 (define-public go-github-com-urfave-cli
-  (let ((commit "693af58b4d51b8fcc7f9d89576da170765980581")
-        (revision "0"))
-    (package
-      (name "go-github-com-urfave-cli")
-      (version (git-version "1.20.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/urfave/cli.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1krq752xgy658an1696vf4dc2zmp541clwjinhn11394sx2qksh6"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/urfave/cli"))
-      (home-page "https://github.com/urfave/cli")
-      (synopsis "Simple, fast, and fun package for building command line apps in Go")
-      (description "@command{cli} is a simple, fast, and fun package for
+  (package
+    (name "go-github-com-urfave-cli")
+    (version "1.22.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/urfave/cli.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/urfave/cli"))
+    (propagated-inputs
+     `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
+    (home-page "https://github.com/urfave/cli")
+    (synopsis "Simple, fast, and fun package for building command line apps in Go")
+    (description "@command{cli} is a simple, fast, and fun package for
 building command line apps in Go.  The goal is to enable developers to write
 fast and distributable command line applications in an expressive way.")
-      (license license:expat))))
+    (license license:expat)))
+
+(define-public go-github-com-go-md2man
+  (package
+    (name "go-github-com-go-md2man")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cpuguy83/go-md2man")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (delete-file-recursively "vendor")
+                   #t))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/cpuguy83/go-md2man"))
+    (propagated-inputs
+     `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
+    (home-page "https://github.com/cpuguy83/go-md2man")
+    (synopsis "Convert markdown into roff")
+    (description "Go-md2man is a Go program that converts markdown to roff for
+the purpose of building man pages.")
+    (license license:expat)))
+
+(define-public go-github-com-russross-blackfriday
+  (package
+    (name "go-github-com-russross-blackfriday")
+    (version "2.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/russross/blackfriday")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/russross/blackfriday"))
+    (propagated-inputs
+     `(("go-github-com-shurcool-sanitized-anchor-name"
+        ,go-github-com-shurcool-sanitized-anchor-name)))
+    (native-inputs
+     `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
+    (home-page "https://github.com/russross/blackfriday")
+    (synopsis "Markdown processor in Go")
+    (description "Blackfriday is a Markdown processor in Go.")
+    (license license:bsd-2)))
+
+(define-public go-github-com-shurcool-sanitized-anchor-name
+  (package
+    (name "go-github-com-shurcool-sanitized-anchor-name")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/shurcooL/sanitized_anchor_name")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
+    (home-page "https://github.com/shurcooL/sanitized_anchor_name")
+    (synopsis "Create sanitized anchor names")
+    (description "This package provides a Go program for creating sanitized
+anchor names.")
+    (license license:expat)))
+
+(define-public go-github-com-pmezard-go-difflib
+  (package
+    (name "go-github-com-pmezard-go-difflib")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pmezard/go-difflib")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/pmezard/go-difflib/difflib"
+       #:unpack-path "github.com/pmezard/go-difflib/"))
+    (home-page "https://github.com/pmezard/go-difflib")
+    (synopsis "Go diff implementation")
+    (description "This package provides unified and context-aware diffs in Go.")
+    (license license:bsd-3)))
 
 (define-public go-github-com-whyrusleeping-json-filter
   (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
@@ -3376,8 +2912,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
@@ -3418,8 +2953,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")
@@ -3510,7 +3044,7 @@ mutex, simply ignore the RLock/RUnlock functions.")
 (define-public go-github-com-marten-seemann-qtls
   (package
     (name "go-github-com-marten-seemann-qtls")
-    (version "0.2.3")
+    (version "0.3.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3519,7 +3053,7 @@ mutex, simply ignore the RLock/RUnlock functions.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
+                "1mdymj66qrqy80pfkwy9s9z9ifkg251whngw5lim09zm90wv2q7a"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/marten-seemann/qtls"
@@ -3560,7 +3094,7 @@ implementation of generics.")
 (define-public go-github-com-lucas-clemente-quic-go
   (package
     (name "go-github-com-lucas-clemente-quic-go")
-    (version "0.11.2")
+    (version "0.12.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3569,7 +3103,7 @@ implementation of generics.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
+                "156nhq4dvw7mr08j952248v81q7702phbn4mp228319sahnbv65h"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/lucas-clemente/quic-go"
@@ -3578,7 +3112,8 @@ implementation of generics.")
     (propagated-inputs
      `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
        ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
-       ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
+       ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
+       ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
     (synopsis "QUIC in Go")
     (description "This package provides a Go language implementation of the QUIC
 network protocol.")
@@ -3586,33 +3121,31 @@ network protocol.")
     (license license:expat)))
 
 (define-public go-github-com-pkg-errors
-  (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
-        (revision "0"))
-    (package
-      (name "go-github-com-pkg-errors")
-      (version (git-version "0.8.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/pkg/errors.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "github.com/pkg/errors"))
-      (synopsis "Go error handling primitives")
-      (description "This package provides @code{error}, which offers simple
+  (package
+    (name "go-github-com-pkg-errors")
+    (version "0.9.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pkg/errors.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/pkg/errors"))
+    (synopsis "Go error handling primitives")
+    (description "This package provides @code{error}, which offers simple
 error handling primitives in Go.")
-      (home-page "https://github.com/pkg/errors")
-      (license license:bsd-2))))
+    (home-page "https://github.com/pkg/errors")
+    (license license:bsd-2)))
 
 (define-public go-github-com-maruel-panicparse
   (package
     (name "go-github-com-maruel-panicparse")
-    (version "1.2.1")
+    (version "1.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3621,7 +3154,7 @@ error handling primitives in Go.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05hf68ifb7ww4rpmxyywbj9r0kyap45p1273ncq4qy2ydv042l8j"))))
+                "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/maruel/panicparse"))
@@ -3631,3 +3164,554 @@ stack traces.  It simplifies the traces to make salient information more visible
 and aid debugging.")
     (home-page "https://github.com/maruel/panicparse")
     (license license:asl2.0)))
+
+(define-public go-github-com-robfig-cron
+  (package
+    (name "go-github-com-robfig-cron")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/robfig/cron")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0bvq5gxkhyj21lq32nma23i4dpwp7bswnp2yks6372ilkcyisx2z"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/robfig/cron"))
+    (home-page "https://godoc.org/github.com/robfig/cron")
+    (synopsis "Cron library for Go")
+    (description "This package provides a cron library for Go.  It implements
+a cron spec parser and job runner.")
+    (license license:expat)))
+
+(define-public go-github-com-shirou-gopsutil
+  (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
+        (revision "0"))
+    (package
+      (name "go-github-com-shirou-gopsutil")
+      (version (git-version "v2.19.7" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/shirou/gopsutil")
+                       (commit commit))) ; XXX
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/shirou/gopsutil"))
+      (synopsis "Process and system monitoring in Go")
+      (description "This package provides a library for retrieving information
+on running processes and system utilization (CPU, memory, disks, network,
+sensors).")
+      (home-page "https://github.com/shirou/gopsutil")
+      (license license:bsd-3))))
+
+(define-public go-github-com-fatih-color
+  (package
+    (name "go-github-com-fatih-color")
+    (version "1.8.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/fatih/color.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1zc0zlilf03h121f9jqq3ar0hfm7706547zysxp2qxbm920pz7h0"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/fatih/color"))
+    (synopsis "Print colored text in Go")
+    (description "This package provides an ANSI color package to output
+colorized or SGR defined output to the standard output.")
+    (home-page "https://godoc.org/github.com/fatih/color")
+    (license license:expat)))
+
+(define-public go-github-com-google-go-cmp-cmp
+  (package
+    (name "go-github-com-google-go-cmp-cmp")
+    (version "0.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/google/go-cmp.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/google/go-cmp/cmp"
+       #:unpack-path "github.com/google/go-cmp"))
+    (synopsis "Determine equality of values in Go")
+    (description "This package provides a more powerful and safer
+alternative to @code{reflect.DeepEqual} for comparing whether two values
+are semantically equal in Go (for writing tests).")
+    (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
+    (license license:asl2.0)))
+
+(define-public go-golang.org-x-sync-errgroup
+  (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
+        (revision "0"))
+    (package
+      (name "go-golang.org-x-sync-errgroup")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://go.googlesource.com/sync")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/sync/errgroup"
+         #:unpack-path "golang.org/x/sync"))
+      (synopsis "Synchronization, error propagation, and Context cancellation
+for groups of goroutines working on subtasks of a common task.")
+      (description "This package provides synchronization, error propagation,
+and Context cancellation for groups of goroutines working on subtasks of a
+common task.")
+      (home-page "https://godoc.org/golang.org/x/sync/errgroup")
+      (license license:bsd-3))))
+
+(define (go-gotest-tools-source version sha256-base32-hash)
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/gotestyourself/gotest.tools.git")
+          (commit (string-append "v" version))))
+    (file-name (git-file-name "go-gotest-tools" version))
+    (sha256
+     (base32 sha256-base32-hash))))
+
+;; Note that version 3.0.0 is incompatible to 2.3.0.
+;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
+(define (go-gotest-tools-package suffix)
+  (package
+    (name (string-append "go-gotest-tools-"
+                         (string-replace-substring suffix "/" "-")))
+    (version "2.3.0")
+    (source
+     (go-gotest-tools-source version
+      "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path ,(string-append "gotest.tools/" suffix)
+       #:unpack-path "gotest.tools"))
+    (synopsis "@code{gotest-tools} part")
+    (description "This package provides a part of @code{gotest-tools}.")
+    (home-page "https://github.com/gotestyourself/gotest.tools")
+    (license license:asl2.0)))
+
+(define-public go-gotest-tools-internal-format
+  (package (inherit (go-gotest-tools-package "internal/format"))
+    (native-inputs
+     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Formats messages for use with gotest-tools")
+    (description "This package provides a way to format messages for use
+with gotest-tools.")))
+
+(define-public go-gotest-tools-internal-difflib
+  (package (inherit (go-gotest-tools-package "internal/difflib"))
+    (synopsis "Differences for use with gotest-tools")
+    (description "This package computes differences for use
+with gotest-tools.")))
+
+(define-public go-gotest-tools-internal-source
+  (package (inherit (go-gotest-tools-package "internal/source"))
+    (native-inputs
+     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Source code AST formatters for gotest-tools")
+    (description "This package provides source code AST formatters for
+gotest-tools.")))
+
+(define-public go-gotest-tools-assert
+  (package (inherit (go-gotest-tools-package "assert"))
+    (name "go-gotest-tools-assert")
+    (arguments
+     `(#:tests? #f ; Test failure concerning message formatting (FIXME)
+       #:import-path "gotest.tools/assert"
+       #:unpack-path "gotest.tools"))
+    ;(propagated-inputs
+    ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
+    (native-inputs
+     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Compare values and fail a test when a comparison fails")
+    (description "This package provides a way to compare values and fail a
+test when a comparison fails.")
+    (home-page "https://github.com/gotestyourself/gotest.tools")
+    (license license:asl2.0)))
+
+(define-public gotestsum
+  (package
+    (name "gotestsum")
+    (version "0.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/gotestyourself/gotestsum.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "gotest.tools/gotestsum"))
+    (native-inputs
+     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
+       ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
+       ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-sirupsen-logrus"
+        ,go-github-com-sirupsen-logrus)
+       ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
+       ("go-github-com-jonboulle-clockwork"
+        ,go-github-com-jonboulle-clockwork)
+       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
+       ("go-gotest-tools-assert" ,go-gotest-tools-assert)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)
+       ;; TODO: This would be better as a propagated-input of
+       ;; go-gotest-tools-assert, but that does not work for
+       ;; some reason.
+       ("go-gotest-tools-internal-format"
+        ,go-gotest-tools-internal-format)
+       ("go-gotest-tools-internal-difflib"
+        ,go-gotest-tools-internal-difflib)
+       ("go-gotest-tools-internal-source"
+        ,go-gotest-tools-internal-source)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Go test runner with output optimized for humans")
+    (description "This package provides a @code{go test} runner with output
+optimized for humans, JUnit XML for CI integration, and a summary of the
+test results.")
+    (home-page "https://github.com/gotestyourself/gotestsum")
+    (license license:asl2.0)))
+
+(define-public go-github-com-golang-protobuf-proto
+  (package
+    (name "go-github-com-golang-protobuf-proto")
+    (version "1.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/golang/protobuf.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/golang/protobuf/proto"
+       #:unpack-path "github.com/golang/protobuf"
+       ;; Requires unpackaged golang.org/x/sync/errgroup
+       #:tests? #f))
+    (synopsis "Go support for Protocol Buffers")
+    (description "This package provides Go support for the Protocol Buffers
+data serialization format.")
+    (home-page "https://github.com/golang/protobuf")
+    (license license:bsd-3)))
+
+(define-public go-github-com-mattn-go-zglob
+  (package
+    (name "go-github-com-mattn-go-zglob")
+    (version "0.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mattn/go-zglob.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/mattn/go-zglob"))
+    (home-page "https://github.com/mattn/go-zglob")
+    (synopsis "Glob library that descends into other directories")
+    (description " A glob library that implements descending into other
+directories.  It is optimized for filewalking. ")
+    (license license:expat)))
+
+(define-public go-github-com-willf-bitset
+  (package
+    (name "go-github-com-willf-bitset")
+    (version "1.1.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/willf/bitset")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/willf/bitset"))
+    (synopsis "Bitsets in Go")
+    (description "This package provides a Go implementation of bitsets, which
+are a mapping between non-negative integers and boolean values focused on
+efficient space usage.")
+    (home-page "https://github.com/willf/bitset")
+    (license license:bsd-3)))
+
+(define-public go-github-com-willf-bloom
+  (package
+    (name "go-github-com-willf-bloom")
+    (version "2.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/willf/bloom")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/willf/bloom"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-import-path
+           (lambda _
+             ;; See 'go.mod' in the source distribution of Syncthing 1.4.1 for
+             ;; more information.
+             ;; <https://github.com/spaolacci/murmur3/issues/29>
+             (substitute* "src/github.com/willf/bloom/bloom.go"
+               (("spaolacci") "calmh"))
+             #t)))))
+    (propagated-inputs
+     `(("go-github-com-calmh-murmur3" ,go-github-com-calmh-murmur3)
+       ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
+    (synopsis "Bloom filters in Go")
+    (description "This package provides a Go implementation of bloom filters,
+based on murmurhash.")
+    (home-page "https://github.com/willf/bloom")
+    (license license:bsd-2)))
+
+(define-public go-golang-org-rainycape-unidecode
+  (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
+        (revision "1"))
+    (package
+      (name "go-golang-org-rainycape-unidecode")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/rainycape/unidecode")
+                       (commit commit)))
+                (file-name (string-append "go-golang-org-rainycape-unidecode-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/rainycape/unidecode"))
+      (home-page "https://github.com/rainycape/unidecode")
+      (synopsis "Unicode transliterator in Golang")
+      (description "Unicode transliterator in Golang - Replaces non-ASCII
+characters with their ASCII approximations.")
+      (license license:asl2.0))))
+
+(define-public go-github-com-golang-freetype
+  (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
+        (revision "1"))
+    (package
+      (name "go-github-com-golang-freetype")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/golang/freetype")
+                       (commit commit)))
+                (file-name (string-append "go-github-com-golang-freetype-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/golang/freetype"))
+      (propagated-inputs
+       `(("go-golang-org-x-image" ,go-golang-org-x-image)))
+      (home-page "https://github.com/golang/freetype")
+      (synopsis "Freetype font rasterizer in the Go programming language")
+      (description "The Freetype font rasterizer in the Go programming language.")
+      (license (list license:freetype
+                     license:gpl2+)))))
+
+(define-public go-github-com-fogleman-gg
+  (package
+    (name "go-github-com-fogleman-gg")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/fogleman/gg")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:tests? #f      ; Issue with test flags.
+       #:import-path "github.com/fogleman/gg"))
+    (propagated-inputs
+     `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
+    (home-page "https://github.com/fogleman/gg")
+    (synopsis "2D rendering in Go")
+    (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
+    (license license:expat)))
+
+(define-public go-github-com-gedex-inflector
+  (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
+        (revision "1"))
+    (package
+      (name "go-github-com-gedex-inflector")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/gedex/inflector")
+                       (commit commit)))
+                (file-name (string-append "go-github-com-gedex-inflector-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/gedex/inflector"))
+      (home-page "https://github.com/gedex/inflector")
+      (synopsis "Go library that pluralizes and singularizes English nouns")
+      (description "Go library that pluralizes and singularizes English nouns.")
+      (license license:bsd-2))))
+
+(define-public go-github-com-klauspost-cpuid
+  (package
+    (name "go-github-com-klauspost-cpuid")
+    (version "1.2.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/klauspost/cpuid")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/klauspost/cpuid"))
+    (home-page "https://github.com/klauspost/cpuid")
+    (synopsis "CPU feature identification for Go")
+    (description "@code{cpuid} provides information about the CPU running the
+current program.  CPU features are detected on startup, and kept for fast access
+through the life of the application.  Currently x86 / x64 (AMD64) is supported,
+and no external C (cgo) code is used, which should make the library very eas
+to use.")
+    (license license:expat)))
+
+(define-public go-github-com-pbnjay-memory
+  (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
+        (revision "1"))
+    (package
+      (name "go-github-com-pbnjay-memory")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/pbnjay/memory")
+                       (commit commit)))
+                (file-name (string-append "go-github-com-pbnjay-memory-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/pbnjay/memory"))
+      (home-page "https://github.com/gedex/inflector")
+      (synopsis "Go library to report total system memory")
+      (description "@code{memory} provides a single method reporting total
+physical system memory accessible to the kernel.  It does not account for memory
+used by other processes.")
+      (license license:bsd-3))))
+
+(define-public go-github-com-surge-glog
+  (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
+        (revision "1"))
+    (package
+      (name "go-github-com-surge-glog")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/surge/glog")
+                       (commit commit)))
+                (file-name (string-append "go-github-com-surge-glog-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/surge/glog"))
+      (home-page "https://github.com/surge/glog")
+      (synopsis "Leveled execution logs for Go")
+      (description "Leveled execution logs for Go.")
+      (license license:asl2.0))))
+
+(define-public go-github-com-surgebase-porter2
+  (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
+        (revision "1"))
+    (package
+      (name "go-github-com-surgebase-porter2")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/surgebase/porter2")
+                       (commit commit)))
+                (file-name (string-append "go-github-com-surgebase-porter2-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/surgebase/porter2"))
+      (native-inputs
+       `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
+         ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
+      (home-page "https://github.com/surgebase/porter2")
+      (synopsis "Go library implementing english Porter2 stemmer")
+      (description "Porter2 implements the
+@url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
+Porter2 stemmer}.  It is written completely using finite state machines to do
+suffix comparison, rather than the string-based or tree-based approaches.")
+      (license license:asl2.0))))