unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic.
@ 2024-11-14 20:11 Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                   ` (11 more replies)
  0 siblings, 12 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:11 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

This patchset adds "go-github-com-caddyserver-certmagic" and all its
dependencies.  

"go-github-com-caddyserver-certmagic" is a dependency of newer Kubo versions.

Artyom V. Poptsov (7):
  gnu: Add go-github-com-caddyserver-zerossl.
  gnu: Add go-github-com-libdns-libdns.
  gnu: Add go-github-com-mholt-acmez.
  gnu: Add go-github-com-zeebo-assert.
  gnu: Add go-github-com-zeebo-pcg.
  gnu: Add go-github-com-zeebo-blake3.
  gnu: Add go-github-com-caddyserver-certmagic.

 gnu/packages/golang-crypto.scm |  78 +++++++++++
 gnu/packages/golang-web.scm    | 228 +++++++++++++++++++++++++++++++++
 2 files changed, 306 insertions(+)


base-commit: c1cb7f1031c5dde2a260d8d8ad7547d6c79cc532
-- 
2.46.0





^ permalink raw reply	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 1/7] gnu: Add go-github-com-caddyserver-zerossl.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-zerossl): New variable.

Change-Id: Ibec80ae2d4d86f99f8bc271a1c4dfd2591d66290
---
 gnu/packages/golang-web.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 6e47aef039..187718b589 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,32 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-zerossl
+  (package
+    (name "go-github-com-caddyserver-zerossl")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/zerossl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hr2kdabhm35hz5krp7m3g6wxvyb9xlqgmy3krf4wwb3yabsqp1m"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/caddyserver/zerossl"))
+    (home-page "https://github.com/caddyserver/zerossl")
+    (synopsis "ZeroSSL REST API client implementation for Go")
+    (description "@code{zerossl} implements the
+@url{https://zerossl.com/documentation/api/, ZeroSSL REST API} in Go.
+
+The REST API is distinct from the @url{https://zerossl.com/documentation/acme/, ACME
+endpoint}, which is a standardized way of obtaining certificates.")
+    (license license:expat)))
+
 (define-public go-github-com-ccding-go-stun
   (package
     (name "go-github-com-ccding-go-stun")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 2/7] gnu: Add go-github-com-libdns-libdns.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

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

Change-Id: I9d1a1751f575e521deda22177c55ad5be6b41eca
---
 gnu/packages/golang-web.scm | 43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 187718b589..c71878423f 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3077,6 +3077,49 @@ (define-public go-github-com-koron-go-ssdp
 @acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.")
     (license license:expat)))
 
+(define-public go-github-com-libdns-libdns
+  (package
+    (name "go-github-com-libdns-libdns")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/libdns/libdns")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00zx6yij1ac8mhswhsks1nchzgmhbzrsm9hr0faqbmx0vkip78j5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/libdns/libdns"))
+    (native-inputs
+     (list go-github-com-stretchr-testify))
+    (propagated-inputs
+     (list go-golang-org-x-exp))
+    (home-page "https://github.com/libdns/libdns")
+    (synopsis "Universal DNS provider APIs for Go")
+    (description
+     "@code{libdns} is a collection of free-range DNS provider client implementations
+written in Go.
+
+This repository defines the core interfaces that provider packages should implement. They are small and idiomatic Go interfaces with well-defined semantics.
+
+The interfaces include:
+@itemize
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordGetter, RecordGetter} to
+list records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordAppender,
+RecordAppender} to append new records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordSetter, RecordSetter} to
+set (create or change existing) records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordDeleter, RecordDeleter}
+to delete records.
+@end itemize
+")
+    (license license:expat)))
+
 (define-public go-github-com-libp2p-go-cidranger
   (package
     (name "go-github-com-libp2p-go-cidranger")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 3/7] gnu: Add go-github-com-mholt-acmez.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-mholt-acmez): New variable.

Change-Id: I220f588ff600e032c38974b9f09e873d22a1811a
---
 gnu/packages/golang-web.scm | 83 +++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index c71878423f..b29fc69b1a 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3657,6 +3657,89 @@ (define-public go-github-com-mdlayher-socket
 deadline support.")
     (license license:expat)))
 
+(define-public go-github-com-mholt-acmez
+  (package
+    (name "go-github-com-mholt-acmez")
+    (version "2.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mholt/acmez")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfl6p8izgjs1d26iygfilmmagxld409qsgdy60r1chfsrcnraby"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/mholt/acmez"))
+    (propagated-inputs
+     (list go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-go-uber-org-zap))
+    (home-page "https://github.com/mholt/acmez")
+    (synopsis "Premier ACME client library for Go")
+    (description
+     "@code{ACMEz} (@code{ack-measy} or @code{acme-zee}, whichever you prefer) is a
+fully-compliant @url{https://tools.ietf.org/html/rfc8555, RFC 8555} (ACME)
+implementation in pure Go.  It is lightweight, has an elegant Go API, and its retry
+logic is highly robust against external errors.  ACMEz is suitable for large-scale
+enterprise deployments.  It also supports common IETF-standardized ACME extensions.
+
+NOTE: This module is for getting certificates, not managing certificates.  Most users
+probably want certificate management (keeping certificates renewed) rather than to
+interface directly with ACME.  Developers who want to use certificates in their
+long-running Go programs should use @url{https://github.com/caddyserver/certmagic,
+CertMagic} instead; or, if their program is not written in Go,
+@url{https://caddyserver.com/, Caddy} can be used to manage certificates (even
+without running an HTTP or TLS server if needed).
+
+This module has two primary packages:
+
+@itemize
+@item @code{acmez} is a high-level wrapper for getting certificates.  It implements
+the ACME order flow described in RFC 8555 including challenge solving using pluggable
+solvers.
+@item @code{acme} is a low-level RFC 8555 implementation that provides the
+fundamental ACME operations, mainly useful if you have advanced or niche
+requirements.
+@end itemize
+
+In other words, the @code{acmez} package is porcelain while the @code{acme} package
+is plumbing (to use git's terminology).
+
+Main features:
+@itemize
+@item Go API thoroughly documented with spec citations.
+@item Robust to external errors.
+@item Structured error values ('problems' as defined in RFC 7807.)
+@item Smart retries (resilient against network and server hiccups.)
+@item Challenge plasticity (randomized challenges, and will retry others if one
+fails.)
+
+@item Context cancellation (suitable for high-frequency config changes or reloads.)
+
+@item Highly flexible and customizable.
+
+@item External Account Binding (EAB) support.
+
+@item Tested with numerous ACME CAs (more than just Let's Encrypt.)
+
+@item Implements niche aspects of RFC 8555 (such as alt cert chains and account key
+rollover.)
+
+@item Efficient solving of large SAN lists (e.g. for slow DNS record propagation.)
+
+@item Utility functions for solving challenges: device attestation
+challenges (draft-acme-device-attest-02), RFC 8737 (tls-alpn-01 challenge), RFC
+8823 (email-reply-00 challenge; S/MIME.)
+
+@item ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.)
+@end itemize
+")
+    (license license:asl2.0)))
+
 (define-public go-github-com-microcosm-cc-bluemonday
   (package
     (name "go-github-com-microcosm-cc-bluemonday")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 4/7] gnu: Add go-github-com-zeebo-assert.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (2 preceding siblings ...)
  2024-11-14 20:12 ` [bug#74355] [PATCH 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-assert): New variable.

Change-Id: I03a752d42e016acd416087d4426864384ffc8a05
---
 gnu/packages/golang-crypto.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 1236ff38e3..9bae2b6c5e 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,29 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-assert
+  (package
+    (name "go-github-com-zeebo-assert")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/assert")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfklg04ic4xl5q7xy913jzvn2v9bxmrsnm4lyjqznninysgs9xb"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/assert"))
+    (home-page "https://github.com/zeebo/assert")
+    (synopsis "Helpers for tests")
+    (description
+     "@code{assert} is a test helper library.")
+    (license license:cc0)))
+
 (define-public go-lukechampine-com-blake3
   (package
     (name "go-lukechampine-com-blake3")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 5/7] gnu: Add go-github-com-zeebo-pcg.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (3 preceding siblings ...)
  2024-11-14 20:12 ` [bug#74355] [PATCH 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-pcg): New variable.

Change-Id: Ic66e2221288fcd5e22196a12786d37150acec414
---
 gnu/packages/golang-crypto.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 9bae2b6c5e..d59065e679 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1750,6 +1750,32 @@ (define-public go-github-com-zeebo-assert
      "@code{assert} is a test helper library.")
     (license license:cc0)))
 
+(define-public go-github-com-zeebo-pcg
+  (package
+    (name "go-github-com-zeebo-pcg")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/pcg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02vyy2zc4jdcyf22dxw8dxcp1gwzy8j5qd6yxw324qyh2w557nh5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/pcg"))
+    (propagated-inputs
+     (list go-github-com-zeebo-assert))
+    (home-page "https://github.com/zeebo/pcg")
+    (synopsis "PCG random number generator")
+    (description
+     "@code{pcg} is a random number generator that uses Permuted Congruential
+Generator (PCG) algorithm.")
+    (license license:cc0)))
+
 (define-public go-lukechampine-com-blake3
   (package
     (name "go-lukechampine-com-blake3")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 6/7] gnu: Add go-github-com-zeebo-blake3.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (4 preceding siblings ...)
  2024-11-14 20:12 ` [bug#74355] [PATCH 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-14 20:12 ` [bug#74355] [PATCH 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-blake3): New variable.

Change-Id: I23bc863fb1731b520aeca8e9088a98c6fcfcf62d
---
 gnu/packages/golang-crypto.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index d59065e679..aaa652217e 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1750,6 +1750,35 @@ (define-public go-github-com-zeebo-assert
      "@code{assert} is a test helper library.")
     (license license:cc0)))
 
