Subject: [bug#54335] [PATCH v3 09/10] gnu: Add go-github-com-skip2-go-qrcode.

From: Dominic Martinez <[email-masked]>
Date: Mon, 4 Apr 2022 15:32:07 -0400

* gnu/packages/golang.scm (go-github-com-skip2-go-qrcode): New variable.
---

The go-qrcode decoding test doesn't compile due to a change in Go's int to
string conversion. There is an active pull request with the fix at
https://github.com/skip2/go-qrcode/pull/53, but in the meantime I included a
patch for the test.

 gnu/packages/golang.scm                       | 22 +++++++++++
 ...github-com-skip2-go-qrcode-fix-tests.patch | 37 +++++++++++++++++++
 2 files changed, 59 insertions(+)
 create mode 100644 gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index db1ea44d8c..0eae371f40 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9997,3 +9997,25 @@ (define-public go-google-golang-org-protobuf
 language specific bindings.")
     (home-page "https://go.googlesource.com/protobuf")
     (license license:bsd-3)))
+
+(define-public go-github-com-skip2-go-qrcode
+  (package
+    (name "go-github-com-skip2-go-qrcode")
+    (version "0.0.0-20200617195104-da1b6568686e")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/skip2/go-qrcode")
+             (commit (go-version->git-ref version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0pghd6y2x8a5fqy4rjn4d8j5jcslb236naycdza5an7vyvinsgs9"))
+       (patches (search-patches "go-github-com-skip2-go-qrcode-fix-tests.patch"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/skip2/go-qrcode"))
+    (home-page "https://github.com/skip2/go-qrcode")
+    (synopsis "QR code encoder")
+    (description "@code{go-github-com-skip2-go-qrcode} provides a QR code
+encoder for the Go language.")
+    (license license:expat)))
diff --git a/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch b/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch
new file mode 100644
index 0000000000..631cb0cdab
--- /dev/null
+++ b/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch
@@ -0,0 +1,37 @@
+From dd203f29a36bf518deacbc03e8562b0195c8345f Mon Sep 17 00:00:00 2001
+From: Dominic Martinez <[email-masked]>
+Date: Mon, 4 Apr 2022 12:06:03 -0400
+Subject: [PATCH] Fix failing qr decode test
+
+First convert integers into runes before performing a string conversion.
+---
+ qrcode_decode_test.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/qrcode_decode_test.go b/qrcode_decode_test.go
+index 1f4b1d3..2b0756b 100644
+--- a/qrcode_decode_test.go
++++ b/qrcode_decode_test.go
+@@ -122,7 +122,7 @@ func TestDecodeAllCharacters(t *testing.T) {
+ 
+ 	// zbarimg has trouble with null bytes, hence start from ASCII 1.
+ 	for i := 1; i < 256; i++ {
+-		content += string(i)
++		content += string(rune(i))
+ 	}
+ 
+ 	q, err := New(content, Low)
+@@ -154,7 +154,7 @@ func TestDecodeFuzz(t *testing.T) {
+ 		for j := 0; j < len; j++ {
+ 			// zbarimg seems to have trouble with special characters, test printable
+ 			// characters only for now.
+-			content += string(32 + r.Intn(94))
++			content += string(rune(32 + r.Intn(94)))
+ 		}
+ 
+ 		for _, level := range []RecoveryLevel{Low, Medium, High, Highest} {
+
+base-commit: da1b6568686e89143e94f980a98bc2dbd5537f13
+-- 
+2.34.0
+
-- 
2.34.0