summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2024-07-18 21:53:35 +0100
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-07-18 21:53:35 +0100
commita989b5185c1b7ab03606207c8ce6d893c1894a17 (patch)
tree5a521f0c4db2cb764c6258e9867b4dc0c6cb856c /gnu/packages
parente3dfed59d39ac60dd2e2b9ef9f4ef63a2a081f41 (diff)
parent3e1fd3972aceaea22b3be1ffe75ef549a3694f07 (diff)
downloadguix-a989b5185c1b7ab03606207c8ce6d893c1894a17.tar.gz
Merge branch 'go-team'
Change-Id: I0a7d44016da964930bea2584df9104cac5b7ea36
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm1
-rw-r--r--gnu/packages/backup.scm6
-rw-r--r--gnu/packages/configuration-management.scm62
-rw-r--r--gnu/packages/databases.scm1
-rw-r--r--gnu/packages/disk.scm1
-rw-r--r--gnu/packages/education.scm1
-rw-r--r--gnu/packages/file-systems.scm1
-rw-r--r--gnu/packages/finance.scm5
-rw-r--r--gnu/packages/golang-build.scm589
-rw-r--r--gnu/packages/golang-check.scm51
-rw-r--r--gnu/packages/golang-crypto.scm161
-rw-r--r--gnu/packages/golang-web.scm71
-rw-r--r--gnu/packages/golang-xyz.scm75
-rw-r--r--gnu/packages/golang.scm493
-rw-r--r--gnu/packages/high-availability.scm1
-rw-r--r--gnu/packages/ipfs.scm13
-rw-r--r--gnu/packages/irc.scm1
-rw-r--r--gnu/packages/messaging.scm1
-rw-r--r--gnu/packages/music.scm9
-rw-r--r--gnu/packages/networking.scm5
-rw-r--r--gnu/packages/syncthing.scm1
-rw-r--r--gnu/packages/textutils.scm7
-rw-r--r--gnu/packages/time.scm1
-rw-r--r--gnu/packages/version-control.scm5
-rw-r--r--gnu/packages/video.scm3
25 files changed, 911 insertions, 654 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index ae0637fd2c..f4d1797d5b 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -6147,7 +6147,6 @@ file or files to several hosts.")
     (arguments
      (list #:import-path "github.com/digitalocean/doctl/cmd/doctl"
            #:unpack-path "github.com/digitalocean/doctl"
-           #:go go-1.19
            #:build-flags
            #~(list (string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
                                   " -X github.com/digitalocean/doctl.Major="
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 637a873fbf..19c261ea82 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -952,7 +952,11 @@ is like a time machine for your data.")
                (search-patches "restic-0.9.6-fix-tests-for-go1.15.patch"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/restic/restic"
+     `(;; XXX: Tests failed on a newer version of Golang, newer version of
+       ;; restic does not provide vendor folder any longer which means - a
+       ;; long way of packaging missing inputs.
+       #:go ,go-1.17
+       #:import-path "github.com/restic/restic"
       ;; We don't need to install the source code for end-user applications.
        #:install-source? #f
        #:phases
diff --git a/gnu/packages/configuration-management.scm b/gnu/packages/configuration-management.scm
index 818a80b94e..ffb6762142 100644
--- a/gnu/packages/configuration-management.scm
+++ b/gnu/packages/configuration-management.scm
@@ -24,6 +24,7 @@
   #:use-module (guix git-download)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages golang-build)
+  #:use-module (gnu packages golang-check)
   #:use-module (gnu packages golang-web)
   #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages version-control)
@@ -48,7 +49,6 @@
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/twpayne/chezmoi"
       #:install-source? #f
       #:phases
@@ -80,51 +80,63 @@
                           "secretkeepassxc.txt"
                           "secretlastpass.txt"
                           "secretonepassword.txt"
-                          "secretpass.txt")))))))
+                          "secretpass.txt"))))
+          ;; FIXME: Pattern embedded: cannot embed directory embedded:
+          ;; contains no embeddable files.
+          ;;
+          ;; This happens due to Golang can't determine the valid directory of
+          ;; the module which is sourced during setup environment phase, but
+          ;; easy resolved after coping to expected directory "vendor" within
+          ;; the current package, see details in Golang source:
+          ;;
+          ;; - URL: <https://github.com/golang/go/blob/>
+          ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454
+          ;; - file: src/cmd/go/internal/load/pkg.go#L2059
+          (add-before 'build 'copy-input-to-vendor-directory
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (mkdir "vendor")
+                (copy-recursively
+                 (string-append
+                  #$(this-package-native-input "go-github-com-charmbracelet-glamour")
+                  "/src/github.com")
+                 "vendor/github.com")
+                (copy-recursively
+                 (string-append
+                  #$(this-package-native-input "go-github-com-alecthomas-chroma-v2")
+                  "/src/github.com")
+                 "vendor/github.com"))))
+          (add-before 'install 'remove-vendor-directory
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (delete-file-recursively "vendor")))))))
     (native-inputs
-     (list go-github-com-alecthomas-chroma
-           go-github-com-aymerick-douceur
+     (list go-github-com-alecthomas-chroma-v2
            go-github-com-bmatcuk-doublestar-v2
            go-github-com-charmbracelet-glamour
-           go-github-com-chris-ramon-douceur
            go-github-com-coreos-go-semver
-           go-github-com-danwakefield-fnmatch
-           go-github-com-dlclark-regexp2
-           go-github-com-godbus-dbus
            go-github-com-google-go-github-v33
-           go-github-com-google-go-querystring
-           go-github-com-google-goterm
            go-github-com-google-renameio
-           go-github-com-gorilla-css
-           go-github-com-lucasb-eyer-go-colorful
            go-github-com-masterminds-sprig-v3
-           go-github-com-mattn-go-isatty
-           go-github-com-mattn-go-runewidth
-           go-github-com-microcosm-cc-bluemonday
-           go-github-com-muesli-reflow-ansi
-           go-github-com-muesli-reflow-indent
-           go-github-com-muesli-reflow-padding
-           go-github-com-muesli-reflow-wordwrap
-           go-github-com-muesli-termenv
-           go-github-com-olekukonko-tablewriter
            go-github-com-pelletier-go-toml
            go-github-com-pkg-diff
            go-github-com-rogpeppe-go-internal
            go-github-com-sergi-go-diff
            go-github-com-spf13-cobra
            go-github-com-spf13-viper
+           go-github-com-stretchr-testify
            go-github-com-twpayne-go-shell
            go-github-com-twpayne-go-vfs
            go-github-com-twpayne-go-vfsafero
-           go-github-com-twpayne-go-xdg
-           go-github-com-yuin-goldmark
+           go-github-com-twpayne-go-xdg-v3
            go-github-com-zalando-go-keyring
            go-github-go-git
            go-go-etcd-io-bbolt
-           go-golang-org-x-net
            go-golang-org-x-oauth2
+           go-golang-org-x-sys
            go-golang-org-x-term
-           go-gopkg-in-errgo-fmt-errors))
+           go-gopkg-in-yaml-v2
+           go-howett-net-plist))
     (home-page "https://www.chezmoi.io/")
     (synopsis "Personal configuration files manager")
     (description "This package helps to manage personal configuration files
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 001b7640e0..96a59e8024 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -5503,7 +5503,6 @@ compatible with SQLite using a graphical user interface.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:install-source? #f
       #:import-path "github.com/lighttiger2505/sqls"))
     (native-inputs
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 9b161182e4..ee76647475 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -1308,7 +1308,6 @@ on your file system and offers to remove it.  @command{rmlint} can find:
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:install-source? #f
       #:import-path "github.com/gokcehan/lf"))
     (native-inputs
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index dc7cce620b..4a14e44a6b 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -114,7 +114,6 @@
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:install-source? #f
       #:import-path "github.com/xalanq/cf-tool"
       #:phases
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index fa7da35898..707937b78c 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1956,7 +1956,6 @@ memory-efficient.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/oniony/TMSU"
       #:unpack-path "github.com/oniony/TMSU"
       #:install-source? #f
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 82c746a526..29186fec88 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1690,9 +1690,8 @@ trezord as a regular user instead of needing to it run as root.")
        (file-name (git-file-name name version))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/trezor/trezord-go"
-       ;; Requires go 1.18 or later: https://github.com/trezor/trezord-go/commit/f559ee5079679aeb5f897c65318d3310f78223ca
-       #:go ,go-1.20))
+     `(#:go ,go-1.18
+       #:import-path "github.com/trezor/trezord-go"))
     (native-inputs
      (list go-github-com-gorilla-csrf
            go-github-com-gorilla-handlers
diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm
index 086dbaeb17..fbad61e269 100644
--- a/gnu/packages/golang-build.scm
+++ b/gnu/packages/golang-build.scm
@@ -40,7 +40,8 @@
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix utils)
-  #:use-module (gnu packages))
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gcc))
 
 ;;; Commentary:
 ;;;
@@ -58,7 +59,7 @@
 (define-public go-github-com-yuin-goldmark
   (package
     (name "go-github-com-yuin-goldmark")
-    (version "1.2.1")
+    (version "1.7.4")
     (source
      (origin
        (method git-fetch)
@@ -67,53 +68,145 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12rsnsf65drcp0jfw2jl9w589vsn3pxdk1zh3v9q908iigngrcmy"))))
+        (base32 "01807xs8501cyhkrrgg6k9ghl9jrw6dp0ry9knygck48canckxs2"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/yuin/goldmark"))
+     (list
+      #:import-path "github.com/yuin/goldmark"
+      #: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" "./..."))))))))
     (home-page "https://github.com/yuin/goldmark/")
     (synopsis "Markdown parser")
-    (description "This package provides a markdown parser.")
+    (description
+     "This package provides a markdown parser.")
+    (license license:expat)))
+
+(define-public go-github-com-yuin-goldmark-emoji
+  (package
+    (name "go-github-com-yuin-goldmark-emoji")
+    (version "1.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/yuin/goldmark-emoji")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mx8rkxd3ksvgi41jvf365x9mf00sxiqq4wm75x4sasd2lgcbrl4"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/yuin/goldmark-emoji"))
+    (propagated-inputs
+     (list go-github-com-yuin-goldmark))
+    (home-page "https://github.com/yuin/goldmark-emoji")
+    (synopsis "Emoji extension for the goldmark markdown parser")
+    (description
+     "This package provides an emoji is a extension for the
+@url{http://github.com/yuin/goldmark,goldmark}.")
     (license license:expat)))
 
 (define-public go-golang-org-x-crypto
   (package
     (name "go-golang-org-x-crypto")
-    (version "0.14.0")
+    (version "0.25.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://go.googlesource.com/crypto")
              (commit (string-append "v" version))))
-       (file-name (string-append "go.googlesource.com-crypto-"
-                                 version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "08124qkp0l0blq6rw68llfbf84kp99255q0yvxyv27c05b0wkh66"))))
+        (base32 "1cnglyy3fhvnnynazfdrikkwcxv3rlxamvfxink2z241lncvwkxy"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "golang.org/x/crypto"
-       ;; Source-only package
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         ;; Source-only package
-         (delete 'build))))
+     (list
+      #:import-path "golang.org/x/crypto"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-test-files
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (for-each delete-file
+                          (list
+                           ;; Network access requried: go mod download -json
+                           ;; github.com/google/wycheproof@v0.0.0-20191219022705-2196000605e4.
+                           "internal/wycheproof/aead_test.go"
+                           "internal/wycheproof/aes_cbc_test.go"
+                           "internal/wycheproof/dsa_test.go"
+                           "internal/wycheproof/ecdh_stdlib_test.go"
+                           "internal/wycheproof/ecdh_test.go"
+                           "internal/wycheproof/ecdsa_test.go"
+                           "internal/wycheproof/eddsa_test.go"
+                           "internal/wycheproof/hkdf_test.go"
+                           "internal/wycheproof/hmac_test.go"
+                           "internal/wycheproof/rsa_oaep_decrypt_test.go"
+                           "internal/wycheproof/rsa_pss_test.go"
+                           "internal/wycheproof/rsa_signature_test.go"
+                           "internal/wycheproof/wycheproof_test.go")))))
+          ;; 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"
+                          ;; acme - cycle with go-golang-org-x-net
+                          "./argon2/..."
+                          "./bcrypt/..."
+                          "./blake2b/..."
+                          "./blake2s/..."
+                          "./blowfish/..."
+                          "./bn256/..."
+                          "./cast5/..."
+                          "./chacha20/..."
+                          "./chacha20poly1305/..."
+                          "./cryptobyte/..."
+                          "./curve25519/..."
+                          "./ed25519/..."
+                          "./hkdf/..."
+                          "./internal/..."
+                          "./md4/..."
+                          "./nacl/..."
+                          "./ocsp/..."
+                          "./openpgp/..."
+                          "./otr/..."
+                          "./pbkdf2/..."
+                          "./pkcs12/..."
+                          "./poly1305/..."
+                          "./ripemd160/..."
+                          "./salsa20/..."
+                          "./scrypt/..."
+                          "./sha3/..."
+                          "./ssh/..."
+                          "./tea/..."
+                          "./twofish/..."
+                          "./x509roots/..."
+                          "./xtea/..."
+                          "./xts/..."))))))))
     (propagated-inputs
-     (list go-golang-org-x-net
-           go-golang-org-x-sys
-           go-golang-org-x-term
-           go-golang-org-x-text))
+     (list go-golang-org-x-sys go-golang-org-x-term))
     (home-page "https://go.googlesource.com/crypto/")
     (synopsis "Supplementary cryptographic libraries in Go")