+(define-public go-github-com-zeebo-blake3
+  (package
+    (name "go-github-com-zeebo-blake3")
+    (version "0.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/blake3")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/blake3"))
+    (propagated-inputs
+     (list go-github-com-klauspost-cpuid-v2
+           go-github-com-zeebo-assert
+           go-github-com-zeebo-pcg))
+    (home-page "https://github.com/zeebo/blake3")
+    (synopsis "Pure Go implementation of BLAKE3")
+    (description
+     "@code{blake3} is a pure Go implementation of
+@url{https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE3, BLAKE3} with AVX2
+and SSE4.1 acceleration.")
+    (license license:cc0)))
+
 (define-public go-github-com-zeebo-pcg
   (package
     (name "go-github-com-zeebo-pcg")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 7/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (5 preceding siblings ...)
  2024-11-14 20:12 ` [bug#74355] [PATCH 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
@ 2024-11-14 20:12 ` Artyom V. Poptsov
  2024-11-15 21:43 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-14 20:12 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-certmagic): New variable.

Change-Id: I54093acde851c9a73e18f8c557650d72a521c05f
---
 gnu/packages/golang-web.scm | 76 +++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index b29fc69b1a..c7d6e56351 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,82 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-certmagic
+  (package
+    (name "go-github-com-caddyserver-certmagic")
+    (version "0.21.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/certmagic")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "061whx9p00lpxlfnywizqx5z9b020ggqg5vx5r5v2qhdrprg1gkz"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ; Tests require networking.
+      #:import-path "github.com/caddyserver/certmagic"))
+    (native-inputs
+     (list go-github-com-caddyserver-zerossl
+           go-github-com-klauspost-cpuid-v2
+           go-github-com-libdns-libdns
+           go-github-com-mholt-acmez
+           go-github-com-miekg-dns
+           go-github-com-zeebo-blake3
+           go-go-uber-org-zap
+           go-golang-org-x-crypto
+           go-golang-org-x-net))
+    (home-page "https://github.com/caddyserver/certmagic")
+    (synopsis "Automatic HTTPS for any Go program")
+    (description "@code{certmagic} provides API for TLS Automation.
+
+Main features:
+@itemize
+@item Fully automated certificate management including issuance and renewal.
+@item One-line, fully managed HTTPS servers.
+@item Full control over almost every aspect of the system.
+
+@item HTTP->HTTPS redirects.
+
+@item Multiple issuers supported: get certificates from multiple sources/CAs for
+redundancy and resiliency.
+
+@item Solves all 3 common ACME challenges: HTTP, TLS-ALPN, and DNS (and capable of
+others.)
+
+@item Most robust error handling of any ACME client
+@itemize
+@item Challenges are randomized to avoid accidental dependence.
+@item Challenges are rotated to overcome certain network blockages
+@item Robust retries for up to 30 days
+@item Exponential backoff with carefully-tuned intervals
+@item Retries with optional test/staging CA endpoint instead of production, to avoid
+rate limits.
+@end itemize
+@item Powered by @code{ACMEz}, an ACME client library for Go.
+@item All libdns DNS providers work out-of-the-box.
+@item Pluggable storage backends (default: file system.)
+@item Pluggable key sources.
+@item Wildcard certificates.
+@item Automatic OCSP stapling.
+@item Distributed solving of all challenges (works behind load balancers.)
+@item Supports @samp{on-demand} issuance of certificates.
+@item Optional event hooks for observation.
+@item One-time private keys by default (new key for each cert) to discourage pinning
+and reduce scope of key compromise.
+@item Works with any certificate authority (CA) compliant with the ACME specification
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555}.
+@item Certificate revocation
+@item Must-Staple (optional; not default.)
+@item Use in conjunction with your own certificates.
+@item Full support for draft-ietf-acme-ari (ACME Renewal Information; ARI) extension.
+@end itemize
+")
+    (license license:expat)))
+
 (define-public go-github-com-caddyserver-zerossl
   (package
     (name "go-github-com-caddyserver-zerossl")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (6 preceding siblings ...)
  2024-11-14 20:12 ` [bug#74355] [PATCH 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
@ 2024-11-15 21:43 ` Sharlatan Hellseher
  2024-11-16  7:28   ` Artyom V. Poptsov
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                   ` (3 subsequent siblings)
  11 siblings, 1 reply; 32+ messages in thread
From: Sharlatan Hellseher @ 2024-11-15 21:43 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

[-- Attachment #1: Type: text/plain, Size: 2577 bytes --]


Hi,

Thanks for the patches!

Caddy by it's own is a very nice peas of software to have in Guix,
maybe it would be easy to pack ^.^

Let's review!

Some general notices - descriptions, it's not good when upstream does
not provide anything, and it guess it's overkill when it's way long
especially for intermediate libraries.

Let's balance the length of
--8<---------------cut here---------------start------------->8---
+(define-public go-github-com-mholt-acmez
+(define-public go-github-com-caddyserver-certmagic
--8<---------------cut here---------------end--------------->8---

You don't need a new line after end of itemize
--8<---------------cut here---------------start------------->8---
+@end itemize
+")
--8<---------------cut here---------------end--------------->8---

This is a candidate for golang-check as it's used just during tests in
dependent package
--8<---------------cut here---------------start------------->8---
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,29 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))

+(define-public go-github-com-zeebo-assert
+  (package
--8<---------------cut here---------------end--------------->8---

Following above, place in native-inputs.
--8<---------------cut here---------------start------------->8---
+    (propagated-inputs
+     (list go-github-com-zeebo-assert))
--8<---------------cut here---------------end--------------->8---

Start description from a new line:
--8<---------------cut here---------------start------------->8---
+    (description "@code{zerossl} implements the
--8<---------------cut here---------------end--------------->8---

Maybe buff some spells here e.g. which helper or for which purpose:
--8<---------------cut here---------------start------------->8---
+    (synopsis "Helpers for tests")
+    (description
+     "@code{assert} is a test helper library.")
--8<---------------cut here---------------end--------------->8---

There is now a #:test-flags option key where you may disable some test
by regex (see the doc for go-build-system), e.g. we need to run some
tests and disable network required only:
--8<---------------cut here---------------start------------->8---
+    (arguments
+     (list
+      #:tests? #f                       ; Tests require networking.
+      #:import-path "github.com/caddyserver/certmagic"))
--8<---------------cut here---------------end--------------->8---

It's just a minor style review points, let's see what would QA tell us
after v2.

--
Oleg

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (7 preceding siblings ...)
  2024-11-15 21:43 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
@ 2024-11-16  7:26 ` Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
                     ` (5 more replies)
  2024-11-16 14:23 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
                   ` (2 subsequent siblings)
  11 siblings, 6 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-zerossl): New variable.

Change-Id: Ibec80ae2d4d86f99f8bc271a1c4dfd2591d66290
---
 gnu/packages/golang-web.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 6e47aef039..8102bf03d7 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,33 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-zerossl
+  (package
+    (name "go-github-com-caddyserver-zerossl")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/zerossl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hr2kdabhm35hz5krp7m3g6wxvyb9xlqgmy3krf4wwb3yabsqp1m"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/caddyserver/zerossl"))
+    (home-page "https://github.com/caddyserver/zerossl")
+    (synopsis "ZeroSSL REST API client implementation for Go")
+    (description
+     "@code{zerossl} implements the @url{https://zerossl.com/documentation/api/,
+ZeroSSL REST API} in Go.
+
+The REST API is distinct from the @url{https://zerossl.com/documentation/acme/, ACME
+endpoint}, which is a standardized way of obtaining certificates.")
+    (license license:expat)))
+
 (define-public go-github-com-ccding-go-stun
   (package
     (name "go-github-com-ccding-go-stun")

base-commit: 3e8d3d80f41e016cdfe80e488a78c2351c94fef8
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 2/7] gnu: Add go-github-com-libdns-libdns.
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
@ 2024-11-16  7:26   ` Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

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

Change-Id: I9d1a1751f575e521deda22177c55ad5be6b41eca
---
 gnu/packages/golang-web.scm | 41 +++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 8102bf03d7..d04ffb5dd6 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3078,6 +3078,47 @@ (define-public go-github-com-koron-go-ssdp
 @acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.")
     (license license:expat)))
 
+(define-public go-github-com-libdns-libdns
+  (package
+    (name "go-github-com-libdns-libdns")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/libdns/libdns")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00zx6yij1ac8mhswhsks1nchzgmhbzrsm9hr0faqbmx0vkip78j5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/libdns/libdns"))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (propagated-inputs (list go-golang-org-x-exp))
+    (home-page "https://github.com/libdns/libdns")
+    (synopsis "Universal DNS provider APIs for Go")
+    (description
+     "@code{libdns} is a collection of free-range DNS provider client implementations
+written in Go.
+
+This repository defines the core interfaces that provider packages should implement.
+They are small and idiomatic Go interfaces with well-defined semantics.
+
+The interfaces include:
+@itemize
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordGetter, RecordGetter} to
+list records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordAppender,
+RecordAppender} to append new records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordSetter, RecordSetter} to
+set (create or change existing) records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordDeleter, RecordDeleter}
+to delete records.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-libp2p-go-cidranger
   (package
     (name "go-github-com-libp2p-go-cidranger")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 3/7] gnu: Add go-github-com-mholt-acmez.
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
@ 2024-11-16  7:26   ` Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-mholt-acmez): New variable.

Change-Id: I220f588ff600e032c38974b9f09e873d22a1811a
---
 gnu/packages/golang-web.scm | 63 +++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index d04ffb5dd6..ec71b598f0 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3656,6 +3656,69 @@ (define-public go-github-com-mdlayher-socket
 deadline support.")
     (license license:expat)))
 
+(define-public go-github-com-mholt-acmez
+  (package
+    (name "go-github-com-mholt-acmez")
+    (version "2.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mholt/acmez")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfl6p8izgjs1d26iygfilmmagxld409qsgdy60r1chfsrcnraby"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/mholt/acmez"))
+    (propagated-inputs
+     (list go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-go-uber-org-zap))
+    (home-page "https://github.com/mholt/acmez")
+    (synopsis "ACME (RFC 8555) client library for Go")
+    (description
+     "@code{ACMEz} is a lightweight, fully-compliant
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555} (ACME) implementation in pure Go,
+that provides an API for getting certificates.  @code{ACMEz} is suitable for
+large-scale enterprise deployments.  It also supports common IETF-standardized ACME
+extensions.
+
+This module has two primary packages:
+@itemize
+@item @code{acmez} is a high-level wrapper for getting certificates.  It implements
+the ACME order flow described in RFC 8555 including challenge solving using pluggable
+solvers.
+@item @code{acme} is a low-level RFC 8555 implementation that provides the
+fundamental ACME operations, mainly useful if you have advanced or niche
+requirements.
+@end itemize
+
+Main features:
+@itemize
+@item Go API that thoroughly documented with spec citations.
+@item Structured error values (@samp{problems} as defined in
+@url{https://tools.ietf.org/html/rfc7807, RFC 7807}.)
+@item Smart retries (resilient against network and server hiccups.)
+@item Challenge plasticity (randomized challenges, and will retry others if one
+fails.)
+@item Context cancellation (suitable for high-frequency config changes or reloads.)
+@item Highly flexible and customizable.
+@item External Account Binding (EAB) support.
+@item Tested with numerous ACME CAs (more than just Let's Encrypt.)
+@item Implements niche aspects of RFC 8555 (such as alt cert chains and account key
+rollover.)
+@item Efficient solving of large SAN lists (e.g. for slow DNS record propagation.)
+@item Utility functions for solving challenges: device attestation
+challenges (draft-acme-device-attest-02), @url{https://tools.ietf.org/html/rfc8737,
+RFC 8737} (tls-alpn-01 challenge), @url{https://tools.ietf.org/html/rfc8823, RFC
+8823} (email-reply-00 challenge; S/MIME.)
+@item ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.)
+@end itemize")
+    (license license:asl2.0)))
+
 (define-public go-github-com-microcosm-cc-bluemonday
   (package
     (name "go-github-com-microcosm-cc-bluemonday")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 4/7] gnu: Add go-github-com-zeebo-assert.
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
@ 2024-11-16  7:26   ` Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-assert): New variable.

Change-Id: I03a752d42e016acd416087d4426864384ffc8a05
---
 gnu/packages/golang-check.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index 3e33cdb976..7e5abf9f09 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2024 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1402,6 +1403,30 @@ (define-public go-github-com-warpfork-go-wish
 @command{go test} command.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-assert
+  (package
+    (name "go-github-com-zeebo-assert")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/assert")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfklg04ic4xl5q7xy913jzvn2v9bxmrsnm4lyjqznninysgs9xb"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/assert"))
+    (home-page "https://github.com/zeebo/assert")
+    (synopsis "High-level assertions for tests")
+    (description
+     "@code{assert} is a testing library that provides high-level assertions API
+based on Go @code{testing} library procedures.")
+    (license license:cc0)))
+
 (define-public go-go-uber-org-goleak
   (package
     (name "go-go-uber-org-goleak")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 5/7] gnu: Add go-github-com-zeebo-pcg.
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (2 preceding siblings ...)
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
@ 2024-11-16  7:26   ` Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-pcg): New variable.

Change-Id: Ic66e2221288fcd5e22196a12786d37150acec414
---
 gnu/packages/golang-crypto.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 1236ff38e3..d5915bc64d 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,33 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-pcg
+  (package
+    (name "go-github-com-zeebo-pcg")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/pcg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02vyy2zc4jdcyf22dxw8dxcp1gwzy8j5qd6yxw324qyh2w557nh5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/pcg"))
+    (native-inputs
+     (list go-github-com-zeebo-assert))
+    (home-page "https://github.com/zeebo/pcg")
+    (synopsis "PCG random number generator")
+    (description
+     "@code{pcg} is a random number generator that uses
+@url{https://en.wikipedia.org/wiki/Permuted_congruential_generator, Permuted
+Congruential Generator} (PCG) algorithm.")
+    (license license:cc0)))
+
 (define-public go-lukechampine-com-blake3
   (package
     (name "go-lukechampine-com-blake3")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 6/7] gnu: Add go-github-com-zeebo-blake3.
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (3 preceding siblings ...)
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
@ 2024-11-16  7:26   ` Artyom V. Poptsov
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-blake3): New variable.

Change-Id: I23bc863fb1731b520aeca8e9088a98c6fcfcf62d
---
 gnu/packages/golang-crypto.scm | 38 ++++++++++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index d5915bc64d..0f0e32b82a 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,35 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-blake3
+  (package
+    (name "go-github-com-zeebo-blake3")
+    (version "0.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/blake3")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/blake3"))
+    (propagated-inputs
+     (list go-github-com-klauspost-cpuid-v2
+           go-github-com-zeebo-assert
+           go-github-com-zeebo-pcg))
+    (home-page "https://github.com/zeebo/blake3")
+    (synopsis "Pure Go implementation of BLAKE3")
+    (description
+     "@code{blake3} is a pure Go implementation of
+@url{https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE3, BLAKE3} with AVX2
+and SSE4.1 acceleration.")
+    (license license:cc0)))
+
 (define-public go-github-com-zeebo-pcg
   (package
     (name "go-github-com-zeebo-pcg")
@@ -1774,10 +1803,11 @@ (define-public go-lukechampine-com-blake3
      (list go-github-com-klauspost-cpuid))
     (home-page "https://pkg.go.dev/lukechampine.com/blake3")
     (synopsis "Implementation of the BLAKE3 cryptographic hash function")
-    (description "@code{blake3} implements the BLAKE3 cryptographic hash
-function.  In addition to the pure-Go implementation, this package also
-contains AVX-512 and AVX2 routines (generated by avo) that greatly increase
-performance for large inputs and outputs.")
+    (description
+     "@code{blake3} implements the BLAKE3 cryptographic hash function.  In addition
+to the pure-Go implementation, this package also contains AVX-512 and AVX2
+routines (generated by avo) that greatly increase performance for large inputs and
+outputs.")
     (license license:expat)))
 
 (define-public go-torproject-org-pluggable-transports-goptlib
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v2 7/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (4 preceding siblings ...)
  2024-11-16  7:26   ` [bug#74355] [PATCH v2 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
@ 2024-11-16  7:26   ` Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:26 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-certmagic): New variable.

Change-Id: I54093acde851c9a73e18f8c557650d72a521c05f
---
 gnu/packages/golang-web.scm | 79 +++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index ec71b598f0..31cf2e02f9 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,85 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-certmagic
+  (package
+    (name "go-github-com-caddyserver-certmagic")
+    (version "0.21.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/certmagic")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "061whx9p00lpxlfnywizqx5z9b020ggqg5vx5r5v2qhdrprg1gkz"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:test-flags
+      #~(list "-skip"
+              ;; Some tests require networking to run so skip them altogether.
+              (string-join (list "TestLookupNameserversOK/physics.georgetown.edu."
+                                 "TestFindZoneByFqdn/domain_is_a_CNAME"
+                                 "TestFindZoneByFqdn/domain_is_a_non-existent_subdomain"
+                                 "TestFindZoneByFqdn/domain_is_a_eTLD"
+                                 "TestFindZoneByFqdn/domain_is_a_cross-zone_CNAME"
+                                 "TestFindZoneByFqdn/NXDOMAIN"
+                                 "TestFindZoneByFqdn/several_non_existent_nameservers")
+                           "|"))
+      #:import-path "github.com/caddyserver/certmagic"))
+    (native-inputs
+     (list go-github-com-caddyserver-zerossl
+           go-github-com-klauspost-cpuid-v2
+           go-github-com-libdns-libdns
+           go-github-com-mholt-acmez
+           go-github-com-miekg-dns
+           go-github-com-zeebo-blake3
+           go-go-uber-org-zap
+           go-golang-org-x-crypto
+           go-golang-org-x-net))
+    (home-page "https://github.com/caddyserver/certmagic")
+    (synopsis "Automatic HTTPS for any Go program")
+    (description
+     "@code{certmagic} provides API for TLS Automation with full control over almost
+every aspect of the system.
+
+Main features:
+@itemize
+@item Fully automated certificate management including issuance and renewal, with
+support for certificate revocation.  Also works in conjunction with your own
+certificates.
+@item Wildcard certificates.
+@item One-line, fully managed HTTPS servers, with HTTP->HTTPS redirects.
+@item Multiple issuers supported: get certificates from multiple sources/CAs for
+redundancy and resiliency.
+@item Solves all 3 common ACME challenges: HTTP, TLS-ALPN, and DNS (and capable of
+others.)
+@item Robust error handling:
+@itemize
+@item Challenges are randomized to avoid accidental dependence and rotated to
+overcome certain network blockages.
+@item Robust retries for up to 30 days.
+@item Exponential backoff with carefully-tuned intervals.
+@item Retries with optional test/staging CA endpoint instead of production, to avoid
+rate limits.
+@end itemize
+@item All libdns DNS providers work out-of-the-box.
+@item Pluggable storage backends (default: file system) and key sources.
+@item Automatic OCSP stapling.
+@item Distributed solving of all challenges (works behind load balancers.)
+@item Supports @samp{on-demand} issuance of certificates.
+@item Optional event hooks for observation.
+@item One-time private keys by default (new key for each cert) to discourage pinning
+and reduce scope of key compromise.
+@item Works with any certificate authority (CA) compliant with the ACME specification
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555}.
+@item Must-Staple (optional; not default.)
+@item Full support for draft-ietf-acme-ari (ACME Renewal Information; ARI) extension.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-caddyserver-zerossl
   (package
     (name "go-github-com-caddyserver-zerossl")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-15 21:43 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
@ 2024-11-16  7:28   ` Artyom V. Poptsov
  0 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16  7:28 UTC (permalink / raw)
  To: Sharlatan Hellseher; +Cc: 74355

[-- Attachment #1: Type: text/plain, Size: 337 bytes --]

Hello Oleg,

thanks for the patch review!  I fixed the issues you found, so please
check the v2 of the patch series.

- avp

-- 
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 869 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (8 preceding siblings ...)
  2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
@ 2024-11-16 14:23 ` Sharlatan Hellseher
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  11 siblings, 0 replies; 32+ messages in thread
From: Sharlatan Hellseher @ 2024-11-16 14:23 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

[-- Attachment #1: Type: text/plain, Size: 4398 bytes --]


Hi,

Thanks for a fast v2!

I've noticed some whoopsies in this patch set.

In general, if you mentioned Go/Golang in synopsis you may drop any "go
implementation, implemented in go etc." in description e.g.:
--8<---------------cut here---------------start------------->8---
+    (synopsis "ACME (RFC 8555) client library for Go")
+    (description
+     "@code{ACMEz} is a lightweight, fully-compliant
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555} (ACME) implementation in pure Go,
<...>
+    (synopsis "Universal DNS provider APIs for Go")
+    (description
+     "@code{libdns} is a collection of free-range DNS provider client implementations
+written in Go.
<...>
+    (synopsis "ZeroSSL REST API client implementation for Go")
+    (description
+     "@code{zerossl} implements the @url{https://zerossl.com/documentation/api/,
+ZeroSSL REST API} in Go.
--8<---------------cut here---------------end--------------->8---

Check if you ammended 2 seperate packages under the same commit:

[PATCH v2 6/7] gnu: Add go-github-com-zeebo-blake3.
--8<---------------cut here---------------start------------->8---
<...>
 (define-public go-github-com-zeebo-pcg
   (package
     (name "go-github-com-zeebo-pcg")
@@ -1774,10 +1803,11 @@ (define-public go-lukechampine-com-blake3
      (list go-github-com-klauspost-cpuid))
     (home-page "https://pkg.go.dev/lukechampine.com/blake3")
     (synopsis "Implementation of the BLAKE3 cryptographic hash function")
-    (description "@code{blake3} implements the BLAKE3 cryptographic hash
-function.  In addition to the pure-Go implementation, this package also
-contains AVX-512 and AVX2 routines (generated by avo) that greatly increase
-performance for large inputs and outputs.")
+    (description
<...>
--8<---------------cut here---------------end--------------->8---

We might need them in propagated inputs:

[PATCH v2 7/7] gnu: Add go-github-com-caddyserver-certmagic.
--8<---------------cut here---------------start------------->8---
+    (native-inputs
+     (list go-github-com-caddyserver-zerossl
+           go-github-com-klauspost-cpuid-v2
+           go-github-com-libdns-libdns
+           go-github-com-mholt-acmez
+           go-github-com-miekg-dns
+           go-github-com-zeebo-blake3
+           go-go-uber-org-zap
+           go-golang-org-x-crypto
+           go-golang-org-x-net))
--8<---------------cut here---------------end--------------->8---

The description might need more love to refrase from "repository" to "package":

[PATCH v2 2/7] gnu: Add go-github-com-libdns-libdns.
--8<---------------cut here---------------start------------->8---
+This repository defines the core interfaces that provider packages should implement.
+They are small and idiomatic Go interfaces with well-defined semantics.
--8<---------------cut here---------------end--------------->8---

Good, thanks for that!

[PATCH v2 5/7] gnu: Add go-github-com-zeebo-pcg.
--8<---------------cut here---------------start------------->8---
+    (native-inputs
+     (list go-github-com-zeebo-assert))
--8<---------------cut here---------------end--------------->8---

[PATCH v2 4/7] gnu: Add go-github-com-zeebo-assert.
--8<---------------cut here---------------start------------->8---
+    (description
+     "@code{assert} is a testing library that provides high-level assertions API
+based on Go @code{testing} library procedures.")
--8<---------------cut here---------------end--------------->8---

[PATCH v2 7/7] gnu: Add go-github-com-caddyserver-certmagic.
--8<---------------cut here---------------start------------->8---
+     (list
+      #:test-flags
+      #~(list "-skip"
+              ;; Some tests require networking to run so skip them altogether.
+              (string-join (list "TestLookupNameserversOK/physics.georgetown.edu."
+                                 "TestFindZoneByFqdn/domain_is_a_CNAME"
+                                 "TestFindZoneByFqdn/domain_is_a_non-existent_subdomain"
+                                 "TestFindZoneByFqdn/domain_is_a_eTLD"
+                                 "TestFindZoneByFqdn/domain_is_a_cross-zone_CNAME"
+                                 "TestFindZoneByFqdn/NXDOMAIN"
+                                 "TestFindZoneByFqdn/several_non_existent_nameservers")
+                           "|"))
--8<---------------cut here---------------end--------------->8---

Let's check v3 WDYT?

--
Oleg

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (9 preceding siblings ...)
  2024-11-16 14:23 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
@ 2024-11-16 15:21 ` Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
                     ` (5 more replies)
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  11 siblings, 6 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-zerossl): New variable.

Change-Id: Ibec80ae2d4d86f99f8bc271a1c4dfd2591d66290
---
 gnu/packages/golang-web.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 6e47aef039..02a0c5e331 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,33 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-zerossl
+  (package
+    (name "go-github-com-caddyserver-zerossl")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/zerossl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hr2kdabhm35hz5krp7m3g6wxvyb9xlqgmy3krf4wwb3yabsqp1m"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/caddyserver/zerossl"))
+    (home-page "https://github.com/caddyserver/zerossl")
+    (synopsis "ZeroSSL REST API client implementation for Go")
+    (description
+     "@code{zerossl} implements the @url{https://zerossl.com/documentation/api/,
+ZeroSSL REST API}.
+
+The REST API is distinct from the @url{https://zerossl.com/documentation/acme/, ACME
+endpoint}, which is a standardized way of obtaining certificates.")
+    (license license:expat)))
+
 (define-public go-github-com-ccding-go-stun
   (package
     (name "go-github-com-ccding-go-stun")

base-commit: b647d3a149c94ee84cde1af3af7442633afa3416
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 2/7] gnu: Add go-github-com-libdns-libdns.
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
@ 2024-11-16 15:21   ` Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

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

Change-Id: I9d1a1751f575e521deda22177c55ad5be6b41eca
---
 gnu/packages/golang-web.scm | 39 +++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 02a0c5e331..64670eed43 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3078,6 +3078,45 @@ (define-public go-github-com-koron-go-ssdp
 @acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.")
     (license license:expat)))
 
+(define-public go-github-com-libdns-libdns
+  (package
+    (name "go-github-com-libdns-libdns")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/libdns/libdns")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00zx6yij1ac8mhswhsks1nchzgmhbzrsm9hr0faqbmx0vkip78j5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/libdns/libdns"))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (propagated-inputs (list go-golang-org-x-exp))
+    (home-page "https://github.com/libdns/libdns")
+    (synopsis "Universal DNS provider APIs for Go")
+    (description
+     "@code{libdns} is a collection of free-range DNS provider client
+implementations.  It defines the core interfaces that provider packages should
+implement.  They are small and idiomatic interfaces with well-defined semantics.
+
+The interfaces include:
+@itemize
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordGetter, RecordGetter} to
+list records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordAppender,
+RecordAppender} to append new records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordSetter, RecordSetter} to
+set (create or change existing) records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordDeleter, RecordDeleter}
+to delete records.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-libp2p-go-cidranger
   (package
     (name "go-github-com-libp2p-go-cidranger")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 3/7] gnu: Add go-github-com-mholt-acmez.
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
@ 2024-11-16 15:21   ` Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-mholt-acmez): New variable.

Change-Id: I220f588ff600e032c38974b9f09e873d22a1811a
---
 gnu/packages/golang-web.scm | 62 +++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 64670eed43..689048b368 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3654,6 +3654,68 @@ (define-public go-github-com-mdlayher-socket
 deadline support.")
     (license license:expat)))
 
+(define-public go-github-com-mholt-acmez
+  (package
+    (name "go-github-com-mholt-acmez")
+    (version "2.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mholt/acmez")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfl6p8izgjs1d26iygfilmmagxld409qsgdy60r1chfsrcnraby"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/mholt/acmez"))
+    (propagated-inputs
+     (list go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-go-uber-org-zap))
+    (home-page "https://github.com/mholt/acmez")
+    (synopsis "ACME (RFC 8555) client library for Go")
+    (description
+     "@code{ACMEz} is a lightweight, fully-compliant
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555} (ACME) implementation, that
+provides an API for getting certificates.  @code{ACMEz} is suitable for large-scale
+enterprise deployments.  It also supports common IETF-standardized ACME extensions.
+
+This module has two primary packages:
+@itemize
+@item @code{acmez} is a high-level wrapper for getting certificates.  It implements
+the ACME order flow described in RFC 8555 including challenge solving using pluggable
+solvers.
+@item @code{acme} is a low-level RFC 8555 implementation that provides the
+fundamental ACME operations, mainly useful if you have advanced or niche
+requirements.
+@end itemize
+
+Main features:
+@itemize
+@item Go API that thoroughly documented with spec citations.
+@item Structured error values (@samp{problems} as defined in
+@url{https://tools.ietf.org/html/rfc7807, RFC 7807}.)
+@item Smart retries (resilient against network and server hiccups.)
+@item Challenge plasticity (randomized challenges, and will retry others if one
+fails.)
+@item Context cancellation (suitable for high-frequency config changes or reloads.)
+@item Highly flexible and customizable.
+@item External Account Binding (EAB) support.
+@item Tested with numerous ACME CAs (more than just Let's Encrypt.)
+@item Implements niche aspects of RFC 8555 (such as alt cert chains and account key
+rollover.)
+@item Efficient solving of large SAN lists (e.g. for slow DNS record propagation.)
+@item Utility functions for solving challenges: device attestation
+challenges (draft-acme-device-attest-02), @url{https://tools.ietf.org/html/rfc8737,
+RFC 8737} (tls-alpn-01 challenge), @url{https://tools.ietf.org/html/rfc8823, RFC
+8823} (email-reply-00 challenge; S/MIME.)
+@item ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.)
+@end itemize")
+    (license license:asl2.0)))
+
 (define-public go-github-com-microcosm-cc-bluemonday
   (package
     (name "go-github-com-microcosm-cc-bluemonday")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 4/7] gnu: Add go-github-com-zeebo-assert.
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
@ 2024-11-16 15:21   ` Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-assert): New variable.

Change-Id: I03a752d42e016acd416087d4426864384ffc8a05
---
 gnu/packages/golang-check.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index 3e33cdb976..7e5abf9f09 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2024 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1402,6 +1403,30 @@ (define-public go-github-com-warpfork-go-wish
 @command{go test} command.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-assert
+  (package
+    (name "go-github-com-zeebo-assert")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/assert")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfklg04ic4xl5q7xy913jzvn2v9bxmrsnm4lyjqznninysgs9xb"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/assert"))
+    (home-page "https://github.com/zeebo/assert")
+    (synopsis "High-level assertions for tests")
+    (description
+     "@code{assert} is a testing library that provides high-level assertions API
+based on Go @code{testing} library procedures.")
+    (license license:cc0)))
+
 (define-public go-go-uber-org-goleak
   (package
     (name "go-go-uber-org-goleak")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 5/7] gnu: Add go-github-com-zeebo-pcg.
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (2 preceding siblings ...)
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
@ 2024-11-16 15:21   ` Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-pcg): New variable.

Change-Id: Ic66e2221288fcd5e22196a12786d37150acec414
---
 gnu/packages/golang-crypto.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 1236ff38e3..168eb73ac4 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,32 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-pcg
+  (package
+    (name "go-github-com-zeebo-pcg")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/pcg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02vyy2zc4jdcyf22dxw8dxcp1gwzy8j5qd6yxw324qyh2w557nh5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/pcg"))
+    (native-inputs (list go-github-com-zeebo-assert))
+    (home-page "https://github.com/zeebo/pcg")
+    (synopsis "PCG random number generator")
+    (description
+     "@code{pcg} is a random number generator that uses
+@url{https://en.wikipedia.org/wiki/Permuted_congruential_generator, Permuted
+Congruential Generator} (PCG) algorithm.")
+    (license license:cc0)))
+
 (define-public go-lukechampine-com-blake3
   (package
     (name "go-lukechampine-com-blake3")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 6/7] gnu: Add go-github-com-zeebo-blake3.
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (3 preceding siblings ...)
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
@ 2024-11-16 15:21   ` Artyom V. Poptsov
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-blake3): New variable.

Change-Id: I23bc863fb1731b520aeca8e9088a98c6fcfcf62d
---
 gnu/packages/golang-crypto.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 168eb73ac4..7fdc502de6 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,35 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-blake3
+  (package
+    (name "go-github-com-zeebo-blake3")
+    (version "0.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/blake3")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/blake3"))
+    (native-inputs (list go-github-com-zeebo-assert))
+    (propagated-inputs
+     (list go-github-com-klauspost-cpuid-v2
+           go-github-com-zeebo-pcg))
+    (home-page "https://github.com/zeebo/blake3")
+    (synopsis "Pure Go implementation of BLAKE3")
+    (description
+     "@code{blake3} is an implementation of
+@url{https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE3, BLAKE3} with AVX2
+and SSE4.1 acceleration.")
+    (license license:cc0)))
+
 (define-public go-github-com-zeebo-pcg
   (package
     (name "go-github-com-zeebo-pcg")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v3 7/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (4 preceding siblings ...)
  2024-11-16 15:21   ` [bug#74355] [PATCH v3 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
@ 2024-11-16 15:21   ` Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:21 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-certmagic): New variable.

Change-Id: I54093acde851c9a73e18f8c557650d72a521c05f
---
 gnu/packages/golang-web.scm | 80 +++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 689048b368..f9f18da3ff 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,86 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-certmagic
+  (package
+    (name "go-github-com-caddyserver-certmagic")
+    (version "0.21.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/certmagic")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "061whx9p00lpxlfnywizqx5z9b020ggqg5vx5r5v2qhdrprg1gkz"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:test-flags
+      #~(list "-skip"
+              ;; Some tests require networking to run so skip them altogether.
+              (string-join
+               (list "TestLookupNameserversOK/physics.georgetown.edu."
+                     "TestFindZoneByFqdn/domain_is_a_CNAME"
+                     "TestFindZoneByFqdn/domain_is_a_non-existent_subdomain"
+                     "TestFindZoneByFqdn/domain_is_a_eTLD"
+                     "TestFindZoneByFqdn/domain_is_a_cross-zone_CNAME"
+                     "TestFindZoneByFqdn/NXDOMAIN"
+                     "TestFindZoneByFqdn/several_non_existent_nameservers")
+               "|"))
+      #:import-path "github.com/caddyserver/certmagic"))
+    (native-inputs
+     (list go-github-com-caddyserver-zerossl
+           go-github-com-klauspost-cpuid-v2
+           go-github-com-libdns-libdns
+           go-github-com-mholt-acmez
+           go-github-com-miekg-dns
+           go-github-com-zeebo-blake3
+           go-go-uber-org-zap
+           go-golang-org-x-crypto
+           go-golang-org-x-net))
+    (home-page "https://github.com/caddyserver/certmagic")
+    (synopsis "Automatic HTTPS for any Go program")
+    (description
+     "@code{certmagic} provides API for TLS Automation with full control over almost
+every aspect of the system.
+
+Main features:
+@itemize
+@item Fully automated certificate management including issuance and renewal, with
+support for certificate revocation.  Also works in conjunction with your own
+certificates.
+@item Wildcard certificates.
+@item One-line, fully managed HTTPS servers, with HTTP->HTTPS redirects.
+@item Multiple issuers supported: get certificates from multiple sources/CAs for
+redundancy and resiliency.
+@item Solves all 3 common ACME challenges: HTTP, TLS-ALPN, and DNS (and capable of
+others.)
+@item Robust error handling:
+@itemize
+@item Challenges are randomized to avoid accidental dependence and rotated to
+overcome certain network blockages.
+@item Robust retries for up to 30 days.
+@item Exponential backoff with carefully-tuned intervals.
+@item Retries with optional test/staging CA endpoint instead of production, to avoid
+rate limits.
+@end itemize
+@item All libdns DNS providers work out-of-the-box.
+@item Pluggable storage backends (default: file system) and key sources.
+@item Automatic OCSP stapling.
+@item Distributed solving of all challenges (works behind load balancers.)
+@item Supports @samp{on-demand} issuance of certificates.
+@item Optional event hooks for observation.
+@item One-time private keys by default (new key for each cert) to discourage pinning
+and reduce scope of key compromise.
+@item Works with any certificate authority (CA) compliant with the ACME specification
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555}.
+@item Must-Staple (optional; not default.)
+@item Full support for draft-ietf-acme-ari (ACME Renewal Information; ARI) extension.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-caddyserver-zerossl
   (package
     (name "go-github-com-caddyserver-zerossl")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl.
  2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
                   ` (10 preceding siblings ...)
  2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
@ 2024-11-16 15:34 ` Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
                     ` (5 more replies)
  11 siblings, 6 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-zerossl): New variable.

Change-Id: Ibec80ae2d4d86f99f8bc271a1c4dfd2591d66290
---
 gnu/packages/golang-web.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 6e47aef039..02a0c5e331 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,33 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-zerossl
+  (package
+    (name "go-github-com-caddyserver-zerossl")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/zerossl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hr2kdabhm35hz5krp7m3g6wxvyb9xlqgmy3krf4wwb3yabsqp1m"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/caddyserver/zerossl"))
+    (home-page "https://github.com/caddyserver/zerossl")
+    (synopsis "ZeroSSL REST API client implementation for Go")
+    (description
+     "@code{zerossl} implements the @url{https://zerossl.com/documentation/api/,
+ZeroSSL REST API}.
+
+The REST API is distinct from the @url{https://zerossl.com/documentation/acme/, ACME
+endpoint}, which is a standardized way of obtaining certificates.")
+    (license license:expat)))
+
 (define-public go-github-com-ccding-go-stun
   (package
     (name "go-github-com-ccding-go-stun")

base-commit: b647d3a149c94ee84cde1af3af7442633afa3416
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 2/7] gnu: Add go-github-com-libdns-libdns.
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
@ 2024-11-16 15:34   ` Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

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

Change-Id: I9d1a1751f575e521deda22177c55ad5be6b41eca
---
 gnu/packages/golang-web.scm | 39 +++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 02a0c5e331..64670eed43 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3078,6 +3078,45 @@ (define-public go-github-com-koron-go-ssdp
 @acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.")
     (license license:expat)))
 
+(define-public go-github-com-libdns-libdns
+  (package
+    (name "go-github-com-libdns-libdns")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/libdns/libdns")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00zx6yij1ac8mhswhsks1nchzgmhbzrsm9hr0faqbmx0vkip78j5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/libdns/libdns"))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (propagated-inputs (list go-golang-org-x-exp))
+    (home-page "https://github.com/libdns/libdns")
+    (synopsis "Universal DNS provider APIs for Go")
+    (description
+     "@code{libdns} is a collection of free-range DNS provider client
+implementations.  It defines the core interfaces that provider packages should
+implement.  They are small and idiomatic interfaces with well-defined semantics.
+
+The interfaces include:
+@itemize
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordGetter, RecordGetter} to
+list records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordAppender,
+RecordAppender} to append new records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordSetter, RecordSetter} to
+set (create or change existing) records.
+@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordDeleter, RecordDeleter}
+to delete records.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-libp2p-go-cidranger
   (package
     (name "go-github-com-libp2p-go-cidranger")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 3/7] gnu: Add go-github-com-mholt-acmez.
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
@ 2024-11-16 15:34   ` Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-mholt-acmez): New variable.

Change-Id: I220f588ff600e032c38974b9f09e873d22a1811a
---
 gnu/packages/golang-web.scm | 62 +++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 64670eed43..689048b368 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -3654,6 +3654,68 @@ (define-public go-github-com-mdlayher-socket
 deadline support.")
     (license license:expat)))
 
+(define-public go-github-com-mholt-acmez
+  (package
+    (name "go-github-com-mholt-acmez")
+    (version "2.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mholt/acmez")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfl6p8izgjs1d26iygfilmmagxld409qsgdy60r1chfsrcnraby"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/mholt/acmez"))
+    (propagated-inputs
+     (list go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-go-uber-org-zap))
+    (home-page "https://github.com/mholt/acmez")
+    (synopsis "ACME (RFC 8555) client library for Go")
+    (description
+     "@code{ACMEz} is a lightweight, fully-compliant
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555} (ACME) implementation, that
+provides an API for getting certificates.  @code{ACMEz} is suitable for large-scale
+enterprise deployments.  It also supports common IETF-standardized ACME extensions.
+
+This module has two primary packages:
+@itemize
+@item @code{acmez} is a high-level wrapper for getting certificates.  It implements
+the ACME order flow described in RFC 8555 including challenge solving using pluggable
+solvers.
+@item @code{acme} is a low-level RFC 8555 implementation that provides the
+fundamental ACME operations, mainly useful if you have advanced or niche
+requirements.
+@end itemize
+
+Main features:
+@itemize
+@item Go API that thoroughly documented with spec citations.
+@item Structured error values (@samp{problems} as defined in
+@url{https://tools.ietf.org/html/rfc7807, RFC 7807}.)
+@item Smart retries (resilient against network and server hiccups.)
+@item Challenge plasticity (randomized challenges, and will retry others if one
+fails.)
+@item Context cancellation (suitable for high-frequency config changes or reloads.)
+@item Highly flexible and customizable.
+@item External Account Binding (EAB) support.
+@item Tested with numerous ACME CAs (more than just Let's Encrypt.)
+@item Implements niche aspects of RFC 8555 (such as alt cert chains and account key
+rollover.)
+@item Efficient solving of large SAN lists (e.g. for slow DNS record propagation.)
+@item Utility functions for solving challenges: device attestation
+challenges (draft-acme-device-attest-02), @url{https://tools.ietf.org/html/rfc8737,
+RFC 8737} (tls-alpn-01 challenge), @url{https://tools.ietf.org/html/rfc8823, RFC
+8823} (email-reply-00 challenge; S/MIME.)
+@item ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.)
+@end itemize")
+    (license license:asl2.0)))
+
 (define-public go-github-com-microcosm-cc-bluemonday
   (package
     (name "go-github-com-microcosm-cc-bluemonday")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 4/7] gnu: Add go-github-com-zeebo-assert.
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
@ 2024-11-16 15:34   ` Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-assert): New variable.

Change-Id: I03a752d42e016acd416087d4426864384ffc8a05
---
 gnu/packages/golang-check.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index 3e33cdb976..7e5abf9f09 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2024 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1402,6 +1403,30 @@ (define-public go-github-com-warpfork-go-wish
 @command{go test} command.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-assert
+  (package
+    (name "go-github-com-zeebo-assert")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/assert")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xfklg04ic4xl5q7xy913jzvn2v9bxmrsnm4lyjqznninysgs9xb"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/assert"))
+    (home-page "https://github.com/zeebo/assert")
+    (synopsis "High-level assertions for tests")
+    (description
+     "@code{assert} is a testing library that provides high-level assertions API
+based on Go @code{testing} library procedures.")
+    (license license:cc0)))
+
 (define-public go-go-uber-org-goleak
   (package
     (name "go-go-uber-org-goleak")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 5/7] gnu: Add go-github-com-zeebo-pcg.
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (2 preceding siblings ...)
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
@ 2024-11-16 15:34   ` Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-pcg): New variable.

Change-Id: Ic66e2221288fcd5e22196a12786d37150acec414
---
 gnu/packages/golang-crypto.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 1236ff38e3..168eb73ac4 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,32 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-pcg
+  (package
+    (name "go-github-com-zeebo-pcg")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/pcg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02vyy2zc4jdcyf22dxw8dxcp1gwzy8j5qd6yxw324qyh2w557nh5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/pcg"))
+    (native-inputs (list go-github-com-zeebo-assert))
+    (home-page "https://github.com/zeebo/pcg")
+    (synopsis "PCG random number generator")
+    (description
+     "@code{pcg} is a random number generator that uses
+@url{https://en.wikipedia.org/wiki/Permuted_congruential_generator, Permuted
+Congruential Generator} (PCG) algorithm.")
+    (license license:cc0)))
+
 (define-public go-lukechampine-com-blake3
   (package
     (name "go-lukechampine-com-blake3")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 6/7] gnu: Add go-github-com-zeebo-blake3.
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (3 preceding siblings ...)
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
@ 2024-11-16 15:34   ` Artyom V. Poptsov
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-crypto.scm (go-github-com-zeebo-blake3): New variable.

Change-Id: I23bc863fb1731b520aeca8e9088a98c6fcfcf62d
---
 gnu/packages/golang-crypto.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 168eb73ac4..7fdc502de6 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -1727,6 +1727,35 @@ (define-public go-github-com-youmark-pkcs8
 PKCS#5 (v2.0) algorithms.")
     (license license:expat)))
 
+(define-public go-github-com-zeebo-blake3
+  (package
+    (name "go-github-com-zeebo-blake3")
+    (version "0.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zeebo/blake3")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/zeebo/blake3"))
+    (native-inputs (list go-github-com-zeebo-assert))
+    (propagated-inputs
+     (list go-github-com-klauspost-cpuid-v2
+           go-github-com-zeebo-pcg))
+    (home-page "https://github.com/zeebo/blake3")
+    (synopsis "Pure Go implementation of BLAKE3")
+    (description
+     "@code{blake3} is an implementation of
+@url{https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE3, BLAKE3} with AVX2
+and SSE4.1 acceleration.")
+    (license license:cc0)))
+
 (define-public go-github-com-zeebo-pcg
   (package
     (name "go-github-com-zeebo-pcg")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [bug#74355] [PATCH v4 7/7] gnu: Add go-github-com-caddyserver-certmagic.
  2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
                     ` (4 preceding siblings ...)
  2024-11-16 15:34   ` [bug#74355] [PATCH v4 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
@ 2024-11-16 15:34   ` Artyom V. Poptsov
  5 siblings, 0 replies; 32+ messages in thread
From: Artyom V. Poptsov @ 2024-11-16 15:34 UTC (permalink / raw)
  To: 74355; +Cc: Artyom V. Poptsov

* gnu/packages/golang-web.scm (go-github-com-caddyserver-certmagic): New variable.

Change-Id: I54093acde851c9a73e18f8c557650d72a521c05f
---
 gnu/packages/golang-web.scm | 80 +++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 689048b368..852ea31427 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -641,6 +641,86 @@ (define-public go-github-com-bep-golibsass
      "This package provides SCSS compiler support for Go applications.")
     (license license:expat)))
 
+(define-public go-github-com-caddyserver-certmagic
+  (package
+    (name "go-github-com-caddyserver-certmagic")
+    (version "0.21.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/caddyserver/certmagic")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "061whx9p00lpxlfnywizqx5z9b020ggqg5vx5r5v2qhdrprg1gkz"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:test-flags
+      #~(list "-skip"
+              ;; Some tests require networking to run so skip them altogether.
+              (string-join
+               (list "TestLookupNameserversOK/physics.georgetown.edu."
+                     "TestFindZoneByFqdn/domain_is_a_CNAME"
+                     "TestFindZoneByFqdn/domain_is_a_non-existent_subdomain"
+                     "TestFindZoneByFqdn/domain_is_a_eTLD"
+                     "TestFindZoneByFqdn/domain_is_a_cross-zone_CNAME"
+                     "TestFindZoneByFqdn/NXDOMAIN"
+                     "TestFindZoneByFqdn/several_non_existent_nameservers")
+               "|"))
+      #:import-path "github.com/caddyserver/certmagic"))
+    (propagated-inputs
+     (list go-github-com-caddyserver-zerossl
+           go-github-com-klauspost-cpuid-v2
+           go-github-com-libdns-libdns
+           go-github-com-mholt-acmez
+           go-github-com-miekg-dns
+           go-github-com-zeebo-blake3
+           go-go-uber-org-zap
+           go-golang-org-x-crypto
+           go-golang-org-x-net))
+    (home-page "https://github.com/caddyserver/certmagic")
+    (synopsis "Automatic HTTPS for any Go program")
+    (description
+     "@code{certmagic} provides API for TLS Automation with full control over almost
+every aspect of the system.
+
+Main features:
+@itemize
+@item Fully automated certificate management including issuance and renewal, with
+support for certificate revocation.  Also works in conjunction with your own
+certificates.
+@item Wildcard certificates.
+@item One-line, fully managed HTTPS servers, with HTTP->HTTPS redirects.
+@item Multiple issuers supported: get certificates from multiple sources/CAs for
+redundancy and resiliency.
+@item Solves all 3 common ACME challenges: HTTP, TLS-ALPN, and DNS (and capable of
+others.)
+@item Robust error handling:
+@itemize
+@item Challenges are randomized to avoid accidental dependence and rotated to
+overcome certain network blockages.
+@item Robust retries for up to 30 days.
+@item Exponential backoff with carefully-tuned intervals.
+@item Retries with optional test/staging CA endpoint instead of production, to avoid
+rate limits.
+@end itemize
+@item All libdns DNS providers work out-of-the-box.
+@item Pluggable storage backends (default: file system) and key sources.
+@item Automatic OCSP stapling.
+@item Distributed solving of all challenges (works behind load balancers.)
+@item Supports @samp{on-demand} issuance of certificates.
+@item Optional event hooks for observation.
+@item One-time private keys by default (new key for each cert) to discourage pinning
+and reduce scope of key compromise.
+@item Works with any certificate authority (CA) compliant with the ACME specification
+@url{https://tools.ietf.org/html/rfc8555, RFC 8555}.
+@item Must-Staple (optional; not default.)
+@item Full support for draft-ietf-acme-ari (ACME Renewal Information; ARI) extension.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-caddyserver-zerossl
   (package
     (name "go-github-com-caddyserver-zerossl")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2024-11-16 15:36 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-14 20:11 [bug#74355] [PATCH 0/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
2024-11-14 20:12 ` [bug#74355] [PATCH 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
2024-11-15 21:43 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
2024-11-16  7:28   ` Artyom V. Poptsov
2024-11-16  7:26 ` [bug#74355] [PATCH v2 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
2024-11-16  7:26   ` [bug#74355] [PATCH v2 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
2024-11-16  7:26   ` [bug#74355] [PATCH v2 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
2024-11-16  7:26   ` [bug#74355] [PATCH v2 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
2024-11-16  7:26   ` [bug#74355] [PATCH v2 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
2024-11-16  7:26   ` [bug#74355] [PATCH v2 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
2024-11-16  7:26   ` [bug#74355] [PATCH v2 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
2024-11-16 14:23 ` [bug#74355] [PATCH 0/7] " Sharlatan Hellseher
2024-11-16 15:21 ` [bug#74355] [PATCH v3 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
2024-11-16 15:21   ` [bug#74355] [PATCH v3 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
2024-11-16 15:21   ` [bug#74355] [PATCH v3 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
2024-11-16 15:21   ` [bug#74355] [PATCH v3 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
2024-11-16 15:21   ` [bug#74355] [PATCH v3 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
2024-11-16 15:21   ` [bug#74355] [PATCH v3 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
2024-11-16 15:21   ` [bug#74355] [PATCH v3 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov
2024-11-16 15:34 ` [bug#74355] [PATCH v4 1/7] gnu: Add go-github-com-caddyserver-zerossl Artyom V. Poptsov
2024-11-16 15:34   ` [bug#74355] [PATCH v4 2/7] gnu: Add go-github-com-libdns-libdns Artyom V. Poptsov
2024-11-16 15:34   ` [bug#74355] [PATCH v4 3/7] gnu: Add go-github-com-mholt-acmez Artyom V. Poptsov
2024-11-16 15:34   ` [bug#74355] [PATCH v4 4/7] gnu: Add go-github-com-zeebo-assert Artyom V. Poptsov
2024-11-16 15:34   ` [bug#74355] [PATCH v4 5/7] gnu: Add go-github-com-zeebo-pcg Artyom V. Poptsov
2024-11-16 15:34   ` [bug#74355] [PATCH v4 6/7] gnu: Add go-github-com-zeebo-blake3 Artyom V. Poptsov
2024-11-16 15:34   ` [bug#74355] [PATCH v4 7/7] gnu: Add go-github-com-caddyserver-certmagic Artyom V. Poptsov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).