Subject: [PATCH] gnu: Add go-1.22 and its standard library.

From: Brennan Vincent <[email-masked]>
Date: Sat, 17 Feb 2024 13:35:16 -0500

* gnu/packages/golang.scm (go-1.22): New variable.

* gnu/packages/golang.scm (go-std-1.22): New variable.

Change-Id: I18d92874d4131843e7c6cf0e8d89f2946f7b972d
---
 gnu/packages/golang.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 527b63d160..43953edf47 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1112,6 +1112,38 @@ (define-public go-1.21
                      ("api"          "share/go/api"        ,tests)
                      ("test"         "share/go/test"       ,tests))))))))))))
 
+(define-public go-1.22
+  (package
+    (inherit go-1.21)
+    (name "go")
+    (version "1.22.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/golang/go")
+             (commit (string-append "go" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00j6sn2zysk5pdzxw1wfdi31wggzw1h1026ah3x3mi85dwsijhjs"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments go-1.21)
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (replace 'unpatch-perl-shebangs
+              (lambda _
+                ;; Avoid inclusion of perl in closure by rewriting references
+                ;; to perl input in sourcecode generators and test scripts
+                (substitute* (find-files "src" "\\.pl$")
+                  (("^#!.*")
+                   "#!/usr/bin/env perl\n"))))))))
+    (native-inputs
+     ;; Go 1.22 and later requires Go 1.20 (min. 1.20.6, which we don't have)
+     ;; as the bootstrap toolchain.
+     (alist-replace "go"
+                    (list go-1.21)
+                    (package-native-inputs go-1.21)))))
+
 (define-public go go-1.17)
 
 (define make-go-std
@@ -1155,6 +1187,7 @@ (define-public go-std-1.18 (make-go-std go-1.18))
 (define-public go-std-1.19 (make-go-std go-1.19))
 (define-public go-std-1.20 (make-go-std go-1.20))
 (define-public go-std-1.21 (make-go-std go-1.21))
+(define-public go-std-1.22 (make-go-std go-1.22))
 
 (define-public go-0xacab-org-leap-shapeshifter
   (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474")

base-commit: 3cf199dbcf85a44fa8370e786e568fc3feb7067c
-- 
2.41.0