-    (description "This package provides supplementary cryptographic libraries
-for the Go language.")
+    (description
+     "This package provides supplementary cryptographic libraries for the Go
+language.")
     (license license:bsd-3)))
 
 (define-public go-golang-org-x-exp
   (package
     (name "go-golang-org-x-exp")
-    (version "0.0.0-20221004215720-b9f4876ce741")
+    (version "0.0.0-20240613232115-7f521ea00fb8")
     (source
      (origin
        (method git-fetch)
@@ -122,7 +215,20 @@ for the Go language.")
              (commit (go-version->git-ref version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "030b929xyg8dpp6f4qbyg63msi6zgzj9sqmvnyphfcrjkqf7nr41"))))
+        (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"))))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "golang.org/x/exp"
@@ -136,12 +242,10 @@ for the Go language.")
 @code{old} directory) packages.")
     (license license:bsd-3)))
 
-;; It's for the Kubo update; remove it when it is no longer needed.
-(define-public go-golang-org-x-exp-2023
+(define-public go-golang-org-x-exp-typeparams
   (package
-    (inherit go-golang-org-x-exp)
-    (name "go-golang-org-x-exp")
-    (version "0.0.0-20230725012225-302865e7556b")
+    (name "go-golang-org-x-exp-typeparams")
+    (version "0.0.0-20240707233637-46b078467d37")
     (source
      (origin
        (method git-fetch)
@@ -150,122 +254,161 @@ for the Go language.")
              (commit (go-version->git-ref version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fkmi0zjwv70n9d9q9bmzch2zvf7xm3d65qh63zll6dljq2lh4b8"))))))
+        (base32 "17pwikql9x1bm5ci0kk4mlad7smkph0cgq1pi2b43gnhjz8m96l0"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "golang.org/x/exp/typeparams"
+      #:unpack-path "golang.org/x/exp"))
+    (home-page "https://pkg.go.dev/golang.org/x/exp/typeparams")
+    (synopsis "Golang common utilities for writing tools")
+    (description
+     "Package typeparams contains common utilities for writing tools that
+interact with generic Go code, as introduced with Go 1.18.
+
+Many of the types and functions in this package are proxies for the new APIs
+introduced in the standard library with Go 1.18.  For example, the
+typeparams.Union type is an alias for @code{go/types.Union}, and the
+@code{ForTypeSpec} function returns the value of the
+@code{go/ast.TypeSpec.TypeParams} field.  At Go versions older than 1.18 these
+helpers are implemented as stubs, allowing users of this package to write code
+that handles generic constructs inline,even if the Go version being used to
+compile does not support generics.")
+    (license license:bsd-3)))
 
 (define-public go-golang-org-x-image
-  (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-image")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://go.googlesource.com/image")
-               (commit commit)))
-         (file-name (string-append "go.googlesource.com-image-"
-                                   version "-checkout"))
-         (sha256
-          (base32 "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/image"
-         ;; Source-only package
-         #:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'build))))
-      (home-page "https://go.googlesource.com/image")
-      (synopsis "Supplemental Go image libraries")
-      (description "This package provides supplemental Go libraries for image
-processing.")
-      (license license:bsd-3))))
+  (package
+    (name "go-golang-org-x-image")
+    (version "0.18.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/image")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0d7zwdsg06km24vhx6dzk1w26wpi3yhx9jfkf9jnsp5chv5pzlw3"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "golang.org/x/image"
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; XXX: go-build-system can't install/build submodules.
+          (delete 'build)
+          (add-after 'unpack 'remove-examples
+            (lambda* (#:key import-path #:allow-other-keys)
+              (delete-file-recursively
+               (string-append "src/" import-path "/example"))))
+          (add-before 'check 'remove-failing-tests
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (for-each delete-file
+                          ;; tiff/reader_test.go:557:14: too many errors
+                          (list "tiff/reader_test.go"
+                                "tiff/writer_test.go")))))
+          ;; 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-golang-org-x-text))
+    (home-page "https://pkg.go.dev/golang.org/x/image")
+    (synopsis "Supplemental Go image libraries")
+    (description
+     "This package provides supplemental Go libraries for image processing.")
+    (license license:bsd-3)))
 
 (define-public go-golang-org-x-mod
-  (let ((commit "7c05a442b7c1d1a107879b4a090bb5a38d3774a1")
-        (revision "0"))
-    (package
-      (name "go-golang-org-x-mod")
-      (version (git-version "0.7.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/golang/mod")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "14r24fq3kn84k2y2jvvg8hwpy52a3q429pimrdwl5zwknbr2awmh"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "golang.org/x/mod/"
-         #:tests? #f
-         #:phases (modify-phases %standard-phases
-                    ;; Source-only package
-                    (delete 'build))))
-      (home-page "https://golang.org/x/mod")
-      (synopsis "Tools to work directly with Go module mechanics")
-      (description
-       "This repository holds packages for writing tools that work directly
+  (package
+    (name "go-golang-org-x-mod")
+    (version "0.19.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/mod")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02wilb8q2bp6qhqcrbjxq1pjy3y5k8p11pxlg481609zx4rjiszc"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "golang.org/x/mod"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-test-files
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (for-each delete-file
+                          (list
+                           ;; Break cycle: go-golang-org-x-mod ->
+                           ;; go-golang-org-x-tools -> go-golang-org-x-mod.
+                           "zip/zip_test.go"
+                           ;; Trying to access
+                           ;; <http://ct.googleapis.com/logs/argon2020/ct/v1/get-sth>.
+                           "sumdb/tlog/ct_test.go")))))
+          ;; 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://golang.org/x/mod")
+    (synopsis "Tools to work directly with Go module mechanics")
+    (description
+     "This repository holds packages for writing tools that work directly
 with Go module mechanics.  That is, it is for direct manipulation of Go
 modules themselves.
 
 The specific case of loading packages should still be done by invoking the
 @command{go} command, which remains the single point of truth for package
 loading algorithms.")
-      (license license:bsd-3))))
+    (license license:bsd-3)))
 
 (define-public go-golang-org-x-net
-  (let ((commit "8e0e7d8d38f2b6d21d742845570dde2902d06a1d")
-        (revision "0"))
-    (package
-      (name "go-golang-org-x-net")
-      (version (git-version "0.5.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://go.googlesource.com/net")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1fidlcn3vcz42v2lc0rpmqh3bz08bcklj6jvnmz2vvgc481ci5hy"))))
-      (build-system go-build-system)
-      (arguments
-       (list
-        #:import-path "golang.org/x/net"
-        ;; Source-only package
-        #:tests? #f
-        #:phases
-        #~(modify-phases %standard-phases
-            ;; Source-only package
-            (delete 'build))))
-      (propagated-inputs
-       (list go-golang-org-x-sys go-golang-org-x-term go-golang-org-x-text))
-      (home-page "https://go.googlesource.com/net")
-      (synopsis "Go supplemental networking libraries")
-      (description "This package provides supplemental Go networking libraries.")
-      (license license:bsd-3))))
-
-;; XXX: Not in use by any other packages, consider to remove or merge with
-;; go-golang-org-x-net.
-(define-public go-golang-org-x-net-0.17
-  (let ((commit "b225e7ca6dde1ef5a5ae5ce922861bda011cfabd")
-        (revision "0"))
-    (package
-      (inherit go-golang-org-x-net)
-      (name "go-golang-org-x-net")
-      (version (git-version "0.17.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://go.googlesource.com/net")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "17zhim2m0r8nyy18g2lsawxm4rawix2qbjyn80x9vc6jc8fv05m9")))))))
+  (package
+    (name "go-golang-org-x-net")
+    (version "0.27.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/net")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fc6d968yiv2l67z9jg7ssvas1hd1jniqh4m7mmlay0q5gk4vf8s"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "golang.org/x/net"
+      #: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
+           go-golang-org-x-sys
+           go-golang-org-x-term
+           go-golang-org-x-text))
+    (home-page "https://go.googlesource.com/net")
+    (synopsis "Go supplemental networking libraries")
+    (description
+     "This package provides supplemental Go networking libraries.")
+    (license license:bsd-3)))
 
 (define-public go-golang-org-x-sync
   (package
@@ -312,7 +455,7 @@ cancelation for groups of goroutines working on subtasks of a common task
 (define-public go-golang-org-x-sys
   (package
     (name "go-golang-org-x-sys")
-    (version "0.21.0")
+    (version "0.22.0")
     (source
      (origin
        (method git-fetch)
@@ -321,7 +464,7 @@ cancelation for groups of goroutines working on subtasks of a common task
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "000fcyi863sbmamdn3cwfv3s3z9ls5l34xnjavcbgjs591ghki8y"))))
+        (base32 "0kpl5hk0zbh5bfschnq64yj1cs7v3l9v6bd1rw5crlfd4hg7xawa"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -345,7 +488,7 @@ support for low-level interaction with the operating system.")
 (define-public go-golang-org-x-term
   (package
     (name "go-golang-org-x-term")
-    (version "0.3.0")
+    (version "0.22.0")
     (source
      (origin
        (method git-fetch)
@@ -354,7 +497,7 @@ support for low-level interaction with the operating system.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16s3d62fgdhiqvcib61s5pwxp08hhrmzx8bdv5zk1w1krjizdarl"))))
+        (base32 "0iqh035y65gfm28xp52pnksh49q3nyaz0zrjjj032rs8hv5py75m"))))
     (build-system go-build-system)
     (arguments '(#:import-path "golang.org/x/term"))
     (propagated-inputs
@@ -368,65 +511,92 @@ terminals, as commonly found on Unix systems.")
 (define-public go-golang-org-x-text
   (package
     (name "go-golang-org-x-text")
-    (version "0.3.2")
+    (version "0.16.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://go.googlesource.com/text")
              (commit (string-append "v" version))))
-       (file-name (string-append "go.googlesource.com-text-"
-                                 version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
+        (base32 "0pmn0i1xbpwvzl4cdgmjqcsk9vckhqrq6699fnr9mkglh4xj3p7a"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "golang.org/x/text"
-       ;; Source-only package
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'build))))
+     (list
+      #:import-path "golang.org/x/text"
+      #: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"
+                          "./cases/..."
+                          ;; cmd - cycle with go-golang-org-x-tools
+                          "./collate/..."
+                          "./currency/..."
+                          "./date/..."
+                          "./encoding/..."
+                          "./feature/..."
+                          "./internal/..."
+                          "./language/..."
+                          ;; message - cycle with go-golang-org-x-tools
+                          "./number/..."
+                          "./runes/..."
+                          "./search/..."
+                          "./secure/..."
+                          "./transform/..."
+                          "./unicode/..."
+                          "./width/..."))))))))
     (home-page "https://go.googlesource.com/text")
     (synopsis "Supplemental Go text processing libraries")
-    (description "This package provides supplemental Go libraries for text
+    (description
+     "This package provides supplemental Go libraries for text
 processing.")
     (license license:bsd-3)))
 
 (define-public go-golang-org-x-time
-  (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-time")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://go.googlesource.com/time")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/time"
-         ;; Source-only package
-         #:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-         ;; Source-only package
-           (delete 'build))))
-      (home-page "https://godoc.org/golang.org/x/time/rate")
-      (synopsis "Supplemental Go time libraries")
-      (description "This package provides supplemental Go libraries related to
+  (package
+    (name "go-golang-org-x-time")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/time")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dahq0p6zn2pd408q6hsv1jl12nqrwd1gkl3r3dysk2q0z16192v"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "golang.org/x/time"
+      #: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://godoc.org/golang.org/x/time/rate")
+    (synopsis "Supplemental Go time libraries")
+    (description
+     "This package provides supplemental Go libraries related to
 time.")
-      (license license:bsd-3))))
+    (license license:bsd-3)))
 
 (define-public go-golang-org-x-tools
   (package
     (name "go-golang-org-x-tools")
-    (version "0.5.0")
+    (version "0.23.0")
     (source
      (origin
        (method git-fetch)
@@ -435,7 +605,7 @@ time.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08kx2nndq3sr6xai7403mbsqvz5shxmp2icylfr2fmwagr59cb2n"))
+        (base32 "0hr81fr5s39p97m9y3ipma7ryw4nm2246k8ds0flkybzf19mhzbi"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -444,27 +614,68 @@ time.")
            (delete-file-recursively "gopls")))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "golang.org/x/tools"
-       ;; Source-only package
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         ;; Source-only package
-         (delete 'build))))
+     (list
+      #:import-path "golang.org/x/tools"
+      #: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"
+                          ;; TODO: They contain final project executable builds,
+                          ;; would be packed separately.
+                          ;; - cmd
+                          ;; - godoc
+
+                          ;; FIXME: Figure out why they are failing:
+                          ;; "./internal/..."
+                          ;; "./present/..."
+                          ;; "./refactor/eg/..."
+                          ;; "./go/ssa/..."
+                          ;; "./go/packages/..."
+                          ;; "./go/analysis/..."
+
+                          "./blog/..."  ;
+                          "./container/..."
+                          "./copyright/..."
+                          "./cover/..."
+                          "./go/ast/..."
+                          "./go/buildutil/..."
+                          "./go/callgraph/..."
+                          "./go/cfg/..."
+                          "./go/expect/..."
+                          "./go/gccgoexportdata/..."
+                          "./go/gcexportdata/..."
+                          "./go/internal/..."
+                          "./go/loader/..."
+                          "./go/types/..."
+                          "./imports/..."
+                          "./playground/..."
+                          "./refactor/importgraph/..."
+                          "./refactor/rename/..."
+                          "./refactor/satisfy/..."
+                          "./txtar/..."))))))))
+    (native-inputs
+     (list gccgo-14))
     (propagated-inputs
      (list go-github-com-yuin-goldmark
            go-golang-org-x-mod
            go-golang-org-x-net
-           go-golang-org-x-sys))
+           go-golang-org-x-sync))
     (home-page "https://go.googlesource.com/tools/")
     (synopsis "Tools that support the Go programming language")
