diff options
Diffstat (limited to 'gnu/packages/golang-xyz.scm')
-rw-r--r-- | gnu/packages/golang-xyz.scm | 1307 |
1 files changed, 1223 insertions, 84 deletions
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index 0d6debcac4..f8c63976d6 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019, 2021 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2019-2021 Martin Becze <mjbecze@riseup.net> -;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019-2022, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> @@ -14,12 +14,15 @@ ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net> +;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Guix Together <jgart@dismail.de> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> +;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2021 raingloom <raingloom@riseup.net> ;;; Copyright © 2021, 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2022 (unmatched-parenthesis <paren@disroot.org> @@ -43,9 +46,10 @@ ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> ;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Luis Higino <luishenriquegh2701@gmail.com> -;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Spencer Peters <spencerpeters@protonmail.com> +;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> +;;; Copyright © 2024 Simen Endsjø <contact@simendsjo.me> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,7 +86,9 @@ #:use-module (gnu packages golang-maths) #:use-module (gnu packages golang-web) #:use-module (gnu packages linux) - #:use-module (gnu packages specifications)) + #:use-module (gnu packages specifications) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xorg)) ;;; Commentary: ;;; @@ -873,6 +879,29 @@ JSONMarshal/JSONUnmarshal to store/reload the Bloom filter.") commands.") (license license:expat))) +(define-public go-github-com-arceliar-phony + (package + (name "go-github-com-arceliar-phony") + (version "v0.0.0-20220903101357-530938a4b13d") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Arceliar/phony") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ww3issk2jg9nzijmz1xncdhd0mh553nixns34s3yjm4mb8c5s93")))) + (arguments + '(#:import-path "github.com/Arceliar/phony")) + (build-system go-build-system) + (home-page "https://github.com/Arceliar/phony") + (synopsis "Very minimal actor model library") + (description "Phony is a very minimal actor model library for Go, +inspired by the causal messaging system in the Pony programming language.") + (license license:expat))) + (define-public go-github-com-armon-go-radix (package (name "go-github-com-armon-go-radix") @@ -955,6 +984,39 @@ collections. It was based on @url{https://github.com/chriso/validator.js,validator.js}.") (license license:expat))) +(define-public go-github-com-atotto-clipboard + (package + (name "go-github-com-atotto-clipboard") + (version "0.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atotto/clipboard") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ycd8zkgsq9iil9svhlwvhcqwcd7vik73nf8rnyfnn10gpjx97k5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/atotto/clipboard" + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1")))))) + (native-inputs + (list xorg-server-for-tests)) + (propagated-inputs (list xclip)) + (home-page "https://github.com/atotto/clipboard") + (synopsis "Clipboard for Golang") + (description + "@code{clipboard} provides copying and pasting to the clipboard for Go.") + (license license:bsd-3))) + (define-public go-github-com-audriusbutkevicius-recli (package (name "go-github-com-audriusbutkevicius-recli") @@ -1098,6 +1160,34 @@ strategies, such as fixed delay, backoff delay, and random delay.") clipboard.") (license license:expat))) +(define-public go-github-com-aymanbagabas-go-udiff + (package + (name "go-github-com-aymanbagabas-go-udiff") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aymanbagabas/go-udiff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09p17r8s5flhq6p69z08345q0y99dpb0yyashlwpgxn45xir7y6g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aymanbagabas/go-udiff")) + (home-page "https://github.com/aymanbagabas/go-udiff") + (synopsis "Diffing library for Golang") + (description + "@code{udiff} (micro-diff, or µDiff) is a library that implements the +@url{http://www.xmailserver.org/diff2.pdf, Myers' diffing algorithm}. It aims to +provide a minimal API to compute and apply diffs with zero dependencies. It also +supports generating diffs in the +@url{https://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html, +Unified Format}.") + (license license:expat))) + (define-public go-github-com-benbjohnson-clock (package (name "go-github-com-benbjohnson-clock") @@ -1493,6 +1583,177 @@ tools.") (modify-inputs (package-propagated-inputs go-github-com-cheggaaa-pb) (append go-github-com-vividcortex-ewma))))) +(define-public go-github-com-charmbracelet-bubbles + (package + (name "go-github-com-charmbracelet-bubbles") + (version "0.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/bubbles") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qdcln01bq9lk6r33b8p5d5x850wgd8ddq57n4bg3xn76z2fd657")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/charmbracelet/bubbles")) + (propagated-inputs + (list go-github-com-atotto-clipboard + go-github-com-charmbracelet-bubbletea + go-github-com-charmbracelet-harmonica + go-github-com-charmbracelet-lipgloss + go-github-com-charmbracelet-x-ansi + go-github-com-charmbracelet-x-exp-golden + go-github-com-dustin-go-humanize + go-github-com-lucasb-eyer-go-colorful + go-github-com-makenowjust-heredoc + go-github-com-mattn-go-runewidth + go-github-com-muesli-termenv + go-github-com-rivo-uniseg + go-github-com-sahilm-fuzzy)) + (home-page "https://github.com/charmbracelet/bubbles") + (synopsis "TUI components for Bubble Tea library") + (description + "@code{bubbles} is a library that provide components for +@@url{https://github.com/charmbracelet/bubbletea, Bubble Tea} applications.") + (license license:expat))) + +(define-public go-github-com-charmbracelet-lipgloss + (package + (name "go-github-com-charmbracelet-lipgloss") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/lipgloss") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0d1aqzsjy0mcliydbfbg223xxpf9646frbj35ac4fisdy3w3n142")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/lipgloss")) + (propagated-inputs + (list go-github-com-aymanbagabas-go-udiff + go-github-com-charmbracelet-x-ansi + go-github-com-charmbracelet-x-exp-golden + go-github-com-muesli-termenv + go-github-com-rivo-uniseg)) + (home-page "https://github.com/charmbracelet/lipgloss") + (synopsis "Style definitions for nice terminal layouts") + (description + "Style definitions for nice terminal layouts. Built with TUIs in mind.") + (license license:expat))) + +(define-public go-github-com-charmbracelet-x-ansi + (package + (name "go-github-com-charmbracelet-x-ansi") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/x") + (commit (go-version->git-ref version + #:subdir "ansi")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "016s67690dr3w3an6m24q6f4vrmwpk0qd4akvvh1dzpfyf4khxd4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/x/ansi" + #:unpack-path "github.com/charmbracelet/x")) + (propagated-inputs + (list go-github-com-lucasb-eyer-go-colorful + go-github-com-rivo-uniseg)) + (home-page "https://github.com/charmbracelet/x") + (synopsis "ANSI escape sequence parser and definitions") + (description + "@code{ansi} defines common ANSI escape sequences based on the +@url{https://ecma-international.org/publications-and-standards/standards/ecma-48/, +ECMA-48} specs.") + (license license:expat))) + +(define-public go-github-com-charmbracelet-x-term + (package + (name "go-github-com-charmbracelet-x-term") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/x") + (commit (go-version->git-ref version + #:subdir "term")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1shw55110fnn4xz80wmgr18czmiil6z1j064m90iw8c7j9llfzn5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/x/term" + #:unpack-path "github.com/charmbracelet/x")) + (propagated-inputs (list go-github-com-rivo-uniseg + go-golang-org-x-sys)) + (home-page "https://github.com/charmbracelet/x") + (synopsis "Terminal utilities and helpers") + (description + "@code{term} provides an API for working with terminals that includes: +@itemize +@item Switching a terminal to the raw mode. +@item Getting, setting and restoring the state of a terminal. +@item Getting size of a terminal. +@item Reading passwords from a terminal without a local echo. +@end itemize") + (license license:expat))) + +(define-public go-github-com-charmbracelet-x-exp-golden + (package + (name "go-github-com-charmbracelet-x-exp-golden") + (version "0.0.0-20241121171228-5bc00623ea2f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/x") + (commit (go-version->git-ref version + #:subdir "exp/golden")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "016s67690dr3w3an6m24q6f4vrmwpk0qd4akvvh1dzpfyf4khxd4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/x/exp/golden" + #:unpack-path "github.com/charmbracelet/x/" + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key import-path #:allow-other-keys) + ;; Tests need to write to that files. + (with-directory-excursion (string-append "src/" import-path) + (make-file-writable "testdata/TestRequireEqualUpdate.golden") + (make-file-writable "testdata/TestRequireEqualNoUpdate.golden")))) + (add-after 'check 'post-check + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + ;; Remove modified testdata just in case. + (delete-file-recursively "testdata"))))))) + (propagated-inputs + (list go-github-com-aymanbagabas-go-udiff)) + (home-page "https://github.com/charmbracelet/x") + (synopsis "Verify @code{.golden} file equality") + (description + "Golden files (@code{.golden}) contain the raw expected output of +tests,which can contain control codes and escape sequences. @code{golden} +package provides an API for comparing Golden files.") + (license license:expat))) + (define-public go-github-com-chzyer-logex (package (name "go-github-com-chzyer-logex") @@ -1800,7 +2061,6 @@ submodules: (build-system go-build-system) (arguments (list - #:tests? #t ; Tests require network interface access #:import-path "github.com/cskr/pubsub")) (home-page "https://github.com/cskr/pubsub") (synopsis "Simple pubsub package for go") @@ -1837,6 +2097,39 @@ submodules: metrics to Graphite.") (license license:bsd-2))) +(define-public go-github-com-cyphar-filepath-securejoin + (package + (name "go-github-com-cyphar-filepath-securejoin") + (version "0.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cyphar/filepath-securejoin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10clm1hfzndwhi7lwz5ph72apxwbxr3vg4nln5xsrrx26j6qv6v2")))) + (build-system go-build-system) + (arguments + (list + #:test-flags #~(list "-shuffle=on" "-v") + #:import-path "github.com/cyphar/filepath-securejoin")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/cyphar/filepath-securejoin") + (synopsis "Alternative Golang @code{filepath.SecureJoin} implementation") + (description + "Package securejoin is an implementation of the +hopefully-soon-to-be-included @code{SecureJoin} helper that is meant to be +part of the \"path/filepath\" package. The purpose of this project is to +provide a @code{PoC} implementation to make the @code{SecureJoin} proposal +(@url{https://github.com/golang/go/issues/20126,https://github.com/golang/go/issues/20126}) +more tangible.") + (license license:bsd-3))) + (define-public go-github-com-d4l3k-messagediff (package (name "go-github-com-d4l3k-messagediff") @@ -1981,6 +2274,51 @@ gist (https://gist.github.com/kballard/272720).") more complicated parallel cases.") (license license:expat))) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description + "Set is the set collection for the Go language.") + (license license:expat))) + +(define-public go-github-com-deckarep-golang-set-v2 + (package + (inherit go-github-com-deckarep-golang-set) + (name "go-github-com-deckarep-golang-set-v2") + (version "2.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yvmra0hfcdzyyw51k0gnnd13zklvsacja0qkd0j1wjhpqmmfbcy")))) + (arguments + (list + #:import-path "github.com/deckarep/golang-set/v2")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-elliotchance-orderedmap-v2)))) + (define-public go-github-com-dennwc-varint (package (name "go-github-com-dennwc-varint") @@ -2042,18 +2380,14 @@ encoding/decoding. It has no dependencies.") ;; See: <https://github.com/dgraph-io/badger/issues/2103>. (("\"testing\"") (string-append "\"testing\"\n\"fmt\"")) (("string") "fmt.Sprint"))))) - (add-after 'patch-failing-tests 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "\\_test.go$") - (("TestBuildKeyValueSizeHistogram") - "OffTestBuildKeyValueSizeHistogram"))))) ;; XXX: Replace when go-build-system supports nested path. (replace 'check (lambda* (#:key import-path tests? #:allow-other-keys) (when tests? (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (invoke "go" "test" "-v" + "-skip" "TestBuildKeyValueSizeHistogram" + "./..." )))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -2097,7 +2431,8 @@ supports concurrent serializable transactions.") ;; ;; cannot use 4340958203495 (untyped int constant) as int value in ;; argument to z.KeyToHash (overflows) - #:tests? (target-64bit?) + #:tests? (and (target-64bit?) + (not (%current-target-system))) #:import-path "github.com/dgraph-io/ristretto" #:phases #~(modify-phases %standard-phases @@ -2324,6 +2659,30 @@ Implements string conversion functionality for unit prefixes. scanner API made public.") (license license:bsd-3))) +(define-public go-github-com-dustin-go-humanize + (package + (name "go-github-com-dustin-go-humanize") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dustin/go-humanize") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iyhd90pnmxh64nhsh6k02c1b1glpmhh4whga9jgb9g0i5hz3sya")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dustin/go-humanize")) + (home-page "https://github.com/dustin/go-humanize") + (synopsis "Humane unit formatter") + (description + "@code{go-humanize} provides formatters for units to human friendly +sizes. It converts boring ugly numbers to human-friendly strings and back.") + (license license:expat))) + (define-public go-github-com-edsrzf-mmap-go (package (name "go-github-com-edsrzf-mmap-go") @@ -2461,6 +2820,29 @@ O(1) for @code{Set}, @code{Get}, @code{Delete} and @code{Len}.") #~(modify-phases %standard-phases (delete 'remove-submodule))))))) +(define-public go-github-com-emersion-go-autostart + (package + (name "go-github-com-emersion-go-autostart") + (version "0.0.0-20210130080809-00ed301c8e9a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emersion/go-autostart") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/emersion/go-autostart")) + (home-page "https://github.com/emersion/go-autostart") + (synopsis "Autostart library in Go") + (description + "Go-Autostart is a Go library to run a command after login.") + (license license:expat))) + (define-public go-github-com-emersion-go-ical (package (name "go-github-com-emersion-go-ical") @@ -2747,6 +3129,31 @@ quoting, commenting, and escaping.") (home-page "https://github.com/flynn-archive/go-shlex") (license license:asl2.0)))) +(define-public go-github-com-fsnotify-fsnotify + (package + (name "go-github-com-fsnotify-fsnotify") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fsnotify/fsnotify") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h7vs21lkj4bqbw5a6mqykaf56y181r0nja7c8pzajkvbsc39y8m")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/fsnotify/fsnotify")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/fsnotify/fsnotify") + (synopsis "File system notifications for Go") + (description + "File system notifications for Go") + (license license:bsd-3))) + (define-public go-github-com-fxamacker-cbor-v2 (package (name "go-github-com-fxamacker-cbor-v2") @@ -2766,7 +3173,8 @@ quoting, commenting, and escaping.") ;; XXX: Check if the most of the tests may be enabled: ;; src/github.com/fxamacker/cbor/v2/decode_test.go:328:9: cannot convert ;; 1000000000000 (untyped int constant) to type uint - #:tests? (target-64bit?) + #:tests? (and (target-64bit?) + (not (%current-target-system))) #:import-path "github.com/fxamacker/cbor/v2")) (propagated-inputs (list go-github-com-x448-float16)) @@ -2831,6 +3239,68 @@ Differentiation between text and binary files}. @end itemize") (license license:expat))) +(define-public go-github-com-go-git-go-billy-v5 + (package + (name "go-github-com-go-git-go-billy-v5") + (version "5.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-git/go-billy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1r7hfwc6lqnb7jhbbmicdlb3yipjyazq3pndpffw026fcq7jhxg1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-git/go-billy/v5")) + (native-inputs + (list go-github-com-onsi-gomega + go-gopkg-in-check-v1)) + (propagated-inputs + (list go-github-com-cyphar-filepath-securejoin + go-golang-org-x-sys)) + (home-page "https://github.com/go-git/go-billy/") + (synopsis "File system abstraction for Go") + (description + "Billy implements an interface based on the OS's standard library to +develop applications without depending on the underlying storage. This makes +it virtually free to implement mocks and testing over file system +operations.") + (license license:asl2.0))) + +(define-public go-github-com-go-git-go-git-fixtures-v4 + (package + (name "go-github-com-go-git-go-git-fixtures-v4") + (version "4.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-git/go-git-fixtures") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d6qs2mzbhz95aflpjh6ijywvb4ys73jvk2v30mickax3gmm2vlw")))) + (build-system go-build-system) + (arguments + (list + ;; XXX: panic: runtime error: makeslice: cap out of range + #:tests? (target-64bit?) + #:import-path "github.com/go-git/go-git-fixtures/v4")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-git-go-billy-v5 + go-gopkg-in-check-v1)) + (home-page "https://github.com/go-git/go-git-fixtures/") + (synopsis "Fixtures used by @code{go-git}") + (description + "This package provides fixtures used by @code{go-git}.") + (license license:asl2.0))) + (define-public go-github-com-go-kit-log (package (name "go-github-com-go-kit-log") @@ -2889,7 +3359,7 @@ logging.") (define-public go-github-com-go-logr-logr (package (name "go-github-com-go-logr-logr") - (version "1.4.1") + (version "1.4.2") (source (origin (method git-fetch) @@ -2898,7 +3368,7 @@ logging.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0x0q9jkk2p5pz4lii1qs8ifnsib4ib5s8pigmjwdmagl976g8nhm")))) + (base32 "03agibg7i25ppjak1yv4qzvbrv871qnfkmfy17did0h9ml7xh2nx")))) (build-system go-build-system) (arguments (list @@ -3169,46 +3639,97 @@ non-blocking @code{TryLock} function to allow locking without blocking execution.") (license license:bsd-3))) -(define-public go-github-com-google-renameio +(define-public go-github-com-gofrs-uuid (package - (name "go-github-com-google-renameio") - (version "1.0.1") + (name "go-github-com-gofrs-uuid") + (version "4.4.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/google/renameio") + (url "https://github.com/gofrs/uuid") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qn84nra9nxqyqg4i496b6ijbhnxvx66hdndwl7qh7r6q8lz2ba5")))) + (base32 "13n5q70sdw39f2j9ya5l6n7475fv5b1vns7skv56yjh04chwl7p3")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/google/renameio")) - (home-page "https://github.com/google/renameio/") - (synopsis "Atomically create or replace a file or symbolic link") + #:import-path "github.com/gofrs/uuid")) + (home-page "https://github.com/gofrs/uuid") + (synopsis "UUID package for Golang") (description - "@code{renameio} Go package provides a way to atomically create or -replace a file or symbolic link.") - (license license:asl2.0))) + "Package uuid provides implementations of the Universally Unique Identifier +(UUID), as specified in RFC-4122 and the Peabody RFC Draft (revision 03).") + (license license:expat))) -(define-public go-github-com-google-renameio-v2 - (package/inherit go-github-com-google-renameio - (name "go-github-com-google-renameio-v2") - (version "2.0.0") +(define-public go-github-com-gofrs-uuid-v5 + (package + (inherit go-github-com-gofrs-uuid) + (name "go-github-com-gofrs-uuid-v5") + (version "5.3.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/google/renameio") + (url "https://github.com/gofrs/uuid") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "13vc7p43zz5pmgli4k18b15khxpca1zd8v1ga0ryq7ddyz55fg7i")))) + (base32 "0fkyclwji4llkpcwwvpn00fc68mawdlz8ssf2x1vrmv33gps4icl")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gofrs/uuid/v5")))) + +(define-public go-github-com-gogs-chardet + (package + (name "go-github-com-gogs-chardet") + (version "0.0.0-20211120154057-b7413eaefb8f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogs/chardet") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12j8q5wc9m4n51v2j2m40nahqdl9bh3hzpdp26clzq91kc2amiz0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gogs/chardet")) + (home-page "https://github.com/gogs/chardet") + (synopsis "Character set detection for Go") + (description + "The chardet package ports character set detection from ICU to Go.") + (license license:expat))) + +(define-public go-github-com-google-goterm + (package + (name "go-github-com-google-goterm") + (version "0.0.0-20200907032337-555d40f16ae2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/goterm") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0809sf02dhg2bjhsz43pmlb5d7nbsnwxls3lw01zw5p7ri9bqwfb")))) + (build-system go-build-system) (arguments (list - #:import-path "github.com/google/renameio/v2")))) + #:import-path "github.com/google/goterm/term" + #:unpack-path "github.com/google/goterm")) + (home-page "https://github.com/google/goterm/") + (synopsis "PTY creation and termios get/set attributes") + (description + "The term package implements PTY creation and termios get/set attributes. +It also contains some convenience functions for colors, SSH to and from +termios translations, readCh, reading passwords, etc.") + (license license:bsd-3))) (define-public go-github-com-google-subcommands (package @@ -3294,6 +3815,36 @@ color (24-bit, RGB) @end itemize") (license license:expat))) +(define-public go-github-com-goreleaser-fileglob + (package + (name "go-github-com-goreleaser-fileglob") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/goreleaser/fileglob") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c4p98prb0gf8a8789lxp1qw0v6anlqk5b1ff2r861gv2nclp8dx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/goreleaser/fileglob")) + (native-inputs + (list go-github-com-caarlos0-testfs + go-github-com-matryer-is)) + (propagated-inputs + (list go-github-com-gobwas-glob)) + (home-page "https://github.com/goreleaser/fileglob") + (synopsis "Golang file globbing library") + (description + "This package provides a filesystem glob API. It uses @code{gobwas/glob} +underneath and returns only matching files or direcories, depending on the +configuration.") + (license license:expat))) + (define-public go-github-com-hashicorp-errwrap (package (name "go-github-com-hashicorp-errwrap") @@ -3352,6 +3903,59 @@ a command-line program @code{hclogvet} that can be used to check that the loggin methods on @code{hclog.Logger} are used correctly.") (license license:expat))) +(define-public go-github-com-hashicorp-go-immutable-radix + (package + (name "go-github-com-hashicorp-go-immutable-radix") + (version "1.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-immutable-radix") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s7sf8y5lj8rx4gdymrz29gg6y2xwksfpgniaz32yzcmg3c817zb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/go-immutable-radix")) + (propagated-inputs + (list go-github-com-hashicorp-golang-lru + go-github-com-hashicorp-go-uuid)) + (home-page "https://github.com/hashicorp/go-immutable-radix") + (synopsis "Immutable radix tree implementation in Golang") + (description + "This package implements an immutable +@url{http://en.wikipedia.org/wiki/Radix_tree,radix tree}. It only provides a +single @code{Tree} implementation, optimized for sparse nodes.") + (license license:mpl2.0))) + +(define-public go-github-com-hashicorp-go-immutable-radix-v2 + (package + (inherit go-github-com-hashicorp-go-immutable-radix) + (name "go-github-com-hashicorp-go-immutable-radix-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-immutable-radix") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sik2rg6xldk87aqzx9dmpg4f2cwkk7ypdwsjqq131npx7jszxzr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/go-immutable-radix/v2")) + (propagated-inputs + (modify-inputs (package-propagated-inputs + go-github-com-hashicorp-go-immutable-radix) + (prepend go-golang-org-x-exp) + (replace "go-github-com-hashicorp-golang-lru" + go-github-com-hashicorp-golang-lru-v2))))) + (define-public go-github-com-hashicorp-go-multierror (package (name "go-github-com-hashicorp-go-multierror") @@ -3865,6 +4469,30 @@ just matching lines. This package proviedes a CLI tool and @code{colors} library.") (license license:bsd-2))) +(define-public go-github-com-jonboulle-clockwork + (package + (name "go-github-com-jonboulle-clockwork") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonboulle/clockwork") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j1k9chzy5pb76r4r1k0vr5fbkvna564v6dzjflhapwsr7jpjgwf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jonboulle/clockwork")) + (home-page "https://github.com/jonboulle/clockwork") + (synopsis "Fake clock library for Go") + (description + "Replace uses of the @code{time} package with the @code{clockwork.Clock} +interface instead.") + (license license:asl2.0))) + (define-public go-github-com-josharian-intern (package (name "go-github-com-josharian-intern") @@ -4328,6 +4956,40 @@ allocator. This is primarily useful for long lived buffers that usually sit emp length-delimited slices. It's helpful for building wire protocols.") (license license:expat))) +(define-public go-github-com-lithammer-fuzzysearch + (package + (name "go-github-com-lithammer-fuzzysearch") + (version "1.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lithammer/fuzzysearch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fp00gzbrr5fnz01lmkjqcs5z24zjrsp4r13ia0x0wslp5r13hv8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lithammer/fuzzysearch" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Replace when go-build-system supports nested path. + (delete 'build) + (replace 'check + (lambda* (#:key import-path tests? #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" "./...")))))))) + (propagated-inputs (list go-golang-org-x-text)) + (home-page "https://github.com/lithammer/fuzzysearch") + (synopsis "Tiny and fast fuzzy search in Go") + (description + "A speedy fuzzy matching package for Go inspired by the JavaScript +library bevacqua/fuzzysearch.") + (license license:expat))) + (define-public go-github-com-liyue201-gostl (package (name "go-github-com-liyue201-gostl") @@ -4426,6 +5088,30 @@ Printf/Sprintf etc.") (native-inputs (list go-github-com-stretchr-testify)))) +(define-public go-github-com-makenowjust-heredoc + (package + (name "go-github-com-makenowjust-heredoc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/makenowjust/heredoc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18f21zm8n2wlnkz1ylw8rcxmqxyv2rlz8749yfqggm2m0m2884pj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/MakeNowJust/heredoc")) + (home-page "https://github.com/MakeNowJust/heredoc") + (synopsis "Here-documents with indent") + (description + "This package implements a functionality of creating here-documents from +raw strings.") + (license license:expat))) + (define-public go-github-com-marcinbor85-gohex ;; No release, see <https://github.com/marcinbor85/gohex/issues/5>. (let ((commit "baab2527a9a2a4abb3dc06baabedfa5e0268b8d8") @@ -5069,6 +5755,31 @@ Authentication Modules, PAM} application API.") ((#:import-path _ "github.com/msteinert/pam") "github.com/msteinert/pam/v2"))))) +(define-public go-github-com-muesli-ansi + (package + (name "go-github-com-muesli-ansi") + (version "0.0.0-20230316100256-276c6243b2f6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/muesli/ansi") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jr8kgn3vb72jmf4a8n52g876mfpbvk3310p8gsg7jkn338af4m9")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/muesli/ansi")) + (propagated-inputs + (list go-github-com-mattn-go-runewidth + go-github-com-rivo-uniseg)) + (home-page "https://github.com/muesli/ansi") + (synopsis "Raw ANSI sequence helpers") + (description + "ANSI sequence helpers for working with raw ANSI sequences.") + (license license:expat))) + (define-public go-github-com-muesli-cancelreader (package (name "go-github-com-muesli-cancelreader") @@ -5094,6 +5805,31 @@ Authentication Modules, PAM} application API.") "This package provides a cancelable reader for Go.") (license license:expat))) +(define-public go-github-com-muesli-combinator + (package + (name "go-github-com-muesli-combinator") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/muesli/combinator") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rjw1rl1v38pn6lmyaz7yhgrwkyh22d6974lj33x1c86q0xpaw4d")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/muesli/combinator")) + (home-page "https://github.com/muesli/combinator") + (synopsis "Cancelable reader for Go") + (description + "@code{combinator} generates a slice of all possible value combinations +for any given struct and a set of its potential member values. This can be +used to generate extensive test matrixes among other things.") + (license license:expat))) + (define-public go-github-com-muesli-reflow (package (name "go-github-com-muesli-reflow") @@ -5396,33 +6132,8 @@ list of sentences.") (build-system go-build-system) (arguments (list - #:import-path "github.com/niklasfasching/go-org" - #:phases - #~(modify-phases %standard-phases - ;; FIXME: Pattern embedded: cannot embed directory embedded: - ;; contains no embeddable files. - ;; - ;; This happens due to Golang can't determine the valid directory of - ;; the module which is sourced during setup environment phase, but - ;; easy resolved after coping to expected directory "vendor" within - ;; the current package, see details in Golang source: - ;; - ;; - URL: <https://github.com/golang/go/blob/> - ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454 - ;; - file: src/cmd/go/internal/load/pkg.go#L2059 - (add-before 'build 'copy-input-to-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (mkdir "vendor") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-alecthomas-chroma-v2") - "/src/github.com") - "vendor/github.com")))) - (add-before 'install 'remove-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (delete-file-recursively "vendor"))))))) + #:embed-files #~(list ".*\\.xml") + #:import-path "github.com/niklasfasching/go-org")) (propagated-inputs (list go-golang-org-x-net go-github-com-pmezard-go-difflib @@ -5627,6 +6338,31 @@ levels per backend and logger.") specification-runtime-spec.") (license license:asl2.0))) +(define-public go-github-com-openhistogram-circonusllhist + (package + (name "go-github-com-openhistogram-circonusllhist") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/openhistogram/circonusllhist") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ngngjzl3nd30csqvp0gp2qa1hsskl3rh4fgslygvf4p34s42jxk")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/openhistogram/circonusllhist")) + (home-page "https://github.com/circonus-labs/circonusllhist") + (synopsis "OpenHistogram log-linear histograms in Golang") + (description + "Package circllhist provides an implementation of Circonus fixed +log-linear histogram data structure. This allows tracking of histograms in a +composable way such that accurate error can be reasoned about.") + (license license:bsd-3))) + (define-public go-github-com-openprinting-goipp (package (name "go-github-com-openprinting-goipp") @@ -5787,6 +6523,31 @@ processes.") (list go-github-com-stretchr-testify)) (propagated-inputs '()))) +(define-public go-github-com-philhofer-fwd + (package + (name "go-github-com-philhofer-fwd") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/philhofer/fwd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "083zlvna3mz37p91r4h8r7yvjqcvsgr9l5p0zidmk3ajq6gxds1p")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/philhofer/fwd")) + (home-page "https://github.com/philhofer/fwd") + (synopsis "Buffered Reader/Writer for Goalng") + (description + "Package fwd provides a buffered reader and writer. Each has methods +that help improve the encoding/decoding performance of some binary +protocols.") + (license license:expat))) + (define-public go-github-com-pierrec-cmdflag (package (name "go-github-com-pierrec-cmdflag") @@ -5855,7 +6616,7 @@ Pion}.") (propagated-inputs (list go-github-com-urfave-cli go-github-com-warpfork-go-wish - go-github.com-smartystreets-goconvey + go-github-com-smartystreets-goconvey go-gopkg-in-yaml-v2)) (home-page "https://github.com/polydawn/refmt/") (synopsis "Object mapping for Go language") @@ -5989,6 +6750,31 @@ routines querying a database but without sending too much queries in order to not overload the given database.") (license license:expat))) +(define-public go-github-com-rogpeppe-fastuuid + (package + (name "go-github-com-rogpeppe-fastuuid") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rogpeppe/fastuuid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "028acdg63zkxpjz3l639nlhki2l0canr2v5jglrmwa1wpjqcfff8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rogpeppe/fastuuid")) + (home-page "https://github.com/rogpeppe/fastuuid") + (synopsis "192-bit UUID generator in Golang") + (description + "Package fastuuid provides UUID generation of 192 bit universally unique +identifiers. It also provides simple support for 128-bit RFC-4122 V4 UUID +strings.") + (license license:bsd-3))) + (define-public go-github-com-rogpeppe-go-internal (package (name "go-github-com-rogpeppe-go-internal") @@ -6048,6 +6834,84 @@ Included are the following: @end itemize\n") (license license:bsd-3))) +(define-public go-github-com-rs-zerolog + (package + (name "go-github-com-rs-zerolog") + (version "1.33.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rs/zerolog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14g5sy9n18k18pvzccdcvj5rqi670yw478yqm4n30hrfsdkm5jbp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rs/zerolog")) + (propagated-inputs + (list go-github-com-coreos-go-systemd-v22 + go-github-com-mattn-go-colorable + go-github-com-pkg-errors + go-github-com-rs-xid)) + (home-page "https://github.com/rs/zerolog") + (synopsis "Zero Allocation JSON Logger") + (description + "Package zerolog provides a lightweight logging library dedicated to JSON +logging.") + (license license:expat))) + +(define-public go-github-com-ryanuber-columnize + (package + (name "go-github-com-ryanuber-columnize") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ryanuber/columnize") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xxzzgvfabc2qx6n313vis8l4npkggiy5kjflv0arm2y7xnv73qj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ryanuber/columnize")) + (home-page "https://github.com/ryanuber/columnize") + (synopsis "Column formatted output for golang") + (description + "This package implements column-formatted output for Golang.") + (license license:expat))) + +(define-public go-github-com-sahilm-fuzzy + (package + (name "go-github-com-sahilm-fuzzy") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sahilm/fuzzy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15j95gm7hcmg09x1b39vc4il8bryv4v0yljvvyq5vyc6iq66qrbz")))) + (build-system go-build-system) + (native-inputs + (list go-github-com-kylelemons-godebug + go-github-com-kylelemons-godebug-pretty)) + (arguments + (list #:import-path "github.com/sahilm/fuzzy")) + (home-page "https://github.com/sahilm/fuzzy") + (synopsis "Fuzzy string matching for Golang") + (description + "@code{fuzzy} provides fuzzy string matching optimized for filenames and code +symbols in the style of Sublime Text, VSCode, @code{IntelliJ} IDEA et al.") + (license license:expat))) + (define-public go-github-com-schollz-progressbar-v3 (package (name "go-github-com-schollz-progressbar-v3") @@ -6095,7 +6959,7 @@ is undetermined, a customizable spinner is shown.") (define-public go-github-com-sergi-go-diff (package (name "go-github-com-sergi-go-diff") - (version "1.2.0") + (version "1.3.1") (source (origin (method git-fetch) @@ -6104,7 +6968,7 @@ is undetermined, a customizable spinner is shown.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0cbj8nshllq102iiav0k1s01b8gwbkzj674g71n938qqna32y2pa")))) + (base32 "0c7lsa3kjxbrx66r93d0pvx1408b80ignpi39fzka1qc0ylshw32")))) (build-system go-build-system) (arguments (list @@ -6123,6 +6987,31 @@ synchronizing plain text: @end itemize") (license license:expat))) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x2sn871g10jihga6jvng7ys1988dgj24wlkxzdzca6mvzysj80b")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description + "Go-Daemon is a library for writing system daemons in Go.") + (license license:expat))) + (define-public go-github-com-shirou-gopsutil (package (name "go-github-com-shirou-gopsutil") @@ -6376,6 +7265,33 @@ well as a program to generate applications and command files.") slices, JSON and other data.") (license license:expat))) +(define-public go-github-com-subosito-gotenv + (package + (name "go-github-com-subosito-gotenv") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/subosito/gotenv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0h7kb9mc67rl16kvls2d16pimdrz59l5x4l002qsv2p2766mpjif")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/subosito/gotenv")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-text)) + (home-page "https://github.com/subosito/gotenv") + (synopsis "Go library for loading environment variables from files") + (description + "Go library for loading environment variables from files") + (license license:expat))) + (define-public go-github-com-syndtr-goleveldb (package (name "go-github-com-syndtr-goleveldb") @@ -6469,6 +7385,39 @@ calendar dates. It offers a complete implementation of the @url{https://www.ietf.org/rfc/rfc2445.txt,RFC 2445} specification.") (license license:expat))) +;; XXX: Maybe split it into dedicated packages per module to easy importer. +(define-public go-github-com-tekwizely-go-parsing + (package + (name "go-github-com-tekwizely-go-parsing") + (version "0.0.0-20221001173913-aa6d6749ea2d") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tekwizely/go-parsing") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hz4jwvav1ccvigmlxgg50pal3nxklbl0psf7wdzwr1vzmzmj3n3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tekwizely/go-parsing")) + (home-page "https://github.com/tekwizely/go-parsing") + (synopsis "Text parsing, with lexers, parsers, and related tools") + (description + "This package provides Go modules focused on text parsing, with lexers, +parsers, and related tools. + +Included modules are: +@itemize +@item github.com/tekwizely/go-parsing +@item github.com/tekwizely/go-parsing/lexer +@item github.com/tekwizely/go-parsing/lexer/token +@item github.com/tekwizely/go-parsing/parser +@end itemize") + (license license:expat))) + (define-public go-github-com-thejerf-suture (package (name "go-github-com-thejerf-suture") @@ -6616,6 +7565,39 @@ readability, or to compact JSON for smaller payloads.") document.") (license license:expat))) +(define-public go-github-com-tinylib-msgp + (package + (name "go-github-com-tinylib-msgp") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tinylib/msgp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mplb420i9cmf40qwsqzd1plln52nl0x0b7nkxffyr0pdh9za79a")))) + (build-system go-build-system) + (arguments + (list + ;; Tests require alternative Golang compiler + ;; <https://github.com/tinygo-org/tinygo>. + #:tests? #f + #:import-path "github.com/tinylib/msgp" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (propagated-inputs + (list go-golang-org-x-tools go-github-com-philhofer-fwd)) + (home-page "http://msgpack.org/") + (synopsis "MessagePack Code Generator") + (description + "This package provides a code generation tool for creating methods to +serialize and de-serialize Go data structures to and from data interchange +format - @url{https://en.wikipedia.org/wiki/MessagePack,MessagePack}.") + (license license:expat))) + (define-public go-github-com-tklauser-go-sysconf (package (name "go-github-com-tklauser-go-sysconf") @@ -6849,6 +7831,112 @@ XOR, as in kademlia.") @code{MemoryInfo}.") (license license:expat))) +(define-public go-github-com-workiva-go-datastructures + (package + (name "go-github-com-workiva-go-datastructures") + (version "1.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Workiva/go-datastructures") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09k5zg0ma8z5bcfwk3viccaxzrrk5pyfhk5hkr9x34vgcnlk0jx7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Workiva/go-datastructures" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Replace when go-build-system supports nested path. + (replace 'check + (lambda* (#:key import-path tests? #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" "./...")))))))) + (native-inputs (list go-github-com-stretchr-testify)) + (propagated-inputs (list go-github-com-tinylib-msgp)) + (home-page "https://github.com/Workiva/go-datastructures") + (synopsis "Collection of Go data structures") + (description + "@code{go-datastructures} is a collection of useful, performant, and +thread-safe Go data structures. + +It includes: +@itemize +@item Augmented Tree - Interval tree for collision in n-dimensional +ranges. Implemented via a red-black augmented tree. + +@item Bitarray - Bitarray used to detect existence without having to resort to +hashing with hashmaps. Requires entities have a uint64 unique identifier. Two +implementations exist, regular and sparse. + +@item Futures - A helpful tool to send a @emph{broadcast} message to +listeners. + +@item Queue - Package contains both a normal and priority queue. Both +implementations never block on send and grow as much as necessary. + +@item Fibonacci Heap - A standard Fibonacci heap providing the usual +operations. Can be useful in executing Dijkstra or Prim's algorithms in the +theoretically minimal time. + +@item Range Tree - Useful to determine if n-dimensional points fall within an +n-dimensional range. + +@item Set - Set implementation which accepts items of type @code{interface{}} +and includes only a few methods. + +@item Threadsafe - A package that is meant to contain some commonly used items +but in a threadsafe way. + +@item AVL Tree - This is an example of a branch copy immutable +@acronym{Adelson-Velsky and Landis,AVL} @acronym{Balanced Binary Search +Trees,BBST}. + +@item X-Fast Trie - An interesting design that treats integers as words and +uses a trie structure to reduce time complexities by matching prefixes. + +@item Y-Fast Trie - An extension of the X-Fast trie in which an X-Fast trie is +combined with some other ordered data structure to reduce space consumption +and improve CRUD types of operations. + +@item Fast Integer Hashmap - A datastructure used for checking existence but +without knowing the bounds of your data. If you have a limited small bounds, +the bitarray package might be a better choice. + +@item Skiplist - An ordered structure that provides amortized logarithmic +operations but without the complication of rotations that are required by +BSTs. + +@item Sort - The sort package implements a multithreaded bucket sort that can +be up to 3x faster than the native Golang sort package. + +@item Numerics - Early work on some nonlinear optimization problems. The +initial implementation allows a simple use case with either linear or +nonlinear constraints. + +@item B+ Tree - Initial implementation of a B+ tree. Delete method still +needs added as well as some performance optimization. + +@item Immutable B Tree - A btree based on two principles, immutability and +concurrency. + +@item Ctrie - A concurrent, lock-free hash array mapped trie with efficient +non-blocking snapshots. + +@item Dtrie - A persistent hash trie that dynamically expands or shrinks to +provide efficient memory allocation. + +@item Persistent List - A persistent, immutable linked list. + +@item Simple Graph - A mutable, non-persistent undirected graph where parallel +edges and self-loops are not permitted. +@end itemize") + (license license:asl2.0))) + (define-public go-github-com-xhit-go-str2duration-v2 (package (name "go-github-com-xhit-go-str2duration-v2") @@ -6874,6 +7962,31 @@ string. The string can be a string retorned for @code{time.Duration} or a similar string with weeks or days too.") (license license:bsd-3))) +(define-public go-github-com-xlab-treeprint + (package + (name "go-github-com-xlab-treeprint") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xlab/treeprint") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00k1xj3rwqa5f6n9fks8bh1m7vzssdjwxnam9kzy0rlbc74lgkl3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xlab/treeprint")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/xlab/treeprint") + (synopsis "ASCII tree composing tool") + (description + "This package provides a simple ASCII tree composing tool.") + (license license:expat))) + (define-public go-github-com-yuin-gopher-lua (package (name "go-github-com-yuin-gopher-lua") @@ -7188,9 +8301,9 @@ Go.") (description "Go library for ini files") (license license:asl2.0))) -(define-public go-gopkg-in-natefinch-lumberjack.v2 +(define-public go-gopkg-in-natefinch-lumberjack-v2 (package - (name "go-gopkg-in-natefinch-lumberjack.v2") + (name "go-gopkg-in-natefinch-lumberjack-v2") (version "2.1") (source (origin @@ -7423,6 +8536,32 @@ also provides V-style logging controlled by the @code{-v} and defined in @url{https://editorconfig.org/,https://editorconfig.org/}.") (license license:bsd-3))) +(define-public go-rsc-io-binaryregexp + (package + (name "go-rsc-io-binaryregexp") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rsc/binaryregexp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b")))) + (build-system go-build-system) + (arguments + (list + #:import-path "rsc.io/binaryregexp")) + (home-page "https://pkg.go.dev/rsc.io/binaryregexp") + (synopsis "Golang regexp for binary/latin-1 data") + (description + "Package regexp implements regular expression search. The syntax of the +regular expressions accepted is the same general syntax used by Perl, Python, +and other languages. More precisely, it is the syntax accepted by RE2 and +described at https://golang.org/s/re2syntax, except for @code{\\C.}") + (license license:bsd-3))) + (define-public go-zgo-at-jfmt (package (name "go-zgo-at-jfmt") @@ -7593,36 +8732,22 @@ library.") (define-public go-chroma (package + (inherit go-github-com-alecthomas-chroma-v2) (name "go-chroma") - (version "2.14.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alecthomas/chroma") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1qgr4gywjks869sc85wb8nby612b8wvsa1dwpsbanjsljq7wq7mp")))) - (build-system go-build-system) (arguments (list #:install-source? #f - #:import-path "github.com/alecthomas/chroma/cmd/chroma")) + #:import-path "github.com/alecthomas/chroma/cmd/chroma" + #:unpack-path "github.com/alecthomas/chroma")) (native-inputs (list go-github-com-alecthomas-assert-v2 - go-github-com-alecthomas-chroma-v2 go-github-com-alecthomas-kong go-github-com-mattn-go-colorable go-github-com-mattn-go-isatty)) - (home-page "https://github.com/alecthomas/chroma") - (synopsis "General purpose syntax highlighter in pure Golang") (description (string-append (package-description go-github-com-alecthomas-chroma-v2) " This package provides an command line interface (CLI) -tool.")) - (license license:asl2.0))) +tool.")))) (define-public go-hclogvet (package @@ -7660,7 +8785,21 @@ correctly."))) #:install-source? #f #:import-path "github.com/libp2p/go-msgio/msgio" #:unpack-path "github.com/libp2p/go-msgio")) - (synopsis "CLI tool to wrap messages with msgio header."))) + (synopsis "CLI tool to wrap messages with msgio header"))) + +(define-public go-msgp + (package + (inherit go-github-com-tinylib-msgp) + (name "go-msgp") + (arguments + (list + #:install-source? #f + #:tests? #f + #:import-path "github.com/tinylib/msgp")) + (description + (string-append (package-description go-github-com-tinylib-msgp) + " This package provides an command line interface (CLI) +tool.")))) (define-public go-numcpus (package |