From 4e746f05dae74c7a979de6f44a5577b6658c9d1b Mon Sep 17 00:00:00 2001 From: Patrick Norton Date: Mon, 24 Nov 2025 19:25:08 -0500 Subject: [PATCH] gnu: Add go-storj-io-common. * gnu/packages/golang-web.scm (go-storj-io-common): New variable. Change-Id: I0daa442599ec544691ba28402f2cbf174da72583 Co-authored-by: Sharlatan Hellseher Signed-off-by: Sharlatan Hellseher --- gnu/packages/golang-web.scm | 171 ++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 2def9e40d9b199ce68895681dc740338abaea1dc..cec5634a83971e01ba1eb1b753ffa72f7aa54849 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -16712,6 +16712,177 @@ support arbitrary use cases, but instead specifically focuses on supporting Kubernetes components which are using nftables.") (license license:asl2.0))) +(define-public go-storj-io-common + (package + (name "go-storj-io-common") + (version "0.0.0-20251120170554-032ced125058") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/storj/common") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11aiwpr34z3x2nx5qbj5cr21676abnbrlwhw3h8lficr66rlx1a4")))) + ;; TODO: Remove vendored code . + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "storj.io/common" + #:test-flags + #~(list "-skip" (string-join + (list "TestLookupNodeAddress_Host" + "TestLookupNodeAddress_HostAndPort" + "TestFromBuild") + "|")) + #:test-subdirs + ;; XXX: Remove when all missing dependencies are packaged. + #~(list "accesslogs/..." + "base58/..." + "bloomfilter/..." + "cfgstruct/..." + "context2/..." + "currency/..." + "debug/..." + "errs2/..." + "eventstat/..." + "experiment/..." + "fpath/..." + "grant/..." + "http/requestid/..." + "identity/..." + "leak/..." + "macaroon/..." + "memory/..." + "metrics/..." + "nodetag/..." + "paths/..." + "pb/..." + "peertls/..." + "pkcrypto/..." + "process/gcloudlogging/..." + "processgroup/..." + "ranger/..." + "rpc/..." + "signing/..." + "storj/..." + "strictcsv/..." + "sync2/..." + "telemetry/..." + "testrand/..." + "testtrace/..." + "time2/..." + "useragent/..." + "uuid/..." + "version/..."))) + (native-inputs + (list go-github-com-stretchr-testify + go-go-uber-org-zap)) + (propagated-inputs + (list ;; go-cloud-google-com-go-profiler ; 100+ go-cloud-google-com* + go-github-com-blang-semver-v4 + go-github-com-bmkessler-fastdiv + go-github-com-calebcase-tmpfile + go-github-com-flynn-noise + go-github-com-gogo-protobuf + go-github-com-google-gopacket + go-github-com-google-pprof + go-github-com-jtolds-tracetagger-v2 + go-github-com-jtolio-crawlspace + go-github-com-jtolio-crawlspace-tools + go-github-com-jtolio-noiseconn + go-github-com-quic-go-quic-go + go-github-com-shopspring-decimal + go-github-com-spacemonkeygo-monkit-v3 + go-github-com-spf13-cast + go-github-com-spf13-cobra + go-github-com-spf13-pflag + go-github-com-spf13-viper + go-github-com-zeebo-admission-v3 + go-github-com-zeebo-blake3 + go-github-com-zeebo-errs + go-github-com-zeebo-structs + go-golang-org-x-crypto + go-golang-org-x-mod + go-golang-org-x-sync + go-golang-org-x-sys + go-gopkg-in-yaml-v2 + go-storj-io-drpc + go-storj-io-eventkit + ;; go-storj-io-monkit-jaeger ; cycles + go-storj-io-picobuf)) + (home-page "https://storj.io/common") + (synopsis "Common web and networking Golang utilities") + (description + "This package provides a collection of Golang utilities maintained by +Storj project: + +@itemize +@item accesslogs can handle collection and upload of arbitrarily formatted +server access logs in the fashion of S3's server access logging +@item bloomfilter implements a bloom-filter for pieces that need to be +preserved +@item cfgstruct +@item context2 contains utilities for contexts +@item currency +@item debug implements debug server for satellite, storage node, and edge +services +@item encryption collects common cryptographic primitives needed for path and +data encryption +@item errs2 collects common error handling functions +@item eventstat contains helper to create statistics about events with +unbounded cardinality +@item experiment implements feature flag propagation. +@item fpath implements cross-platform file and object path handling +@item grant +@item http +@item identity implements CA and Peer identity management and generation. +@item leak provides a way to track resources when race detector is enabled +@item macaroon implements contextual caveats and authorization +@item memory contains byte size types and manipulation +@item metrics implements a server which displays only read-only monitoring +data +@item netutil +@item nodetag +@item paths implements wrappers for handling encrypted and unencrypted paths +safely +@item peertls manages TLS configuration for peers. +@item pkcrypto contains a set of helper functions and constants to perform +common cryptographic operations +@item process +@item processgroup implements process-grouping commands. +@item ranger implements lazy @code{io.Reader} and @code{io.Writer} interfaces +@item readcloser implements utilities for @code{io.ReadClosers} +@item rpc implements dialing on Storj Network +@item signing implements consistent signing and verifying protobuf messages +@item socket implements @url{https://tools.ietf.org/html/rfc4594#section-2.3, +RFC4594} +@item storj contains the types which represent the main entities of the Storj +domain +@item strictcsv +@item sync2 provides a set of functions and types for having context aware +functionalities, offloading memory through the file system, and to control +execution of tasks which can run repetitively, concurrently or asynchronously. +@item telemetry +@item testcontext implements convenience context for testing. +@item testrand implements generating random base types for testing. +@item testtrace provides profiling debugging utilities for writing the state +of all goroutines +@item time2 provides time related functionality that can be manipulated to +facilite deterministic testing +@item traces +@item tracing +@item useragent implements parts of +@url{https://tools.ietf.org/html/rfc7231#section-5.5, RFC7231} and +@url{https://tools.ietf.org/html/rfc2616#section-14.43, RFC2616} +@item uuid implements UUID v4 based on +@url{https://www.rfc-editor.org/rfc/rfc4122, RFC4122}. +@item version +@end itemize") + (license license:expat))) + (define-public go-storj-io-drpc (package (name "go-storj-io-drpc")