~ruther/guix-local

4e746f05dae74c7a979de6f44a5577b6658c9d1b — Patrick Norton 2 months ago aee7f98
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 <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
1 files changed, 171 insertions(+), 0 deletions(-)

M gnu/packages/golang-web.scm
M gnu/packages/golang-web.scm => gnu/packages/golang-web.scm +171 -0
@@ 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 <github.com/btcsuite/btcd/btcutil/base58>.
    (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")