-    (description "This package provides miscellaneous tools that support the
+    (description
+     "This package provides miscellaneous tools that support the
 Go programming language.")
     (license license:bsd-3)))
 
 (define-public go-golang-org-x-xerrors
-  (let ((commit "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca")
-        (revision "0"))
+  (let ((commit "104605ab7028f4af38a8aff92ac848a51bd53c5d")
+        (revision "1"))
     (package
       (name "go-golang-org-x-xerrors")
       (version (git-version "0.0.0" revision commit))
@@ -476,7 +687,7 @@ Go programming language.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"))))
+          (base32 "051xfwx95vq7yhmsy8p9rq0qw67bzvimhz1icjssahwrjndm7h92"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "golang.org/x/xerrors"))
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index 328d0796a3..0822338943 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -78,7 +78,6 @@
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "atomicgo.dev/assert"))
     (home-page "https://atomicgo.dev/assert")
     (synopsis "Go package with tons of assertions")
@@ -104,8 +103,8 @@ value and call @code{t.Fatal()} if the assertion fails.")
         (base32 "05jak1v9s2wrwrn6ar0s4388f7qg15q0qfmhfcswgl88720196z3"))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.18
-           #:import-path "github.com/alecthomas/assert/v2"))
+     (list
+      #:import-path "github.com/alecthomas/assert/v2"))
     (propagated-inputs
      (list go-github-com-alecthomas-repr
            go-github-com-hexops-gotextdiff))
@@ -620,7 +619,6 @@ differently.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/MarvinJWendt/testza"
       #:phases
       #~(modify-phases %standard-phases
@@ -696,7 +694,6 @@ Gomega matcher library.")
         (base32 "1w5dldjjcz2kpyxml4zd9yah7galfpmhcpc2l4zc5pr3skpwpibv"))))
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/onsi/ginkgo/v2"))
     (propagated-inputs
      (list go-github-com-go-logr-logr
@@ -726,7 +723,6 @@ Gomega matcher library.")
       ;; Unless we disable the tests, we have a circular dependency on
       ;; ginkgo/v2.
       #:tests? #f
-      #:go go-1.21
       #:import-path "github.com/onsi/gomega"))
     (propagated-inputs
      (list go-github-com-golang-protobuf
@@ -758,7 +754,6 @@ framework.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/otiai10/mint"))
     (home-page "https://github.com/otiai10/mint")
     (synopsis "Minimal assertion for Golang testing framework")
@@ -1229,7 +1224,6 @@ custom assertions to be used alongside native Go testing.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/warpfork/go-testmark"))
     (home-page "https://github.com/warpfork/go-testmark")
     (synopsis "Parser for @code{testmark} format")
@@ -1258,7 +1252,6 @@ testmark} format, which itself is a subset of Markdown format.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/warpfork/go-wish"))
     (home-page "https://github.com/warpfork/go-wish")
     (synopsis "Test assertions for Golang")
@@ -1314,7 +1307,6 @@ the end of a test.")
       ;; XXX: The project contains subdirectory which complicate it's testing
       ;; and it does not produce any binary.
       #:tests? #f
-      #:go go-1.20
       #:import-path "go.uber.org/mock"
       #:phases
       #~(modify-phases %standard-phases
@@ -1331,7 +1323,7 @@ built-in @code{testing} package, but can be used in other contexts too.")
 (define-public go-honnef-co-go-tools
   (package
     (name "go-honnef-co-go-tools")
-    (version "0.4.6")
+    (version "0.4.7")
     (source
      (origin
        (method git-fetch)
@@ -1341,17 +1333,23 @@ built-in @code{testing} package, but can be used in other contexts too.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0qikkhanmc0vrpgvs0c44y853n88m8qqsk08zry6mvm8f41pgjhi"))))
+         "1n58skq2a0vhsgdfdkyqi00d3vv13kiw9b4mxx6xfyb6ysrdy7d1"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "honnef.co/go/tools"
-       #:tests? #f
-       ;; Source-only package
-       #:phases (modify-phases %standard-phases
-                  (delete 'build))))
+     (list
+      #:import-path "honnef.co/go/tools"
+      #: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-burntsushi-toml
-           go-golang-org-x-exp
+           go-golang-org-x-exp-typeparams
            go-golang-org-x-mod
            go-golang-org-x-tools))
     (home-page "https://staticcheck.dev/")
@@ -1410,7 +1408,6 @@ thoroughly
     (name "ginkgo")
     (arguments
      (list
-       #:go go-1.20
        #:import-path "github.com/onsi/ginkgo/ginkgo"
        #:unpack-path "github.com/onsi/ginkgo"
        #:install-source? #f))
@@ -1424,8 +1421,7 @@ tool."))))
     (inherit go-honnef-co-go-tools)
     (name "go-keyify")
     (arguments
-     `(#:go ,go-1.20
-       #:import-path "honnef.co/go/tools/cmd/keyify"
+     `(#:import-path "honnef.co/go/tools/cmd/keyify"
        #:unpack-path "honnef.co/go/tools"
        #:install-source? #f))
     (synopsis "Transform an unkeyed struct literal into a keyed one in Go")
@@ -1439,7 +1435,6 @@ tool."))))
     (arguments
      (list
       #:install-source? #f
-      #:go go-1.19
       #:import-path "github.com/google/pprof"))
     (description
      (string-append (package-description go-github-com-google-pprof)
@@ -1451,8 +1446,7 @@ tool."))))
     (inherit go-honnef-co-go-tools)
     (name "go-staticcheck")
     (arguments
-     `(#:go ,go-1.20
-       #:import-path "honnef.co/go/tools/cmd/staticcheck"
+     `(#:import-path "honnef.co/go/tools/cmd/staticcheck"
        #:unpack-path "honnef.co/go/tools"
        #:install-source? #f))
     (synopsis "Staticcheck advanced Go linter")
@@ -1466,8 +1460,7 @@ simplifications, and enforces style rules.")))
     (inherit go-honnef-co-go-tools)
     (name "go-structlayout")
     (arguments
-     `(#:go ,go-1.20
-       #:import-path "honnef.co/go/tools/cmd/structlayout"
+     `(#:import-path "honnef.co/go/tools/cmd/structlayout"
        #:unpack-path "honnef.co/go/tools"
        #:install-source? #f))
     (synopsis "Display the layout (field sizes and padding) of structs in Go")
@@ -1481,8 +1474,7 @@ flag.")))
     (inherit go-honnef-co-go-tools)
     (name "go-structlayout-optimize")
     (arguments
-     `(#:go ,go-1.20
-       #:import-path "honnef.co/go/tools/cmd/structlayout-optimize"
+     `(#:import-path "honnef.co/go/tools/cmd/structlayout-optimize"
        #:unpack-path "honnef.co/go/tools"
        #:install-source? #f))
     (synopsis "Reorder struct fields to minimize the amount of padding in Go")
@@ -1495,8 +1487,7 @@ into @code{go-structlayout-pretty}.")))
     (inherit go-honnef-co-go-tools)
     (name "go-structlayout-pretty")
     (arguments
-     `(#:go ,go-1.20
-       #:import-path "honnef.co/go/tools/cmd/structlayout-pretty"
+     `(#:import-path "honnef.co/go/tools/cmd/structlayout-pretty"
        #:unpack-path "honnef.co/go/tools"
        #:install-source? #f))
     (synopsis "Format the output of go-structlayout with ASCII art in Go")
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index c07c58f685..3fbeac703b 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -63,10 +63,63 @@
 ;;;
 ;;; Code:
 
+;;;
+;;; Libraries:
+;;;
+
+(define-public go-c2sp-org-cctv-age
+  (package
+    (name "go-c2sp-org-cctv-age")
+    (version "0.0.0-20240306222714-3ec4d716e805")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/C2SP/CCTV")
+             (commit (go-version->git-ref version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00bk05ca94lm3b029ycwj0krmg2gfjv1c3pc7dvq9gmwwzr564v5"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            ;; Sub folders containing different projects with their own
+            ;; licenses.
+            (for-each delete-file-recursively
+                      (list "ML-KEM" "RFC6979" "ed25519" "jq255"))))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "c2sp.org/CCTV/age"
+      #:unpack-path "c2sp.org/CCTV"))
+    (propagated-inputs
+     (list go-golang-org-x-crypto))
+    (home-page "https://c2sp.org/CCTV/age")
+    (synopsis "Community Cryptography Test Vectors")
+    (description
+     "This package provides a large set of test vectors for the age file
+encryption format, as well as a framework to easily generate them.
+
+The test suite can be applied to any age implementation, regardless of the
+language it's implemented in, and the level of abstraction of its
+interface.  For the simplest, most universal integration, the implementation
+can just attempt to decrypt the test files, check the operation only succeeds
+if expect is success, and compare the decrypted payload.  Test vectors
+involving unimplemented features (such as passphrase encryption or armoring)
+can be ignored.")
+    ;; age/internal/LICENSE: Redistribution and use in source and binary
+    ;; forms, with or without modification, are permitted provided that the
+    ;; following conditions are met
+    ;;
+    ;; age/README: The vectors in the testdata folder are available under the
+    ;; terms of the Zero-Clause BSD (reproduced below), CC0 1.0, or Unlicense
+    ;; license, to your choice.
+    (license license:cc0)))
+
 (define-public go-filippo-io-age
   (package
     (name "go-filippo-io-age")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
      (origin
        (method git-fetch)
@@ -75,10 +128,41 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1k1dv1jkr72qpk5g363mhrg9hnf5c9qgv4l16l13m4yh08jp271d"))))
+        (base32 "1dms32lxqgjipmlisng7dmy1sdw0qscj43x9lmpadyzbzc64lhrv"))))
     (build-system go-build-system)
-    (arguments `(#:import-path "filippo.io/age"))
-    (inputs
+    (arguments
+     (list
+      #:import-path "filippo.io/age"
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; FIXME: src/c2sp.org/CCTV/age/age.go:13:12: pattern testdata:
+          ;; cannot embed directory testdata: contains no embeddable files
+          ;;
+          ;; This happens due to Golang can't determine the valid directory of
+          ;; the module which is sourced during setup environment phase, but
+          ;; easy resolved after coping to expected directory "vendor" within
+          ;; the current package, see details in Golang source:
+          ;;
+          ;; - URL: <https://github.com/golang/go/blob/>
+          ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454
+          ;; - file: src/cmd/go/internal/load/pkg.go#L2059
+          (add-before 'build 'copy-input-to-vendor-directory
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (mkdir "vendor")
+                (copy-recursively
+                 (string-append
+                  #$(this-package-native-input "go-c2sp-org-cctv-age")
+                  "/src/c2sp.org")
+                 "vendor/c2sp.org"))))
+          (add-before 'install 'remove-vendor-directory
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (delete-file-recursively "vendor")))))))
+    (native-inputs
+     (list go-c2sp-org-cctv-age
+           go-github-com-rogpeppe-go-internal))
+    (propagated-inputs
      (list go-golang-org-x-sys
            go-golang-org-x-term
            go-golang-org-x-crypto
@@ -92,24 +176,6 @@ It features small explicit keys, no configuration options, and Unix-style
 composability.")
     (license license:bsd-3)))
 
-(define-public age
-  (package
-    (inherit go-filippo-io-age)
-    (name "age")
-    (arguments
-     `(#:import-path "filippo.io/age/cmd/age"
-       #:unpack-path "filippo.io/age"
-       #:install-source? #f))))
-
-(define-public age-keygen
-  (package
-    (inherit go-filippo-io-age)
-    (name "age-keygen")
-    (arguments
-     `(#:import-path "filippo.io/age/cmd/age-keygen"
-       #:unpack-path "filippo.io/age"
-       #:install-source? #f))))
-
 (define-public go-filippo-io-edwards25519
   (package
     (name "go-filippo-io-edwards25519")
@@ -575,7 +641,6 @@ RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.")
         (base32 "0px12zhdmzqjj5zlcr136rcsilpmi4chiz6arxv49q372j4nhmia"))))
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/golang-jwt/jwt/v5"))))
 
 (define-public go-github-com-google-go-tpm
@@ -973,8 +1038,7 @@ Architecture Processors\" by J. Guilford et al.")
         (base32 "0ydh94083888xl2r4d1grzgqf3c818mkmdpj008jkh6h7m56wc4w"))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.21
-           #:import-path "github.com/multiformats/go-multihash"
+     (list #:import-path "github.com/multiformats/go-multihash"
            #:phases
            #~(modify-phases %standard-phases
                (add-after 'unpack 'copy-multibase-specs
@@ -1094,7 +1158,7 @@ official package.")
 (define-public go-github-com-quic-go-qtls-go1-20
   (package
     (name "go-github-com-quic-go-qtls-go1-20")
-    (version "0.3.4")
+    (version "0.4.1")
     (source
      (origin
        (method git-fetch)
@@ -1103,12 +1167,13 @@ official package.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fl3yv1w8cygag3lav45vvzb4k9i72p92x13wcq0xn13wxirzirn"))))
+        (base32 "069rknxpg7d0dmxc4akq2mw7wm5bi0420nshykf2iclvmbcg9ajh"))))
     (build-system go-build-system)
     (arguments
      (list
-      #:import-path "github.com/quic-go/qtls-go1-20"
-      #:go go-1.20))
+      ;; XXX: panic: qtls.ClientSessionState doesn't match, with Golang 1.20+.
+      #:go go-1.20
+      #:import-path "github.com/quic-go/qtls-go1-20"))
     (propagated-inputs
      (list go-golang-org-x-crypto
            go-golang-org-x-sys))
@@ -1134,7 +1199,6 @@ QUIC.  For Go 1.20.")
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/refraction-networking/utls"
-       #:go ,go-1.20
        #:tests? #f))                    ;requires internet access
     (propagated-inputs
      (list go-github-com-andybalholm-brotli
@@ -1367,6 +1431,43 @@ performance for large inputs and outputs.")
     (description "GoPtLib is a library for writing Tor pluggable transports in
 Go.")
     (license license:cc0)))
+
+;;;
+;;; Executables:
+;;;
+
+(define-public age
+  (package
+    (inherit go-filippo-io-age)
+    (name "age")
+    (arguments
+     (list
+      #:install-source? #f
+      #:import-path "filippo.io/age/cmd/age"
+      #:unpack-path "filippo.io/age"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-failing-test-data-files
+            ;; FIXME: testdata/output_file.txt:49: unknown command "ttyin"
+            ;; age: error: input and output file are the same: "inputcopy"
+            ;; age: error: input and output file are the same: "./inputcopy"
+            ;; age: error: input and output file are the same: "keycopy"
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (for-each delete-file
+                          (list "testdata/scrypt.txt"
+                                "testdata/output_file.txt"
+                                "testdata/encrypted_keys.txt"
+                                "testdata/terminal.txt"))))))))))
+
+(define-public age-keygen
+  (package
+    (inherit go-filippo-io-age)
+    (name "age-keygen")
+    (arguments
+     `(#:import-path "filippo.io/age/cmd/age-keygen"
+       #:unpack-path "filippo.io/age"
+       #:install-source? #f))))
 
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index ac137560b5..b204280317 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -206,7 +206,6 @@ the parse trees produced by the html package.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/AudriusButkevicius/pfilter"
       #:phases
       #~(modify-phases %standard-phases
@@ -561,8 +560,8 @@ and RFC 5389).")
         (base32 "1pwr7fzxgngb073q98qrz1f90bkk3pljynif6jl5a6q6kcsn7xf1"))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.21
-           #:import-path "github.com/cenkalti/backoff/v4"))
+     (list
+      #:import-path "github.com/cenkalti/backoff/v4"))
     (home-page "https://github.com/cenkalti/backoff")
     (synopsis "The exponential backoff algorithm in Go")
     (description "This is a Go port of the exponential backoff algorithm from
@@ -787,7 +786,7 @@ decompose request handling into many smaller layers.")
 (define-public go-github-com-go-jose-go-jose-v3
   (package
     (name "go-github-com-go-jose-go-jose-v3")
-    (version "3.0.0")
+    (version "3.0.3")
     (source
      (origin
        (method git-fetch)
@@ -796,7 +795,7 @@ decompose request handling into many smaller layers.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fnw0p49wc9gmd2xcji2x9jf97dgg9igagd5m6bmq3nw9jjfqdc5"))))
+        (base32 "0kbkplhzqv9ai28r4smhdsxxwh20d96srr3am37pwwnh48ivwch8"))))
     (build-system go-build-system)
     (arguments
      '( #:import-path "github.com/go-jose/go-jose/v3"))
@@ -813,6 +812,24 @@ Signing and Encryption set of standards.  This includes support for JSON Web
 Encryption, JSON Web Signature, and JSON Web Token standards.")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-jose-go-jose-v4
+  (package
+    (inherit go-github-com-go-jose-go-jose-v3)
+    (name "go-github-com-go-jose-go-jose-v4")
+    (version "4.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-jose/go-jose")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bf444687q5rdxjgk41bkryhzhx49f6600b7i51m572xdl0r28a9"))))
+    (arguments
+     (list
+      #:import-path "github.com/go-jose/go-jose/v4"))))
+
 (define-public go-github-com-go-ldap-ldap
   (package
     (name "go-github-com-go-ldap-ldap")
@@ -1055,8 +1072,11 @@ processes.")
      `(#:tests? #f ;application/octet-stream instead of text/plain
        #:import-path "github.com/google/go-github/v26/github"
        #:unpack-path "github.com/google/go-github/v26"))
-    (native-inputs
-     (list go-github-com-google-go-querystring go-golang-org-x-crypto))
+    (propagated-inputs
+     (list go-github-com-google-go-querystring
+           go-golang-org-x-crypto
+           go-golang-org-x-oauth2
+           go-golang-org-x-sync))
     (home-page "https://github.com/google/go-github/")
     (synopsis "Client library for accessing the GitHub API v3")
     (description "@code{go-github} is a Go client library for accessing the
@@ -1403,7 +1423,6 @@ JSON data to the machine.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/jackpal/gateway"))
     (native-inputs
      (list go-github-com-stretchr-testify))
@@ -1758,14 +1777,13 @@ following:
         (base32 "1rn02yn7494r7ayn585bbsddprbn8wdccxs4n2k5dmll4dyd39mp"))))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/multiformats/go-multiaddr"))
     (native-inputs (list go-github-com-stretchr-testify))
     (propagated-inputs (list go-github-com-ipfs-go-cid
                              go-github-com-multiformats-go-multibase
                              go-github-com-multiformats-go-varint
                              go-github-com-multiformats-go-multihash
-                             go-golang-org-x-exp-2023))))
+                             go-golang-org-x-exp))))
 
 (define-public go-github-com-multiformats-go-multiaddr-dns
   (package
@@ -1783,7 +1801,6 @@ following:
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/multiformats/go-multiaddr-dns"
       #:unpack-path "github.com/multiformats/go-multiaddr-dns"))
     (propagated-inputs
@@ -1811,7 +1828,6 @@ following:
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/multiformats/go-multiaddr-fmt"))
     (propagated-inputs
      (list go-github-com-multiformats-go-multiaddr-0.12))
@@ -1875,7 +1891,6 @@ conversion to and from @command{net.Addr}.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/multiformats/go-multistream"))
     (propagated-inputs
      (list go-github-com-multiformats-go-varint))
@@ -1954,7 +1969,6 @@ which produce colorized output using github.com/fatih/color.")
     (arguments
      (list
       #:tests? #f ; Requires some unpackaged software and test data
-      #:go go-1.21
       #:import-path "github.com/oschwald/geoip2-golang"))
     (propagated-inputs
      (list go-github-com-oschwald-maxminddb-golang))
@@ -1981,7 +1995,6 @@ databases in Go.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/oschwald/maxminddb-golang"
       #:phases
       #~(modify-phases %standard-phases
@@ -2059,7 +2072,6 @@ in Golang.")
         (base32 "10nn9349f7snqkzncda5m013fgnzicrcxi6pb6ghc0vb6rhqkf30"))))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/pion/dtls/v2"))
     (native-inputs
      (list go-github-com-stretchr-testify))
@@ -2136,7 +2148,6 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.")
     (arguments
      (list
       #:tests? #f ;Tests require network access.
-      #:go go-1.21
       #:import-path "github.com/pion/ice/v2"))
     (propagated-inputs
      (list go-github-com-google-uuid
@@ -2166,7 +2177,6 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.")
     (arguments
      (list
       #:tests? #f ;Tests require network access.
-      #:go go-1.21
       #:import-path "github.com/pion/ice/v3"))
     (propagated-inputs
      (list go-github-com-google-uuid
@@ -2199,7 +2209,6 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.")
       ;; packaging, see
       ;; <https://github.com/pion/.goassets/blob/master/.github/workflows/test.reusable.yml>.
       #:tests? #f
-      #:go go-1.21
       #:unpack-path "github.com/pion/mdns"
       #:import-path "github.com/pion/mdns"))
     (native-inputs
@@ -2253,7 +2262,6 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/pion/rtp"))
     (propagated-inputs
      (list go-github-com-pion-randutil))
@@ -2280,7 +2288,6 @@ packetizer and depacketizer.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/pion/stun"))
     (native-inputs
      (list go-github-com-stretchr-testify))
@@ -2315,7 +2322,6 @@ packetizer and depacketizer.")
         (base32 "0zli55ls5izpr6cw0wj0gy44872xn9rk20i8ay9cfk7j2rb60y60"))))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/pion/stun/v2"))
     (propagated-inputs
      (list go-github-com-pion-dtls-v2
@@ -2509,7 +2515,6 @@ it like any library.  The quickest way to get started is to look at the
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/pires/go-proxyproto"))
     (home-page "https://github.com/pires/go-proxyproto")
     (synopsis "Implementation of the PROXY protocol")
@@ -2618,7 +2623,6 @@ to jQuery to the Go language.")
      (list
       ;; Tests require ginkgo v2.
       #:tests? #f
-      #:go go-1.20
       #:import-path "github.com/quic-go/qpack"))
     (propagated-inputs
      (list go-github-com-onsi-ginkgo
@@ -2650,7 +2654,6 @@ the Go standard library}.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/quic-go/quic-go"
       #:phases
       #~(modify-phases %standard-phases
@@ -2710,7 +2713,6 @@ protocol.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/quic-go/webtransport-go"))
     (native-inputs
      (list go-go-uber-org-mock
@@ -2757,7 +2759,7 @@ support.")
 (define-public go-github-com-sourcegraph-jsonrpc2
   (package
     (name "go-github-com-sourcegraph-jsonrpc2")
-    (version "0.1.0")
+    (version "0.2.0")
     (home-page "https://github.com/sourcegraph/jsonrpc2")
     (source
      (origin
@@ -2767,14 +2769,12 @@ support.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1dk0w32k96vxrwnmm24wqx337dn8ylch65qwrbc3wh7whw2xx71q"))))
+        (base32 "1id35b4mhif9gy1b70mv0x7xkmpm2p8xydix8six10yjyhvm1wjh"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/sourcegraph/jsonrpc2"))
     (propagated-inputs
-     (list go-github-com-daviddengcn-go-colortext
-           go-github-com-gorilla-websocket
-           go-github-com-motemen-go-colorine))
+     (list go-github-com-gorilla-websocket))
     (synopsis "Provides a client and server implementation of JSON-RPC 2.0")
     (description
      "Package jsonrpc2 provides a Go implementation of JSON-RPC 2.0.")
@@ -3164,6 +3164,8 @@ programming language.")
 programming language, which supports draft-04, draft-06 and draft-07.")
       (license license:asl2.0))))
 
+;; 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
   (package
     (name "go-gopkg-in-square-go-jose-v2")
@@ -3179,7 +3181,12 @@ programming language, which supports draft-04, draft-06 and draft-07.")
         (base32 "1b1nhqxfmhzwrfk7pkvp2w3z3d0pf5ir00vizmy2d4xdbnldn70r"))))
     (build-system go-build-system)
     (arguments
-     (list #:import-path "gopkg.in/square/go-jose.v2"))
+     (list
+      ;; XXX: We strongly encourage users of square/go-jose to migrate to v3
+      ;; of go-jose/go-jose. No support, security fixes or updates will be
+      ;; delivered to the v1/v2 branches in the Square repository.
+      #:tests? #f
+      #:import-path "gopkg.in/square/go-jose.v2"))
     (propagated-inputs
      (list go-golang-org-x-crypto))
     (native-inputs
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index eeefefb3f8..9931911e32 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -159,7 +159,6 @@ simulate (mock) keypresses for CI testing.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "atomicgo.dev/schedule"))
     (home-page "https://atomicgo.dev/schedule")
     (synopsis "Easily schedule non-blocking tasks in Golang")
@@ -186,7 +185,6 @@ given time, in a given duration, or repeatedly at a given interval.")
      (list
       ;; Tests require root access to mount file system.
       #:tests? #f
-      #:go go-1.19
       #:import-path "bazil.org/fuse"))
     (propagated-inputs
      (list go-github-com-tv42-httpunix go-golang-org-x-sys))
@@ -217,7 +215,6 @@ use the C library from the project called FUSE.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "code.cloudfoundry.org/bytefmt"))
     (native-inputs
      (list go-github-com-onsi-gomega
@@ -274,7 +271,6 @@ a human-readable byte format.")
     ;; they may be sourced from sqlite package.
     (arguments
      (list
-      #:go go-1.21
       #:import-path "git.sr.ht/~emersion/go-sqlite3-fts5"
       #:phases
       #~(modify-phases %standard-phases
@@ -510,7 +506,6 @@ syntax highlighted HTML, ANSI-coloured text, etc.")
         (base32 "1qgr4gywjks869sc85wb8nby612b8wvsa1dwpsbanjsljq7wq7mp"))))
     (arguments
      (list
-      #:go go-1.19
       #:import-path "github.com/alecthomas/chroma/v2"
       #:phases
       #~(modify-phases %standard-phases
@@ -630,7 +625,6 @@ be stripped.")
      (list
       ;; One test failed when set to go-1.18 o lower, see
       ;; <https://github.com/alecthomas/kong/issues/437>
-      #:go go-1.19
       #:import-path "github.com/alecthomas/kong"))
     (native-inputs
      (list go-github-com-alecthomas-assert-v2))
@@ -658,8 +652,8 @@ with as little developer effort as possible.")
         (base32 "0k2vsd58rgwyylyn5zja6z6k1sg4m39g2fhd88lvja60ca51bh98"))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.18
-           #:import-path "github.com/alecthomas/participle/v2"))
+     (list
+      #:import-path "github.com/alecthomas/participle/v2"))
     (native-inputs
      (list go-github-com-alecthomas-assert-v2))
     (home-page "https://github.com/alecthomas/participle")
@@ -687,7 +681,6 @@ structs.  The approach is similar to how other marshallers work in Golang,
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/alecthomas/repr"))
     (native-inputs
      (list go-github-com-stretchr-testify))
@@ -717,6 +710,10 @@ almost directly in Go source code.")
       (build-system go-build-system)
       (arguments
        (list
+        ;; XXX: Failing on a newer Golang version: FAIL: TestJSEscaping
+        ;; (0.00s) exec_test.go:757: JS escaping [unprintable ï·¿] got
+        ;; [unprintable ï·¿] want [unprintable \uFDFF]
+        #:go go-1.17
         #:import-path "github.com/alecthomas/template"))
       (home-page "https://github.com/alecthomas/template")
       (synopsis "Fork of Go's text/template adding newline elision")
@@ -827,6 +824,30 @@ 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-aymanbagabas-go-osc52-v2
+  (package
+    (name "go-github-com-aymanbagabas-go-osc52-v2")
+    (version "2.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aymanbagabas/go-osc52")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y4y49zys7fi5wpicpdmjqnk0mb6569zg546km02yck2349jl538"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/aymanbagabas/go-osc52/v2"))
+    (home-page "https://github.com/aymanbagabas/go-osc52")
+    (synopsis "Terminal ANSI OSC52 wrapper")
+    (description
+     "OSC52 is a terminal escape sequence that allows copying text to the
+clipboard.")
+    (license license:expat)))
+
 (define-public go-github-com-benbjohnson-clock
   (package
     (name "go-github-com-benbjohnson-clock")
@@ -842,8 +863,7 @@ stored in a Go struct.")
         (base32 "1p7n09pywqra21l981fbkma9vzsyf31pbvw6xg5r4hp8h8scf955"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/benbjohnson/clock"
-       #:go ,go-1.21))
+     `(#:import-path "github.com/benbjohnson/clock"))
     (home-page "https://github.com/benbjohnson/clock")
     (synopsis "Small library for mocking time in Go")
     (description
@@ -1306,7 +1326,6 @@ submodules:
     (arguments
      (list
       #:tests? #t ; Tests require network interface access
-      #:go go-1.18
       #:import-path "github.com/cskr/pubsub"))
     (home-page "https://github.com/cskr/pubsub")
     (synopsis "Simple pubsub package for go")
@@ -1453,7 +1472,6 @@ gist (https://gist.github.com/kballard/272720).")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/dave/jennifer"))
     (home-page "https://github.com/dave/jennifer")
     (synopsis "Code generator for Go")
@@ -1676,8 +1694,7 @@ Implements string conversion functionality for unit prefixes.
                       "s := strconv.QuoteRune(rune(c))"))))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/dustin/gojson"
-       #:go ,go-1.21))
+     `(#:import-path "github.com/dustin/gojson"))
     (home-page "https://github.com/dustin/gojson")
     (synopsis "Extended Golang's @code{encoding/json} module with the public scanner API")
     (description
@@ -1787,7 +1804,6 @@ more similar API to regexp."))))
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/expr-lang/expr"))
     (home-page "https://expr-lang.org/")
     (synopsis "Expression language and expression evaluation for Go")
@@ -1958,7 +1974,6 @@ Representation,CBOR} (@url{https://www.rfc-editor.org/rfc/rfc8949.html,RFC
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/gabriel-vasile/mimetype"
       #:phases #~(modify-phases %standard-phases
                    (add-before 'check 'add-supported-mimes-md
@@ -2009,7 +2024,6 @@ Differentiation between text and binary files}.
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/go-logr/logr"
       #:phases
       #~(modify-phases %standard-phases
@@ -2125,7 +2139,6 @@ the library more lightweight.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/goccy/go-yaml"
       #:phases
       #~(modify-phases %standard-phases
@@ -2175,7 +2188,6 @@ the library more lightweight.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/gookit/color"
       #:phases
       #~(modify-phases %standard-phases
@@ -2424,7 +2436,6 @@ Groupcache.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/hashicorp/golang-lru/v2"))))
 
 (define-public go-github-com-hashicorp-hcl
@@ -2645,7 +2656,6 @@ and stop units of work, which may receive @code{Close} signals from many clients
       ;;     segment_test.go:145: Actual: 2, Expected: 1
       ;;     segment_test.go:146: ===
       #:tests? #f
-      #:go go-1.21
       #:import-path "github.com/jdkato/twine"
       #:phases
       #~(modify-phases %standard-phases
@@ -3044,7 +3054,6 @@ Printf/Sprintf etc.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:import-path "github.com/logrusorgru/aurora/v3"))
     (native-inputs
      (list go-github-com-stretchr-testify))))
@@ -3100,7 +3109,6 @@ implementing features like:
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/Masterminds/semver/v3"))
     (native-inputs
      (list go-github-com-stretchr-testify-next))
@@ -3343,7 +3351,6 @@ the @code{cpan} module @code{Parse::CommandLine}.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:import-path "github.com/mattn/go-sqlite3"))
     (home-page "https://github.com/mattn/go-sqlite3")
     (synopsis "Sqlite3 driver for Go")
@@ -3612,7 +3619,6 @@ command line flags, config files, and default struct values.")
      (list
       ;; To run the full suite, the tests must be run as the root user.
       #:tests? #f
-      #:go go-1.20
       #:import-path "github.com/msteinert/pam"))
     (propagated-inputs
      (list go-golang-org-x-term
@@ -3710,7 +3716,6 @@ Authentication Modules, PAM} application API.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/multiformats/go-multibase"
       #:phases
       #~(modify-phases %standard-phases
@@ -3750,7 +3755,6 @@ multibase} (self identifying base encodings) in Go.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:import-path "github.com/multiformats/go-multicodec"
       #:phases
       #~(modify-phases %standard-phases
@@ -3809,7 +3813,6 @@ varints.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/nats-io/nats.go"))
     (propagated-inputs (list go-golang-org-x-text
                          go-github-com-nats-io-nuid
@@ -3892,7 +3895,6 @@ registry.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/neurosnap/sentences"))
     (home-page "https://github.com/neurosnap/sentences")
     (synopsis "Multilingual command line sentence tokenizer in Golang")
@@ -4042,7 +4044,6 @@ included in this package.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/otiai10/copy"
       #:phases
       #~(modify-phases %standard-phases
@@ -4214,7 +4215,6 @@ Pion}.")
       ;; Cycle: go-github-com-pterm-pterm -> go-github-com-marvinjwendt-testza
       ;; -> go-github-com-pterm-pterm
       #:tests? #f
-      #:go go-1.21
       #:import-path "github.com/pterm/pterm"))
     (propagated-inputs
      (list go-atomicgo-dev-cursor
@@ -4381,7 +4381,6 @@ synchronizing plain text:
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/shirou/gopsutil"
       #:phases #~(modify-phases %standard-phases
                    (add-after 'unpack 'remove-v3
@@ -4425,7 +4424,6 @@ sensors).")
         (base32 "1xlfcx6giqaxdah2m02q2i8ynwlzar953wr8wqx1j3004xdgaivd"))))
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/shirou/gopsutil"
       #:phases
       #~(modify-phases %standard-phases
@@ -4501,7 +4499,6 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
       ;; Package's tests appear to be hardcoded to the author's gitconfig
       ;; and require network access.
       #:tests? #f
-      #:go go-1.21
       #:import-path "github.com/Songmu/gitconfig"))
     (propagated-inputs
      (list go-github-com-goccy-go-yaml))
@@ -4576,7 +4573,6 @@ well as a program to generate applications and command files.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/syndtr/goleveldb"
       #:phases
       #~(modify-phases %standard-phases
@@ -4761,7 +4757,6 @@ document.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/tklauser/go-sysconf"
       #:phases #~(modify-phases %standard-phases
                    (add-before 'check 'remove-failing-tests
@@ -4798,7 +4793,6 @@ document.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/tklauser/numcpus"
       #:phases #~(modify-phases %standard-phases
                    (add-before 'check 'remove-failing-tests
@@ -5100,7 +5094,6 @@ CPU quota.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "go.uber.org/dig"))
     (native-inputs
      (list go-github-com-stretchr-testify-next))
@@ -5127,7 +5120,6 @@ object dependencies graph during the process startup.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "go.uber.org/fx"))
     (native-inputs
      (list go-github-com-stretchr-testify-next))
@@ -5186,7 +5178,6 @@ applications out of reusable, composable modules.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:import-path "go.uber.org/zap"
       #:phases
       #~(modify-phases %standard-phases
@@ -5318,7 +5309,6 @@ values.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:install-source? #f
       #:import-path "github.com/alecthomas/chroma/cmd/chroma"))
     (native-inputs
@@ -5357,7 +5347,6 @@ correctly.")))
     (name "go-numcpus")
     (arguments
      (list
-      #:go go-1.18
       #:import-path "github.com/tklauser/numcpus/cmd/numcpus"
       #:unpack-path "github.com/tklauser/numcpus"
       #:install-source? #f))
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index eed7126873..3ea153978f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -985,7 +985,10 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                     (list go-1.21)
                     (package-native-inputs go-1.21)))))
 
-(define-public go go-1.17)
+;;
+;; Default Golang version used in guix/build-system/go.scm to build packages.
+;;
+(define-public go go-1.21)
 
 (define make-go-std
   (mlambdaq (go)
@@ -1734,32 +1737,32 @@ retry strategies, such as fixed delay, backoff delay, and random delay.")
     (description "Set is the set collection for the Go language.")
     (license license:expat)))
 
-(define-public go-github-com-dhowett-go-plist
-  (let ((commit "1454fab16a0642638feb0ae98c41f79eccb2a20a")
-        (revision "1"))
-    (package
-      (name "go-github-com-dhowett-go-plist")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/DHowett/go-plist")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "01c9wmhny2rxywcjipq1xa0xw4qm7yd001239grwxcja3b4n45v8"))))
-      (build-system go-build-system)
-      (arguments `(#:import-path "howett.net/plist"))
-      (inputs
-       (list go-github-com-jessevdk-go-flags go-github-com-kr-pretty
-             go-gopkg-in-check-v1 go-gopkg-in-yaml-v2))
-      (home-page "https://github.com/DHowett/go-plist")
-      (synopsis "Apple property list transcoder")
-      (description "This list transcoder supports encoding/decoding property
-lists (Apple XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go
-types.")
-      (license license:giftware))))
+(define-public go-howett-net-plist
+  (package
+    (name "go-howett-net-plist")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/DHowett/go-plist")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1gcrxkmdj87xq01458asgxvvijrkih74ydbzfmir1p16xr9z0x39"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "howett.net/plist"))
+    (propagated-inputs
+     (list go-github-com-jessevdk-go-flags
+           go-gopkg-in-check-v1))
+    (home-page "https://github.com/DHowett/go-plist")
+    (synopsis "Apple property list transcoder")
+    (description
+     "This list transcoder supports encoding/decoding property lists (Apple
+XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go types.")
+    (license license:giftware)))
 
 (define-public go-github-com-blanu-dust
   (package
@@ -2227,7 +2230,6 @@ Go.")
     (arguments
      `(#:unpack-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird"
        #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/cmd/lyrebird"
-       #:go ,go-1.20
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'substitutions
@@ -2602,7 +2604,8 @@ mouse, and terminal resizing events.")
                (base32 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/golangplus/fmt"))
+     '(#:tests? #f ; failing with new Golang compiler.
+       #:import-path "github.com/golangplus/fmt"))
     (synopsis "Additions to Go's standard @code{fmt} package")
     (description "This package provides additions to Go's stdlib @code{fmt}.")
     (license license:bsd-3)))
@@ -2880,7 +2883,6 @@ web framework
                 "0zff0qpqfzwa4xazppiq7jvpncnmx52m23qi4ih754b7rzhbk0iz"))))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/go-playground/validator/v10"))
     (propagated-inputs
      (modify-inputs (package-propagated-inputs
@@ -3152,49 +3154,45 @@ command-line parsers.")
     (home-page "https://github.com/tj/docopt")
     (license license:expat)))
 
-(define-public govulncheck
+(define-public go-golang-org-x-vuln
   (package
-    (name "govulncheck")
-    (version "0.0.0-20221229164908-ebf31f7dc3ef")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://go.googlesource.com/vuln")
-                    (commit (go-version->git-ref version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1w055g90k7anrrcvfrsqklxzl9pl0vqdiwpayj9f0brwys9xhj7d"))))
+    (name "go-golang-org-x-vuln")
+    ;; XXX: Newer version of govulncheck requires golang.org/x/telemetry,
+    ;; which needs to be discussed if it may be included in Guix.
+    (version "0.0.0-20230110180137-6ad3e3d07815")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/vuln")
+             (commit (go-version->git-ref version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1fhz27ni8bs872rgvqq700qacak9v45zy0fh2hilq21sk6dks72r"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "golang.org/x/vuln"
-       #:go ,go-1.19
-       #:install-source? #f
-       #:phases ,#~(modify-phases %standard-phases
-                     (add-after 'unpack 'remove-go-mod-tidy
-                       (lambda _
-                         (substitute* "src/golang.org/x/vuln/checks.bash"
-                           (("go mod tidy")
-                            #$(file-append coreutils-minimal "/bin/true")))))
-                     (replace 'build
-                       (lambda arguments
-                         (apply (assoc-ref %standard-phases
-                                           'build)
-                                `(,@arguments #:import-path
-                                  "golang.org/x/vuln/cmd/govulncheck")))))))
-    (native-inputs (list coreutils-minimal))
-    (inputs (list go-golang-org-x-sys
-                  go-github-com-google-renameio
-                  go-github-com-burntsushi-toml
-                  go-mvdan-cc-unparam
-                  go-honnef-co-go-tools
-                  go-golang-org-x-tools
-                  go-golang-org-x-sync
-                  go-golang-org-x-mod
-                  go-golang-org-x-exp
-                  go-github-com-google-go-cmp-cmp
-                  go-github-com-google-go-cmdtest
-                  go-github-com-client9-misspell))
+     (list
+      #:tests? #f ; it tires to download modules from the network
+      #:import-path "golang.org/x/vuln"
+      #: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"
+                          "./doc/..."
+                          "./internal/..."
+                          "./scan/..."))))))))
+    (propagated-inputs
+     (list go-github-com-google-go-cmdtest
+           go-github-com-google-go-cmp-cmp
+           go-golang-org-x-exp
+           go-golang-org-x-mod
+           go-golang-org-x-sync
+           go-golang-org-x-tools))
     (home-page "https://golang.org/x/vuln")
     (synopsis "Go Vulnerability Management")
     (description
@@ -3202,58 +3200,60 @@ command-line parsers.")
 the @url{https://vuln.go.dev,Go Vulnerability Database}.")
     (license license:bsd-3)))
 
-(define-public go-golang-org-x-vuln
+(define-public govulncheck
   (package
-    (inherit govulncheck)
-    (name "go-golang-org-x-vuln")
+    (inherit go-golang-org-x-vuln)
+    (name "govulncheck")
     (arguments
-     `(#:import-path "golang.org/x/vuln"
-       #:tests? #f
-       #:install-source? #t
-       #:phases (modify-phases %standard-phases
-                  (delete 'build))))
-    (propagated-inputs (package-inputs govulncheck))
-    (native-inputs '())
-    (inputs '())))
+     (list
+      #:tests? #f
+      #:install-source? #f
+      #:import-path "golang.org/x/vuln/cmd/govulncheck"
+      #:unpack-path "golang.org/x/vuln"))
+    (native-inputs
+     (list coreutils-minimal))))
 
 (define-public gopls
   (package
     (name "gopls")
-    (version "0.12.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://go.googlesource.com/tools")
-                    (commit (string-append "gopls/v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "04bq7rh6d6mgxm0lsi8y9v1x7cgx4nvjlsyvxl89r6rcqh3n1lfb"))))
+    ;; XXX: Starting from 0.14.0 gppls needs golang.org/x/telemetry, which
+    ;; needs to be discussed if it may be included in Guix.
+    (version "0.13.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/tools")
+             (commit (string-append "gopls/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qym2c0xvv6vcgwh0kz8sw094r88lzrl08xpvmg08lrqi00ma6kx"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "golang.org/x/tools/gopls"
-       #:unpack-path "golang.org/x/tools"
-       #:install-source? #f
-       #:phases (modify-phases %standard-phases
-                  (add-before 'unpack 'override-tools
-                    (lambda _
-                      (delete-file-recursively "src/golang.org/x/tools"))))))
-    (propagated-inputs (list go-github-com-google-go-cmp-cmp
-                             go-github-com-jba-printsrc
-                             go-github-com-jba-templatecheck
-                             go-github-com-sergi-go-diff
-                             go-golang-org-x-mod
-                             go-golang-org-x-sync
-                             go-golang-org-x-sys
-                             go-golang-org-x-text
-                             go-gopkg-in-yaml-v3
-                             go-honnef-co-go-tools
-                             go-github-com-burntsushi-toml
-                             go-github-com-google-safehtml
-                             go-golang-org-x-exp
-                             go-mvdan-cc-gofumpt
-                             go-golang-org-x-vuln
-                             go-mvdan-cc-xurls))
+     (list
+      #:install-source? #f
+      #:import-path "golang.org/x/tools/gopls"
+      #:unpack-path "golang.org/x/tools"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'unpack 'override-tools
+            (lambda _
+              (delete-file-recursively "src/golang.org/x/tools"))))))
+    (native-inputs
+     (list go-github-com-google-go-cmp-cmp
+           go-github-com-jba-printsrc
+           go-github-com-jba-templatecheck
+           go-github-com-sergi-go-diff
+           go-golang-org-x-mod
+           go-golang-org-x-sync
+           go-golang-org-x-sys
+           go-golang-org-x-text
+           go-golang-org-x-tools
+           go-golang-org-x-vuln
+           go-gopkg-in-yaml-v3
+           go-honnef-co-go-tools
+           go-mvdan-cc-gofumpt
+           go-mvdan-cc-xurls))
     (home-page "https://golang.org/x/tools/gopls")
     (synopsis "Official language server for the Go language")
     (description
@@ -5276,7 +5276,7 @@ representation suitable for computing diffs.")
 (define-public go-github-com-go-sql-driver-mysql
   (package
     (name "go-github-com-go-sql-driver-mysql")
-    (version "1.5.0")
+    (version "1.8.1")
     (source
      (origin
        (method git-fetch)
@@ -5286,11 +5286,13 @@ representation suitable for computing diffs.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v"))))
+         "0ihdqg411gkv454fwx8w5nbndgkm5dz5phfliksxgmhggyxxm7sn"))))
     (build-system go-build-system)
     (arguments
      '(#:tests? #f ;; tests require a network connection
        #:import-path "github.com/go-sql-driver/mysql"))
+    (propagated-inputs
+     (list go-filippo-io-edwards25519))
     (home-page "https://github.com/go-sql-driver/mysql")
     (synopsis "MySQL driver for golang")
     (description
@@ -5323,9 +5325,6 @@ It stores colors in RGB and provides methods for converting these to
 various color spaces.")
     (license license:expat)))
 
-(define-public go-golang-org-colorful
-  (deprecated-package "go-golang-org-colorful" go-github-com-lucasb-eyer-go-colorful))
-
 (define-public go-github-com-gdamore-encoding
   (package
     (name "go-github-com-gdamore-encoding")
@@ -5627,6 +5626,8 @@ designed to clean up raw terminal output by stripping escape sequences,
 optionally preserving color.")
     (license license:expat)))
 
+;; XXX: This repository has been archived by the owner on Dec 1, 2021. It is
+;; now read-only.
 (define-public go-github-com-pkg-errors
   (package
     (name "go-github-com-pkg-errors")
@@ -5643,15 +5644,11 @@ optionally preserving color.")
     (build-system go-build-system)
     (arguments
      (list
-       #:import-path "github.com/pkg/errors"
-       #: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)))))))
+      ;; Tests fail with a newer version of Golang (1.21) due to some API
+      ;; changes in how the module path is calculated which is not reflected
+      ;; in tests.
+      #:tests? #f
+      #:import-path "github.com/pkg/errors"))
     (synopsis "Go error handling primitives")
     (description "This package provides @code{error}, which offers simple
 error handling primitives in Go.")
@@ -6277,8 +6274,7 @@ data serialization format.")
                 "1xf18kzz96hgfy1vlbnydrizzpxkqj2iamfdbj3dx5a1zz5mi8n0"))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.21
-           #:import-path "google.golang.org/protobuf"
+     (list #:import-path "google.golang.org/protobuf"
            #:phases
            #~(modify-phases %standard-phases
                ;; XXX: Workaround for go-build-system's lack of Go modules
@@ -6349,9 +6345,6 @@ efficient space usage.")
     (home-page "https://github.com/bits-and-blooms/bitset")
     (license license:bsd-3)))
 
-(define-public go-github-com-willf-bitset
-  (deprecated-package "go-github-com-willf-bitset" go-github-com-bits-and-blooms-bitset))
-
 (define-public go-github-com-bits-and-blooms-bloom
   (package
     (name "go-github-com-bits-and-blooms-bloom")
@@ -6386,9 +6379,6 @@ based on murmurhash.")
     (home-page "https://github.com/bits-and-blooms/bitset")
     (license license:bsd-2)))
 
-(define-public go-github-com-willf-bloom
-  (deprecated-package "go-github-com-willf-bloom" go-github-com-bits-and-blooms-bloom))
-
 (define-public go-golang-org-rainycape-unidecode
   (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
         (revision "1"))
@@ -6706,67 +6696,46 @@ matching and globbing with support for \"doublestar\" patterns.")
      (list
       #:import-path "github.com/bmatcuk/doublestar/v4"))))
 
-(define-public go-github-com-muesli-reflow-wordwrap
+(define-public go-github-com-muesli-reflow
   (package
-    (name "go-github-com-muesli-reflow-wordwrap")
+    (name "go-github-com-muesli-reflow")
     (version "0.3.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/muesli/reflow")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name "go-github-com-muesli-reflow" version))
-              (sha256
-               (base32
-                "09zcz2cqdwgj1ilya5pqwndryk6lansn87x63fcm8j1xn74vd2ry"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/muesli/reflow")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "go-github-com-muesli-reflow" version))
+       (sha256
+        (base32 "09zcz2cqdwgj1ilya5pqwndryk6lansn87x63fcm8j1xn74vd2ry"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/muesli/reflow/wordwrap"
-       #:unpack-path "github.com/muesli/reflow"))
-    (native-inputs
+     (list
+      #:import-path "github.com/muesli/reflow"
+      #: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-mattn-go-runewidth))
     (home-page "https://github.com/muesli/reflow/")
     (synopsis "Collection of methods helping to transform blocks of text")
-    (description "This package provides a collection of ANSI-aware methods and
-io.Writers helping you to transform blocks of text.")
+    (description
+     "This package provides a collection of ANSI-aware methods and io.Writers
+helping you to transform blocks of text.")
     (license license:expat)))
 
-(define-public go-github-com-muesli-reflow-ansi
-  (package
-    (inherit go-github-com-muesli-reflow-wordwrap)
-    (name "go-github-com-muesli-reflow-ansi")
-    (arguments
-     `(#:import-path "github.com/muesli/reflow/ansi"
-       #:unpack-path "github.com/muesli/reflow"))))
-
-(define-public go-github-com-muesli-reflow-indent
-  (package
-    (inherit go-github-com-muesli-reflow-wordwrap)
-    (name "go-github-com-muesli-reflow-indent")
-    (arguments
-     `(#:import-path "github.com/muesli/reflow/indent"
-       #:unpack-path "github.com/muesli/reflow"))))
-
-(define-public go-github-com-muesli-reflow-padding
-  (package
-    (inherit go-github-com-muesli-reflow-wordwrap)
-    (name "go-github-com-muesli-reflow-padding")
-    (arguments
-     `(#:import-path "github.com/muesli/reflow/padding"
-       #:unpack-path "github.com/muesli/reflow"))))
-
-(define-public go-github-com-muesli-reflow-truncate
-  (package
-    (inherit go-github-com-muesli-reflow-wordwrap)
-    (name "go-github-com-muesli-reflow-truncate")
-    (arguments
-     `(#:import-path "github.com/muesli/reflow/truncate"
-       #:unpack-path "github.com/muesli/reflow"))))
-
 (define-public go-github-com-muesli-termenv
   (package
     (name "go-github-com-muesli-termenv")
-    (version "0.8.1")
+    (version "0.15.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6775,15 +6744,16 @@ io.Writers helping you to transform blocks of text.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0m24ljq1nq7z933fcvg99fw0fhxj9rb5ll4rlay7z2f2p59mrbdp"))))
+                "19yhli6k79aqpra4djp0cl4q76mqxbc1f7in20y0dzhnjb7yz42p"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/muesli/termenv"))
-    (native-inputs
-     (list go-github-com-google-goterm
+    (propagated-inputs
+     (list go-github-com-aymanbagabas-go-osc52-v2
            go-github-com-lucasb-eyer-go-colorful
            go-github-com-mattn-go-isatty
-           go-github-com-mattn-go-runewidth))
+           go-github-com-mattn-go-runewidth
+           go-golang-org-x-sys))
     (home-page "https://github.com/muesli/termenv/")
     (synopsis "Advanced styling options on the terminal")
     (description "termenv lets you safely use advanced styling options on the
@@ -6861,7 +6831,7 @@ size of the terminal.")
 (define-public go-github-com-charmbracelet-glamour
   (package
     (name "go-github-com-charmbracelet-glamour")
-    (version "0.2.0")
+    (version "0.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6870,43 +6840,56 @@ size of the terminal.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1idq8d13rp1hx2a1xak31fwl9fmi09p2x4ymvzl7aj850saw5w0z"))))
+                "073kyx94r9f0hpjv5c3x9pfdd3dbpyqcy7jhx4yxz0ps25j1a41p"))))
     (build-system go-build-system)
     (arguments
-     (list #:import-path "github.com/charmbracelet/glamour"
-           #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'unpack 'patch-tests
-                 (lambda _
-                   ;; Some tests fail due to different number of '^[0m' symbols at
-                   ;; the beginning and the end of paragraphs.  To fix that we
-                   ;; re-generate 'readme.test' so the test output will match the
-                   ;; 'readme.test' contents.
-                   (chmod "src/github.com/charmbracelet/glamour/testdata/readme.test"
-                          #o644)
-                   (substitute* "src/github.com/charmbracelet/glamour/glamour_test.go"
-                     (("	generate = false")
-                      "	generate = true")))))))
-    (native-inputs
-     (list go-github-com-alecthomas-chroma
-           go-github-com-danwakefield-fnmatch
-           go-github-com-dlclark-regexp2
+     (list
+      #:import-path "github.com/charmbracelet/glamour"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-tests
+            (lambda _
+              ;; Some tests fail due to different number of '^[0m' symbols at
+              ;; the beginning and the end of paragraphs.  To fix that we
+              ;; re-generate 'readme.test' so the test output will match the
+              ;; 'readme.test' contents.
+              (chmod "src/github.com/charmbracelet/glamour/testdata/readme.test"
+                     #o644)
+              (substitute* "src/github.com/charmbracelet/glamour/glamour_test.go"
+                (("	generate = false")
+                 "	generate = true"))))
+          ;; FIXME: Pattern embedded: cannot embed directory embedded:
+          ;; contains no embeddable files.
+          ;;
+          ;; This happens due to Golang can't determine the valid directory of
+          ;; the module which is sourced during setup environment phase, but
+          ;; easy resolved after coping to expected directory "vendor" within
+          ;; the current package, see details in Golang source:
+          ;;
+          ;; - URL: <https://github.com/golang/go/blob/>
+          ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454
+          ;; - file: src/cmd/go/internal/load/pkg.go#L2059
+          (add-before 'build 'copy-input-to-vendor-directory
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (mkdir "vendor")
+                (copy-recursively
+                 (string-append
+                  #$(this-package-input "go-github-com-alecthomas-chroma-v2")
+                  "/src/github.com")
+                 "vendor/github.com"))))
+          (add-before 'install 'remove-vendor-directory
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (delete-file-recursively "vendor")))))))
+    (propagated-inputs
+     (list go-github-com-alecthomas-chroma-v2
            go-github-com-microcosm-cc-bluemonday
-           go-github-com-chris-ramon-douceur
-           go-github-com-aymerick-douceur
-           go-github-com-gorilla-css
-           go-github-com-muesli-reflow-ansi
-           go-github-com-muesli-reflow-wordwrap
-           go-github-com-muesli-reflow-indent
-           go-github-com-muesli-reflow-padding
-           go-github-com-mattn-go-runewidth
+           go-github-com-muesli-reflow
            go-github-com-muesli-termenv
-           go-github-com-google-goterm
-           go-github-com-lucasb-eyer-go-colorful
-           go-github-com-mattn-go-isatty
            go-github-com-olekukonko-tablewriter
            go-github-com-yuin-goldmark
-           go-golang-org-x-net))
+           go-github-com-yuin-goldmark-emoji))
     (home-page "https://github.com/charmbracelet/glamour/")
     (synopsis "Write handsome command-line tools with glamour")
     (description "@code{glamour} lets you render markdown documents and
@@ -7352,9 +7335,9 @@ and @code{ioutil} packages that is easy to test.")
 @code{go-github-com-twpayne-go-vfs} and @code{go-github-com-spf13-afero}.")
     (license license:expat)))
 
-(define-public go-github-com-twpayne-go-xdg
+(define-public go-github-com-twpayne-go-xdg-v3
   (package
-    (name "go-github-com-twpayne-go-xdg")
+    (name "go-github-com-twpayne-go-xdg-v3")
     (version "3.1.0")
     (source (origin
               (method git-fetch)
@@ -7630,7 +7613,7 @@ server tools for Prometheus metrics.")
     (arguments
      `(#:tests? #f ;XXX: Fix dbus tests
        #:import-path "github.com/zalando/go-keyring"))
-    (native-inputs
+    (propagated-inputs
      (list go-github-com-godbus-dbus dbus))
     (home-page "https://github.com/zalando/go-keyring/")
     (synopsis "Library for working with system keyring")
@@ -7816,7 +7799,10 @@ additions.")
          "09a4gsh75a8bj71wr042afrma9frriqp60cm0cx6c9a8lv5yzzi0"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "golang.zx2c4.com/wireguard"))
+     '(;; XXX: Failed on newer version of Golang, the recent release requires
+       ;; gvisor.dev/gvisor, which is huge to pack.
+       #:tests? #f
+       #:import-path "golang.zx2c4.com/wireguard"))
     (propagated-inputs
      (list go-golang-org-x-crypto go-golang-org-x-net go-golang-org-x-sys
            go-golang-org-x-text))
@@ -8043,8 +8029,7 @@ Gemini clients and servers.")
                              fixed-version))))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "mvdan.cc/gofumpt"
-       #:go ,go-1.19))
+     `(#:import-path "mvdan.cc/gofumpt"))
     (native-inputs (list go-gopkg-in-errgo-fmt-errors))
     (propagated-inputs (list go-github-com-pkg-diff
                              go-github-com-kr-text
@@ -8081,7 +8066,7 @@ That is, @code{gofumpt} is happy with a subset of the formats that
 (define-public unparam
   (package
     (name "unparam")
-    (version "0.0.0-20221223090309-7455f1af531d")
+    (version "0.0.0-20240528143540-8a5130ca722f")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -8090,13 +8075,16 @@ That is, @code{gofumpt} is happy with a subset of the formats that
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0wynf0b32azxljncw5fh9bwkxpdflvf9q1z16wyj432566yjh12c"))))
+                "0qrwszcmb5slbzkq3acw57b896z22zwkv6cf6ldxwlc6p179g009"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "mvdan.cc/unparam"
-       #:go ,go-1.19))
-    (inputs (list go-golang-org-x-sys go-golang-org-x-mod
-                  go-github-com-pkg-diff go-golang-org-x-tools
+     `(;; FIXME: <...>-go-1.21.5/lib/go/src/runtime/cgo/cgo.go:33:8: could not
+       ;; import C (no metadata for C)
+       ;; <...>-go-1.21.5/lib/go/src/net/cgo_linux.go:12:8: could not import C
+       ;; (no metadata for C)
+       #:tests? #f
+       #:import-path "mvdan.cc/unparam"))
+    (inputs (list go-github-com-pkg-diff go-golang-org-x-tools
                   go-github-com-rogpeppe-go-internal))
     (home-page "https://mvdan.cc/unparam/")
     (synopsis "Find unused parameters in Go")
@@ -8419,11 +8407,9 @@ parser.")
      `(("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
        ("github.com/muesli/termenv" ,go-github-com-muesli-termenv)
        ("github.com/mattn/go-runewidth" ,go-github-com-mattn-go-runewidth)
-       ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
-       ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
+       ("go-github-com-muesli-reflow" ,go-github-com-muesli-reflow)
        ("go-github-com-lucasb-eyer-go-colorful" ,go-github-com-lucasb-eyer-go-colorful)
        ("github.com/containerd/console" ,go-github-com-containerd-console)
-       ("go-github-com-muesli-reflow-truncate" ,go-github-com-muesli-reflow-truncate)
        ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
        ("go-golang-org-x-sys" ,go-golang-org-x-sys)
        ("go-golang-org-x-term" ,go-golang-org-x-term)
@@ -8479,7 +8465,6 @@ dependencies and a simple API.")
     (build-system go-build-system)
     (arguments
      (list #:import-path "github.com/Arceliar/ironwood"
-           #:go go-1.21
            #:tests? #f
            #:phases
            #~(modify-phases %standard-phases
@@ -8522,9 +8507,6 @@ be useful for other network applications.")
     (home-page "https://github.com/mtibben/percent")
     (license license:expat)))
 
-(define-public go-github-com-percent
-  (deprecated-package "go-github-com-percent" go-github-com-mtibben-percent))
-
 (define-public aws-vault
   (package
     (name "aws-vault")
@@ -8631,9 +8613,6 @@ aware of your profiles and configuration in ~/.aws/config.")
       (home-page "https://github.com/gsterjov/go-libsecret")
       (license license:expat))))
 
-(define-public go-github-com-go-libsecret
-  (deprecated-package "go-github-com-go-libsecret" go-github-com-gsterjov-go-libsecret))
-
 (define-public go-github-com-mtibben-androiddnsfix
   (let ((commit "ff02804463540c36e3a148dcf4b009d003cf2a31")
         (revision "0"))
@@ -8888,8 +8867,7 @@ ordered, mutable data structure.")
         (base32 "0pdy8f7bkm65gx4vknwcvfa619hknflqxkdlvmf427k2mzm91gmh"))))
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/peterbourgon/diskv"
-       #:go ,go-1.18))
+     `(#:import-path "github.com/peterbourgon/diskv"))
     (propagated-inputs (list go-github-com-google-btree))
     (home-page "https://github.com/peterbourgon/diskv")
     (synopsis "Disk-backed key-value store")
@@ -9033,7 +9011,7 @@ text-only mail clients to display them.")
 (define-public go-github-com-jhillyerd-enmime
   (package
     (name "go-github-com-jhillyerd-enmime")
-    (version "0.9.4")
+    (version "1.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -9042,22 +9020,19 @@ text-only mail clients to display them.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "124dqm598phbmalyx2gmxk201z9kq4ckvvdq8rc0akjlp24nxqbb"))))
+                "03pir9wq9ha2i2ifj819yv5i0lvrgdn904ksbzgc3k8bqc497ydn"))))
     (build-system go-build-system)
     (arguments
      (list #:import-path "github.com/jhillyerd/enmime"))
-    (propagated-inputs (list go-golang-org-x-text
-                             go-golang-org-x-net
-                             go-github-com-stretchr-testify
-                             go-github-com-ssor-bom
-                             go-github-com-rivo-uniseg
-                             go-github-com-pkg-errors
-                             go-github-com-olekukonko-tablewriter
-                             go-github-com-mattn-go-runewidth
-                             go-github-com-gogs-chardet
-                             go-github-com-jaytaylor-html2text
-                             go-github-com-go-test-deep
-                             go-github-com-cention-sany-utf7))
+    (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
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm
index c629385310..89d3e22c7e 100644
--- a/gnu/packages/high-availability.scm
+++ b/gnu/packages/high-availability.scm
@@ -226,7 +226,6 @@ applications.")
            go-golang-org-x-time))
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/nats-io/nats-server"
       #:install-source? #f))
     (home-page "https://github.com/nats-io/nats-server")
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index daf68903c2..c4914bbb80 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -56,7 +56,6 @@
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-block-format"))
     (propagated-inputs
      (list go-github-com-multiformats-go-multihash
@@ -88,7 +87,6 @@ corresponding to the block.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-cid"))
     (propagated-inputs
      (list go-github-com-multiformats-go-multihash
@@ -117,7 +115,6 @@ used in @code{go-ipfs} and related packages to refer to a typed hunk of data.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-cidutil"))
     (propagated-inputs
      (list go-github-com-ipfs-go-cid
@@ -237,7 +234,6 @@ throughout its lifetime.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-detect-race"))
     (home-page "https://github.com/ipfs/go-detect-race")
     (synopsis "Detect if compiled with race")
@@ -262,7 +258,6 @@ throughout its lifetime.")
                              go-github-com-multiformats-go-multihash))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-ipfs-util"))
     (home-page "https://github.com/ipfs/go-ipfs-util")
     (synopsis "Common utilities used by @code{go-ipfs} and related packages")
@@ -286,7 +281,6 @@ throughout its lifetime.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-ipld-cbor"))
     (propagated-inputs
      (list go-github-com-ipfs-go-block-format
@@ -360,7 +354,6 @@ IPLD graph as detailed below.  Objects are demonstrated here using both
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-ipld-format"))
     (propagated-inputs
      (list go-github-com-multiformats-go-multihash
@@ -389,7 +382,6 @@ order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-fore
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:unpack-path "github.com/ipld/go-ipld-prime/"
       #:import-path "github.com/ipld/go-ipld-prime/"
       #:phases
@@ -489,7 +481,6 @@ basic operations on IPLD objects (traversals, etc).")
            go-go-uber-org-zap))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-log/v2"))
     (home-page "https://github.com/ipfs/go-log")
     (synopsis "Logging library used by @code{go-ipfs}")
@@ -520,7 +511,6 @@ their levels to be controlled individually.")
            go-go-uber-org-zap))
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/ipfs/go-log"))))
 
 (define-public go-github-com-whyrusleeping-cbor-gen
@@ -753,7 +743,6 @@ written in Go.")
      (list
       #:unpack-path "github.com/ipfs/kubo"
       #:import-path "github.com/ipfs/kubo/cmd/ipfs"
-      #:go go-1.21
       #:phases
       #~(modify-phases %standard-phases
           ;; https://github.com/ipfs/kubo/blob/master/docs/command-completion.md
@@ -856,7 +845,7 @@ written in Go.")
                   go-go-uber-org-multierr
                   go-go-uber-org-zap
                   go-golang-org-x-crypto
-                  go-golang-org-x-exp-2023
+                  go-golang-org-x-exp
                   go-golang-org-x-mod
                   go-golang-org-x-sync
                   go-golang-org-x-sys
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index b42d751cbd..aa4c9b8b53 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -1108,7 +1108,6 @@ what.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:install-source? #f
       #:import-path "git.sr.ht/~emersion/soju"
       #:phases
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 2d398a2cc3..c097c16a97 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -3306,7 +3306,6 @@ designed for experienced users.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.21
       #:import-path "github.com/42wim/matterbridge"))
     (synopsis "Bridge together various messaging networks and protocols")
     (description
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 68b7cafae0..100a41f87b 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -6127,8 +6127,8 @@ console music players.")
     (license license:gpl3+)))
 
 (define-public demlo
-  (let ((commit "fe9ec4c8ac2fa995ec18e6ac86d50d46df06ec01")
-        (revision "0"))
+  (let ((commit "985f81047a67c795e67f628b550064558476a7c3")
+        (revision "1"))
     (package
       (name "demlo")
       (version (git-version "3.8" revision commit))
@@ -6142,7 +6142,7 @@ console music players.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1afkbqhzn6da7zaf5ab7dvyqj1izqhzprwfb4hw448fllda9bdvk"))))
+           "1wx7pwgvg1fiq55jdc22353frcdlz548g97dy4j353lqxy8vxfyj"))))
       (build-system go-build-system)
       (native-inputs
        (list lua
@@ -6157,7 +6157,8 @@ console music players.")
       (inputs
        (list chromaprint ffmpeg))
       (arguments
-       `(#:import-path "gitlab.com/ambrevar/demlo"
+       `(#:go ,go-1.17
+         #:import-path "gitlab.com/ambrevar/demlo"
          #:phases
          (modify-phases %standard-phases
            (add-after 'install 'wrap-program
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ec5ed34b0e..a68d64ab8d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4627,7 +4627,6 @@ QUIC protocol.")
            ;; TODO: figure out how tests are run
            #:tests? #f
            #:install-source? #f
-           #:go go-1.21
            #:phases
            #~(modify-phases %standard-phases
                (replace 'build
@@ -4722,7 +4721,6 @@ IPv6 Internet connectivity - it also works over IPv4.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.20
       #:import-path "github.com/slackhq/nebula"
       #:install-source? #f
       #:phases
@@ -4828,8 +4826,7 @@ on hub/switched networks.  It is based on @acronym{ARP} packets, it will send
                 "1kbcr6580a9pi0a3wssnfr3mnxqq2k9w1fg4khikn82lqaljab2f"))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.21
-           #:install-source? #f
+     (list #:install-source? #f
            #:import-path "github.com/macronut/phantomsocks"
            #:build-flags #~'("-tags" #$(if (target-linux?)
                                            "rawsocket"
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index ea8249869d..47cbb7ee74 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -66,7 +66,6 @@
      (list #:modules '((srfi srfi-26) ; for cut
                        (guix build utils)
                        (guix build go-build-system))
-           #:go go-1.20
            #:import-path "github.com/syncthing/syncthing"
            ;; We don't need to install the source code for end-user applications.
            #:install-source? #f
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 0d704faed9..39205f3784 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -1484,9 +1484,6 @@ community around it also has a list of style guides implemented with Vale in
 @url{https://github.com/errata-ai/styles, their styles repo}.")
     (license license:expat)))
 
-(define-public go-github-com-errata-ai-vale
-  (deprecated-package "go-github-com-errata-ai-vale" vale))
-
 (define-public utf-8-lineseparator
   (package
     (name "utf-8-lineseparator")
@@ -1562,9 +1559,6 @@ JSON for post-processing
 @end itemize")
     (license license:expat)))
 
-(define-public go-github-com-aswinkarthik-csvdiff
-  (deprecated-package "go-github-com-aswinkarthik-csvdiff" csvdiff))
-
 (define-public miller
   (package
     (name "miller")
@@ -1581,7 +1575,6 @@ JSON for post-processing
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.19
       #:install-source? #f
       #:import-path "github.com/johnkerl/miller/cmd/mlr"
       #:unpack-path "github.com/johnkerl/miller"
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 2612201c11..27cea548ec 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -644,7 +644,6 @@ calls.")
     (build-system go-build-system)
     (arguments
      (list
-      #:go go-1.17
       #:install-source? #f
       #:import-path "github.com/oz/tz"))
     (inputs
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 29401f87ff..3267a541a1 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -3810,7 +3810,7 @@ If several repos are related, it helps to see their status together.")
 (define-public ghq
   (package
     (name "ghq")
-    (version "1.1.7")
+    (version "1.6.2")
     (home-page "https://github.com/x-motemen/ghq")
     (source (origin
               (method git-fetch)
@@ -3820,12 +3820,11 @@ If several repos are related, it helps to see their status together.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "155sfmhmh4ia3iinm1s8fk7fxyn5dxdryad9xkbg7mr3i3ikqjwh"))))
+                "00rrm0gykmj60i0lnr4js6d4193c92zm3cimimb03xva4n9frvxw"))))
     (build-system go-build-system)
     (arguments
      (list
       #:install-source? #f
-      #:go go-1.21
       #:import-path "github.com/x-motemen/ghq"
       #:phases
       #~(modify-phases %standard-phases
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8728da1775..ddfa3a2b72 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2975,8 +2975,7 @@ To load this plugin, specify the following option when starting mpv:
                           (delete-file "orfondl")))))
     (build-system go-build-system)
     (arguments
-     (list #:go go-1.19
-           #:install-source? #f
+     (list #:install-source? #f
            #:import-path "github.com/badlogic/orfondl"
            #:phases
            #~(modify-phases %standard-phases