~efraim/guix

d7d779a3eff9d7875d491e4180da665f6d2a1b86 — Sharlatan Hellseher a month ago 7bf1d7a + 9a4cd49
Merge remote-tracking branch 'origin/go-team'
Change-Id: Ib66e48c4cb84e9e97ebcec334ab0b9f3dbfb1457
M gnu/local.mk => gnu/local.mk +1 -0
@@ 542,6 542,7 @@ GNU_SYSTEM_MODULES =				\
  %D%/packages/printers.scm			\
  %D%/packages/profiling.scm			\
  %D%/packages/prolog.scm			\
  %D%/packages/prometheus.scm		\
  %D%/packages/pth.scm				\
  %D%/packages/pulseaudio.scm			\
  %D%/packages/pumpio.scm			\

M gnu/packages/backup.scm => gnu/packages/backup.scm +1 -0
@@ 88,6 88,7 @@
  #:use-module (gnu packages pcre)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages prometheus)
  #:use-module (gnu packages protobuf)
  #:use-module (gnu packages python)
  #:use-module (gnu packages python-build)

M gnu/packages/check.scm => gnu/packages/check.scm +1 -1
@@ 1167,7 1167,7 @@ but it works for any C/C++ project.")
                  go-golang-org-x-sync
                  go-golang-org-x-sync
                  go-gopkg-in-yaml-v3))
    (native-inputs (list go-github-com-google-go-cmp-cmp))
    (native-inputs (list go-github-com-google-go-cmp))
    (home-page "https://rhysd.github.io/actionlint/")
    (synopsis "Static checker for GitHub Actions workflow files")
    (description

M gnu/packages/code.scm => gnu/packages/code.scm +2 -2
@@ 390,7 390,7 @@ cloc can handle a greater variety of programming languages.")
(define-public scc
  (package
    (name "scc")
    (version "3.1.0")
    (version "3.3.5")
    (source
     (origin
       (method git-fetch)


@@ 399,7 399,7 @@ cloc can handle a greater variety of programming languages.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1rkkfg6jimlc2rkajk6ypd5v0m3zai25ga5idz2pmkmzakv82n21"))))
        (base32 "0fvp9ab65vwn3dn0wm8l63rrp5fz1gpymcxs8yr0h4s5zmrsg9zf"))))
    (build-system go-build-system)
    (arguments
     (list

M gnu/packages/databases.scm => gnu/packages/databases.scm +1 -1
@@ 5506,7 5506,7 @@ compatible with SQLite using a graphical user interface.")
      #:install-source? #f
      #:import-path "github.com/lighttiger2505/sqls"))
    (native-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-go-sql-driver-mysql
           go-github-com-k0kubun-pp
           go-github-com-lib-pq

M gnu/packages/docker.scm => gnu/packages/docker.scm +15 -16
@@ 300,24 300,23 @@ the required network abstractions for applications.")
    (inherit docker-libnetwork)
    (name "docker-libnetwork-cmd-proxy")
    (arguments
     ;; The tests are unsupported on all architectures except x86_64-linux.
     `(#:tests? ,(and (not (%current-target-system))
                      (target-x86-64?))
       #:import-path "github.com/docker/libnetwork/cmd/proxy"
       #:unpack-path "github.com/docker/libnetwork"
       #:install-source? #f))
     (list
      ;; The tests are unsupported on all architectures except x86_64-linux.
      #:tests? (and (not (%current-target-system)) (target-x86-64?))
      #:install-source? #f
      #:import-path "github.com/docker/libnetwork/cmd/proxy"
      #:unpack-path "github.com/docker/libnetwork"))
    (native-inputs
     `(("go-sctp" ,go-sctp)
       ;; For tests.
       ("logrus" ,go-github-com-sirupsen-logrus)
       ("go-netlink" ,go-netlink)
       ("go-netns" ,go-netns)
       ("go-golang-org-x-crypto"
        ,go-golang-org-x-crypto)
       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
     (list go-github-com-sirupsen-logrus ; for tests.
           go-github-com-vishvananda-netlink
           go-github-com-vishvananda-netns
           go-golang-org-x-crypto
           go-golang-org-x-sys
           go-sctp))
    (synopsis "Docker user-space proxy")
    (description "A proxy running in the user space.  It is used by the
built-in registry server of Docker.")
    (description
     "This package provides a proxy running in the user space.  It is used by
the built-in registry server of Docker.")
    (license license:asl2.0)))

;; TODO: Patch out modprobes for ip_vs, nf_conntrack,

M gnu/packages/golang-build.scm => gnu/packages/golang-build.scm +171 -20
@@ 1,21 1,23 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 HiPhish <hiphish@posteo.de>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2020, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 hackeryarn <artemchernyak@gmail.com>
;;; Copyright © 2022 (unmatched-parenthesis <paren@disroot.org>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2024 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.


@@ 56,6 58,82 @@
;;;
;;; Code:

(define-public go-github-com-golang-protobuf
  (package
    (name "go-github-com-golang-protobuf")
    (version "1.5.3")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/golang/protobuf")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "03f1w2cd4s8a3xhl61x7yjx81kbzlrjpvnnwmbhqnz814yi7h43i"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/golang/protobuf"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Workaround for go-build-system's lack of Go modules
          ;; support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-google-golang-org-protobuf))
    (home-page "https://github.com/golang/protobuf")
    (synopsis "Go support for Protocol Buffers")
    (description
     "This package provides Go support for the Protocol Buffers data
serialization format.")
    (license license:bsd-3)))

(define-public go-github-com-google-go-cmp
  (package
    (name "go-github-com-google-go-cmp")
    (version "0.6.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/google/go-cmp")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1n1j4hi50bl05pyys4i7y417k9g6k1blslj27z327qny7kkdl2ma"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/google/go-cmp/cmp"
      #:unpack-path "github.com/google/go-cmp"
      #:phases
      #~(modify-phases %standard-phases
          (replace 'check
            (lambda* (#:key tests? import-path inputs #:allow-other-keys)
              (when tests?
                ;; The tests fail when run with gccgo.
                (let ((gccgo? (false-if-exception
                               (search-input-file inputs "/bin/gccgo"))))
                  (if gccgo?
                      (format #t "skipping tests with gccgo compiler~%")
                      ;; XXX: Workaround for go-build-system's lack of Go
                      ;; modules support.
                      (with-directory-excursion (string-append "src/" import-path)
                        (invoke "go" "test" "-v" "./..."))))))))))
    (synopsis "Determine equality of values in Go")
    (home-page "https://github.com/google/go-cmp")
    (description
     "This package is intended to be a more powerful and safer
alternative to @code{reflect.DeepEqual} for comparing whether two values are
semantically equal.")
    (license license:bsd-3)))

(define-public go-github-com-yuin-goldmark
  (package
    (name "go-github-com-yuin-goldmark")


@@ 222,28 300,52 @@ language.")
        (base32 "0ccjgv19w5p9sbcq12czmfnkjwv3b7hfljifwax6r9wk4dx0fcn7"))
       (modules '((guix build utils)))
       (snippet
        '(begin
           ;; Submodules with their own go.mod files and packed as separated
           ;; packages:
           ;;
           ;; - golang.org/x/exp/event
           ;; - golang.org/x/exp/jsonrpc2
           ;; - golang.org/x/exp/shiny
           ;; - golang.org/x/exp/sumbdb
           ;; - golang.org/x/exp/typeparams
           (for-each delete-file-recursively
                     (list "event" "jsonrpc2" "shiny" "sumdb" "typeparams"))))))
        #~(begin
            ;; Submodules with their own go.mod files and packed as separated
            ;; packages:
            ;;
            ;; - golang.org/x/exp/event
            ;; - golang.org/x/exp/jsonrpc2
            ;; - golang.org/x/exp/shiny
            ;; - golang.org/x/exp/sumbdb
            ;; - golang.org/x/exp/typeparams
            (for-each delete-file-recursively
                      (list "event" "jsonrpc2" "shiny" "sumdb" "typeparams"))))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "golang.org/x/exp"
       ;; Source-only package
       #:tests? #f
       #:phases (modify-phases %standard-phases
                  (delete 'build))))
     (list
      #:import-path "golang.org/x/exp"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-failing-tests
            (lambda* (#:key import-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" import-path)
                ;; Benchmark requires other modules to pass tests, delete them.
                (delete-file-recursively "slog/benchmarks")
               (substitute* (find-files "." "\\_test.go$")
                 ;; Disable failing tests: error running `go mod init`: go:
                 ;; modules disabled by GO111MODULE=off; see 'go help modules'
                 ;; , exit status 1
                 (("TestFailure") "OffTestFailure")
                 (("TestRelease_gitRepo_uncommittedChanges")
                  "OffTestRelease_gitRepo_uncommittedChanges")))))
          ;; XXX: Workaround for go-build-system's lack of Go modules
          ;; support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-github-com-google-go-cmp
           go-golang-org-x-mod
           go-golang-org-x-tools))
    (home-page "https://golang.org/x/exp")
    (synopsis "Experimental and deprecated Go packages")
    (description "This subrepository holds experimental and deprecated (in the
@code{old} directory) packages.")
    (description
     "This subrepository holds experimental and deprecated (in the @code{old}
directory) packages.")
    (license license:bsd-3)))

(define-public go-golang-org-x-exp-typeparams


@@ 701,6 803,55 @@ Go programming language.")
1.13 error values.")
      (license license:bsd-3))))

(define-public go-google-golang-org-protobuf
  (package
    (name "go-google-golang-org-protobuf")
    (version "1.31.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://go.googlesource.com/protobuf")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1xf18kzz96hgfy1vlbnydrizzpxkqj2iamfdbj3dx5a1zz5mi8n0"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "google.golang.org/protobuf"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? unpack-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" unpack-path)
                (substitute* (find-files "." "\\_test.go$")
                  ;; XXX Failing on i686-linux:
                  ;; panic: unaligned 64-bit atomic operation
                  (("TestDynamicTypesExtensionNotFound")
                   "OffTestDynamicTypesExtensionNotFound")
                  (("TestDynamicTypesFilesChangeAfterCreation")
                   "OffTestDynamicTypesFilesChangeAfterCreation")
                  (("TestDynamicTypesFindExtensionByNameOrNumber")
                   "OffTestDynamicTypesFindExtensionByNameOrNumber")))))
          ;; XXX: Workaround for go-build-system's lack of Go modules
          ;; support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs (list go-github-com-google-go-cmp))
    (home-page "https://google.golang.org/protobuf")
    (synopsis "Go library for Protocol Buffers")
    (description
     "The protobuf package provides a Go implementation of Protocol Buffers, a
language and platform neutral, extensible mechanism for serializing structured
data.  It is a successor to @code{go-github-com-golang-protobuf} with an
improved and cleaner API.")
    (license license:bsd-3)))

;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar

M gnu/packages/golang-check.scm => gnu/packages/golang-check.scm +62 -69
@@ 286,7 286,7 @@ workloads.  This kind of profiling is also known as wall-clock profiling.")
(define-public go-github-com-frankban-quicktest
  (package
    (name "go-github-com-frankban-quicktest")
    (version "1.11.1")
    (version "1.14.6")
    (source
     (origin
       (method git-fetch)


@@ 295,13 295,13 @@ workloads.  This kind of profiling is also known as wall-clock profiling.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938"))))
        (base32 "0gnh9v4cg39pw8y356299zhh5jmq2p4cf9945lfiqsjsk7h6ld70"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/frankban/quicktest"))
     (list
      #:import-path "github.com/frankban/quicktest"))
    (propagated-inputs
     (list go-github-com-google-go-cmp-cmp go-github-com-kr-pretty))
     (list go-github-com-google-go-cmp go-github-com-kr-pretty))
    (home-page "https://github.com/frankban/quicktest")
    (synopsis "Quick helpers for testing Go applications")
    (description


@@ 312,7 312,7 @@ tests.")
(define-public go-github-com-go-test-deep
  (package
    (name "go-github-com-go-test-deep")
    (version "1.0.8")
    (version "1.1.1")
    (source
     (origin
       (method git-fetch)


@@ 321,7 321,7 @@ tests.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1mmw2w3by7y24jjpjwmf2gfl08c65jihn3si9m0sswmagmdsk8q0"))))
        (base32 "1vjzmd4gc3zr9hlpzhhq4g1d0k6rbhply10vdl49gvir4dzmzzrl"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/go-test/deep"))


@@ 376,7 376,7 @@ when comparing complex types like structures and maps.")
      (arguments
       '(#:import-path "github.com/google/go-cmdtest"))
      (propagated-inputs
       (list go-github-com-google-renameio go-github-com-google-go-cmp-cmp))
       (list go-github-com-google-renameio go-github-com-google-go-cmp))
      (home-page "https://github.com/google/go-cmdtest")
      (synopsis "Testing for your CLI")
      (description


@@ 682,7 682,7 @@ Gomega matcher library.")
  (package
    (inherit go-github-com-onsi-ginkgo)
    (name "go-github-com-onsi-ginkgo-v2")
    (version "2.18.0")
    (version "2.19.0")
    (source
     (origin
       (method git-fetch)


@@ 691,7 691,7 @@ Gomega matcher library.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1w5dldjjcz2kpyxml4zd9yah7galfpmhcpc2l4zc5pr3skpwpibv"))))
        (base32 "0dwnkcysb5d9dyg8p84hhx5a3sj85g3bwgki1pgay4i8glz7xa7q"))))
    (arguments
     (list
      #:import-path "github.com/onsi/ginkgo/v2"))


@@ 878,7 878,7 @@ current goroutine's ID.")
(define-public go-github-com-stretchr-testify
  (package
    (name "go-github-com-stretchr-testify")
    (version "1.7.0")
    (version "1.9.0")
    (source
     (origin
       (method git-fetch)


@@ 888,7 888,7 @@ current goroutine's ID.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "0ixgjsvafr3513pz3r6pmgk074s2dxkll0dadvl25gkf30rkmh10"))))
         "12cnhk96h8b3ddlb7jfvwwavzc0j1c2iva92pszl9rv6r571ckzg"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/stretchr/testify"))


@@ 923,25 923,10 @@ Features include:
      (propagated-inputs
       (list go-gopkg-in-yaml-v3)))))

(define-public go-github-com-stretchr-testify-next
  (package
    (inherit go-github-com-stretchr-testify)
    (name "go-github-com-stretchr-testify")
    (version "1.9.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/stretchr/testify")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "12cnhk96h8b3ddlb7jfvwwavzc0j1c2iva92pszl9rv6r571ckzg"))))))

(define-public go-github-com-tdewolff-test
  (package
    (name "go-github-com-tdewolff-test")
    (version "1.0.9")
    (version "1.0.10")
    (source
     (origin
       (method git-fetch)


@@ 950,11 935,11 @@ Features include:
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "10myz3zdkqmx37cvj507h7l2ncb0rq9shqvz9ggq1swijbsvazff"))))
        (base32 "1ihlcnygwdgxq068b29d3n9n1gdbb2j03sc0al1qk5i5dkvgziyx"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/tdewolff/test"))
     (list
      #:import-path "github.com/tdewolff/test"))
    (home-page "https://github.com/tdewolff/test")
    (synopsis "Go test helper functions")
    (description


@@ 1011,7 996,7 @@ functions for writing tests in Go.")
    (arguments
     '(#:import-path "github.com/smartystreets/goconvey"))
    (propagated-inputs
     (list go-github.com-jtolds-gls go-github.com-smartystreets-assertions))
     (list go-github-com-jtolds-gls go-github.com-smartystreets-assertions))
    (home-page "https://github.com/smartystreets/goconvey")
    (synopsis "Go testing tool with both a web and terminal user interface")
    (description "GoConvey is a testing tool for Go. It integrates with go


@@ 1051,7 1036,7 @@ under test) much simpler.")
(define-public go-go-etcd-io-gofail
  (package
    (name "go-go-etcd-io-gofail")
    (version "0.1.0")
    (version "0.2.0")
    (source
     (origin
       (method git-fetch)


@@ 1060,7 1045,7 @@ under test) much simpler.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0jh0qjgfb2irshwj7an3lj0w9bv6c5gbnkdhisgpdr7x7hk682m1"))))
        (base32 "0wxjaq1v5w0wjyv84af5cazrmv369i1416ar0dx8r9ag1szcfvpc"))))
    (build-system go-build-system)
    (arguments
     (list


@@ 1080,32 1065,34 @@ under test) much simpler.")
    (license license:asl2.0)))

(define-public go-golang-org-sql-mock
  (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
        (version "1.3.3")
        (revision "1"))
    (package
      (name "go-golang-org-sql-mock")
      (version (git-version version revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/DATA-DOG/go-sqlmock")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32
           "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))
         (modules '((guix build utils)))
         (snippet '(delete-file-recursively "examples"))))
      (build-system go-build-system)
      (arguments
       '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
      (synopsis "Mock library implementing @code{sql/driver}")
      (description "This library simulates SQL-driver behavior in tests
without requiring a real database connection.")
      (home-page "https://github.com/DATA-DOG/go-sqlmock")
      (license license:expat))))
  (package
    (name "go-golang-org-sql-mock")
    (version "1.5.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/DATA-DOG/go-sqlmock")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1vpvdx9hwmx9gm27aq5r5219xpaxz0gy4q1iqskk4saz05bspn0f"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/DATA-DOG/go-sqlmock"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-examples
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/examples")))))))
    (home-page "https://github.com/DATA-DOG/go-sqlmock")
    (synopsis "Mock library implementing @code{sql/driver}")
    (description
     "This library simulates SQL-driver behavior in tests without requiring a
real database connection.")
    (license license:expat)))

(define-public go-golang-org-x-lint
  (let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445")


@@ 1264,7 1251,7 @@ gracefully enhance standard library testing package and behaviors of the
(define-public go-go-uber-org-goleak
  (package
    (name "go-go-uber-org-goleak")
    (version "1.2.0")
    (version "1.3.0")
    (source
     (origin
       (method git-fetch)


@@ 1273,14 1260,13 @@ gracefully enhance standard library testing package and behaviors of the
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "1lpqw7ygffak8qki9i4vw8b99l25l8jrw8iwcplqsclk6fzkl24p"))))
        (base32 "14rvkxh3znp9jzbdjqdkrly3zfg3rmhgg5845biqqrq17w8jvv5s"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "go.uber.org/goleak"))
    (native-inputs
     (list go-github-com-stretchr-testify-next))
     (list go-github-com-stretchr-testify))
    (home-page "https://pkg.go.dev/go.uber.org/goleak")
    (synopsis "Goroutine leak detector")
    (description


@@ 1375,16 1361,23 @@ advanced Go linter.")
    (build-system go-build-system)
    (arguments
     (list
      #:go go-1.18
      #:import-path "pgregory.net/rapid"))
      #:import-path "pgregory.net/rapid"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-failing-tests
            (lambda* (#:key import-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" import-path)
                ;; Remove test file failing on go-1.21, see
                ;; <https://github.com/flyingmutant/rapid/issues/68>.
                (delete-file "strings_example_test.go")))))))
    (home-page "https://pgregory.net/rapid/")
    (synopsis "Go property-based testing library")
    (description
     "@code{Rapid} is a Go library for property-based testing.

Rapid checks that properties you define hold for a large number of automatically
generated test cases.  If a failure is found, rapid automatically minimizes the
failing test case before presenting it.
Rapid checks that properties you define hold for a large number of
automatically generated test cases.  If a failure is found, rapid
automatically minimizes the failing test case before presenting it.

Features:
@itemize

M gnu/packages/golang-crypto.scm => gnu/packages/golang-crypto.scm +157 -33
@@ 6,6 6,7 @@
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021 BonfaceKilz <me@bonfacemunyoki.com>
;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>


@@ 21,6 22,7 @@
;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 45,12 47,14 @@
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (gnu packages)
  #:use-module (gnu packages gnupg)
  #:use-module (gnu packages golang)
  #:use-module (gnu packages golang-build)
  #:use-module (gnu packages golang-check)
  #:use-module (gnu packages golang-compression)
  #:use-module (gnu packages golang-web)
  #:use-module (gnu packages golang-xyz)
  #:use-module (gnu packages password-utils)
  #:use-module (gnu packages specifications))

;;; Commentary:


@@ 199,9 203,9 @@ Go, exposing the necessary APIs to build a wide array of higher-level
primitives.")
    (license license:bsd-3)))

(define-public go-github-com-99designs-go-keyring
(define-public go-github-com-99designs-keyring
  (package
    (name "go-github-com-99designs-go-keyring")
    (name "go-github-com-99designs-keyring")
    (version "1.2.2")
    (source
     (origin


@@ 213,6 217,30 @@ primitives.")
       (sha256
        (base32 "0mkvy7scyq07rkqhabfmkd8imcm4h9y7zj9palj04znpihpixa5m"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/99designs/keyring"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? unpack-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" unpack-path)
                (substitute* (find-files "." "\\_test.go$")
                  ;; Disable test requring running DBus.
                  (("TestLibSecretKeysWhenEmpty")
                   "OffTestLibSecretKeysWhenEmpty")
                  (("TestLibSecretKeysWhenNotEmpty")
                   "OffTestLibSecretKeysWhenNotEmpty")
                  (("TestLibSecretGetWhenEmpty")
                   "OffTestLibSecretGetWhenEmpty")
                  (("TestLibSecretGetWhenNotEmpty")
                   "OffTestLibSecretGetWhenNotEmpty")
                  (("TestLibSecretRemoveWhenEmpty")
                   "OffTestLibSecretRemoveWhenEmpty")
                  (("TestLibSecretRemoveWhenNotEmpty")
                   "OffTestLibSecretRemoveWhenNotEmpty"))))))))
    (native-inputs
     (list gnupg go-github-com-stretchr-testify password-store))
    (propagated-inputs
     (list go-github-com-dvsekhvalnov-jose2go
           go-github-com-godbus-dbus


@@ 221,9 249,7 @@ primitives.")
           go-github-com-mtibben-percent
           go-golang-org-x-sys
           go-golang-org-x-term))
    (arguments
     '(#:import-path "github.com/99designs/keyring"
       #:tests? #f))                              ;XXX: tests require Vagrant
    (home-page "https://github.com/99designs/keyring")
    (synopsis "Go library providing a uniform interface for various secure
credential stores")
    (description


@@ 234,7 260,6 @@ workstations.

Currently Keyring supports the following backends: macOS/OSX Keychain, Windows
pcredential store, Pass, Secret Service, KDE Wallet, Encrypted File.")
    (home-page "https://github.com/99designs/keyring")
    (license license:expat)))

(define-public go-github-com-aead-chacha20


@@ 357,6 382,34 @@ the Ristretto prime-order group built from Edwards25519.")
(define-public go-github-com-cespare-xxhash
  (package
    (name "go-github-com-cespare-xxhash")
    (version "1.1.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/cespare/xxhash")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/cespare/xxhash"))
    (propagated-inputs
     (list go-github-com-spaolacci-murmur3
           go-github-com-oneofone-xxhash))
    (home-page "https://github.com/cespare/xxhash")
    (synopsis "Go implementation of xxHash")
    (description
     "Package xxhash implements the 64-bit variant of @code{xxHash} (XXH64) as
described at @url{https://xxhash.com/}.")
    (license license:expat)))

(define-public go-github-com-cespare-xxhash-v2
  (package
    (inherit go-github-com-cespare-xxhash)
    (name "go-github-com-cespare-xxhash-v2")
    (version "2.1.2")
    (source
     (origin


@@ 369,10 422,9 @@ the Ristretto prime-order group built from Edwards25519.")
        (base32 "1f3wyr9msnnz94szrkmnfps9wm40s5sp9i4ak0kl92zcrkmpy29a"))
       (modules '((guix build utils)))
       (snippet '(delete-file-recursively "xxhashbench"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/cespare/xxhash"
      #:import-path "github.com/cespare/xxhash/v2"
      #:phases
      #~(modify-phases %standard-phases
          (replace 'check


@@ 381,11 433,7 @@ the Ristretto prime-order group built from Edwards25519.")
                  ;; The tests fail when run with gccgo.
                  (false-if-exception (search-input-file inputs "/bin/gccgo"))
                (apply (assoc-ref %standard-phases 'check) args)))))))
    (home-page "https://github.com/cespare/xxhash/")
    (synopsis "Go implementation of xxHash")
    (description "This package provides of Go implementation of the 64-bit
xxHash algorithm (XXH64).")
    (license license:expat)))
    (propagated-inputs '())))

(define-public go-github-com-chmduquesne-rollinghash
  (let ((commit "9a5199be7309f50c496efc87d29bd08788605ae7")


@@ 477,10 525,36 @@ and encrypting JSON Web Tokens (JWT).  It relies only on the standard
library.")
    (license license:expat)))

(define-public go-github-com-emersion-go-bcrypt
  (package
    (name "go-github-com-emersion-go-bcrypt")
    (version "0.0.0-20170822072041-6e724a1baa63")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-bcrypt")
             (commit (go-version->git-ref version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1pchrgs05w30iqbh4d6iys4wvlyajsdwchp5mkf59amgsbyjaqgm"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-bcrypt"))
    (propagated-inputs
     (list go-golang-org-x-crypto))
    (home-page "https://github.com/emersion/go-bcrypt")
    (synopsis "Extract of bcrypt from golang.org/x/crypto/bcrypt")
    (description
     "This package provides an extract @code{bcrypt} from
@code{golang.org/x/crypto/bcrypt}.")
    (license license:bsd-3)))

(define-public go-github-com-emersion-go-pgpmail
  (package
    (name "go-github-com-emersion-go-pgpmail")
    (version "0.2.0")
    (version "0.2.1")
    (source
     (origin
       (method git-fetch)


@@ 489,17 563,14 @@ library.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0ar26b0apw5bxn58qfn1a79cxigbmrqm1irh1rb7x57fydihc7wm"))))
        (base32 "1fiqpdwxnfba2cgij7j83dfqc0zz4mq95x15wicgm5f3vjr1xg5h"))))
    (build-system go-build-system)
    (arguments
     (list ;; tests don't support our version of protonmail/go-crypto; see
      ;; <https://github.com/emersion/go-pgpmail/issues/12>
      #:tests? #f
     (list
      #:import-path "github.com/emersion/go-pgpmail"))
    (propagated-inputs
     (list go-github-com-emersion-go-message
           go-github-com-protonmail-go-crypto
           go-golang-org-x-crypto
           go-golang-org-x-text))
    (home-page "https://github.com/emersion/go-pgpmail")
    (synopsis "PGP mail encryption for Go")


@@ 1068,6 1139,37 @@ Architecture Processors\" by J. Guilford et al.")
    (description "Multihash implementation in Go.")
    (license license:expat)))

(define-public go-github-com-oneofone-xxhash
  (package
    (name "go-github-com-oneofone-xxhash")
    (version "1.2.8")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/OneOfOne/xxhash")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0f98qk83l2fhpclvrgyxsa9b8m4pipf11fah85bnjl01wy4lvybw"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/OneOfOne/xxhash"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-benchmarks
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/benchmarks")))))))
    (home-page "https://github.com/OneOfOne/xxhash")
    (synopsis "Go implementation of xxHash")
    (description
     "This is a native Go implementation of the
@url{https://github.com/Cyan4973/xxHash, xxHash} algorithm, an extremely fast
non-cryptographic hash algorithm, working at speeds close to RAM limits.")
    (license license:asl2.0)))

(define-public go-github-com-operatorfoundation-ed25519
  (let ((commit "b22b4bd3ddef042eec45f3ee135cd40281fde2b4")
        (revision "0"))


@@ 1127,32 1229,40 @@ algorithm.")
(define-public go-github-com-protonmail-go-crypto
  (package
    (name "go-github-com-protonmail-go-crypto")
    (version "0.0.0-20220623141421-5afb4c282135")
    (version "1.0.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/ProtonMail/go-crypto")
             (commit (go-version->git-ref version))))
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "05qxdbn8wdk901z5kw2r3jdrag58nxlcsy0p8xd6rq0d71sw94wy"))))
        (base32 "11q94983r6zjrdvflpikms4773a9s5vb9gg4qw1rj5800yhhah0n"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/ProtonMail/go-crypto"
           #:tests? #f ; Source-only package.
           #:phases
           #~(modify-phases %standard-phases
               ;; Source-only package.
               (delete 'build))))
     (list
      #:import-path "github.com/ProtonMail/go-crypto"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Workaround for go-build-system's lack of Go modules
          ;; support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-golang-org-x-crypto))
     (list go-github-com-cloudflare-circl
           go-golang-org-x-crypto))
    (home-page "https://github.com/ProtonMail/go-crypto")
    (synopsis "Fork of x/crypto with up-to-date OpenPGP implementation")
    (description "This package provides cryptography for Go.  This version of
the package is a fork that adds a more up-to-date OpenPGP implementation.  It
is completely backwards compatible with @code{golang.org/x/crypto}, the
official package.")
    (description
     "This package provides cryptography for Go.  This version of the package
is a fork that adds a more up-to-date OpenPGP implementation.  It is
completely backwards compatible with @code{golang.org/x/crypto}, the official
package.")
    (license license:bsd-3)))

(define-public go-github-com-quic-go-qtls-go1-20


@@ 1469,6 1579,20 @@ Go.")
       #:unpack-path "filippo.io/age"
       #:install-source? #f))))

(define-public go-keyring
  (package
    (inherit go-github-com-99designs-keyring)
    (name "go-keyring")
    (arguments
     (list
      #:install-source? #f
      #:import-path "github.com/99designs/keyring/cmd/keyring"
      #:unpack-path "github.com/99designs/keyring"))
    (description
     (string-append (package-description go-github-com-99designs-keyring)
                    "  This package provides an command line interface (CLI)
tool."))))

;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar

M gnu/packages/golang-web.scm => gnu/packages/golang-web.scm +509 -86
@@ 3,18 3,19 @@
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;; Copyright © 2020-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca>
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 (unmatched-parenthesis <paren@disroot.org>
;;; Copyright © 2022 Adam Kandur <kefironpremise@gmail.com>
;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org>


@@ 66,8 67,10 @@

;;; Commentary:
;;;
;;; Golang modules (libraries) related to HTML, CSS, SCSS, JavaScript, JSON,
;;; Web-framework, REST-API or similar functionality. They may provide
;;; Golang modules (libraries) for Web related projects: HTML, CSS, SCSS,
;;; JavaScript, JSON, Web-framework, REST-API or similar functionality; for
;;; Network related projects: OSI layers implementation algorithms, MIME,
;;; Email protocols implementations, and similar.  They may provide
;;; executables and libraries, for which there are marked sections.

;;;


@@ 127,6 130,44 @@ API service accounts for Go.")
     "This package provides a GraphQL client and code generator for Go.")
    (license license:expat)))

(define-public go-git-sr-ht-rockorager-go-jmap
  (package
    (name "go-git-sr-ht-rockorager-go-jmap")
    (version "0.5.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://git.sr.ht/~rockorager/go-jmap")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1r8bmdlmvpk08i7xrqwgv0aaz05564wgcyji73nszdh2s32m4kzl"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "git.sr.ht/~rockorager/go-jmap"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Workaround for go-build-system's lack of Go modules support.
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (native-inputs
     (list
      go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-golang-org-x-oauth2))
    (home-page "https://git.sr.ht/~rockorager/go-jmap")
    (synopsis "JSON meta application protocol in Golang")
    (description
     "Package jmap implements JMAP Core protocol as defined in
@@url{https://rfc-editor.org/rfc/rfc8620.html,RFC 8620} published on July
2019.")
    (license license:expat)))

(define-public go-github-com-alexliesenfeld-health
  (package
    (name "go-github-com-alexliesenfeld-health")


@@ 227,40 268,10 @@ the parse trees produced by the html package.")
connections from a single physical connection.")
    (license license:expat)))

(define-public go-github-com-aws-sdk
  (package
    (name "go-github-com-aws-sdk")
    (version "1.35.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/aws/aws-sdk-go")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1ky5lw2s2zpslnnqcs6hgsrwvwbxwgflb5jwf16dd4aga3vrg10c"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/aws/aws-sdk-go/aws"
       #:unpack-path "github.com/aws/aws-sdk-go"))
    (propagated-inputs
     (list go-github-com-go-sql-driver-mysql
           go-github-com-jmespath-go-jmespath
           go-github-com-pkg-errors
           go-golang-org-x-net))
    (home-page "https://github.com/aws/aws-sdk-go")
    (synopsis "Library to access Amazon Web Services (AWS)")
    (description
     "This is the official AWS SDK for the Go programming language.")
    (license license:asl2.0)))

;; XXX: This package might be a duplicate of go-github-com-aws-sdk, it's not
;; in use anywhere. Keep it here for the farther review.
(define-public go-github-com-aws-aws-sdk-go
  (package
    (name "go-github-com-aws-aws-sdk-go")
    (version "1.36.18")
    (version "1.55.2")
    (source
     (origin
       (method git-fetch)


@@ 269,17 280,32 @@ connections from a single physical connection.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "169mkkw1cff1px6326krwvfpfj07sb4y5rbn003gi4bk176h6ry9"))))
        (base32 "0wsl1vcig3j9z6v2hppfr1bvrvbisck026fwq2a7yzmx36pwnj6a"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/aws/aws-sdk-go"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" import-path)
                (substitute* (find-files "." "\\_test.go$")
                  (("TestProcessProviderTimeout")
                   "OffTestProcessProviderTimeout")))))
          ;; XXX: Workaround for go-build-system's lack of Go modules
          ;; support.
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-github-com-jmespath-go-jmespath))
    (arguments
     '(#:import-path "github.com/aws/aws-sdk-go"
       #:phases %standard-phases))
    (home-page "https://github.com/aws/aws-sdk-go")
    (synopsis "The official AWS SDK for the Go programming language")
    (description
     "The official AWS SDK for the Go programming language.")
    (home-page "https://github.com/aws/aws-sdk-go")
    (license license:asl2.0)))

(define-public go-github-com-aws-aws-sdk-go-v2


@@ 300,7 326,7 @@ connections from a single physical connection.")
     '(#:import-path "github.com/aws/aws-sdk-go-v2"))
    (propagated-inputs
     (list go-github-com-aws-smithy-go
           go-github-com-google-go-cmp-cmp
           go-github-com-google-go-cmp
           go-github-com-jmespath-go-jmespath))
    (home-page "https://github.com/aws/aws-sdk-go-v2")
    (synopsis "AWS SDK for Go v2")


@@ 317,9 343,37 @@ connections from a single physical connection.")
     '(#:import-path "github.com/aws/aws-sdk-go-v2/config"
       #:unpack-path "github.com/aws/aws-sdk-go-v2"))
    (propagated-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-aws-smithy-go))))

(define-public go-github-com-aws-aws-sdk-go-v2-credentials
  (package
    (name "go-github-com-aws-aws-sdk-go-v2-credentials")
    (version "1.17.27")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/aws/aws-sdk-go-v2")
             (commit (string-append "credentials/v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0jdj7wim98g80hjbw3av7ffrr3dqxzbygprmhjs0cxc16cw62wj7"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/aws/aws-sdk-go-v2/credentials"
      #:unpack-path "github.com/aws/aws-sdk-go-v2"))
    (propagated-inputs
     (list go-github-com-google-go-cmp
           go-github-com-aws-smithy-go))
    (home-page "https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/credentials")
    (synopsis "AWS SDK for Go v2 - credentials module")
    (description
     "Package credentials provides types for retrieving credentials from
credentials sources.")
    (license license:asl2.0)))

(define-public go-github-com-aws-aws-sdk-go-v2-feature-s3-manager
  (package
    (inherit go-github-com-aws-aws-sdk-go-v2)


@@ 402,7 456,7 @@ connections from a single physical connection.")
    (arguments
     '(#:import-path "github.com/aws/smithy-go"))
    (propagated-inputs
     (list go-github-com-jmespath-go-jmespath go-github-com-google-go-cmp-cmp))
     (list go-github-com-jmespath-go-jmespath go-github-com-google-go-cmp))
    (home-page "https://github.com/aws/smithy-go")
    (synopsis "@url{https://smithy.io/2.0/index.html,Smithy} code generators
for Go")


@@ 633,7 687,7 @@ and stop increasing when a certain threshold is met.")
  (package
    (inherit go-github-com-coreos-go-oidc)
    (name "go-github-com-coreos-go-oidc-v3")
    (version "3.6.0")
    (version "3.11.0")
    (source
     (origin
       (method git-fetch)


@@ 642,15 696,295 @@ and stop increasing when a certain threshold is met.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1sbm6n3lp48lymn0g921afhq2j6inb38w3wy5rhyx9h8gpzhnxx9"))))
        (base32 "00nbv15pjfcfxdy0i4k366ricdm2cylhpwak3hmjlgh6lrzxypl9"))))
    (arguments
     (list ;; no Go files in [...]/src/github.com/coreos/go-oidc/v3.
      #:import-path "github.com/coreos/go-oidc/v3/oidc"
      #:unpack-path "github.com/coreos/go-oidc/v3"))
     (list
      #:import-path "github.com/coreos/go-oidc/v3"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Workaround for go-build-system's lack of Go modules
          ;; support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-github-com-go-jose-go-jose-v3
     (list go-github-com-go-jose-go-jose-v4
           go-golang-org-x-net
           go-golang-org-x-oauth2))))

(define-public go-github-com-emersion-go-imap
  (package
    (name "go-github-com-emersion-go-imap")
    (version "1.2.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-imap")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0ak2ysvfcc9w0g1070msis8x9sh6gzvf0nd65ks594siwbmqddw8"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-imap"))
    (propagated-inputs
     (list go-golang-org-x-text
           go-github-com-emersion-go-sasl
           go-github-com-emersion-go-message))
    (home-page "https://github.com/emersion/go-imap")
    (synopsis "IMAP4rev1 library written in Go")
    (description
     "This package provides an IMAP4rev1 library written in Go.  It can be
used to build IMAP clients and servers.")
    (license license:expat)))

;; XXX: This repository has been archived by the owner on Sep 8, 2021. It is
;; now read-only.
(define-public go-github-com-emersion-go-imap-idle
  (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
        (revision "0"))
    (package
      (name "go-github-com-emersion-go-imap-idle")
      (version (git-version "0.0.0" revision commit))
      (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/emersion/go-imap-idle")
                (commit commit)))
          (sha256
           (base32
            "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
          (file-name (git-file-name name version))))
      (build-system go-build-system)
      (arguments
       (list
        #:import-path "github.com/emersion/go-imap-idle"))
      (propagated-inputs
       (list go-github-com-emersion-go-imap))
      (home-page "https://github.com/emersion/go-imap-idle")
      (synopsis "IDLE extension for go-imap")
      (description "This package provides an IDLE extension for go-imap.")
      (license license:expat))))

(define-public go-github-com-emersion-go-imap-sortthread
  (package
    (name "go-github-com-emersion-go-imap-sortthread")
    (version "1.2.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-imap-sortthread")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1cfbgz1l5angnj52v9pxwggai2shx0h78ffcp7j4r4lr7lzflnwz"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-imap-sortthread"))
    (propagated-inputs
     (list
      go-github-com-emersion-go-imap))
    (home-page "https://github.com/emersion/go-imap-sortthread")
    (synopsis "Sorting and threading of messages for the imap package")
    (description
     "The sortthread package implements message sorting and threading for
@code{go-github-com-emersion-go-imap}.")
    (license license:expat)))

(define-public go-github-com-emersion-go-maildir
  (package
    (name "go-github-com-emersion-go-maildir")
    (version "0.5.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-maildir")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0wa7spn3qa7ipmg29vrimw7phyybyaagdalrjklcazjb6rplvwpl"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-maildir"))
    (home-page "https://github.com/emersion/go-maildir")
    (synopsis "Maildir interface for Go")
    (description
     "This package provides an interface to mailboxes in the Maildir format.")
    (license license:expat)))

(define-public go-github-com-emersion-go-mbox
  (package
    (name "go-github-com-emersion-go-mbox")
    (version "1.0.3")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-mbox")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0vnadh2khx7sxn0irrd8gz8ra02x7ij0q8zglq3rqffqil06nliv"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-mbox"))
    (home-page "https://github.com/emersion/go-mbox")
    (synopsis "Go library for handling @code{mbox} files")
    (description
     "This package provides a library for parsing and formatting @code{mbox}
files.")
    (license license:expat)))

(define-public go-github-com-emersion-go-message
  (package
    (name "go-github-com-emersion-go-message")
    (version "0.18.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-message")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0gzcgrs5sava8fpybp5cw6f3zqnbz096wf93hcgkrg94wl1g7kqb"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-message"))
    (propagated-inputs
     (list go-golang-org-x-text))
    (home-page "https://github.com/emersion/go-message")
    (synopsis "Internet messages and MIME for Go")
    (description
     "The message package implements the Internet Message Format and
Multipurpose Internet Mail Extensions in Go.")
    (license license:expat)))

(define-public go-github-com-emersion-go-milter
  (package
    (name "go-github-com-emersion-go-milter")
    (version "0.4.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-milter")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "11qjwjz6ippsx9da81gylx46p1a96mk39j54ayw925m40skqhh3c"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-milter"))
    (propagated-inputs
     (list go-github-com-emersion-go-message))
    (home-page "https://github.com/emersion/go-milter")
    (synopsis "Milter mail filters in Go")
    (description
     "This package provides an interface for implementing milter mail filters
for Go.")
    (license license:bsd-2)))

(define-public go-github-com-emersion-go-msgauth
  (package
    (name "go-github-com-emersion-go-msgauth")
    (version "0.6.8")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-msgauth")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0az83i6jmk3bjglgdqw5zsvhh8698rav0mcg4dy8kr0cgq0lj5zs"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-msgauth"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Run all tests, workaround for go-build-system's lack of Go
          ;; modules support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-golang-org-x-crypto
           go-github-com-emersion-go-milter
           go-github-com-emersion-go-message))
    (home-page "https://github.com/emersion/go-msgauth")
    (synopsis "Email authentication for Go")
    (description
     "This package provides a Go library for authenticating emails.")
    (license license:expat)))

(define-public go-github-com-emersion-go-sasl
  (let ((commit "0b9dcfb154ac3d7515b08bc2691a0332800edfe9")
        (revision "1"))
    (package
      (name "go-github-com-emersion-go-sasl")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/emersion/go-sasl")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "1cbf86wkqrdinfydndgdlnayg4a5mg3d4vqra377j2sfkg7wj0hs"))))
      (build-system go-build-system)
      (arguments
       (list
        #:import-path "github.com/emersion/go-sasl"))
      (home-page "https://github.com/emersion/go-sasl")
      (synopsis "SASL library written in Go")
      (description
       "This package provides a SASL library written in Go.")
      (license license:expat))))

(define-public go-github-com-emersion-go-smtp
  (package
    (name "go-github-com-emersion-go-smtp")
    (version "0.21.3")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-smtp")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0drvmvrkmhqhnv4m3my1hbkyyva2vi35b36j0pdi57xc9rflziq3"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-smtp"))
    (propagated-inputs
     (list go-github-com-emersion-go-sasl))
    (home-page "https://github.com/emersion/go-smtp")
    (synopsis "SMTP implementation for Go")
    (description
     "This package implements the Simple Mail Transfer Protocol as defined by
RFC 5321.")
    (license license:expat)))

(define-public go-github-com-emicklei-go-restful
  (package
    (name "go-github-com-emicklei-go-restful")


@@ 731,6 1065,35 @@ API and doesn't use reflection.  It relies on small interfaces to
decode/encode structures and slices.")
    (license license:expat)))

(define-public go-github-com-gatherstars-com-jwz
  (package
    (name "go-github-com-gatherstars-com-jwz")
    (version "1.4.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/gatherstars-com/jwz")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1d66axc3504wqpb4axlm8m9jq8rmwndxb4asbqwryymj3yh60cla"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/gatherstars-com/jwz"))
    (propagated-inputs
     (list go-github-com-rivo-tview
           go-github-com-jhillyerd-enmime
           go-github-com-gdamore-tcell-v2))
    (home-page "https://github.com/gatherstars-com/jwz")
    (synopsis "Email threading algorithm in Golang")
    (description
     "The jwz package provides an implementation of the email threading
algorithm originally designed for use in
@url{https://www.jwz.org/doc/threading.html,Netscape Mail 2.0 and 3.0} for
Golang.")
    (license license:asl2.0)))

;; TODO: This repository has been archived by the owner on Aug 30, 2023. It is
;; now read-only. The raven-go SDK is no longer maintained and was superseded
;; by the sentry-go


@@ 802,7 1165,7 @@ decompose request handling into many smaller layers.")
    (propagated-inputs
     (list go-golang-org-x-crypto))
    (native-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-stretchr-testify))
    (home-page "https://github.com/go-jose/go-jose")
    (synopsis "Implementation of JOSE standards (JWE, JWS, JWT) in Go")


@@ 868,31 1231,6 @@ Encryption, JSON Web Signature, and JSON Web Token standards.")
language.")
    (license license:expat)))

(define-public go-github-com-go-telegram-bot-api-telegram-bot-api
  (package
    (name "go-github-com-go-telegram-bot-api-telegram-bot-api")
    (version "4.6.4")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/go-telegram-bot-api/telegram-bot-api")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1x6j0k3aiicsr8l53na99ci10zm3qpn2syz4f60fzh164w5k1l7w"))))
    (build-system go-build-system)
    (home-page "https://go-telegram-bot-api.dev/")
    (arguments
     (list #:tests? #f                  ; Upstream tests are broken.
           #:import-path "github.com/go-telegram-bot-api/telegram-bot-api"))
    (propagated-inputs
     (list go-github-com-technoweenie-multipartstreamer))
    (synopsis "Golang bindings for the Telegram Bot API")
    (description
     "This package provides Golang bindings for the Telegram Bot API.")
    (license license:expat)))

(define-public go-github-com-go-webauthn-webauthn
  (package
    (name "go-github-com-go-webauthn-webauthn")


@@ 1384,10 1722,10 @@ the Go standard library, but returns a client that does not share any state
with other clients.")
    (license license:mpl2.0)))

(define-public go-github-com-hjson-hjson-go
(define-public go-github-com-hjson-hjson-go-v4
  (package
    (name "go-github-com-hjson-hjson-go")
    (version "4.3.1")
    (name "go-github-com-hjson-hjson-go-v4")
    (version "4.4.0")
    (source
     (origin
       (method git-fetch)


@@ 1396,15 1734,17 @@ with other clients.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "138vmbnrwzxf64cia27k407clrydvs2jx927dlv6ziydiqyvy7m3"))))
        (base32 "1d4b2hpqsnzbmfhgxq15hd19rjr5hydjmpblrh5yzfgx9z3cz2by"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/hjson/hjson-go"))
     (list
      #:import-path "github.com/hjson/hjson-go/v4"))
    (home-page "https://hjson.org/")
    (synopsis "Human JSON implementation for Go")
    (description "Hjson is a syntax extension to JSON.  It is intended to be
used like a user interface for humans, to read and edit before passing the
JSON data to the machine.")
    (description
     "Hjson is a syntax extension to JSON.  It is intended to be used like a
user interface for humans, to read and edit before passing the JSON data to
the machine.")
    (license license:expat)))

(define-public go-github-com-jackpal-gateway


@@ 1563,6 1903,38 @@ SPNEGO Kerberos authentication, as well as a HTTP handler wrapper decodes
Microsoft AD PAC authorization data.")
    (license license:asl2.0)))

(define-public go-github-com-jhillyerd-enmime
  (package
    (name "go-github-com-jhillyerd-enmime")
    (version "1.2.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/jhillyerd/enmime")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "03pir9wq9ha2i2ifj819yv5i0lvrgdn904ksbzgc3k8bqc497ydn"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/jhillyerd/enmime"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-github-com-cention-sany-utf7
           go-github-com-go-test-deep
           go-github-com-gogs-chardet
           go-github-com-jaytaylor-html2text
           go-github-com-pkg-errors
           go-golang-org-x-text))
    (home-page "https://github.com/jhillyerd/enmime")
    (synopsis "MIME encoder and decoder for Go")
    (description
     "The enmime package implements a MIME encoding and decoding library
geared towards parsing MIME encoded emails.")
    (license license:expat)))

(define-public go-github-com-jmespath-go-jmespath
  (package
    (name "go-github-com-jmespath-go-jmespath")


@@ 1663,7 2035,7 @@ router.")
        (base32 "196rxfg7w8s3zn87gra1mxh1l8iav6kdmg909gkbnc9cxip65zc0"))))
    (build-system go-build-system)
    (propagated-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-golang-org-x-net
           go-golang-org-x-text))
    (arguments


@@ 1902,6 2274,30 @@ multistream-select protocol.  The protocol is defined at
@url{https://github.com/multiformats/multistream-select}")
    (license license:expat)))

(define-public go-github-com-munnerz-goautoneg
  (package
    (name "go-github-com-munnerz-goautoneg")
    (version "0.0.0-20191010083416-a7dc8b61c822")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/munnerz/goautoneg")
             (commit (go-version->git-ref version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1m4v6bw6yf1g0kvpc46isjp0qfhx2y8gnvlnyjf637jy64613mgg"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/munnerz/goautoneg"))
    (home-page "https://github.com/munnerz/goautoneg")
    (synopsis "HTTP Content-Type Autonegotiation")
    (description
     "This package implements @url{https://rfc-editor.org/rfc/rfc2616.html,RFC
2616} HTTP/1.1 standard.")
    (license license:bsd-3)))

(define-public go-github-com-nwidger-jsoncolor
  (package
    (name "go-github-com-nwidger-jsoncolor")


@@ 2776,7 3172,7 @@ protocol.")
      #:import-path "github.com/quic-go/webtransport-go"))
    (native-inputs
     (list go-go-uber-org-mock
           go-github-com-stretchr-testify-next))
           go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-github-com-quic-go-quic-go
           go-golang-org-x-exp))


@@ 3224,6 3620,33 @@ programming language.")
programming language, which supports draft-04, draft-06 and draft-07.")
      (license license:asl2.0))))

(define-public go-golang-org-x-oauth2
  (package
    (name "go-golang-org-x-oauth2")
    (version "0.21.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://go.googlesource.com/oauth2")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0pzpa9jqrfxxhxi1w7n5ljnvr9qfw42hzavz62fc9i6z9vk2466k"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "golang.org/x/oauth2"))
    (propagated-inputs
     (list go-cloud-google-com-go-compute-metadata
           go-github-com-google-go-cmp))
    (home-page "https://go.googlesource.com/oauth2")
    (synopsis "Client implementation of the OAuth 2.0 spec")
    (description
     "This package contains a client implementation for OAuth 2.0
 spec in Go.")
    (license license:bsd-3)))

;; XXX: This repository has been archived by the owner on Feb 27, 2023. It is
;; now read-only and it is DEPRECATED.
(define-public go-gopkg-in-square-go-jose-v2


@@ 3250,7 3673,7 @@ programming language, which supports draft-04, draft-06 and draft-07.")
    (propagated-inputs
     (list go-golang-org-x-crypto))
    (native-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-stretchr-testify))
    (home-page "https://gopkg.in/square/go-jose.v2")
    (synopsis "Implementation of JOSE standards (JWE, JWS, JWT) in Go")

M gnu/packages/golang-xyz.scm => gnu/packages/golang-xyz.scm +551 -74
@@ 9,6 9,7 @@
;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>


@@ 34,9 35,10 @@
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info>
;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Luis Higino <luishenriquegh2701@gmail.com>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 292,6 294,70 @@ a human-readable byte format.")
search functionality to database applications.")
    (license license:expat)))

(define-public go-git-sr-ht-rjarry-go-opt
  (package
    (name "go-git-sr-ht-rjarry-go-opt")
    (version "1.4.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://git.sr.ht/~rjarry/go-opt")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0jcs3bn43g3wv4d5w59zazy139qfkn0903lnvndfn06s81gzqpch"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "git.sr.ht/~rjarry/go-opt"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (home-page "https://git.sr.ht/~rjarry/go-opt")
    (synopsis "Argument parsing and completion based on struct tags")
    (description
     "@code{go-opt} is a library to parse command line arguments based on tag
annotations on struct fields.  It came as a spin-off from
@url{https://git.sr.ht/~rjarry/aerc,aerc} to deal with its internal
commands.")
    (license license:expat)))

(define-public go-git-sr-ht-rockorager-vaxis
  (package
    (name "go-git-sr-ht-rockorager-vaxis")
    (version "0.9.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://git.sr.ht/~rockorager/vaxis")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0pmi4bigqgrfdlk9d6ia3jxgcr4iadiyynf6bny9fdc3yyppcxic"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "git.sr.ht/~rockorager/vaxis"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-github-com-containerd-console
           go-github-com-creack-pty
           go-github-com-mattn-go-runewidth
           go-github-com-mattn-go-sixel
           go-github-com-rivo-uniseg
           go-golang-org-x-exp
           go-golang-org-x-image
           go-golang-org-x-sys))
    (home-page "https://git.sr.ht/~rockorager/vaxis")
    (synopsis "TUI library for Golang")
    (description
     "Package vaxis is a terminal user interface for modern terminals.  It
supports supports modern terminal features, such as styled underlines and
graphics.  A widgets package is provided with some useful widgets.")
    (license license:asl2.0)))

(define-public go-git-sr-ht-sircmpwn-getopt
  (package
    (name "go-git-sr-ht-sircmpwn-getopt")


@@ 795,6 861,33 @@ optimized for sparse nodes of
@url{http://en.wikipedia.org/wiki/Radix_tree,radix tree}.")
    (license license:expat)))

(define-public go-github-com-arran4-golang-ical
  (package
    (name "go-github-com-arran4-golang-ical")
    (version "0.3.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/arran4/golang-ical")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0gcn5afds1dnq3wrl4ndi4wqqwmrnvh9pdqhyv77d3cqakn82vj3"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/arran4/golang-ical"))
    (native-inputs
     (list go-github-com-google-go-cmp
           go-github-com-stretchr-testify))
    (home-page "https://github.com/arran4/golang-ical")
    (synopsis "Handle iCalenders in Go")
    (description
     "The @code{ical} package provides an ICS/iCalender parser and serialiser
for Go.")
    (license license:asl2.0)))

(define-public go-github-com-audriusbutkevicius-recli
  (package
    (name "go-github-com-audriusbutkevicius-recli")


@@ 824,6 917,96 @@ for generating command line clients for your application configuration that is
stored in a Go struct.")
    (license license:mpl2.0)))

(define-public go-github-com-avast-retry-go
  (package
    (name "go-github-com-avast-retry-go")
    (version "2.7.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/avast/retry-go")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0zkn8c2gyz8j90bf0aj6avfl3sf7j4rk5g4ak4yhglnsx72jdhbz"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/avast/retry-go"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" import-path)
                (substitute* (find-files "." "\\_test.go$")
                  (("TestMaxDelay") "OffTestMaxDelay")))))
          (add-after 'unpack 'remove-examples
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/examples")))))))
    (propagated-inputs (list go-github-com-stretchr-testify))
    (home-page "https://github.com/avast/retry-go")
    (synopsis "Simple golang library for retry mechanism")
    (description
     "This package is a simple Go library that provides retry functionality
for functions that may fail.  It includes various customizable retry
strategies, such as fixed delay, backoff delay, and random delay.")
    (license license:expat)))

(define-public go-github-com-avast-retry-go-v3
  (package
    (inherit go-github-com-avast-retry-go)
    (name "go-github-com-avast-retry-go-v3")
    (version "3.1.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/avast/retry-go")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "01mwrzjh2y3xignkivx8kaghjs3gwb3z89zqgxjfaslslazc863b"))))
    (arguments
     (list
      #:import-path "github.com/avast/retry-go/v3"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" import-path)
                (substitute* (find-files "." "\\_test.go$")
                  (("TestMaxDelay") "OffTestMaxDelay")))))
          (add-after 'unpack 'remove-examples
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/examples")))))))))

(define-public go-github-com-avast-retry-go-v4
  (package
    (inherit go-github-com-avast-retry-go)
    (name "go-github-com-avast-retry-go-v4")
    (version "4.6.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/avast/retry-go")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "09gs4wmkq7ragyf2xd0h6j8f9xqq66cwa95kwp5qdwz3wwv9xq1b"))))
    (arguments
     (list
      #:import-path "github.com/avast/retry-go/v4"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-examples
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/examples")))))))))

(define-public go-github-com-aymanbagabas-go-osc52-v2
  (package
    (name "go-github-com-aymanbagabas-go-osc52-v2")


@@ 872,9 1055,9 @@ interface around the standard library's @code{time} package so that the applicat
can use the realtime clock while tests can use the mock clock.")
    (license license:expat)))

(define-public go-github-com-beorn7-perks-quantile
(define-public go-github-com-beorn7-perks
  (package
    (name "go-github-com-beorn7-perks-quantile")
    (name "go-github-com-beorn7-perks")
    (version "1.0.1")
    (source
     (origin


@@ 887,8 1070,17 @@ can use the realtime clock while tests can use the mock clock.")
        (base32 "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/beorn7/perks/quantile"
           #:unpack-path "github.com/beorn7/perks"))
     (list
      #:import-path "github.com/beorn7/perks"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Workaround for go-build-system's lack of Go modules support.
          (delete 'build)
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (home-page "https://github.com/beorn7/perks")
    (synopsis "Compute approximate quantiles over an unbounded data stream")
    (description


@@ 1015,6 1207,35 @@ information and periodically output metrics")
quantiles over an unbounded data stream within low memory and CPU bounds.")
    (license license:bsd-2)))

;; XXX: This repository has been archived by the owner on Mar 9, 2019. It is
;; now read-only.
(define-public go-github-com-boltdb-bolt
  (package
    (name "go-github-com-boltdb-bolt")
    (version "1.3.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/boltdb/bolt")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r"))))
    (build-system go-build-system)
    (arguments
     (list
      #:tests? #f ;tests are broken in upstream
      #:import-path "github.com/boltdb/bolt"))
    (home-page "https://github.com/boltdb/bolt")
    (synopsis "Embedded key/value database for Golang")
    (description
     "Bolt is a pure Go key/value store inspired by
@url{http://symas.com/mdb/, Howard Chu's LMDB project}.  The goal of the
project is to provide a simple, fast, and reliable database for projects that
don't require a full database server such as Postgres or MySQL.")
    (license license:expat)))

(define-public go-github-com-briandowns-spinner
  (package
    (name "go-github-com-briandowns-spinner")


@@ 1050,7 1271,7 @@ indicator to any terminal application.")
(define-public go-github-com-burntsushi-toml
  (package
    (name "go-github-com-burntsushi-toml")
    (version "1.2.1")
    (version "1.4.0")
    (source
     (origin
       (method git-fetch)


@@ 1059,10 1280,19 @@ indicator to any terminal application.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1v9czq4hsyvdz7yx70y6sgq77wmrgfmn09r9cj4w85z38jqnamv7"))))
        (base32 "1vk0s7pcn80hkx0lcyws509gqs42c8y1rppv05zxiqj0yn2zrjnx"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/BurntSushi/toml"))
     (list
      #:import-path "github.com/BurntSushi/toml"
      #:phases
      #~(modify-phases %standard-phases
          ;; XXX: Replace when go-build-system supports nested path.
          (replace 'check
            (lambda* (#:key import-path tests? #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (home-page "https://github.com/BurntSushi/toml")
    (synopsis "Toml parser and encoder for Go")
    (description


@@ 1219,7 1449,7 @@ levels that works by wrapping the standard @code{log} library.")
    (arguments
     (list
      #:import-path "github.com/coocood/freecache"))
    (propagated-inputs (list go-github-com-cespare-xxhash))
    (propagated-inputs (list go-github-com-cespare-xxhash-v2))
    (home-page "https://github.com/coocood/freecache")
    (synopsis "Caching library for Go")
    (description


@@ 1727,6 1957,91 @@ scanner API made public.")
for @code{Set}, @code{Get}, @code{Delete} and @code{Len}.")
    (license license:expat)))

(define-public go-github-com-emersion-go-ical
  (package
    (name "go-github-com-emersion-go-ical")
    (version "0.0.0-20240127095438-fc1c9d8fb2b6")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-ical")
             (commit (go-version->git-ref version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "01cn9kggkdalb6xp2nrka01gs40zs8v6h5bq8d2m8wrdcsy5b36v"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-ical"))
    (propagated-inputs (list go-github-com-teambition-rrule-go))
    (home-page "https://github.com/emersion/go-ical")
    (synopsis "iCalendar library for Golang")
    (description
     "This package implements @url{https://tools.ietf.org/html/rfc5545, RFC
5545} iCalendar specification.")
    (license license:expat)))

(define-public go-github-com-emersion-go-vcard
  (package
    (name "go-github-com-emersion-go-vcard")
    (version "0.0.0-20230815062825-8fda7d206ec9")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-vcard")
             (commit (go-version->git-ref version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "12n5jinj5xzdfl9jhqvjbzxvj32bw310mdw4q5rjv35pk566zixl"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-vcard"))
    (home-page "https://github.com/emersion/go-vcard")
    (synopsis "Parse and format vCard in Golang")
    (description
     "This package implements functionality to parse and format vCard as
specified in @url{https://datatracker.ietf.org/doc/html/rfc6350, RFC 6350}.")
    (license license:expat)))

(define-public go-github-com-emersion-go-webdav
  (package
    (name "go-github-com-emersion-go-webdav")
    (version "0.5.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/go-webdav")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1ay0x3c1frkj4z3j17s42yvf1hgmg8223qmsyr41yxwz88zsvjlj"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/emersion/go-webdav"
      #:phases
      #~(modify-phases %standard-phases
          (replace 'check
            (lambda* (#:key tests? import-path #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-github-com-emersion-go-ical
           go-github-com-emersion-go-vcard))
    (home-page "https://github.com/emersion/go-webdav")
    (synopsis "WebDAV, CalDAV and CardDAV implementations in Golang")
    (description
     "This package provides Golang modules implementing WebDAV
@url{https://tools.ietf.org/html/rfc4918, RFC 4918}, CalDAV
@url{https://tools.ietf.org/html/rfc4791, RFC 4791} and CardDAV
@url{https://tools.ietf.org/html/rfc6352, RFC 6352} specifications.")
    (license license:expat)))

(define-public go-github-com-errata-ai-ini
  (package
    (name "go-github-com-errata-ai-ini")


@@ 2008,6 2323,61 @@ Differentiation between text and binary files}.
@end itemize")
    (license license:expat)))

(define-public go-github-com-go-kit-log
  (package
    (name "go-github-com-go-kit-log")
    (version "0.2.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/go-kit/log")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1xjv2g1cd1iaghhm1c1zw0lcz89a9zq5xradyjipvrbqxbxckqm6"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/go-kit/log"))
    (propagated-inputs
     (list go-github-com-go-logfmt-logfmt))
    (home-page "https://github.com/go-kit/log")
    (synopsis "Minimal and extensible structured logger")
    (description
     "This package provides a minimal interface for structured logging in
services.  It may be wrapped to encode conventions, enforce type-safety,
provide leveled logging, and so on.  It can be used for both typical
application log events, and log-structured data streams.")
    (license license:expat)))

(define-public go-github-com-go-logfmt-logfmt
  (package
    (name "go-github-com-go-logfmt-logfmt")
    (version "0.6.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/go-logfmt/logfmt")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0s3dz7z5a8p5ia5czihy5y2hkij7rdfyr425sw9rnxqil3d0dlj6"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/go-logfmt/logfmt"))
    (home-page "https://github.com/go-logfmt/logfmt")
    (synopsis "Marshal and unmarshal logfmt messages")
    (description
     "Package logfmt implements utilities to marshal and unmarshal data in the
logfmt format.  The logfmt format records key/value pairs in a way that
balances readability for humans and simplicity of computer parsing.  It is
most commonly used as a more human friendly alternative to JSON for structured
logging.")
    (license license:expat)))

(define-public go-github-com-go-logr-logr
  (package
    (name "go-github-com-go-logr-logr")


@@ 2154,7 2524,7 @@ the library more lightweight.")
                  (invoke "go" "test" "-v" "./..."))))))))
    (native-inputs
     (list go-github-com-go-playground-validator-v10
           go-github-com-google-go-cmp-cmp))
           go-github-com-google-go-cmp))
    (propagated-inputs
     (list go-github-com-fatih-color
           go-golang-org-x-xerrors))


@@ 2756,6 3126,31 @@ storing only one copy of each unique string in memory.  All functions may be
called concurrently with themselves and each other.")
    (license license:expat)))

(define-public go-github-com-jpillora-backoff
  (let ((commit "fab01a9d9810a410d2d95a0a697f0afb604658f9")
        (revision "1"))
    (package
      (name "go-github-com-jpillora-backoff")
      (version (git-version "1.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/jpillora/backoff")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0irpxdjvwmfd1njvws5x466ar8faiwjnnna26jnly9sw1b0h1b89"))))
      (build-system go-build-system)
      (arguments
       (list
        #:import-path "github.com/jpillora/backoff"))
      (home-page "https://github.com/jpillora/backoff")
      (synopsis "Simple exponential backoff counter in Go")
      (description
       "This package is a simple exponential backoff counter in Go.")
      (license license:expat))))

(define-public go-github-com-k0kubun-go-ansi
  (package
    (name "go-github-com-k0kubun-go-ansi")


@@ 3111,7 3506,7 @@ implementing features like:
     (list
      #:import-path "github.com/Masterminds/semver/v3"))
    (native-inputs
     (list go-github-com-stretchr-testify-next))
     (list go-github-com-stretchr-testify))
    (home-page "https://github.com/Masterminds/semver/")
    (synopsis "@code{semver} helps to work with semantic versions")
    (description


@@ 3335,6 3730,32 @@ string.")
the @code{cpan} module @code{Parse::CommandLine}.")
    (license license:expat)))

(define-public go-github-com-mattn-go-sixel
  (package
    (name "go-github-com-mattn-go-sixel")
    (version "0.0.5")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/mattn/go-sixel")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0icv1mcavdw867s47kwvd16q19h2a4znph850lyq18d5z00kpjjs"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/mattn/go-sixel"))
    (propagated-inputs
     (list go-github-com-soniakeys-quant))
    (home-page "https://github.com/mattn/go-sixel")
    (synopsis "DRCS/Sixel Encoder/Decoder")
    (description
     "This package implements functionality to encode and decode
@acronym{DRCS,Dynamically Redefinable Character Sets} Sixel.")
    (license license:expat)))

(define-public go-github-com-mattn-go-sqlite3
  (package
    (name "go-github-com-mattn-go-sqlite3")


@@ 3359,6 3780,35 @@ the @code{cpan} module @code{Parse::CommandLine}.")
@code{database/sql}.")
    (license license:expat)))

(define-public go-github-com-mattn-go-tty
  (package
    (name "go-github-com-mattn-go-tty")
    (version "0.0.7")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/mattn/go-tty")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "09ndgwrx99jqaakmhk4v2pnai9h2mvryapc3qg6i33v2x809y6z6"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/mattn/go-tty"))
    (propagated-inputs
     (list go-github-com-mattn-go-colorable
           go-github-com-mattn-go-isatty
           go-github-com-mattn-go-runewidth
           go-golang-org-x-sys))
    (home-page "https://github.com/mattn/go-tty")
    (synopsis "Simple TTY utility for Golang")
    (description
     "This package provides a TTY utilities implementation for verity of
operation systems.")
    (license license:expat)))

(define-public go-github-com-mattn-go-zglob
  (package
    (name "go-github-com-mattn-go-zglob")


@@ 3847,38 4297,6 @@ varints.")
very fast, and tries to be entropy pool friendly.")
    (license license:asl2.0)))

(define-public go-github-com-nbrownus-go-metrics-prometheus
  (package
    (name "go-github-com-nbrownus-go-metrics-prometheus")
    (version "0.0.0-20210712211119-974a6260965f")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/nbrownus/go-metrics-prometheus")
             (commit (go-version->git-ref version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1kl9l08aas544627zmhkgp843qx94sxs4inxm20nw1hx7gp79dz0"))))
    (build-system go-build-system)
    (arguments
     (list
      ;; The project looks abandoned, tests failed with a new go-metrics.
      #:tests? #f
      #:import-path "github.com/nbrownus/go-metrics-prometheus"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-github-com-prometheus-client-golang
           go-github-com-rcrowley-go-metrics))
    (home-page "https://github.com/nbrownus/go-metrics-prometheus")
    (synopsis "Prometheus support for go-metrics")
    (description
     "This package provides a reporter for the @code{go-metrics} library which
posts the metrics to the Prometheus client registry and just updates the
registry.")
    (license license:asl2.0)))

(define-public go-github-com-neurosnap-sentences
  (package
    (name "go-github-com-neurosnap-sentences")


@@ 4223,34 4641,6 @@ Pion}.")
     "@code{refmt} is a serialization and object-mapping library.")
    (license license:expat)))

(define-public go-github-com-prometheus-client-model
  (package
    (name "go-github-com-prometheus-client-model")
    (version "0.5.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/prometheus/client_model")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1pl9i969jx5vkhm8vd5vb8yrifv37aw6h8mjg04820pw0ygfbigy"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/prometheus/client_model"
       #:tests? #f
       #:phases
       (modify-phases %standard-phases
         ;; Source-only package
         (delete 'build))))
    (propagated-inputs
     (list go-github-com-golang-protobuf))
    (synopsis "Data model artifacts for Prometheus")
    (description "This package provides data model artifacts for Prometheus.")
    (home-page "https://github.com/prometheus/client_model")
    (license license:asl2.0)))

(define-public go-github-com-pterm-pterm
  (package
    (name "go-github-com-pterm-pterm")


@@ 4563,6 4953,29 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
     "@{gitconfig} is a package to get configuration values from gitconfig.")
    (license license:expat)))

(define-public go-github-com-soniakeys-quant
  (package
    (name "go-github-com-soniakeys-quant")
    (version "1.0.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/soniakeys/quant")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0y50h4d9l4v1dxhf99ys6fha5c7viflwdnlfxn7glf2jr49x5z78"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/soniakeys/quant"))
    (home-page "https://github.com/soniakeys/quant")
    (synopsis "Interface for image color quantizers")
    (description
     "Quant provides an interface for image color quantizers.")
    (license license:expat)))

(define-public go-github-com-spf13-cobra
  (package
    (name "go-github-com-spf13-cobra")


@@ 4656,6 5069,31 @@ well as a program to generate applications and command files.")
storage system.")
    (license license:bsd-2)))

(define-public go-github-com-teambition-rrule-go
  (package
    (name "go-github-com-teambition-rrule-go")
    (version "1.8.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/teambition/rrule-go")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1fnbava35w9z60carny5b7whd4nkv6hrf9g43wwg8d88gfij9zj2"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/teambition/rrule-go"))
    (home-page "https://github.com/teambition/rrule-go")
    (synopsis "Recurrence rules for calendar dates for Golang")
    (description
     "This package provides a functionality to work with recurrence rules for
calendar dates.  It offers a complete implementation of the
@url{https://www.ietf.org/rfc/rfc2445.txt,RFC 2445} specification.")
    (license license:expat)))

(define-public go-github-com-thejerf-suture
  (package
    (name "go-github-com-thejerf-suture")


@@ 5158,7 5596,7 @@ CPU quota.")
     (list
      #:import-path "go.uber.org/dig"))
    (native-inputs
     (list go-github-com-stretchr-testify-next))
     (list go-github-com-stretchr-testify))
    (home-page "https://pkg.go.dev/go.uber.org/dig")
    (synopsis "Reflection based dependency injection toolkit for Golang")
    (description


@@ 5184,7 5622,7 @@ object dependencies graph during the process startup.")
     (list
      #:import-path "go.uber.org/fx"))
    (native-inputs
     (list go-github-com-stretchr-testify-next))
     (list go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-go-uber-org-dig
           go-go-uber-org-goleak


@@ 5252,7 5690,7 @@ applications out of reusable, composable modules.")
               (string-append "src/" import-path
                              "/stacktrace_ext_test.go")))))))
    (native-inputs
     (list go-github-com-stretchr-testify-next
     (list go-github-com-stretchr-testify
           go-go-uber-org-goleak
           go-golang-org-x-lint
           go-honnef-co-go-tools))


@@ 5277,6 5715,30 @@ Go.")
     (list
      #:import-path "gopkg.in/alecthomas/kingpin.v2"))))

(define-public go-gopkg-in-ini-v1
  (package
    (name "go-gopkg-in-ini-v1")
    (version "1.67.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/go-ini/ini")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1vpzkjmrwp7bqqsijp61293kk2vn6lcck56j8m5y6ks6cf21lpap"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "gopkg.in/ini.v1"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (home-page "https://gopkg.in/ini.v1")
    (synopsis "Go library for ini files")
    (description "Go library for ini files")
    (license license:asl2.0)))

(define-public go-gopkg-in-natefinch-lumberjack.v2
  (package
    (name "go-gopkg-in-natefinch-lumberjack.v2")


@@ 5458,6 5920,21 @@ tool."))))
                    "\nThis package provides an command line interface (CLI)
tool."))))

(define-public go-tomlv
  (package
    (inherit go-github-com-burntsushi-toml)
    (name "go-tomlv")
    (arguments
     (list
      #:install-source? #f
      #:tests? #f ; no tests.
      #:import-path "github.com/BurntSushi/toml/cmd/tomlv"
      #:unpack-path "github.com/BurntSushi/toml"))
    (description
     (string-append (package-description go-github-com-burntsushi-toml)
                    " This package provides an command line interface (CLI)
tool."))))

;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar

M gnu/packages/golang.scm => gnu/packages/golang.scm +99 -816
@@ 951,7 951,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
  (package
    (inherit go-1.21)
    (name "go")
    (version "1.22.2")
    (version "1.22.5")
    (source
     (origin
       (method git-fetch)


@@ 960,7 960,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
             (commit (string-append "go" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0p6v5dl4mzlrma6v1a26d8zr4csq5mm10d9sdhl3kn9d22vphql1"))))
        (base32 "1ahcxhyfr4wa4yahpl1jzdr1pizp5xpa6cy96jz649zsp21640d9"))))
    (arguments
     (substitute-keyword-arguments (package-arguments go-1.21)
       ((#:phases phases)


@@ 1123,39 1123,6 @@ cluster segmentation algorithm.")
     '(#:unpack-path "github.com/apparentlymart/go-textseg/autoversion"
       #:import-path "github.com/apparentlymart/go-textseg/autoversion/textseg"))))

(define-public go-github-com-avast-retry-go
  (let ((commit "a322e24d96313ab405dec28ad5711f036c6d25a3")
        (revision "0"))
    (package
      (name "go-github-com-avast-retry-go")
      (version (git-version "2.4.2" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri
          (git-reference
           (url "https://github.com/avast/retry-go")
           (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0hb4b1668516a4gv8avmflr565b6c1h93phdb068hcjxxj8767ba"))))
      (build-system go-build-system)
      (arguments
       (list
        #:import-path "github.com/avast/retry-go"
        #:phases #~(modify-phases %standard-phases
                     (add-after 'unpack 'remove-examples
                       (lambda* (#:key import-path #:allow-other-keys)
                         (delete-file-recursively
                          (string-append "src/" import-path "/examples")))))))
      (propagated-inputs (list go-github-com-stretchr-testify))
      (home-page "https://github.com/avast/retry-go")
      (synopsis "Simple golang library for retry mechanism")
      (description "This package is a simple Go library that provides retry
functionality for functions that may fail.  It includes various customizable
retry strategies, such as fixed delay, backoff delay, and random delay.")
      (license license:expat))))

(define-public go-github-com-operatorfoundation-shapeshifter-transports
  (package
    (name "go-github-com-operatorfoundation-shapeshifter-transports")


@@ 3048,9 3015,9 @@ termination.")
                      "t.Fatalf(`Killf(\"BO%%s")))))))
    (home-page "https://gopkg.in/tomb.v1")))

(define-public go-github.com-jtolds-gls
(define-public go-github-com-jtolds-gls
  (package
    (name "go-github.com-jtolds-gls")
    (name "go-github-com-jtolds-gls")
    (version "4.20")
    (source (origin
              (method git-fetch)


@@ 3188,7 3155,7 @@ command-line parsers.")
                          "./scan/..."))))))))
    (propagated-inputs
     (list go-github-com-google-go-cmdtest
           go-github-com-google-go-cmp-cmp
           go-github-com-google-go-cmp
           go-golang-org-x-exp
           go-golang-org-x-mod
           go-golang-org-x-sync


@@ 3240,7 3207,7 @@ the @url{https://vuln.go.dev,Go Vulnerability Database}.")
            (lambda _
              (delete-file-recursively "src/golang.org/x/tools"))))))
    (native-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-jba-printsrc
           go-github-com-jba-templatecheck
           go-github-com-sergi-go-diff


@@ 3262,60 3229,6 @@ developed by the Go team.  It provides IDE features to any LSP-compatible
editor.")
    (license license:bsd-3)))

(define-public go-golang-org-x-oauth2
  (let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
        (revision "1"))
    (package
      (name "go-golang-org-x-oauth2")
      (version (git-version "0.0.0" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://go.googlesource.com/oauth2")
                      (commit commit)))
                (file-name (string-append "go.googlesource.com-oauth2-"
                                          version "-checkout"))
                (sha256
                 (base32
                  "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
      (build-system go-build-system)
      (arguments
       `(#:import-path "golang.org/x/oauth2"))
      (propagated-inputs
       (list go-cloud-google-com-go-compute-metadata
             go-golang-org-x-net))
      (home-page "https://go.googlesource.com/oauth2")
      (synopsis "Client implementation of the OAuth 2.0 spec")
      (description "This package contains a client implementation for OAuth 2.0
 spec in Go.")
      (license license:bsd-3))))

(define-public go-github-com-jpillora-backoff
  (let ((commit
         "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
        (revision "0"))
    (package
      (name "go-github-com-jpillora-backoff")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/jpillora/backoff")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32
           "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
      (build-system go-build-system)
      (arguments
       '(#:import-path "github.com/jpillora/backoff"))
      (home-page "https://github.com/jpillora/backoff")
      (synopsis "Simple exponential backoff counter in Go")
      (description "This package is a simple exponential backoff counter in
Go.")
      (license license:expat))))

(define-public go-github-com-stretchr-objx
  (package
    (name "go-github-com-stretchr-objx")


@@ 3357,30 3270,6 @@ Go.")
slices, JSON and other data.")
    (license license:expat)))

(define-public go-github-com-technoweenie-multipartstreamer
  (package
    (name "go-github-com-technoweenie-multipartstreamer")
    (version "1.0.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/technoweenie/multipartstreamer")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "159jhcabdkds8m5777zfs8p5z3snpjhzz7q9aq9wjpcvh6xlljqa"))))
    (build-system go-build-system)
    (arguments
     (list #:tests? #f                  ; Upstream tests are broken.
           #:import-path "github.com/technoweenie/multipartstreamer"))
    (home-page "https://github.com/technoweenie/multipartstreamer")
    (synopsis "MIME multipart format streamer")
    (description
     "This package helps you encode large files in MIME multipart format
without reading the entire content into memory.")
    (license license:expat)))

(define-public go-github-com-tevino-abool
  (let ((commit
          "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")


@@ 3653,7 3542,7 @@ all types of configuration needs and formats.")
(define-public go-github-com-fsnotify-fsnotify
  (package
    (name "go-github-com-fsnotify-fsnotify")
    (version "1.4.9")
    (version "1.7.0")
    (source
     (origin
       (method git-fetch)


@@ 3663,7 3552,7 @@ all types of configuration needs and formats.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "1i1r72knpbfwwql9frn9bqc3nhfc2ai5m6qllcyr6wban62lr40x"))))
         "1h7vs21lkj4bqbw5a6mqykaf56y181r0nja7c8pzajkvbsc39y8m"))))
    (build-system go-build-system)
    (arguments
     `(#:import-path "github.com/fsnotify/fsnotify"))


@@ 3793,7 3682,7 @@ updating files, like @command{tail -f}.")
(define-public go-github-com-sirupsen-logrus
  (package
    (name "go-github-com-sirupsen-logrus")
    (version "1.9.0")
    (version "1.9.3")
    (source
     (origin
       (method git-fetch)


@@ 3803,7 3692,7 @@ updating files, like @command{tail -f}.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "12i402dxq5js4npnncg043vx874h6nk4ffn4gswcccxrp6h10ivz"))))
         "1jz7nyq88i9fwfpp7krl046q62kjn6lb9j4r932bxnpypl1hwc49"))))
    (build-system go-build-system)
    (arguments
     (list


@@ 4091,30 3980,6 @@ which satisfies the cron expression.")
      (license (list license:gpl3+
                     license:asl2.0)))))

(define-public go-gopkg-in-ini-v1
  (package
    (name "go-gopkg-in-ini-v1")
    (version "1.56.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/go-ini/ini")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "0j5z0cngg6mq2f9id083jcdi7k6r2h35714pashv6sdv2q7bmfc5"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "gopkg.in/ini.v1"
       ;; Requires large unpackaged test framework
       #:tests? #f))
    (home-page "https://gopkg.in/ini.v1")
    (synopsis "Go library for ini files")
    (description "Go library for ini files")
    (license license:asl2.0)))

(define-public go-gopkg-in-yaml-v3
  (package
    (name "go-gopkg-in-yaml-v3")


@@ 5730,266 5595,6 @@ a cron spec parser and job runner.")
       "This is a fork of another go-libvterm library for use with aerc.")
      (license license:expat))))

(define-public go-github-com-emersion-go-imap
  (package
    (name "go-github-com-emersion-go-imap")
    (version "1.2.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-imap")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0ak2ysvfcc9w0g1070msis8x9sh6gzvf0nd65ks594siwbmqddw8"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-imap"))
    (propagated-inputs (list go-golang-org-x-text
                             go-github-com-emersion-go-sasl
                             go-github-com-emersion-go-message))
    (home-page "https://github.com/emersion/go-imap")
    (synopsis "IMAP4rev1 library written in Go")
    (description
     "This package provides an IMAP4rev1 library written in Go.  It
can be used to build IMAP clients and servers.")
    (license license:expat)))

(define-public go-github-com-emersion-go-imap-sortthread
  (package
    (name "go-github-com-emersion-go-imap-sortthread")
    (version "1.2.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-imap-sortthread")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1cfbgz1l5angnj52v9pxwggai2shx0h78ffcp7j4r4lr7lzflnwz"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-imap-sortthread"))
    (propagated-inputs (list go-golang-org-x-text
                             go-github-com-emersion-go-sasl
                             go-github-com-emersion-go-imap))
    (home-page "https://github.com/emersion/go-imap-sortthread")
    (synopsis "Sorting and threading of messages for the imap package")
    (description
     "The sortthread package implements message sorting and threading for
@code{go-github-com-emersion-go-imap}.")
    (license license:expat)))

(define-public go-github-com-emersion-go-smtp
  (package
    (name "go-github-com-emersion-go-smtp")
    (version "0.15.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-smtp")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1vhc0vpjd4yhxk6wrh01sdpi7nprjn98s46yy82xwlkm0cskl0h7"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-smtp"))
    (propagated-inputs (list go-github-com-emersion-go-sasl))
    (home-page "https://github.com/emersion/go-smtp")
    (synopsis "SMTP implementation for Go")
    (description
     "This package implements the Simple Mail Transfer Protocol as
defined by RFC 5321.")
    (license license:expat)))

(define-public go-github-com-emersion-go-sasl
  (let ((commit "0b9dcfb154ac3d7515b08bc2691a0332800edfe9")
        (revision "1"))
    (package
      (name "go-github-com-emersion-go-sasl")
      (version (git-version "0.0.0" revision commit))
      (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/emersion/go-sasl")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32
            "1cbf86wkqrdinfydndgdlnayg4a5mg3d4vqra377j2sfkg7wj0hs"))))
      (build-system go-build-system)
      (arguments
       (list #:import-path "github.com/emersion/go-sasl"))
      (home-page "https://github.com/emersion/go-sasl")
      (synopsis "SASL library written in Go")
      (description "This package provides a SASL library written in Go.")
      (license license:expat))))

(define-public go-github-com-emersion-go-imap-idle
  (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
        (revision "0"))
    (package
      (name "go-github-com-emersion-go-imap-idle")
      (version (git-version "0.0.0" revision commit))
      (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/emersion/go-imap-idle")
                (commit commit)))
          (sha256
           (base32
            "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
          (file-name (git-file-name name version))))
      (build-system go-build-system)
      (arguments
       '(#:import-path "github.com/emersion/go-imap-idle"))
      (native-inputs
       (list go-github-com-emersion-go-imap go-github-com-emersion-go-sasl
             go-golang-org-x-text))
      (home-page "https://github.com/emersion/go-imap-idle")
      (synopsis "IDLE extension for go-imap")
      (description "This package provides an IDLE extension for go-imap.")
      (license license:expat))))

(define-public go-github-com-emersion-go-maildir
  (package
    (name "go-github-com-emersion-go-maildir")
    (version "0.3.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-maildir")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1rs9kbacjpcza25pmdkbm7sdm7r6gq4g44nihi9asyrvspx96zf2"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-maildir"))
    (home-page "https://github.com/emersion/go-maildir")
    (synopsis "Maildir interface for Go")
    (description
     "This package provides an interface to mailboxes in the Maildir
format.")
    (license license:expat)))

(define-public go-github-com-emersion-go-milter
  (package
    (name "go-github-com-emersion-go-milter")
    (version "0.3.3")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-milter")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "10vpry5gjz2bh9qchcx4p59zm7cc6cb6bfkii2n6vsn4svb950sa"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-milter"))
    (propagated-inputs (list go-github-com-emersion-go-message))
    (home-page "https://github.com/emersion/go-milter")
    (synopsis "Milter mail filters in Go")
    (description
     "This package provides an interface for implementing milter mail
filters for Go.")
    (license license:bsd-2)))

(define-public go-github-com-emersion-go-msgauth
  (package
    (name "go-github-com-emersion-go-msgauth")
    (version "0.6.6")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-msgauth")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0ds8yr4cm9wigcxg1sxc2m0wmy4z9n6gws3mj50dmf2ayij69z9j"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-msgauth"
           #:tests? #f ; Source-only package.
           #:phases
           #~(modify-phases %standard-phases
               ;; Source-only package.
               (delete 'build))))
    (propagated-inputs (list go-golang-org-x-crypto
                             go-github-com-emersion-go-milter
                             go-github-com-emersion-go-message))
    (home-page "https://github.com/emersion/go-msgauth")
    (synopsis "Email authentication for Go")
    (description
     "This package provides a Go library for authenticating emails.")
    (license license:expat)))

(define-public go-github-com-emersion-go-mbox
  (package
    (name "go-github-com-emersion-go-mbox")
    (version "1.0.3")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-mbox")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0vnadh2khx7sxn0irrd8gz8ra02x7ij0q8zglq3rqffqil06nliv"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-mbox"))
    (home-page "https://github.com/emersion/go-mbox")
    (synopsis "Go library for handling @code{mbox} files")
    (description
     "This package provides a library for parsing and formatting
@code{mbox} files.")
    (license license:expat)))

(define-public go-github-com-google-go-cmp-cmp
  (package
    (name "go-github-com-google-go-cmp-cmp")
    (version "0.5.9")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/google/go-cmp")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0a13m7l1jrysa7mrlmra8y7n83zcnb23yjyg3a609p8i9lxkh1wm"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/google/go-cmp/cmp"
       #:unpack-path "github.com/google/go-cmp"
       #:phases
       (modify-phases %standard-phases
         (replace 'check
           (lambda* (#:key inputs #:allow-other-keys #:rest args)
             (unless
               ;; The tests fail when run with gccgo.
               (false-if-exception (search-input-file inputs "/bin/gccgo"))
               (apply (assoc-ref %standard-phases 'check) args)))))))
    (synopsis "Determine equality of values in Go")
    (description
     "This package is intended to be a more powerful and safer
alternative to @@code{reflect.DeepEqual} for comparing whether two values are
semantically equal.")
    (home-page "https://github.com/google/go-cmp")
    (license license:bsd-3)))

(define-public go-github-com-google-uuid
  (package
    (name "go-github-com-google-uuid")


@@ 6139,7 5744,7 @@ create or replace a file or symbolic link.")
(define-public go-gotest-tools-internal-format
  (package (inherit (go-gotest-tools-package "internal/format"))
    (native-inputs
     (list go-github-com-pkg-errors go-github-com-google-go-cmp-cmp))
     (list go-github-com-pkg-errors go-github-com-google-go-cmp))
    (synopsis "Formats messages for use with gotest-tools")
    (description "This package provides a way to format messages for use
with gotest-tools.")))


@@ 6164,7 5769,7 @@ with gotest-tools.")))
                  (false-if-exception (search-input-file inputs "/bin/gccgo"))
                  (apply (assoc-ref %standard-phases 'check) args))))))))
    (native-inputs
     (list go-github-com-pkg-errors go-github-com-google-go-cmp-cmp))
     (list go-github-com-pkg-errors go-github-com-google-go-cmp))
    (synopsis "Source code AST formatters for gotest-tools")
    (description "This package provides source code AST formatters for
gotest-tools.")))


@@ 6177,7 5782,7 @@ gotest-tools.")))
       #:import-path "gotest.tools/assert"
       #:unpack-path "gotest.tools"))
    (propagated-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-pkg-errors
           go-github-com-spf13-pflag
           go-golang-org-x-tools))


@@ 6212,14 5817,14 @@ test when a comparison fails.")
           go-github-com-jonboulle-clockwork
           go-golang-org-x-crypto
           go-gotest-tools-assert
           go-github-com-google-go-cmp-cmp
           go-github-com-google-go-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-difflib
           go-gotest-tools-internal-source
           go-github-com-google-go-cmp-cmp))
           go-github-com-google-go-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


@@ 6227,90 5832,6 @@ test results.")
    (home-page "https://github.com/gotestyourself/gotestsum")
    (license license:asl2.0)))

(define-public go-github-com-golang-protobuf
  (package
    (name "go-github-com-golang-protobuf")
    (version "1.5.3")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/golang/protobuf")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "03f1w2cd4s8a3xhl61x7yjx81kbzlrjpvnnwmbhqnz814yi7h43i"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/golang/protobuf"
           #:phases
           #~(modify-phases %standard-phases
               ;; XXX: Workaround for go-build-system's lack of Go modules
               ;; support.
               (delete 'build)
               (replace 'check
                 (lambda* (#:key tests? import-path #:allow-other-keys)
                   (when tests?
                     (with-directory-excursion (string-append "src/" import-path)
                       (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-google-golang-org-protobuf))
    (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-google-golang-org-protobuf
  (package
    (name "go-google-golang-org-protobuf")
    (version "1.31.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://go.googlesource.com/protobuf")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1xf18kzz96hgfy1vlbnydrizzpxkqj2iamfdbj3dx5a1zz5mi8n0"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "google.golang.org/protobuf"
           #:phases
           #~(modify-phases %standard-phases
               (add-after 'unpack 'disable-failing-tests
                 (lambda* (#:key tests? unpack-path #:allow-other-keys)
                   (with-directory-excursion (string-append "src/" unpack-path)
                     (substitute* (find-files "." "\\_test.go$")
                       ;; XXX Failing on i686-linux:
                       ;; panic: unaligned 64-bit atomic operation
                       (("TestDynamicTypesExtensionNotFound")
                        "OffTestDynamicTypesExtensionNotFound")
                       (("TestDynamicTypesFilesChangeAfterCreation")
                        "OffTestDynamicTypesFilesChangeAfterCreation")
                       (("TestDynamicTypesFindExtensionByNameOrNumber")
                        "OffTestDynamicTypesFindExtensionByNameOrNumber")))))
               ;; XXX: Workaround for go-build-system's lack of Go modules
               ;; support.
               (delete 'build)
               (replace 'check
                 (lambda* (#:key tests? import-path #:allow-other-keys)
                   (when tests?
                     (with-directory-excursion (string-append "src/" import-path)
                       (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs (list go-github-com-google-go-cmp-cmp))
    (home-page "https://google.golang.org/protobuf")
    (synopsis "Go library for Protocol Buffers")
    (description
     "The protobuf package provides a Go implementation of Protocol Buffers, a
language and platform neutral, extensible mechanism for serializing structured
data.

This package is a successor to @code{go-github-com-golang-protobuf} with an
improved and cleaner API.")
    (license license:bsd-3)))

(define-public go-github-com-macronut-go-tproxy
  (package
    (name "go-github-com-macronut-go-tproxy")


@@ 6359,10 5880,10 @@ efficient space usage.")
    (home-page "https://github.com/bits-and-blooms/bitset")
    (license license:bsd-3)))

(define-public go-github-com-bits-and-blooms-bloom
(define-public go-github-com-bits-and-blooms-bloom-v3
  (package
    (name "go-github-com-bits-and-blooms-bloom")
    (version "3.6.0")
    (name "go-github-com-bits-and-blooms-bloom-v3")
    (version "3.7.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 6371,20 5892,10 @@ efficient space usage.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "02rpjlgl7k3755qnlsk519xazgqlk73b8wvkpqlvccywms5w77bq"))))
                "022pyzjp862ysl30aj105i2xmapn400ambjh8h1dcyjy9c0f8agn"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/bits-and-blooms/bloom"
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-import-path
           (lambda _
             ;; See 'go.mod' in the source distribution of Syncthing 1.5.0 for
             ;; more information.
             ;; <https://github.com/spaolacci/murmur3/issues/29>
             (substitute* "src/github.com/bits-and-blooms/bloom/bloom.go"
               (("spaolacci") "twmb"))
             #t)))))
     (list #:import-path "github.com/bits-and-blooms/bloom"))
    (propagated-inputs
     (list go-github-com-twmb-murmur3 go-github-com-bits-and-blooms-bitset))
    (synopsis "Bloom filters in Go")


@@ 7519,97 7030,6 @@ system.")
formatting information, rather than the current locale name.")
      (license license:expat))))

(define-public go-github-com-prometheus-common
  (package
    (name "go-github-com-prometheus-common")
    (version "0.45.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/prometheus/common")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "006y6mlxglr2xzmdqxl5bwh899whfx1prcgjai7qhhs5ys5dspy5"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/prometheus/common"
       #:tests? #f
       #:phases
       (modify-phases %standard-phases
         ;; Source-only package
         (delete 'build))))
    (propagated-inputs
     (list go-github-com-golang-protobuf
           go-github-com-matttproud-golang-protobuf-extensions-v2
           go-github-com-prometheus-client-model))
    (synopsis "Prometheus metrics")
    (description "This package provides tools for reading and writing
Prometheus metrics.")
    (home-page "https://github.com/prometheus/common")
    (license license:asl2.0)))

(define-public go-github-com-prometheus-procfs
  (package
    (name "go-github-com-prometheus-procfs")
    (version "0.0.4")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/prometheus/procfs")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1z5jq5rjala0a0di4nwk1rai0z9f73qwqj6mgcbpjbg2qknlb544"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/prometheus/procfs"
       ;; The tests require Go modules, which are not yet supported in Guix's
       ;; Go build system.
       #:tests? #f))
    (propagated-inputs (list go-golang-org-x-sync))
    (synopsis "Go library for reading @file{/proc}")
    (description "The @code{procfs} Go package provides functions to retrieve
system, kernel, and process metrics from the @file{/proc} pseudo file system.")
    (home-page "https://github.com/prometheus/procfs")
    (license license:asl2.0)))

(define-public go-github-com-prometheus-client-golang
  (package
    (name "go-github-com-prometheus-client-golang")
    (version "1.17.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/prometheus/client_golang")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1v8vdvi9wlpf18nxi62diysfnh9gc3c3cqq6hvx378snsvvl6n82"))))
    (build-system go-build-system)
    (arguments
     '(#:tests? #f
       #:import-path "github.com/prometheus/client_golang"
       #:phases
       (modify-phases %standard-phases
         ;; Source-only package
         (delete 'build))))
    (propagated-inputs
     (list go-github-com-beorn7-perks-quantile
           go-github-com-golang-protobuf
           go-github-com-prometheus-client-model
           go-github-com-prometheus-common
           go-github-com-prometheus-procfs
           go-github-com-cespare-xxhash))
    (synopsis "HTTP server and client tools for Prometheus")
    (description "This package @code{promhttp} provides HTTP client and
server tools for Prometheus metrics.")
    (home-page "https://github.com/prometheus/client_golang")
    (license license:asl2.0)))

(define-public go-github-com-zalando-go-keyring
  (package
    (name "go-github-com-zalando-go-keyring")


@@ 7653,7 7073,7 @@ deleting secrets from the system keyring.")
     '(#:unpack-path "github.com/zclconf/go-cty"
       #:import-path "github.com/zclconf/go-cty/cty"))
    (native-inputs
     (list go-github-com-google-go-cmp-cmp))
     (list go-github-com-google-go-cmp))
    (propagated-inputs
     (list go-golang-org-x-text
           go-github-com-vmihailenco-msgpack-v4


@@ 8053,7 7473,7 @@ Gemini clients and servers.")
                             go-golang-org-x-sync
                             go-golang-org-x-mod
                             go-github-com-rogpeppe-go-internal
                             go-github-com-google-go-cmp-cmp
                             go-github-com-google-go-cmp
                             go-github-com-frankban-quicktest))
    (home-page "https://mvdan.cc/gofumpt/")
    (synopsis "Formats Go files with a stricter ruleset than gofmt")


@@ 8214,36 7634,6 @@ friendly sizes.  It converts boring ugly numbers to human-friendly strings and
back.")
    (license license:expat)))

(define-public go-github-com-oneofone-xxhash
  (package
    (name "go-github-com-oneofone-xxhash")
    (version "1.2.8")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/OneOfOne/xxhash")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "0f98qk83l2fhpclvrgyxsa9b8m4pipf11fah85bnjl01wy4lvybw"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/OneOfOne/xxhash"
      #:phases #~(modify-phases %standard-phases
                   (add-after 'unpack 'remove-benchmarks
                     (lambda* (#:key import-path #:allow-other-keys)
                       (delete-file-recursively
                        (string-append "src/" import-path "/benchmarks")))))))
    (home-page "https://github.com/OneOfOne/xxhash")
    (synopsis "Go implementation of xxHash")
    (description "This is a native Go implementation of the
@url{https://github.com/Cyan4973/xxHash, xxHash} algorithm, an extremely fast
non-cryptographic hash algorithm, working at speeds close to RAM limits.")
    (license license:asl2.0)))

(define-public go-gopkg-in-djherbis-times-v1
  (package
    (name "go-gopkg-in-djherbis-times-v1")


@@ 8374,7 7764,7 @@ parser.")
(define-public go-github-com-rivo-uniseg
  (package
    (name "go-github-com-rivo-uniseg")
    (version "0.2.0")
    (version "0.4.7")
    (source
     (origin
       (method git-fetch)


@@ 8383,7 7773,7 @@ parser.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q"))))
        (base32 "0nlcqyvq4vhq3hqhk84h6fp0jbqkjj88kcpcl853yr7sh4sisdxc"))))
    (build-system go-build-system)
    (arguments '(#:import-path "github.com/rivo/uniseg"))
    (home-page "https://github.com/rivo/uniseg")


@@ 8478,14 7868,26 @@ dependencies and a simple API.")
         "06ay82gqm3k649m7x0r3a3crnqv9x0yxhyqfabrf1b7inki35mfs"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/Arceliar/ironwood"
           #:tests? #f
           #:phases
           #~(modify-phases %standard-phases
             ;; Source-only package
             (delete 'build))))
     (list
      #:import-path "github.com/Arceliar/ironwood"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-examples
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/cmd/ironwood-example"))))
          ;; XXX: Replace when go-build-system supports nested path.
          (delete 'build)
          (replace 'check
            (lambda* (#:key import-path tests? #:allow-other-keys)
              (when tests?
                (with-directory-excursion (string-append "src/" import-path)
                  (invoke "go" "test" "-v" "./..."))))))))
    (propagated-inputs
     (list go-golang-org-x-crypto go-github-com-arceliar-phony))
     (list go-github-com-arceliar-phony
           go-github-com-bits-and-blooms-bitset
           go-github-com-bits-and-blooms-bloom-v3
           go-golang-org-x-crypto))
    (home-page "https://github.com/Arceliar/ironwood")
    (synopsis "Experimental network routing library")
    (description


@@ 8524,70 7926,65 @@ be useful for other network applications.")
(define-public aws-vault
  (package
    (name "aws-vault")
    (version "6.6.2")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/99designs/aws-vault")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0fjdslg7nhlm9hl7bg69j1izrjx6sspbhwk973d0m8ig9nkdja06"))))
    (version "7.2.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/99designs/aws-vault")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1dqg6d2k8r80ww70afghf823z0pijha1i0a0c0c6918yb322zkj2"))))
    (build-system go-build-system)
    (arguments
     (list
      #:install-source? #f
      #:import-path "github.com/99designs/aws-vault"
      #:phases
      #~(modify-phases %standard-phases
          (add-before 'build 'patch-version
            (lambda _
              (substitute* "src/github.com/99designs/aws-vault/main.go"
                (("var Version = \"dev\"")
                 (string-append "var Version = \"v" #$version "\"")))))
          (add-after 'build 'contrib
            (lambda* (#:key import-path #:allow-other-keys)
              (let* ((zsh-site-dir
                      (string-append #$output "/share/zsh/site-functions"))
                     (bash-completion-dir
                      (string-append #$output "/share/bash-completion/completions"))
                     (fish-completion-dir
                      (string-append #$output "/share/fish/completions")))
                (for-each mkdir-p (list bash-completion-dir
                                        fish-completion-dir
                                        zsh-site-dir))
                (with-directory-excursion
                    (string-append "src/" import-path "/contrib/completions")
                  (copy-file "zsh/aws-vault.zsh"
                             (string-append zsh-site-dir "/_aws-vault"))
                  (copy-file "bash/aws-vault.bash"
                             (string-append bash-completion-dir "/aws-vault"))
                  (copy-file "fish/aws-vault.fish"
                             (string-append fish-completion-dir "/aws-vault.fish")))))))))
    (native-inputs
     (list go-github-com-99designs-go-keyring
           go-github-com-mtibben-androiddnsfix
           go-github-com-mtibben-percent
           go-github-com-jmespath-go-jmespath
           go-github-com-dvsekhvalnov-jose2go
           go-github-com-godbus-dbus
           go-github-com-gsterjov-go-libsecret
           go-github-com-mitchellh-go-homedir
           go-golang-org-x-crypto
           go-golang-org-x-sys
           go-golang-org-x-term
           go-gopkg-in-ini
           go-github-com-skratchdot-open-golang
           go-github-com-alecthomas-kingpin
           go-github-com-alecthomas-template
           go-github-com-alecthomas-units
     (list go-github-com-99designs-keyring
           go-github-com-alecthomas-kingpin-v2
           go-github-com-aws-aws-sdk-go-v2
           go-github-com-aws-aws-sdk-go-v2-config
           go-github-com-aws-aws-sdk-go-v2-credentials
           go-github-com-aws-aws-sdk-go-v2-service-iam
           go-github-com-aws-aws-sdk-go-v2-service-sso
           go-github-com-aws-aws-sdk-go-v2-service-ssooidc
           go-github-com-aws-aws-sdk-go-v2-service-sts))
    (arguments
     `(#:import-path "github.com/99designs/aws-vault"
       #:install-source? #f
       #:phases
       (modify-phases %standard-phases
         (add-before 'build 'patch-version
           (lambda _
             (substitute* "src/github.com/99designs/aws-vault/main.go"
               (("var Version = \"dev\"")
                (string-append "var Version = \"v" ,version "\"")))))
         (add-after 'build 'contrib
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (zsh-site-dir (string-append out "/share/zsh/site-functions"))
                    (bash-completion-dir
                     (string-append out "/share/bash-completion/completions"))
                    (fish-completion-dir
                     (string-append out "/share/fish/completions")))
               (for-each mkdir-p
                         `(,zsh-site-dir ,bash-completion-dir ,fish-completion-dir))
               (with-directory-excursion
                   "src/github.com/99designs/aws-vault/contrib/completions"
                 (copy-file "zsh/aws-vault.zsh"
                            (string-append zsh-site-dir "/_aws-vault"))
                 (copy-file "bash/aws-vault.bash"
                            (string-append bash-completion-dir "/aws-vault"))
                 (copy-file "fish/aws-vault.fish"
                            (string-append fish-completion-dir "/aws-vault.fish")))))))))
    (synopsis
     "Vault for securely storing and accessing AWS credentials")
           go-github-com-aws-aws-sdk-go-v2-service-sts
           go-github-com-google-go-cmp
           go-github-com-mattn-go-isatty
           go-github-com-mattn-go-tty
           go-github-com-skratchdot-open-golang
           go-golang-org-x-term
           go-gopkg-in-ini-v1))
    (home-page "https://github.com/99designs/aws-vault")
    (synopsis "Vault for securely storing and accessing AWS credentials")
    (description
     "AWS Vault is a tool to securely store and access @acronym{Amazon Web
Services,AWS} credentials.


@@ 8596,7 7993,6 @@ AWS Vault stores IAM credentials in your operating system's secure keystore and
then generates temporary credentials from those to expose to your shell and
applications.  It's designed to be complementary to the AWS CLI tools, and is
aware of your profiles and configuration in ~/.aws/config.")
    (home-page "https://github.com/99designs/aws-vault")
    (license license:expat)))

(define-public go-github-com-gsterjov-go-libsecret


@@ 8689,7 8085,7 @@ aware of your profiles and configuration in ~/.aws/config.")
  (package
    (inherit go-gopkg-in-ini)
    (name "go-github-com-go-ini-ini")
    (version "1.66.6")
    (version "1.67.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 8698,7 8094,7 @@ aware of your profiles and configuration in ~/.aws/config.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0kqg13606hnw8f75cb59fsy1m85kiqf3csi2g7q2512avdmaphc9"))))
                "1vpzkjmrwp7bqqsijp61293kk2vn6lcck56j8m5y6ks6cf21lpap"))))
    (arguments
     (list #:import-path "github.com/go-ini/ini"))
    (propagated-inputs (list go-github-com-stretchr-testify))))


@@ 8969,31 8365,6 @@ result is a conceptually simple, but highly performant, disk-backed storage syst
email library.")
    (license license:gpl3+)))

(define-public go-github-com-emersion-go-message
  (package
    (name "go-github-com-emersion-go-message")
    (version "0.16.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/emersion/go-message")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1j5qdhsna28xcs843zsiccw700rld5hin466dl0n3a0ax1w13ay0"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/emersion/go-message"))
    (propagated-inputs (list go-golang-org-x-text
                             go-github-com-emersion-go-textwrapper))
    (home-page "https://github.com/emersion/go-message")
    (synopsis "Internet messages and MIME for Go")
    (description
     "The message package implements the Internet Message Format and Multipurpose
Internet Mail Extensions in Go.")
    (license license:expat)))

(define-public go-github-com-jaytaylor-html2text
  (package
    (name "go-github-com-jaytaylor-html2text")


@@ 9022,65 8393,6 @@ Internet Mail Extensions in Go.")
text-only mail clients to display them.")
    (license license:expat)))

(define-public go-github-com-jhillyerd-enmime
  (package
    (name "go-github-com-jhillyerd-enmime")
    (version "1.2.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/jhillyerd/enmime")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "03pir9wq9ha2i2ifj819yv5i0lvrgdn904ksbzgc3k8bqc497ydn"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/jhillyerd/enmime"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (propagated-inputs (list
                        go-github-com-cention-sany-utf7
                        go-github-com-go-test-deep
                        go-github-com-gogs-chardet
                        go-github-com-jaytaylor-html2text
                        go-github-com-pkg-errors
                        go-golang-org-x-text))
    (home-page "https://github.com/jhillyerd/enmime")
    (synopsis "MIME encoder and decoder for Go")
    (description
     "The enmime package implements a MIME encoding and decoding
library geared towards parsing MIME encoded emails.")
    (license license:expat)))

(define-public go-github-com-gatherstars-com-jwz
  (package
    (name "go-github-com-gatherstars-com-jwz")
    (version "1.3.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/gatherstars-com/jwz")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1zxg2vmka80m1vnlb1v1gdlrwnkpakcmwi1hxpl8jjjiyd4z2j2i"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/gatherstars-com/jwz"))
    (propagated-inputs (list go-github-com-rivo-tview
                             go-github-com-jhillyerd-enmime
                             go-github-com-gdamore-tcell-v2))
    (home-page "https://github.com/gatherstars-com/jwz")
    (synopsis "Implementation in Go of the email threading algorithm
originally invented for Netscape Mail")
    (description
     "The jwz package provides an implementation of the email threading
algorithm originally designed for use in Netscape Mail 2.0 for Go.")
    (license license:asl2.0)))

(define-public go-github-com-creack-pty
  (package
    (name "go-github-com-creack-pty")


@@ 9317,39 8629,10 @@ useful during debugging, to avoid wrapping long output lines in the
terminal.")
    (license license:expat)))

(define-public go-github-com-arran4-golang-ical
  (package
    (name "go-github-com-arran4-golang-ical")
    (version "0.0.0-20220517104411-fd89fefb0182")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/arran4/golang-ical")
                    (commit (go-version->git-ref version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0bxs0b5yg26liiifc0cc41l307r0wc93hp8iygv8dgpc60yzncaw"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/arran4/golang-ical"))
    (propagated-inputs (list go-gopkg-in-yaml-v3
                             go-gopkg-in-check-v1
                             go-github-com-stretchr-testify
                             go-github-com-niemeyer-pretty
                             go-github-com-kr-text
                             go-github-com-davecgh-go-spew))
    (home-page "https://github.com/arran4/golang-ical")
    (synopsis "Handle iCalenders in Go")
    (description
     "The @code{ical} package provides an ICS/iCalender parser and
serialiser for Go.")
    (license license:asl2.0)))

(define-public go-github-com-lithammer-fuzzysearch
  (package
    (name "go-github-com-lithammer-fuzzysearch")
    (version "1.1.5")
    (version "1.1.8")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 9358,7 8641,7 @@ serialiser for Go.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1b036sm42cf64diwlqhx24vxy6g5afrmfbdfyqhpg8zrii3lpwns"))))
                "0fp00gzbrr5fnz01lmkjqcs5z24zjrsp4r13ia0x0wslp5r13hv8"))))
    (build-system go-build-system)
    (propagated-inputs (list go-golang-org-x-text))
    (arguments

M gnu/packages/ipfs.scm => gnu/packages/ipfs.scm +4 -2
@@ 37,6 37,7 @@
  #:use-module (gnu packages golang-crypto)
  #:use-module (gnu packages golang-web)
  #:use-module (gnu packages golang-xyz)
  #:use-module (gnu packages prometheus)
  #:use-module (gnu packages python)
  #:use-module (gnu packages shells)
  #:use-module (gnu packages specifications))


@@ 606,7 607,7 @@ and @code{go-ipld-format} legacy interface.")
           go-github-com-warpfork-go-testmark
           specification-ipld))
    (propagated-inputs
     (list go-github-com-google-go-cmp-cmp
     (list go-github-com-google-go-cmp
           go-github-com-ipfs-go-block-format
           go-github-com-ipfs-go-cid
           go-github-com-multiformats-go-multicodec


@@ 799,7 800,7 @@ daemon as described in
      #:import-path "github.com/whyrusleeping/cbor-gen"))
    (propagated-inputs
     (list go-github-com-ipfs-go-cid
           go-github-com-google-go-cmp-cmp
           go-github-com-google-go-cmp
           go-golang-org-x-xerrors))
    (home-page "https://github.com/whyrusleeping/cbor-gen")
    (synopsis "Codegen for CBOR codecs on the specified types")


@@ 1135,6 1136,7 @@ written in Go.")
                  ;; available.
                  ;;
                  go-github-com-alecthomas-units              ; github.com/ipfs/boxo
                  go-github-com-cespare-xxhash
                  go-github-com-docker-go-units               ; github.com/containerd/cgroups
                  go-github-com-felixge-httpsnoop             ; go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
                  go-github-com-flynn-noise                   ; github.com/libp2p/go-libp2p

M gnu/packages/irc.scm => gnu/packages/irc.scm +1 -0
@@ 90,6 90,7 @@
  #:use-module (gnu packages pcre)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages prometheus)
  #:use-module (gnu packages python)
  #:use-module (gnu packages python-crypto)
  #:use-module (gnu packages python-xyz)

M gnu/packages/linux.scm => gnu/packages/linux.scm +34 -20
@@ 9324,31 9324,45 @@ nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or
management tools in userspace.")
    (license license:gpl2)))

(define-public go-netlink
(define-public go-github-com-vishvananda-netlink
  (package
    (name "go-netlink")
    (version "1.0.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/vishvananda/netlink")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0hpzghf1a4cwawzhkiwdzin80h6hd09fskl77d5ppgc084yvj8x0"))))
    (name "go-github-com-vishvananda-netlink")
    (version "1.1.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/vishvananda/netlink")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1vhl30p1gx636a088ls4h6a0l8jjyfvz79fr5w0qzdrg4qg9h08h"))))
    (build-system go-build-system)
    (arguments
     `(#:tests? #f      ; Tests depend on specific kernel modules.
       #:import-path "github.com/vishvananda/netlink"))
    (native-inputs
     (list go-golang-org-x-sys go-netns))
     (list
      ;; The tests are unsupported on all architectures except x86_64-linux:
      ;; cannot use 0xabcdef99 (untyped int constant 2882400153) as int value
      ;; in struct literal (overflows)
      #:tests? (and (not (%current-target-system)) (target-x86-64?))
      #:import-path "github.com/vishvananda/netlink"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? unpack-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" unpack-path)
                (substitute* (find-files "." "\\_test.go$")
                  ;; Disable tests requiring root access.
                  (("TestNetNsIdByFd") "OffTestNetNsIdByFd")
                  (("TestNetNsIdByPid") "OffTestNetNsIdByPid"))))))))
    (propagated-inputs
     (list go-golang-org-x-sys go-github-com-vishvananda-netns))
    (home-page "https://github.com/vishvananda/netlink")
    (synopsis "Simple netlink library for Go")
    (description "The netlink package provides a simple netlink library for
Go.  Netlink is the interface a user-space program in Linux uses to
communicate with the kernel.  It can be used to add and remove interfaces, set
IP addresses and routes, and configure IPsec.")
    (description
     "The netlink package provides a simple netlink library for Go.  Netlink
is the interface a user-space program in Linux uses to communicate with the
kernel.  It can be used to add and remove interfaces, set IP addresses and
routes, and configure IPsec.")
    (license license:asl2.0)))

(define-public libinih

M gnu/packages/mail.scm => gnu/packages/mail.scm +91 -60
@@ 56,6 56,7 @@
;;; Copyright © 2023 Arjan Adriaanse <arjan@adriaan.se>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Benjamin Slade <slade@lambda-y.net>
;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 5034,7 5035,7 @@ remote SMTP server.")
(define-public aerc
  (package
    (name "aerc")
    (version "0.15.2")
    (version "0.18.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 5043,7 5044,7 @@ remote SMTP server.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1gbprx0i8d13q974n5hsys6lllav5cpll3cwrr1hfw6307hc001r"))))
                "1gj8m8xvqaf0lsnk4h1n9d0qhwi8d3mm0w9zhw16v888n7rll9fb"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "git.sr.ht/~rjarry/aerc"


@@ 5052,23 5053,19 @@ remote SMTP server.")
           #:build-flags
           #~(list "-tags=notmuch"
                   (string-append
                     "-ldflags=-X main.Version=" #$version
                     " -X git.sr.ht/~rjarry/aerc/config.libexecDir="
                     #$output "/libexec/aerc"
                     " -X git.sr.ht/~rjarry/aerc/config.shareDir="
                     #$output "/share/aerc"))
                    "-ldflags=-X main.Version=" #$version
                    " -X git.sr.ht/~rjarry/aerc/config.libexecDir="
                    #$output "/libexec/aerc"
                    " -X git.sr.ht/~rjarry/aerc/config.shareDir="
                    #$output "/share/aerc"))
           #:phases
           #~(modify-phases %standard-phases
               (add-after 'unpack 'patch-paths
                 (lambda* (#:key import-path inputs #:allow-other-keys)
                   (with-directory-excursion
                       (string-append "src/" import-path)
                     (substitute* (list "config/config.go"
                                        "lib/templates/template.go"
                                        "widgets/compose.go"
                                        "widgets/msgviewer.go"
                                        "worker/maildir/worker.go"
                                        "worker/notmuch/worker.go")
                   (with-directory-excursion (string-append "src/" import-path)
                     (substitute* (find-files "." "\\.go$")
                       ;; Patch all occurrences to "sh" with absolute path to
                       ;; the shell available in Guix.
                       (("\"sh\"")
                        (string-append
                         "\"" (search-input-file inputs "bin/sh")


@@ 5077,8 5074,8 @@ remote SMTP server.")
                       (substitute* "commands/z.go"
                         (("\"zoxide\"")
                          (string-append
                            "\"" (search-input-file inputs "bin/zoxide")
                            "\""))))
                           "\"" (search-input-file inputs "bin/zoxide")
                           "\""))))
                     (substitute* (list "lib/crypto/gpg/gpg.go"
                                        "lib/crypto/gpg/gpg_test.go"
                                        "lib/crypto/gpg/gpgbin/keys.go"


@@ 5100,51 5097,47 @@ remote SMTP server.")
                           (string-append "PREFIX=" #$output)))))))
    (inputs
     (append
       (list gnupg
             go-github-com-zenhack-go-notmuch
             go-golang-org-x-oauth2
             go-github-com-xo-terminfo
             go-github-com-stretchr-testify
             go-github-com-riywo-loginshell
             go-github-com-pkg-errors
             go-github-com-mitchellh-go-homedir
             go-github-com-miolini-datacounter
             go-github-com-mattn-go-runewidth
             go-github-com-mattn-go-isatty
             go-github-com-lithammer-fuzzysearch
             go-github-com-kyoh86-xdg
             go-github-com-imdario-mergo
             go-github-com-google-shlex
             go-github-com-go-ini-ini
             go-github-com-gdamore-tcell-v2
             go-github-com-gatherstars-com-jwz
             go-github-com-fsnotify-fsnotify
             go-github-com-emersion-go-smtp
             go-github-com-emersion-go-sasl
             go-github-com-emersion-go-pgpmail
             go-github-com-emersion-go-message
             go-github-com-emersion-go-maildir
             go-github-com-emersion-go-imap-sortthread
             go-github-com-emersion-go-imap
             go-github-com-emersion-go-msgauth
             go-github-com-emersion-go-mbox
             go-github-com-ddevault-go-libvterm
             go-github-com-danwakefield-fnmatch
             go-github-com-creack-pty
             go-github-com-arran4-golang-ical
             go-github-com-protonmail-go-crypto
             go-github-com-syndtr-goleveldb
             go-git-sr-ht-sircmpwn-getopt
             go-git-sr-ht-rockorager-tcell-term
             python
             python-vobject)
       (if (supported-package? zoxide)
           (list zoxide)
           '())))
    (native-inputs (list scdoc))
      (list gnupg
            notmuch ; Failing to build without it.
            python
            python-vobject)
      (if (supported-package? zoxide)
          (list zoxide)
          '())))
    (native-inputs
     (list go-git-sr-ht-rjarry-go-opt
           go-git-sr-ht-rockorager-go-jmap
           go-git-sr-ht-rockorager-vaxis
           go-github-com-protonmail-go-crypto
           go-github-com-arran4-golang-ical
           go-github-com-danwakefield-fnmatch
           go-github-com-emersion-go-imap
           go-github-com-emersion-go-imap-sortthread
           go-github-com-emersion-go-maildir
           go-github-com-emersion-go-mbox
           go-github-com-emersion-go-message
           go-github-com-emersion-go-msgauth
           go-github-com-emersion-go-pgpmail
           go-github-com-emersion-go-sasl
           go-github-com-emersion-go-smtp
           go-github-com-fsnotify-fsnotify
           go-github-com-gatherstars-com-jwz
           go-github-com-go-ini-ini
           go-github-com-lithammer-fuzzysearch
           go-github-com-mattn-go-isatty
           go-github-com-mattn-go-runewidth
           go-github-com-pkg-errors
           go-github-com-riywo-loginshell
           go-github-com-stretchr-testify
           go-github-com-syndtr-goleveldb
           go-golang-org-x-image
           go-golang-org-x-oauth2
           go-golang-org-x-sys
           go-golang-org-x-tools
           scdoc))
    (home-page "https://git.sr.ht/~rjarry/aerc")
    (synopsis "Email client for the terminal")
    (description "@code{aerc} is a textual email client for terminals. It
    (description "@code{aerc} is a textual email client for terminals.  It
features:
@enumerate
@item First-class support for using patches and @code{git send-email}


@@ 5157,3 5150,41 @@ features:
    ;; <https://lists.sr.ht/~rjarry/aerc-devel/%3Cb5cb213a7d0c699a886971658c2476
    ;; 1073eb2391%40disroot.org%3E>
    (license license:gpl3+)))

(define-public hydroxide
  (package
    (name "hydroxide")
    (version "0.2.29")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/emersion/hydroxide")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "11gbikrgm7nf0zjav64202wsnr9pvrmslm2rzg9d9rbvwdqcq1jl"))))
    (build-system go-build-system)
    (arguments
     (list
      #:install-source? #f
      #:import-path "github.com/emersion/hydroxide/cmd/hydroxide"
      #:unpack-path "github.com/emersion/hydroxide"))
    (native-inputs
     (list go-github-com-protonmail-go-crypto
           go-github-com-boltdb-bolt
           go-github-com-emersion-go-bcrypt
           go-github-com-emersion-go-imap
           go-github-com-emersion-go-mbox
           go-github-com-emersion-go-message
           go-github-com-emersion-go-smtp
           go-github-com-emersion-go-vcard
           go-github-com-emersion-go-webdav
           go-golang-org-x-crypto
           go-golang-org-x-term))
    (home-page "https://github.com/emersion/hydroxide")
    (synopsis "ProtonMail CardDAV, IMAP and SMTP bridge")
    (description
     "This package implements a functionality to translate standard
protocols (SMTP, IMAP, CardDAV) into ProtonMail API requests.")
    (license license:expat)))

M gnu/packages/networking.scm => gnu/packages/networking.scm +61 -56
@@ 161,6 161,7 @@
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages polkit)
  #:use-module (gnu packages pretty-print)
  #:use-module (gnu packages prometheus)
  #:use-module (gnu packages protobuf)
  #:use-module (gnu packages pulseaudio)
  #:use-module (gnu packages python)


@@ 1916,30 1917,40 @@ manage, and delete Internet resources from Gandi.net such as domain names,
virtual machines, and certificates.")
    (license license:gpl3+)))

(define-public go-netns
  (let ((commit "13995c7128ccc8e51e9a6bd2b551020a27180abd")
        (revision "1"))
    (package
      (name "go-netns")
      (version (git-version "0.0.0" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/vishvananda/netns")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "1zk6w8158qi4niva5rijchbv9ixgmijsgqshh54wdaav4xrhjshn"))))
      (build-system go-build-system)
      (arguments
       `(#:import-path "github.com/vishvananda/netns"
         #:tests? #f))                  ;tests require root privileges
      (home-page "https://github.com/vishvananda/netns")
      (synopsis "Simple network namespace handling for Go")
      (description "The netns package provides a simple interface for
handling network namespaces in Go.")
      (license license:asl2.0))))
(define-public go-github-com-vishvananda-netns
  (package
    (name "go-github-com-vishvananda-netns")
    (version "0.0.4")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/vishvananda/netns")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0rci8c211m57nya9il81fz6459pia3dj5i4b16fp34vjrkcxliml"))))
    (build-system go-build-system)
    (arguments
     (list
      #:import-path "github.com/vishvananda/netns"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda* (#:key tests? unpack-path #:allow-other-keys)
              (with-directory-excursion (string-append "src/" unpack-path)
                (substitute* (find-files "." "\\_test.go$")
                  ;; Disable tests requiring root access.
                  (("TestGetNewSetDelete") "OffTestGetNewSetDelete")
                  (("TestThreaded") "OffTestThreaded"))))))))
    (propagated-inputs
     (list go-golang-org-x-sys))
    (home-page "https://github.com/vishvananda/netns")
    (synopsis "Simple network namespace handling for Go")
    (description
     "The netns package provides a simple interface for handling network
namespaces in Go.")
    (license license:asl2.0)))

(define-public go-sctp
  ;; docker-libnetwork-cmd-proxy requires this exact commit.


@@ 4624,8 4635,6 @@ QUIC protocol.")
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/yggdrasil-network/yggdrasil-go"
           ;; TODO: figure out how tests are run
           #:tests? #f
           #:install-source? #f
           #:phases
           #~(modify-phases %standard-phases


@@ 4644,34 4653,30 @@ QUIC protocol.")
                         #:import-path directory))
                      (list "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil"
                            "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
                            "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))))))))
                            "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys")))))
               (replace 'check
                 (lambda* (#:key tests? import-path #:allow-other-keys)
                   (when tests?
                     (with-directory-excursion (string-append "src/" import-path)
                       (invoke "go" "test" "-v" "./cmd/..." "./src/..."))))))))
    (propagated-inputs
     (list go-golang-zx2c4-com-wireguard
           go-golang-org-x-text
           go-golang-org-x-net
     (list ;; go-golang-org-x-mobile ; Not packed yet, for contrib.
           ;; go-golang-zx2c4-com-wireguard-windows ; Not packed yet, for tun.
           go-github-com-arceliar-ironwood
           go-github-com-arceliar-phony
           go-github-com-cheggaaa-pb-v3
           go-github-com-gologme-log
           go-github-com-hashicorp-go-syslog
           go-github-com-hjson-hjson-go-v4
           go-github-com-kardianos-minwinsvc
           go-github-com-olekukonko-tablewriter
           go-github-com-quic-go-quic-go
           go-github-com-vishvananda-netlink
           go-golang-org-x-crypto
           go-golang-org-x-tools
           go-golang-org-x-net
           go-golang-org-x-sys
           go-netns
           go-netlink
           go-github-com-bits-and-blooms-bitset
           go-github-com-bits-and-blooms-bloom
           go-github-com-quic-go-quic-go
           go-github-com-hjson-hjson-go
           go-github-com-olekukonko-tablewriter
           go-github-com-mitchellh-mapstructure
           go-github-com-mattn-go-runewidth
           go-github-com-mattn-go-isatty
           go-github-com-mattn-go-colorable
           go-github-com-kardianos-minwinsvc
           go-github-com-hjson-hjson-go
           go-github-com-hashicorp-go-syslog
           go-github-com-gologme-log
           go-github-com-fatih-color
           go-github-com-cheggaaa-pb-v3
           go-github-com-vividcortex-ewma
           go-github-com-arceliar-phony
           go-github-com-arceliar-ironwood))
           go-golang-org-x-text
           go-golang-zx2c4-com-wireguard))
    (home-page "https://yggdrasil-network.github.io/blog.html")
    (synopsis
     "Experiment in scalable routing as an encrypted IPv6 overlay network")


@@ 4702,7 4707,7 @@ IPv6 Internet connectivity - it also works over IPv4.")
(define-public nebula
  (package
    (name "nebula")
    (version "1.8.2")
    (version "1.9.3")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 4711,7 4716,7 @@ IPv6 Internet connectivity - it also works over IPv4.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0ly1axgmskrkmxhzymqis6gxf2wd7rvhycm94wfb8k0hirndvg5m"))
                "08zzbx2v713zd9p7i4kd1bvcw47xb0092p5apba1x5wg6fpxw5zr"))
              ;; Remove windows-related binary blobs and files
              (snippet
               #~(begin


@@ 4749,7 4754,7 @@ IPv6 Internet connectivity - it also works over IPv4.")
     (list go-dario-cat-mergo
           go-github-com-anmitsu-go-shlex
           go-github-com-armon-go-radix
           go-github-com-cespare-xxhash
           go-github-com-cespare-xxhash-v2
           go-github-com-cyberdelia-go-metrics-graphite
           go-github-com-flynn-noise
           go-github-com-gogo-protobuf


@@ 4770,8 4775,8 @@ IPv6 Internet connectivity - it also works over IPv4.")
           go-golang-org-x-term
           go-google-golang-org-protobuf
           go-gopkg-in-yaml-v2
           go-netlink
           go-netns))
           go-github-com-vishvananda-netlink
           go-github-com-vishvananda-netns))
    (home-page "https://github.com/slackhq/nebula")
    (synopsis "Scalable, peer-to-peer overlay networking tool")
    (description

A gnu/packages/prometheus.scm => gnu/packages/prometheus.scm +374 -0
@@ 0,0 1,374 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2024 Dominic Martinez <dom@dominicm.dev>
;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email>
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages prometheus)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix build-system go)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module (gnu packages)
  #:use-module (gnu packages golang-build)
  #:use-module (gnu packages golang-check)
  #:use-module (gnu packages golang-crypto)
  #:use-module (gnu packages golang-web)
  #:use-module (gnu packages golang-xyz))

;;; Commentary:
;;;
;;; Libraries and commands related to, or provided by Prometheus project
;;; <https://prometheus.io>.
;;;
;;; Please: Try to add new module packages in alphabetic order.
;;;
;;; Code:

;;;
;;; Libraries:
;;;

(define-public go-github-com-mwitkow-go-conntrack
  (package
    (name "go-github-com-mwitkow-go-conntrack")
    (version "0.0.0-20190716064945-2f068394615f")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/mwitkow/go-conntrack")
             (commit (go-version->git-ref version))))
       (file-name (git-file-name name version))
       (sha256