* [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-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