diff options
author | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-01-26 20:55:06 +0000 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-01-26 20:55:06 +0000 |
commit | 75437dbb7695bf336e349796f075df06662b130c (patch) | |
tree | f9be05fb167d6405297f9f5db1196c73b9795edc | |
parent | 55859a28cc1deeddb2d7e46c3a4579290029501b (diff) | |
parent | 9e2de68cf8aa5ac590ae3fca4fe90ac1b91bfa8a (diff) | |
download | guix-75437dbb7695bf336e349796f075df06662b130c.tar.gz guix-75437dbb7695bf336e349796f075df06662b130c.zip |
Merge remote-tracking branch 'origin/go-team'
Change-Id: I3672a7dc248a41b1a83e4c488523f62cf1806710
45 files changed, 16331 insertions, 7293 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 9457fbf4cb..6961b8816c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -342,6 +342,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/golang-compression.scm \ %D%/packages/golang-crypto.scm \ %D%/packages/golang-maths.scm \ + %D%/packages/golang-vcs.scm \ %D%/packages/golang-web.scm \ %D%/packages/golang-xyz.scm \ %D%/packages/gperf.scm \ @@ -1507,8 +1508,6 @@ dist_patch_DATA = \ %D%/packages/patches/go-fix-script-tests.patch \ %D%/packages/patches/go-gopkg-in-yaml-v3-32bit.patch \ %D%/packages/patches/go-github-com-golang-snappy-32bit-test.patch \ - %D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \ - %D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \ %D%/packages/patches/go-github-com-warpfork-go-wish-fix-tests.patch \ %D%/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch \ %D%/packages/patches/go-skip-gc-test.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 659f7bc3be..82de7c360f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -70,6 +70,7 @@ ;;; Copyright © 2024 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2024 nathan <nathan_mail@nborghese.com> ;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me> +;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; Copyright © 2025 Dariqq <dariqq@posteo.net> @@ -148,7 +149,10 @@ #:use-module (gnu packages gnupg) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-compression) + #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) @@ -285,6 +289,53 @@ usual file attributes can be checked for inconsistencies.") (home-page "https://aide.github.io/") (license license:gpl2+))) +(define-public hetznercloud-cli + (package + (name "hetznercloud-cli") + (version "1.49.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hetznercloud/cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mgd1rv0i18h7jbzl034ffpfxvnjirp60qwxsjpfy42jh1d8xbjm")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; XXX: figure out hot to enable them + #:install-source? #f + #:import-path "github.com/hetznercloud/cli/cmd/hcloud" + #:unpack-path "github.com/hetznercloud/cli")) + (native-inputs + (list go-github-com-burntsushi-toml + go-github-com-cheggaaa-pb-v3 + go-github-com-dustin-go-humanize + go-github-com-fatih-color + go-github-com-fatih-structs + go-github-com-goccy-go-yaml + go-github-com-guptarohit-asciigraph + go-github-com-hetznercloud-hcloud-go-v2 + go-github-com-jedib0t-go-pretty-v6 + go-github-com-spf13-cast + go-github-com-spf13-cobra + go-github-com-spf13-pflag + go-github-com-spf13-viper + go-github-com-stretchr-testify + go-github-com-swaggest-assertjson + go-go-uber-org-mock + go-golang-org-x-crypto + go-golang-org-x-term)) + (home-page "https://github.com/hetznercloud/cli") + (synopsis "Command-line interface for the Hetzner Cloud service") + (description + "This package provides the @code{hcloud} binary, a command-line interface +for interacting with the @url{https://www.hetzner.com/,Hetzner Cloud} +service.") + (license license:expat))) + (define-public progress (package (name "progress") @@ -5463,7 +5514,6 @@ disk utilization, priority, username, state, and exit code.") (list #:install-source? #f #:import-path "github.com/linuxboot/fiano" - #:unpack-path "github.com/linuxboot/fiano" #:phases #~(modify-phases %standard-phases ;; XXX: Replace this part when it's implemented in go-build-system. @@ -5475,10 +5525,7 @@ disk utilization, priority, username, state, and exit code.") (string-append import-path "/cmds/" cmd))) (list "cbfs" "create-ffs" - ;; TODO: Not packed yet in guix, long jorney: - ;; - github.com/tjfoc/gmsm - ;; - ;; "fittool" + "fittool" "fmap" "fspinfo" "glzma" @@ -5493,20 +5540,14 @@ disk utilization, priority, username, state, and exit code.") (invoke "go" "test" "-v" (string-append import-path dir "/..."))) (list "/pkg/bytes" - ;; TODO: Not packed yet in Guix, long jorney: - ;; - github.com/jedib0t - ;; - ;; "/pkg/amd" + "/pkg/amd" "/pkg/cbfs" "/pkg/compression" "/pkg/fmap" "/pkg/fsp" "/pkg/guid" "/pkg/guid2english" - ;; TODO: Not packed yet in Guix, long jorney: - ;; - github.com/tjfoc/gmsm - ;; - ;; "/pkg/intel" + "/pkg/intel" "/pkg/knownguids" "/pkg/log" "/pkg/uefi" @@ -5533,7 +5574,7 @@ disk utilization, priority, username, state, and exit code.") (install-file cmd bindir)) (list "cbfs" "create-ffs" - ;; "fittool" + "fittool" "fmap" "fspinfo" "glzma" @@ -5542,11 +5583,18 @@ disk utilization, priority, username, state, and exit code.") "utk")))))))) (inputs (list go-github-com-dustin-go-humanize + go-github-com-fatih-camelcase go-github-com-hashicorp-go-multierror + go-github-com-jedib0t-go-pretty-v6 go-github-com-jessevdk-go-flags + go-github-com-klauspost-compress go-github-com-pierrec-lz4 go-github-com-spf13-pflag + go-github-com-stretchr-testify + go-github-com-tjfoc-gmsm go-github-com-ulikunitz-xz + go-github-com-xaionaro-go-bytesextra + go-github-com-xaionaro-gosrc go-golang-org-x-text)) (home-page "https://github.com/linuxboot/fiano") (synopsis "UEFI image editor") @@ -5701,7 +5749,7 @@ FIFO and UNIX interprocess communication.") (define-public runitor (package (name "runitor") - (version "0.8.0") + (version "1.3.0-build.4") (source (origin (method git-fetch) @@ -5710,7 +5758,7 @@ FIFO and UNIX interprocess communication.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0vjfbyrbp5ywgzdz9j3x0qgjvnq7nw7193x8v9yy6k2cih1zsacn")))) + (base32 "00l83jcjmf5kcq8yzq575kk6ljkkr2xhm5cx27zzb1yhxn93xj7n")))) (build-system go-build-system) (arguments `(#:unpack-path "bdd.fi/x/runitor" @@ -6353,7 +6401,7 @@ file or files to several hosts.") (define-public doctl (package (name "doctl") - (version "1.94.0") + (version "1.120.0") (source (origin (method git-fetch) (uri (git-reference @@ -6362,7 +6410,12 @@ file or files to several hosts.") (file-name (git-file-name name version)) (sha256 (base32 - "0a221n0x7qrq0dbhhf1saya2g7jyy1798k3rhy9nzyvqzc4vnd0x")))) + "12fgymgiv6894ghar7ljg69hb7mi18pa2a74sp7fyymqvyhiv6z9")) + (snippet + ;; TODO: Unbundle more. + #~(begin (use-modules (guix build utils)) + (for-each delete-file-recursively + (list "vendor/golang.org")))))) (build-system go-build-system) (arguments (list #:import-path "github.com/digitalocean/doctl/cmd/doctl" @@ -6392,6 +6445,17 @@ file or files to several hosts.") "/etc/fish/completions/doctl.fish") (install-completion "zsh" "/etc/zsh/site-functions/_doctl")))))) + (native-inputs + (list go-golang-org-x-crypto + go-golang-org-x-mod + go-golang-org-x-net + go-golang-org-x-oauth2 + go-golang-org-x-sync + go-golang-org-x-sys + go-golang-org-x-term + go-golang-org-x-text + go-golang-org-x-time + go-golang-org-x-tools)) (home-page "https://github.com/digitalocean/doctl") (synopsis "Command line client for DigitalOcean") (description diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 540dddeba7..bc449a9591 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -1058,7 +1058,7 @@ precious backup space. (define-public restic-rest-server (package (name "restic-rest-server") - (version "0.12.1") + (version "0.13.0") (source (origin (method git-fetch) (uri (git-reference @@ -1067,7 +1067,7 @@ precious backup space. (file-name (git-file-name name version)) (sha256 (base32 - "18jk93j91dq4639nml4qnq1fq5j3s67ca3gvfka5aafln8ir8ffk")))) + "1ncsmwn4g1j555cgwkk5p8f093s42fip7dajhnh554jp1zx757m3")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 079a64ba36..fc1df4745d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -24460,9 +24460,9 @@ for nanopore cDNA, native RNA, and PacBio sequencing reads.") functions.") (license license:bsd-3))) -(define-public go-github-com-biogo-store-interval +(define-public go-github-com-biogo-store (package - (name "go-github-com-biogo-store-interval") + (name "go-github-com-biogo-store") (version "0.0.0-20201120204734-aad293a2328f") (source (origin (method git-fetch) @@ -24475,8 +24475,9 @@ functions.") "0skizrp1j6vgbl0g1kmh73picagqlvwckaqs0gkl6rai5lckxj8a")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/biogo/store/interval" - #:unpack-path "github.com/biogo/store")) + (list + #:skip-build? #t + #:import-path "github.com/biogo/store")) (propagated-inputs (list go-gopkg-in-check-v1 go-github-com-kr-pretty)) @@ -24487,45 +24488,9 @@ functions.") useful for bioinformatic analysis.") (license license:bsd-3))) -(define-public go-github-com-biogo-store-kdtree - (package - (inherit go-github-com-biogo-store-interval) - (name "go-github-com-biogo-store-kdtree") - (arguments - '(#:import-path "github.com/biogo/store/kdtree" - #:unpack-path "github.com/biogo/store")) - (propagated-inputs - (list go-gopkg-in-check-v1 - go-github-com-kr-pretty)) - (synopsis "kdtree store type for biogo"))) - -(define-public go-github-com-biogo-store-llrb - (package - (inherit go-github-com-biogo-store-interval) - (name "go-github-com-biogo-store-llrb") - (arguments - '(#:import-path "github.com/biogo/store/llrb" - #:unpack-path "github.com/biogo/store")) - (propagated-inputs - (list go-gopkg-in-check-v1 - go-github-com-kr-pretty)) - (synopsis "LLRB store for biogo"))) - -(define-public go-github-com-biogo-store-step - (package - (inherit go-github-com-biogo-store-interval) - (name "go-github-com-biogo-store-step") - (arguments - '(#:import-path "github.com/biogo/store/step" - #:unpack-path "github.com/biogo/store")) - (propagated-inputs - (list go-gopkg-in-check-v1 - go-github-com-kr-pretty)) - (synopsis "Step store for biogo"))) - -(define-public go-github-com-biogo-hts-bam +(define-public go-github-com-biogo-hts (package - (name "go-github-com-biogo-hts-bam") + (name "go-github-com-biogo-hts") (version "1.4.4") (source (origin (method git-fetch) @@ -24538,91 +24503,22 @@ useful for bioinformatic analysis.") "1vkcqxyajghx5p5j7g2i376nbsxh8q2smk0smlv8mi34yr7hlw5b")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/biogo/hts/bam" - #:unpack-path "github.com/biogo/hts")) - (propagated-inputs - (list go-gopkg-in-check-v1)) - (home-page "https://github.com/biogo/hts") - (synopsis "HTS BAM module for biogo") - (description "This package provides tools for handling BAM files.") - (license license:bsd-3))) - -(define-public go-github-com-biogo-hts-sam - (package - (inherit go-github-com-biogo-hts-bam) - (name "go-github-com-biogo-hts-sam") - (arguments - '(#:import-path "github.com/biogo/hts/sam" - #:unpack-path "github.com/biogo/hts")) - (propagated-inputs - (list go-gopkg-in-check-v1)) - (synopsis "HTS SAM module for biogo") - (description "This package provides tools for handling SAM files."))) - -(define-public go-github-com-biogo-hts-tabix - (package - (inherit go-github-com-biogo-hts-bam) - (name "go-github-com-biogo-hts-tabix") - (arguments - '(#:import-path "github.com/biogo/hts/tabix" - #:unpack-path "github.com/biogo/hts")) - (propagated-inputs - (list go-gopkg-in-check-v1)) - (synopsis "HTS Tabix module for biogo") - (description "This package provides tools for handling Tabix files."))) - -(define-public go-github-com-biogo-hts-bgzf - (package - (inherit go-github-com-biogo-hts-bam) - (name "go-github-com-biogo-hts-bgzf") - (arguments - '(#:import-path "github.com/biogo/hts/bgzf" - #:unpack-path "github.com/biogo/hts")) - (propagated-inputs + (list + #:skip-build? #t + #:import-path "github.com/biogo/hts" + ;; Tests try to get samples from <https://github.com/samtools/htslib>. + #:test-flags #~(list "-skip" "TestHasEOF|TestRead"))) + (native-inputs (list go-gopkg-in-check-v1)) - (synopsis "HTS bgzf module for biogo") - (description "This package provides tools for handling bgzf files."))) - -(define-public go-github-com-biogo-hts-cram - (package - (inherit go-github-com-biogo-hts-bam) - (name "go-github-com-biogo-hts-cram") - (arguments - '(#:import-path "github.com/biogo/hts/cram" - #:unpack-path "github.com/biogo/hts" - #:tests? #false)) ;require network access (propagated-inputs - (list go-gopkg-in-check-v1 - go-github-com-ulikunitz-xz + (list go-github-com-ulikunitz-xz go-github-com-kortschak-utter)) - (synopsis "HTS CRAM module for biogo") - (description "This package provides tools for handling CRAM files."))) - -(define-public go-github-com-biogo-hts-csi - (package - (inherit go-github-com-biogo-hts-bam) - (name "go-github-com-biogo-hts-csi") - (arguments - '(#:import-path "github.com/biogo/hts/csi" - #:unpack-path "github.com/biogo/hts")) - (propagated-inputs - (list go-gopkg-in-check-v1)) - (synopsis "Coordinate sorted indexing for biogo") - (description "This package implements CSIv1 and CSIv2 coordinate sorted -indexing."))) - -(define-public go-github-com-biogo-hts-fai - (package - (inherit go-github-com-biogo-hts-bam) - (name "go-github-com-biogo-hts-fai") - (arguments - '(#:import-path "github.com/biogo/hts/fai" - #:unpack-path "github.com/biogo/hts")) - (propagated-inputs - (list go-gopkg-in-check-v1)) - (synopsis "Fasta sequence file index handling for biogo") - (description "This package implements FAI fasta sequence file index -handling."))) + (home-page "https://github.com/biogo/hts") + (synopsis "HTS module for biogo") + (description + "This package provides tools for handling BAM, SAM, Tabix, bgzf, CRAM, +CSIv1, CSIv2 and FAI files.") + (license license:bsd-3))) (define-public go-github-com-biogo-biogo (package @@ -24642,11 +24538,8 @@ handling."))) '(#:import-path "github.com/biogo/biogo")) (propagated-inputs (list go-gopkg-in-check-v1 - go-github-com-biogo-store-interval - go-github-com-biogo-store-kdtree - go-github-com-biogo-store-llrb - go-github-com-biogo-store-step - go-github-com-biogo-hts-bam + go-github-com-biogo-store + go-github-com-biogo-hts go-github-com-biogo-graph)) (home-page "https://github.com/biogo/biogo") (synopsis "Bioinformatics library for Go") diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 6717db867f..ed7a13a2c9 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -49,7 +49,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages golang) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages perl) @@ -436,36 +436,44 @@ configured to show the current time in different timezones.") (license license:bsd-3)))) (define-public hebcal - (let ((commit "2384bb88dc1a41a4a5ae57a29fb58b2dd49a475d") - (revision "0")) - (package - (name "hebcal") - (version (git-version "5.3.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hebcal/hebcal") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "12rv3b51jb7wcjwmmizz9jkw7gh37yklys4xncvpzgxdkkfgmmjx")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/hebcal/hebcal")) - (inputs - (list go-github-com-hebcal-hebcal-go - go-github-com-pborman-getopt)) - (synopsis "Perpetual Jewish Calendar program") - (description - "Hebcal is a program for converting between Hebrew and Gregorian -dates, and generating lists of Jewish holidays for a given year. -Shabbat, holiday candle lighting, and havdalah times are approximated -using your location. + (package + (name "hebcal") + (version "5.8.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hebcal/hebcal") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a1b9jip1ha6bzv6xg9fx47q167yzgbxjvrp5zngv175nzl9427j")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/hebcal/hebcal" + #:phases + #~(modify-phases %standard-phases + ;; taken from Makefile + (add-after 'unpack 'set-defautl-city + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (with-output-to-file "dcity.go" + (lambda () + (format #t "package main~%var defaultCity = ~s~%" + "Paris"))))))))) + (inputs + (list go-github-com-hebcal-hebcal-go + go-github-com-pborman-getopt-v2)) + (home-page "https://github.com/hebcal/hebcal") + (synopsis "Perpetual Jewish Calendar program") + (description + "Hebcal is a program for converting between Hebrew and Gregorian dates, +and generating lists of Jewish holidays for a given year. Shabbat, holiday +candle lighting, and havdalah times are approximated using your location. -It can also show daily prayer times, the weekly Torah reading, and -the daily leaf of Talmud. The program can help with counting of the -Omer or with calculation of Hebrew yahrzeits, birthdays, or -anniversaries.") - (home-page "https://github.com/hebcal/hebcal") - (license license:gpl2+)))) +It can also show daily prayer times, the weekly Torah reading, and the daily +leaf of Talmud. The program can help with counting of the Omer or with +calculation of Hebrew yahrzeits, birthdays, or anniversaries.") + (license license:gpl2+))) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 47047de59e..df858af4bd 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -32,6 +32,7 @@ ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> @@ -1124,6 +1125,53 @@ generation.") similar to unit tests.") (license license:asl2.0))) +(define-public gotestsum + (package + (name "gotestsum") + (version "1.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gotestyourself/gotestsum") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fx92jh6ay4rk1ljbgp9b2m4fafqwy0a19q7lhdabgb1j8dvgxvs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gotest.tools/gotestsum" + #:test-flags + #~(list "-skip" + (string-join + (list "TestE2E_IgnoresWarnings" + "TestE2E_MaxFails_EndTestRun" + "TestScanTestOutput_TestTimeoutPanicRace/panic-race-2") + "|")) + ;; Run just unit test, integration tests from "testjson" require: run + ;; 'go test . -update' to automatically update + ;; testdata/summary/with-run-id to the new expected value.' + #:test-subdirs #~(list "cmd/..." "internal/..."))) + (native-inputs + (list go-github-com-bitfield-gotestdox + go-github-com-dnephin-pflag + go-github-com-fatih-color + go-github-com-fsnotify-fsnotify + go-github-com-google-go-cmp + go-github-com-google-shlex + go-golang-org-x-sync + go-golang-org-x-sys + go-golang-org-x-term + go-golang-org-x-tools + go-gotest-tools-v3)) + (synopsis "Go test runner with output optimized for humans") + (description "This package provides a @code{go test} runner with output +optimized for humans, JUnit XML for CI integration, and a summary of the +test results.") + (home-page "https://github.com/gotestyourself/gotestsum") + (license license:asl2.0))) + (define-public greatest (package (name "greatest") @@ -1301,7 +1349,7 @@ but it works for any C/C++ project.") (define-public actionlint (package (name "actionlint") - (version "1.7.2") + (version "1.7.6") (source (origin (method git-fetch) @@ -1310,7 +1358,7 @@ but it works for any C/C++ project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1rgsxv4clgfyl4gr8bjk81p4b87c6hr34flxzw6011h0vjc54n7x")))) + (base32 "1waq9v48pbys8b8qmmvl0wi77jzri033fh8194gcwfzipvxb6y9l")))) (build-system go-build-system) (arguments (list @@ -1322,13 +1370,16 @@ but it works for any C/C++ project.") #:unpack-path "github.com/rhysd/actionlint")) ;; XXX: Install Man page, wrap with shellcheck and pyflakes. (native-inputs - (list go-github-com-fatih-color + (list go-github-com-bmatcuk-doublestar-v4 + go-github-com-fatih-color + go-github-com-google-go-cmp go-github-com-mattn-go-colorable go-github-com-mattn-go-runewidth - go-github-com-robfig-cron + go-github-com-mattn-go-shellwords + go-github-com-robfig-cron-v3 + go-github-com-yuin-goldmark go-golang-org-x-sync - go-golang-org-x-sync - go-github-com-google-go-cmp + go-golang-org-x-sys go-gopkg-in-yaml-v3)) (home-page "https://rhysd.github.io/actionlint/") (synopsis "Static checker for GitHub Actions workflow files") diff --git a/gnu/packages/configuration-management.scm b/gnu/packages/configuration-management.scm index b654975a42..36450ad70c 100644 --- a/gnu/packages/configuration-management.scm +++ b/gnu/packages/configuration-management.scm @@ -25,9 +25,9 @@ #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-vcs) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) - #:use-module (gnu packages version-control) #:use-module (gnu packages textutils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -100,7 +100,7 @@ go-github-com-spf13-viper go-github-com-stretchr-testify go-github-com-twpayne-go-shell - go-github-com-twpayne-go-vfs + go-github-com-twpayne-go-vfs-1.0.1 go-github-com-twpayne-go-vfsafero go-github-com-twpayne-go-xdg-v3 go-github-com-zalando-go-keyring diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index e5e3342b6d..3e9cd517a2 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -49,8 +49,9 @@ #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages compression) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages guile) #:use-module (gnu packages kerberos) #:use-module (gnu packages logging) @@ -201,47 +202,50 @@ tunneling, and so on.") (prepend libssh2))) (properties `((hidden? . #t))))) +;; XXX: It looks like unmaintained, last time updated in 2018. (define-public kurly (package (name "kurly") (version "1.2.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/davidjpeacock/kurly.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "003jv2k45hg2svhjpy5253ccd250vi2r17x2zhm51iw54kgwxipm")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/davidjpeacock/kurly") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "003jv2k45hg2svhjpy5253ccd250vi2r17x2zhm51iw54kgwxipm")))) (build-system go-build-system) (arguments - `(#:import-path "gitlab.com/davidjpeacock/kurly" - #:install-source? #f - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-documentation - (lambda* (#:key import-path outputs #:allow-other-keys) - (let* ((source (string-append "src/" import-path)) - (out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/" ,name "-" ,version)) - (man (string-append out "/share/man/man1"))) - (with-directory-excursion source - (install-file "README.md" doc) - (mkdir-p man) - (copy-file "doc/kurly.man" - (string-append man "/kurly.1"))) - #t)))))) + (list + #:install-source? #f + #:import-path "gitlab.com/davidjpeacock/kurly" + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'install-documentation + (lambda* (#:key import-path #:allow-other-keys) + (let* ((source (string-append "src/" import-path)) + (doc (string-append #$output "/share/doc/" + #$name "-" #$version)) + (man (string-append #$output "/share/man/man1"))) + (with-directory-excursion source + (install-file "README.md" doc) + (mkdir-p man) + (copy-file "doc/kurly.man" + (string-append man "/kurly.1"))))))))) (inputs - (list go-github-com-alsm-ioprogress go-github-com-aki237-nscjar + (list go-github-com-alsm-ioprogress + go-github-com-aki237-nscjar go-github-com-urfave-cli)) - (synopsis "Command-line HTTP client") - (description "kurly is an alternative to the @code{curl} program written in -Go. kurly is designed to operate in a similar manner to curl, with select -features. Notably, kurly is not aiming for feature parity, but common flags and -mechanisms particularly within the HTTP(S) realm are to be expected. kurly does -not offer a replacement for libcurl.") (home-page "https://gitlab.com/davidjpeacock/kurly") + (synopsis "Command-line HTTP client") + (description + "kurly is an alternative to the @code{curl} program written in Go. kurly +is designed to operate in a similar manner to curl, with select features. +Notably, kurly is not aiming for feature parity, but common flags and +mechanisms particularly within the HTTP(S) realm are to be expected. kurly +does not offer a replacement for libcurl.") (license license:asl2.0))) (define-public guile-curl diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index edcf536f7d..95a9c1fa6c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -713,59 +713,6 @@ around TangentOrg’s libmemcached library, and can be used as a drop-in replacement for the @code{python-memcached} library.") (license license:bsd-3))) -(define-public go-github-com-bradfitz-gomemcache - (package - (name "go-github-com-bradfitz-gomemcache") - (version "0.0.0-20190913173617-a41fca850d0b") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bradfitz/gomemcache") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "18qpds6xr73jy80pj7l3pc1l1ndcy3va2dl8fzk17bgwg49sxwfz")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Fixes the 'untyped-int -> string of one rune' issue. - ;; https://github.com/golang/go/issues/32479 - (substitute* "memcache/memcache_test.go" - (("string\\(0x7f") "string(rune(0x7f)")))))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/bradfitz/gomemcache" - #:import-path "github.com/bradfitz/gomemcache/memcache")) - (home-page "https://github.com/bradfitz/gomemcache") - (synopsis "Memcache client library in Go") - (description - "This is a memcache client library for the Go programming language.") - (license license:asl2.0))) - -(define-public go-github-com-couchbase-gomemcached - (package - (name "go-github-com-couchbase-gomemcached") - (version "0.1.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/couchbase/gomemcached") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "10w74gc05x5naspls39sv2r92krrg31mk266w3lyqqwc0s3fxysl")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/couchbase/gomemcached")) - (native-inputs - (list go-github-com-stretchr-testify)) - (home-page "https://github.com/couchbase/gomemcached") - (synopsis "Memcached binary protocol toolkit for go") - (description - "This package provides memcache client and server functionality.") - (license license:expat))) - (define-public litecli (package (name "litecli") @@ -3030,32 +2977,6 @@ one-to-one, while still providing an idiomatic interface.") "Package rdb implements parsing and encoding of the Redis RDB file format.") (license license:expat))) -(define-public go-github-com-gomodule-redigo - (package - (name "go-github-com-gomodule-redigo") - (version "1.8.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gomodule/redigo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wplaaxg7f6c6c08gdp33l48hygn8gq1rhlnjzr1c9qcggsm07k1")))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/gomodule/redigo" - #:import-path "github.com/gomodule/redigo/redis")) - (native-inputs - (list go-github-com-stretchr-testify - redis)) - (home-page "https://github.com/gomodule/redigo") - (synopsis "Go client for Redis") - (description - "Redigo is a Go client for the Redis database.") - (license license:asl2.0))) - (define-public kyotocabinet (package (name "kyotocabinet") @@ -3676,34 +3597,6 @@ etc., and an SQL engine for performing simple SQL queries.") (license (list license:lgpl2.0 license:gpl2+)))) -(define-public go-gopkg-in-mgo-v2 - (package - (name "go-gopkg-in-mgo-v2") - (version "2.0.0-20190816093944-a6b53ec6cb22") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gopkg.in/mgo.v2") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lgvwxsbmdrf4938qkxl56wbwgbphk2qqnmpf73qdmlv4qsg14na")))) - (build-system go-build-system) - (arguments - '(#:tests? #f ; Tests try to use a running mongodb server. - #:import-path "gopkg.in/mgo.v2")) - (propagated-inputs - (list go-gopkg.in-tomb.v2)) - (inputs - (list cyrus-sasl)) - (native-inputs - (list go-gopkg-in-check-v1)) - (home-page "https://gopkg.in/mgo.v2") - (synopsis "MongoDB driver for Go") - (description "This package provides a MongoDB driver for Go.") - (license license:bsd-2))) - (define-public python-lmdb (package (name "python-lmdb") @@ -5803,7 +5696,17 @@ compatible with SQLite using a graphical user interface.") (arguments (list #:install-source? #f - #:import-path "github.com/lighttiger2505/sqls")) + #:import-path "github.com/lighttiger2505/sqls" + ;; XXX: Try to enable more or all tests. + #:test-subdirs #~(list "ast/..." + "dialect/..." + "parser/..." + "internal/completer" + "internal/config/..." + "internal/database" + "internal/debug" + "internal/formatter" + "internal/lsp"))) (native-inputs (list go-github-com-google-go-cmp go-github-com-go-sql-driver-mysql diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 800034624e..3616faf61c 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -71,7 +71,6 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages graphics) @@ -1324,7 +1323,7 @@ on your file system and offers to remove it. @command{rmlint} can find: (define-public lf (package (name "lf") - (version "31") + (version "33") (source (origin (method git-fetch) @@ -1333,7 +1332,7 @@ on your file system and offers to remove it. @command{rmlint} can find: (commit (string-append "r" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03icsf4c3j7295s1d8s6srz5gf09a3lghgw3zfcd86p03zhkzsaf")))) + (base32 "1jmqf27ysi35n3hqahlzs5hym7i4w1mplklrvv0lc0baddzx7av8")))) (build-system go-build-system) (arguments (list @@ -1341,10 +1340,13 @@ on your file system and offers to remove it. @command{rmlint} can find: #:import-path "github.com/gokcehan/lf")) (native-inputs (list go-github-com-djherbis-times + go-github-com-fsnotify-fsnotify go-github-com-gdamore-tcell-v2 go-github-com-mattn-go-runewidth + go-github-com-xuanwo-go-locale + go-golang-org-x-sys go-golang-org-x-term - go-gopkg-in-djherbis-times-v1)) + go-golang-org-x-text)) (home-page "https://github.com/gokcehan/lf") (synopsis "Console file browser similar to Ranger") (description diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index bfc1898220..aeed94e804 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -45,6 +45,8 @@ #:use-module (gnu packages glib) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages linux) #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) @@ -194,6 +196,9 @@ Python without keeping their credentials in a Docker configuration file.") "REVISION=0"))) (list #:import-path "github.com/containerd/containerd" + ;; XXX: This package contains full vendor, tests fail when run with + ;; "...", limit to the project's root. Try to unvendor. + #:test-subdirs #~(list ".") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-paths diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 44c9c17eb8..f42a216972 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -47,7 +47,6 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-web) @@ -320,7 +319,8 @@ Currently available boards include: (with-directory-excursion bin (rename-file "v1" "gotypist")))))))) (native-inputs - (list go-github-com-gizak-termui go-github-com-stretchr-testify)) + (list go-github-com-gizak-termui-v3 + go-github-com-stretchr-testify)) (home-page "https://github.com/KappaDistributive/gotypist") (synopsis "Simple typing trainer for text terminals") (description @@ -1111,7 +1111,7 @@ machine, and more.") (define-public exercism (package (name "exercism") - (version "3.1.0") + (version "3.5.4") (source (origin (method git-fetch) @@ -1121,7 +1121,7 @@ machine, and more.") (file-name (git-file-name name version)) (sha256 (base32 - "0ah5v4pqq31bvj7s4rg3jyjn7jwxa15w31cn4c317gsqmi0n8rzl")) + "0shh84g7j977kn9kcm09rj3lz6a3y5qq9yvklsldgb9zvass5szd")) (patches (search-patches "exercism-disable-self-update.patch")))) (build-system go-build-system) (arguments diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 06aab0801c..22dcb4d9b0 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -511,6 +511,7 @@ significantly increases the risk of irreversible data loss!") (build-system go-build-system) (arguments (list + #:install-source? #f #:import-path "github.com/rfjakob/gocryptfs" #:build-flags #~(list @@ -519,6 +520,15 @@ significantly increases the risk of irreversible data loss!") " -X main.GitVersionFuse=" #$(package-version go-github-com-hanwen-go-fuse-v2) " -X main.BuildDate=" "[reproducible]")) + #:test-flags + #~(list "-skip" (string-join + (list "TestPrepareAtSyscall" + "TestPrepareAtSyscallPlaintextnames" + "TestGetdents") + "|")) + ;; XXX: Test suit requires a root access to mount, limit to some unit + ;; tests, figure out how to enable most of the them. + #:test-subdirs #~(list "internal/...") #:phases #~(modify-phases %standard-phases ;; after 'check phase, should maybe unmount leftover mounts as in @@ -536,18 +546,14 @@ significantly increases the risk of irreversible data loss!") "github.com/rfjakob/gocryptfs/contrib/findholes" "github.com/rfjakob/gocryptfs/contrib/atomicrename"))))))) (native-inputs (list - go-github-com-hanwen-go-fuse-v2 go-github-com-aperturerobotics-jacobsa-crypto - go-github-com-jacobsa-oglematchers - go-github-com-jacobsa-oglemock - go-github-com-jacobsa-ogletest - go-github-com-jacobsa-reqtrace + go-github-com-hanwen-go-fuse-v2 + go-github-com-moby-sys-mountinfo go-github-com-pkg-xattr go-github-com-rfjakob-eme go-github-com-sabhiram-go-gitignore go-github-com-spf13-pflag go-golang-org-x-crypto - go-golang-org-x-net go-golang-org-x-sys go-golang-org-x-term openssl @@ -1960,31 +1966,6 @@ Dropbox API v2.") local file system using FUSE.") (license license:gpl3+))) -(define-public go-github-com-hanwen-fuse - (package - (name "go-github-com-hanwen-fuse") - (version "2.0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hanwen/go-fuse") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1y44d08fxyis99s6jxdr6dbbw5kv3wb8lkhq3xmr886i4w41lz03")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/hanwen/go-fuse")) - (propagated-inputs - (list go-golang-org-x-sys)) - (home-page "https://github.com/hanwen/go-fuse") - (synopsis "FUSE bindings for Go") - (description - "This package provides Go native bindings for the FUSE kernel module.") - (license license:bsd-3))) - (define-public rewritefs (let ((revision "1") (commit "3a56de8b5a2d44968b8bc3885c7d661d46367306")) @@ -2146,7 +2127,7 @@ memory-efficient.") (setenv "DESTDIR" #$output) (invoke "make" "install"))))))) (inputs - (list go-github-com-mattn-go-sqlite3 go-github-com-hanwen-fuse)) + (list go-github-com-mattn-go-sqlite3 go-github-com-hanwen-go-fuse)) (home-page "https://github.com/oniony/TMSU") (synopsis "Tag files and access them through a virtual file system") (description diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index e55a04b4c3..ae40e5786e 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -157,6 +157,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gperf) #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) @@ -10657,7 +10658,7 @@ terminal full-window applications.") '(#:import-path "git.tuxfamily.org/harmonist/harmonist")) (inputs `(("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2) - ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go) + ("go-github-com-nsf-termbox-go" ,go-github-com-nsf-termbox-go) ("go-github-com-anaseto-gruid" ,go-github-com-anaseto-gruid) ("go-github-com-anaseto-gruid-tcell" ,go-github-com-anaseto-gruid-tcell))) (home-page "https://harmonist.tuxfamily.org/") diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm index 7049acf8c2..b7e6d14e37 100644 --- a/gnu/packages/golang-build.scm +++ b/gnu/packages/golang-build.scm @@ -1,12 +1,12 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019, 2020 Leo Famulari <leo@famulari.name> +;;; Copyright © 2017-2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> +;;; Copyright © 2019, 2020 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 HiPhish <hiphish@posteo.de> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> -;;; Copyright © 2020 Vagrant Cascadian <vagrant@debian.org> -;;; Copyright © 2020, 2023, 2024 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020, 2022, 2023, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> @@ -59,10 +59,41 @@ ;;; ;;; Code: +(define-public go-github-com-goccmack-gocc + (package + (name "go-github-com-goccmack-gocc") + (version "0.0.0-20230228185258-2292f9e40198") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/goccmack/gocc") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ah1z1bmn9y9sbh2z1jxsjgsrv1rfrzzzi4c4nq646z2n25c2x8s")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/goccmack/gocc" + ;; Test requiring gocc in PATH. + #:test-flags #~(list "-skip" "TestEmptyKeyword"))) + (propagated-inputs + (list go-golang-org-x-mod)) + (home-page "https://github.com/goccmack/gocc") + (synopsis "Parser/Scanner Generator") + (description + "Gocc is a compiler kit for Go written in Go. Gocc generates lexers and +parsers or stand-alone DFAs or parsers from a BNF. Lexers are DFAs, which +recognise regular languages. Gocc lexers accept UTF-8 input. Gocc parsers are +PDAs, which recognise LR-1 languages. Optional LR1 conflict handling +automatically resolves shift / reduce and reduce / reduce conflicts.") + (license license:asl2.0))) + (define-public go-github-com-golang-glog (package (name "go-github-com-golang-glog") - (version "1.2.2") + (version "1.2.3") (source (origin (method git-fetch) @@ -71,11 +102,13 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1a9ybpgp6grlpbhg2559sh54pxc9qfkhr4zvylw8qv1bny8c90q0")))) + (base32 "1sfgcf18wg4glcamgq9njmbny17xq0dd14g3094sj5c1cwjij982")))) (build-system go-build-system) (arguments (list #:import-path "github.com/golang/glog")) + (native-inputs + (list go-github-com-google-go-cmp)) (home-page "https://github.com/golang/glog") (synopsis "Leveled execution logs for Golang") (description @@ -103,14 +136,7 @@ functions that have a name matched by regex:.") #:import-path "github.com/golang/protobuf" #:phases #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (delete 'build)))) ; no go files in project's root (native-inputs (list go-github-com-google-go-cmp)) (propagated-inputs @@ -279,10 +305,93 @@ replace a file or symbolic link.") 1.1: Authentication and Security Services.") (license license:bsd-3))) +(define-public go-github-com-mmcloughlin-avo + (package + (name "go-github-com-mmcloughlin-avo") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mmcloughlin/avo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0lv771lb9nxaxqiz7l83k35rc82588xihixxrik6yapg13v675mp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mmcloughlin/avo")) + (propagated-inputs + (list go-golang-org-x-arch + go-golang-org-x-sys + go-golang-org-x-tools)) + (home-page "https://github.com/mmcloughlin/avo") + (synopsis "Generate x86 Assembly with Go") + (description + "The avo package presents a familiar assembly-like interface that +simplifies development without sacrificing performance.") + (license license:bsd-3))) + +;; XXX: This repository has been archived by the owner on Dec 1, 2021. It is +;; now read-only. +(define-public go-github-com-pkg-errors + (package + (name "go-github-com-pkg-errors") + (version "0.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/errors") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq")))) + (build-system go-build-system) + (arguments + (list + ;; Tests fail with a newer version of Golang (1.21) due to some API + ;; changes in how the module path is calculated which is not reflected + ;; in tests. + #:tests? #f + #:import-path "github.com/pkg/errors")) + (home-page "https://github.com/pkg/errors") + (synopsis "Go error handling primitives") + (description + "This package provides @code{error}, which offers simple error handling +primitives in Go.") + (license license:bsd-2))) + +(define-public go-github-com-twitchyliquid64-golang-asm + (package + (name "go-github-com-twitchyliquid64-golang-asm") + (version "0.15.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twitchyliquid64/golang-asm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1akw41i0snxqw9lqzmnn4gx6hd5js5dr1vmfkm49wxans4k14vw4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/twitchyliquid64/golang-asm")) + (home-page "https://github.com/twitchyliquid64/golang-asm") + (synopsis "Assembler from the Go compiler, in library form") + (description + "This package provides a mirror of the assembler from the Go compiler, with +import paths re-written for the assembler to be functional as a standalone +library.") + (license license:bsd-3))) + (define-public go-github-com-yuin-goldmark (package (name "go-github-com-yuin-goldmark") - (version "1.7.4") + (version "1.7.8") (source (origin (method git-fetch) @@ -291,24 +400,20 @@ replace a file or symbolic link.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01807xs8501cyhkrrgg6k9ghl9jrw6dp0ry9knygck48canckxs2")))) + (base32 "1iz7x1hqdixx8dkcbaa8lr842i59n843mc553jv5grq057s76yjx")))) (build-system go-build-system) (arguments (list #:import-path "github.com/yuin/goldmark" #:phases #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) + (add-before 'check 'pre-check + (lambda* (#:key tests? #:allow-other-keys) (when tests? ;; We need to extend the timeout on some architectures. ;; 64 is the default in extra_test.go. (setenv "GOLDMARK_TEST_TIMEOUT_MULTIPLIER" - (number->string (* 64 5))) - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (number->string (* 64 5))))))))) (home-page "https://github.com/yuin/goldmark/") (synopsis "Markdown parser") (description @@ -318,7 +423,7 @@ replace a file or symbolic link.") (define-public go-github-com-yuin-goldmark-emoji (package (name "go-github-com-yuin-goldmark-emoji") - (version "1.0.3") + (version "1.0.4") (source (origin (method git-fetch) @@ -327,7 +432,7 @@ replace a file or symbolic link.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1mx8rkxd3ksvgi41jvf365x9mf00sxiqq4wm75x4sasd2lgcbrl4")))) + (base32 "001dgjaa9crbl1yb803gyq1dbcnnfzvv205ycgd97qw9p4xjg21g")))) (build-system go-build-system) (arguments (list @@ -341,10 +446,44 @@ replace a file or symbolic link.") @url{http://github.com/yuin/goldmark,goldmark}.") (license license:expat))) +(define-public go-golang-org-x-arch + (package + (name "go-golang-org-x-arch") + (version "0.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/arch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "104mnfx3v6lwjndjd35ly8r6yb4bb74lq5sq1cqpxw38mqyzqmx2")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "golang.org/x/arch" + #:test-subdirs #~(list "arm/..." + "arm64/..." + "loong64/..." + "ppc64/..." + ;; "riscv64/..."; failed to build tests + "s390x/..." + "x86/..."))) + (native-inputs + (list go-rsc-io-pdf)) + (home-page "https://go.googlesource.com/arch") + (synopsis "Machine architecture information used by the Go toolchain") + (description + "This package provides a machine architecture information used by the Go +toolchain. The parts needed in the main Go repository are copied in.") + (license license:bsd-3))) + (define-public go-golang-org-x-crypto (package (name "go-golang-org-x-crypto") - (version "0.27.0") + (version "0.31.0") (source (origin (method git-fetch) @@ -353,74 +492,44 @@ replace a file or symbolic link.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1b5jgzz7fn1br2vw6m90z902i5r14sp0wj8s0lvlbm79xvi38x19")))) + (base32 "0pd3qipz2wb5wbbb44lgbfygxhf9lq5rknf82p2dmaicszn0rd53")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separatly: + ;; + ;; - olang.org/x/crypto/x509roots/fallback + (for-each delete-file-recursively (list "x509roots/fallback")))))) (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "golang.org/x/crypto" #:phases #~(modify-phases %standard-phases + ;; Network access requried: go mod download -json + ;; github.com/google/wycheproof@v0.0.0-20191219022705-2196000605e4. + ;; + ;; internal/wycheproof/wycheproof_test.go + ;; Download the JSON test files from github.com/google/wycheproof + ;; using `go mod download -json` so the cached source of the testdata + ;; can be used in the following tests. + ;; + ;; <https://github.com/google/wycheproof> -> + ;; <https://github.com/C2SP/wycheproof> + ;; + ;; The structs for these tests are generated from the schemas + ;; provided in + ;; <https://github.com/google/wycheproof/tree/master/schemas> using + ;; <https://github.com/a-h/generate>. (add-after 'unpack 'remove-test-files (lambda* (#:key import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (for-each delete-file - (list - ;; Network access requried: go mod download -json - ;; github.com/google/wycheproof@v0.0.0-20191219022705-2196000605e4. - "internal/wycheproof/aead_test.go" - "internal/wycheproof/aes_cbc_test.go" - "internal/wycheproof/dsa_test.go" - "internal/wycheproof/ecdh_stdlib_test.go" - "internal/wycheproof/ecdh_test.go" - "internal/wycheproof/ecdsa_test.go" - "internal/wycheproof/eddsa_test.go" - "internal/wycheproof/hkdf_test.go" - "internal/wycheproof/hmac_test.go" - "internal/wycheproof/rsa_oaep_decrypt_test.go" - "internal/wycheproof/rsa_pss_test.go" - "internal/wycheproof/rsa_signature_test.go" - "internal/wycheproof/wycheproof_test.go"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" - ;; acme - cycle with go-golang-org-x-net - "./argon2/..." - "./bcrypt/..." - "./blake2b/..." - "./blake2s/..." - "./blowfish/..." - "./bn256/..." - "./cast5/..." - "./chacha20/..." - "./chacha20poly1305/..." - "./cryptobyte/..." - "./curve25519/..." - "./ed25519/..." - "./hkdf/..." - "./internal/..." - "./md4/..." - "./nacl/..." - "./ocsp/..." - "./openpgp/..." - "./otr/..." - "./pbkdf2/..." - "./pkcs12/..." - "./poly1305/..." - "./ripemd160/..." - "./salsa20/..." - "./scrypt/..." - "./sha3/..." - "./ssh/..." - "./tea/..." - "./twofish/..." - "./x509roots/..." - "./xtea/..." - "./xts/...")))))))) + (find-files "internal/wycheproof" ".*_test\\.go$")))))))) + (native-inputs + (list go-golang-org-x-net-bootstrap + go-golang-org-x-text-bootstrap)) (propagated-inputs (list go-golang-org-x-sys go-golang-org-x-term)) (home-page "https://go.googlesource.com/crypto/") @@ -430,10 +539,21 @@ replace a file or symbolic link.") language.") (license license:bsd-3))) +(define-public go-golang-org-x-crypto-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-crypto) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/crypto")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-exp (package (name "go-golang-org-x-exp") - (version "0.0.0-20240808152545-0cdaa3abc0fa") + (version "0.0.0-20241217172543-b2144cdd0a67") (source (origin (method git-fetch) @@ -442,7 +562,7 @@ language.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1sa03fm57326qnchvfza7am7jjlz32l1yyqbdvy6mknw5bmp8a71")) + (base32 "01dq7llbqqdybv5s372zwlfiyq2syqpfqs7h4lxvbpqjq0aayf60")) (modules '((guix build utils))) (snippet #~(begin @@ -459,29 +579,38 @@ language.") (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "golang.org/x/exp" + #:test-flags + #~(list "-skip" + (string-join + (list + ;; Disable failing tests: error running `go mod init`: + ;; go: modules disabled by GO111MODULE=off. + "TestRelease_gitRepo_uncommittedChanges" + "TestFailure" + ;; Delete: want nil discarded elements, got + ;; 0xc000012858, 0xc000012860 + "TestDeleteClearTail" + ;; DeleteFunc: want nil discarded elements, got + ;; 0xc000012910, 0xc000012918 + "TestDeleteFuncClearTail" + ;; Compact: want nil discarded elements, got + ;; 0xc000012b30, 0xc000012b38 + "TestCompactClearTail" + ;; CompactFunc: want nil discarded elements, got + ;; 0xc000012be8, 0xc000012bf0 + "TestCompactFuncClearTail" + ;; Replace: want nil discarded element, got + ;; 0xc000013058 + "TestReplaceClearTail") + "|")) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'remove-failing-tests + (add-after 'unpack 'remove-benchmarks (lambda* (#:key import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) - ;; Benchmark requires other modules to pass tests, delete them. - (delete-file-recursively "slog/benchmarks") - (substitute* (find-files "." "\\_test.go$") - ;; Disable failing tests: error running `go mod init`: go: - ;; modules disabled by GO111MODULE=off; see 'go help modules' - ;; , exit status 1 - (("TestFailure") "OffTestFailure") - (("TestRelease_gitRepo_uncommittedChanges") - "OffTestRelease_gitRepo_uncommittedChanges"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (delete-file-recursively "slog/benchmarks"))))))) (propagated-inputs (list go-github-com-google-go-cmp go-golang-org-x-mod @@ -493,10 +622,21 @@ language.") directory) packages.") (license license:bsd-3))) +(define-public go-golang-org-x-exp-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-exp) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/exp")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-exp-typeparams (package (name "go-golang-org-x-exp-typeparams") - (version "0.0.0-20240707233637-46b078467d37") + (version "0.0.0-20241210194714-1829a127f884") (source (origin (method git-fetch) @@ -505,12 +645,14 @@ directory) packages.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17pwikql9x1bm5ci0kk4mlad7smkph0cgq1pi2b43gnhjz8m96l0")))) + (base32 "16lc0sgydpr4gbb5c9ygq86jdmq6f9qjf0vv1m5mhh3dggc1fzpp")))) (build-system go-build-system) (arguments (list #:import-path "golang.org/x/exp/typeparams" - #:unpack-path "golang.org/x/exp")) + #:unpack-path "golang.org/x/exp" + ;; Could not import go/ast (can't find import: "go/ast"). + #:test-flags #~(list "-skip" "TestAPIConsistency"))) (home-page "https://pkg.go.dev/golang.org/x/exp/typeparams") (synopsis "Golang common utilities for writing tools") (description @@ -530,7 +672,7 @@ compile does not support generics.") (define-public go-golang-org-x-image (package (name "go-golang-org-x-image") - (version "0.20.0") + (version "0.23.0") (source (origin (method git-fetch) @@ -539,32 +681,18 @@ compile does not support generics.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0bn85bqpwkznny3lrnlfk05s2p917rbq0kplz36xyv490a74pi7l")))) + (base32 "0xm3cqzh0j6s8m8k6c3rd170qbmz2lwb628jb48cl4wr6ivq5fp9")))) (build-system go-build-system) (arguments (list #:import-path "golang.org/x/image" #:phases #~(modify-phases %standard-phases - ;; XXX: go-build-system can't install/build submodules. - (delete 'build) + (delete 'build) ; no go files in project's root (add-after 'unpack 'remove-examples (lambda* (#:key import-path #:allow-other-keys) (delete-file-recursively - (string-append "src/" import-path "/example")))) - (add-before 'check 'remove-failing-tests - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (for-each delete-file - ;; tiff/reader_test.go:557:14: too many errors - (list "tiff/reader_test.go" - "tiff/writer_test.go"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (string-append "src/" import-path "/example"))))))) (propagated-inputs (list go-golang-org-x-text)) (home-page "https://pkg.go.dev/golang.org/x/image") @@ -573,9 +701,24 @@ compile does not support generics.") "This package provides supplemental Go libraries for image processing.") (license license:bsd-3))) +(define-public go-golang-org-x-image-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-image) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/image")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-mod (package (name "go-golang-org-x-mod") + ;; XXX: To update to 0.22.0+ go-1.23 is required, wich provides + ;; "go/version" module, see + ;; <https://cs.opensource.google/go/go/+/refs/tags/ + ;; go1.23.0:src/go/version/version.go>. (version "0.21.0") (source (origin @@ -589,28 +732,14 @@ compile does not support generics.") (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "golang.org/x/mod" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'remove-test-files - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (for-each delete-file - (list - ;; Break cycle: go-golang-org-x-mod -> - ;; go-golang-org-x-tools -> go-golang-org-x-mod. - "zip/zip_test.go" - ;; Trying to access - ;; <http://ct.googleapis.com/logs/argon2020/ct/v1/get-sth>. - "sumdb/tlog/ct_test.go"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + ;; Test tries to acces: + ;; "http://ct.googleapis.com/logs/argon2020/ct/v1/get-sth": dial tcp: + ;; lookup ct.googleapis.com + #:test-flags #~(list "-skip" "TestCertificateTransparency"))) + (native-inputs + (list go-golang-org-x-tools-bootstrap)) (home-page "https://golang.org/x/mod") (synopsis "Tools to work directly with Go module mechanics") (description @@ -623,10 +752,21 @@ The specific case of loading packages should still be done by invoking the loading algorithms.") (license license:bsd-3))) +(define-public go-golang-org-x-mod-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-mod) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/mod")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-net (package (name "go-golang-org-x-net") - (version "0.29.0") + (version "0.33.0") (source (origin (method git-fetch) @@ -635,21 +775,14 @@ loading algorithms.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0scksgrrxyyy4ah2anh3n0qj0snpc63bqmhyw24q5lskzrsm2zvl")))) + (base32 "0k3vbxj4dxyki7rflbnad95avz7hnapwr02aa7jqgs79vd9j9k7n")))) (build-system go-build-system) (arguments (list #:import-path "golang.org/x/net" #:phases #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (delete 'build)))) ; no go files in project's root (propagated-inputs (list go-golang-org-x-crypto go-golang-org-x-sys @@ -661,10 +794,21 @@ loading algorithms.") "This package provides supplemental Go networking libraries.") (license license:bsd-3))) +(define-public go-golang-org-x-net-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-net) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/net")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-sync (package (name "go-golang-org-x-sync") - (version "0.8.0") + (version "0.10.0") (source (origin (method git-fetch) @@ -673,21 +817,12 @@ loading algorithms.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1jssyq49g5z7dbhdb9bnzsb8gigvsy5f4aczbzn5paz07v9wbjxs")))) + (base32 "1yp7pcfvy4793mjbfq28hxbr05yg38m0njnwam580xkb54lfwshx")))) (build-system go-build-system) (arguments (list - #:import-path "golang.org/x/sync" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:skip-build? #t + #:import-path "golang.org/x/sync")) (home-page "https://go.googlesource.com/sync/") (synopsis "Additional Go concurrency primitives") (description @@ -703,10 +838,21 @@ cancelation for groups of goroutines working on subtasks of a common task @end itemize") (license license:bsd-3))) +(define-public go-golang-org-x-sync-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-sync) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/sync")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-sys (package (name "go-golang-org-x-sys") - (version "0.25.0") + (version "0.28.0") (source (origin (method git-fetch) @@ -715,27 +861,48 @@ cancelation for groups of goroutines working on subtasks of a common task (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0hdysrba8imiifb4ksjgbhkzhk1mksm1g3fj59i3bas1zdc5lbgp")))) + (base32 "1lgsisl36knlr41inqls3w51xcqfl6d3hkacxry0nqx39167b882")))) (build-system go-build-system) (arguments (list - #:import-path "golang.org/x/sys" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:skip-build? #t + #:import-path "golang.org/x/sys")) (home-page "https://go.googlesource.com/sys") (synopsis "Go support for low-level system interaction") - (description "This package provides supplemental libraries offering Go -support for low-level interaction with the operating system.") + (description + "This package provides supplemental libraries offering Go support for +low-level interaction with the operating system.") (license license:bsd-3))) +(define-public go-golang-org-x-sys-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-sys) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/sys")) + (native-inputs '()) + (propagated-inputs '())))) + +;; This is the only one dependency for esbuild, which is the main tool to +;; produce all Node packages, keep it away from other golang. +(define-public go-golang-org-x-sys-for-esbuild + (hidden-package + (package + (inherit go-golang-org-x-sys) + (name "go-golang-org-x-sys") + (version "0.25.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/sys") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hdysrba8imiifb4ksjgbhkzhk1mksm1g3fj59i3bas1zdc5lbgp"))))))) + (define-public go-golang-org-x-telemetry (package (name "go-golang-org-x-telemetry") @@ -748,11 +915,34 @@ support for low-level interaction with the operating system.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "05gvxiv0yqfclckm2ysavbfy1jpz8v71r2glrcvhjq8wzw90g9gz")))) + (base32 "05gvxiv0yqfclckm2ysavbfy1jpz8v71r2glrcvhjq8wzw90g9gz")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separatly: + ;; + ;; - golang.org/x/telemetry/config + ;; - golang.org/x/telemetry/godev + (for-each delete-file-recursively (list "config" "godev")))))) (build-system go-build-system) (arguments (list - #:test-flags #~(list "-skip" "TestStart|TestConcurrentStart") + #:test-flags + #~(list "-skip" (string-join + ;; Tests fail with error: failed to download config + ;; module. + (list "TestConcurrentStart" + "TestDownload" + "TestRun_Basic" + "TestRun_Concurrent" + "TestRun_DebugLog" + "TestRun_EmptyUpload" + "TestRun_MissingDate" + "TestRun_ModeHandling/on" + "TestRun_MultipleUploads" + "TestRun_Retries" + "TestStart") ; no upload occurred on 2786 + "|")) #:import-path "golang.org/x/telemetry")) (propagated-inputs (list go-golang-org-x-mod @@ -769,7 +959,7 @@ Go toolchain programs with opt-in telemetry.") (define-public go-golang-org-x-telemetry-config (package (name "go-golang-org-x-telemetry-config") - (version "0.31.0") + (version "0.36.0") (source (origin (method git-fetch) @@ -779,7 +969,7 @@ Go toolchain programs with opt-in telemetry.") #:subdir "config")))) (file-name (git-file-name name version)) (sha256 - (base32 "0b5f3kf58wam741m7vfalv4n47djn6whxr4lf9w1jpjgaa6kq3an")))) + (base32 "1nib4d3p1zknd8m0grkylpd3qfknnw7cffv2v1l4sq0rf30gi04m")))) (build-system go-build-system) (arguments (list @@ -799,7 +989,7 @@ telemetry uploads: GOOS, GOARCH, Go version, and per-program counters.") (define-public go-golang-org-x-term (package (name "go-golang-org-x-term") - (version "0.24.0") + (version "0.27.0") (source (origin (method git-fetch) @@ -808,7 +998,7 @@ telemetry uploads: GOOS, GOARCH, Go version, and per-program counters.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1sclnlbchqqlspm5l914xgs70yyjswarrrahkf8n44gkr2kbkw1x")))) + (base32 "1gfykqmzgwgrb3adlbknjrb96i58bx2q2vjcdvfvwm554gznkgki")))) (build-system go-build-system) (arguments '(#:import-path "golang.org/x/term")) (propagated-inputs @@ -819,10 +1009,21 @@ telemetry uploads: GOOS, GOARCH, Go version, and per-program counters.") terminals, as commonly found on Unix systems.") (license license:bsd-3))) +(define-public go-golang-org-x-term-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-term) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/term")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-text (package (name "go-golang-org-x-text") - (version "0.18.0") + (version "0.21.0") (source (origin (method git-fetch) @@ -831,49 +1032,38 @@ terminals, as commonly found on Unix systems.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vxx2s1y1dmhiiv4cayrwf3ls4lbq22xkhl6xw3ls8jizribl5s9")))) + (base32 "02zh18l5rlr8hg8ipn9r5m4rir3hskp80pzr4ljyfmgy72gxbhlv")))) (build-system go-build-system) (arguments (list - #:import-path "golang.org/x/text" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" - "./cases/..." - ;; cmd - cycle with go-golang-org-x-tools - "./collate/..." - "./currency/..." - "./date/..." - "./encoding/..." - "./feature/..." - "./internal/..." - "./language/..." - ;; message - cycle with go-golang-org-x-tools - "./number/..." - "./runes/..." - "./search/..." - "./secure/..." - "./transform/..." - "./unicode/..." - "./width/...")))))))) + #:skip-build? #t + #:import-path "golang.org/x/text")) (home-page "https://go.googlesource.com/text") + (native-inputs + (list go-golang-org-x-mod-bootstrap + go-golang-org-x-sync-bootstrap + go-golang-org-x-tools-bootstrap)) (synopsis "Supplemental Go text processing libraries") (description "This package provides supplemental Go libraries for text processing.") (license license:bsd-3))) +(define-public go-golang-org-x-text-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-text) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/text")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-time (package (name "go-golang-org-x-time") - (version "0.6.0") + (version "0.8.0") (source (origin (method git-fetch) @@ -882,21 +1072,12 @@ processing.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14z7f1yx3r393f94yjv09mrsfaydq6da7pswv8wvk327mxa56vw1")))) + (base32 "1m2xfgq3a6y1xckl0al9n03il927z3rp2a8fvb8369035d3al3qh")))) (build-system go-build-system) (arguments (list - #:import-path "golang.org/x/time" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:skip-build? #t + #:import-path "golang.org/x/time")) (home-page "https://godoc.org/golang.org/x/time/rate") (synopsis "Supplemental Go time libraries") (description @@ -985,6 +1166,17 @@ time.") Go programming language.") (license license:bsd-3))) +(define-public go-golang-org-x-tools-bootstrap + (hidden-package + (package + (inherit go-golang-org-x-tools) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "golang.org/x/tools")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-golang-org-x-vuln (package (name "go-golang-org-x-vuln") @@ -1003,19 +1195,14 @@ Go programming language.") (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "golang.org/x/vuln" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" - "./doc/..." - "./internal/..." - "./scan/...")))))))) + ;; ts.RunParallel undefined (type *cmdtest.TestSuite has no field or + ;; method RunParallel) + ;; + ;; go: modules disabled by GO111MODULE=off + #:test-flags #~(list "-skip" "TestVet|TestGoModTidy|Test58509") + #:test-subdirs #~(list "internal/..." "scan/..." "."))) (propagated-inputs (list go-github-com-google-go-cmdtest go-github-com-google-go-cmp @@ -1033,7 +1220,7 @@ the @url{https://vuln.go.dev,Go Vulnerability Database}.") (define-public go-golang-org-x-xerrors (package (name "go-golang-org-x-xerrors") - (version "0.0.0-20200804184101-5ec99f83aff1") + (version "0.0.0-20240903120638-7835f813f4da") (source (origin (method git-fetch) @@ -1042,7 +1229,7 @@ the @url{https://vuln.go.dev,Go Vulnerability Database}.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb")))) + (base32 "1amjwicv2k6mkafa27ghwavc19jy8vi8kfndpj6vrgn0p5rc4kkc")))) (build-system go-build-system) (arguments (list @@ -1057,7 +1244,7 @@ values.") (define-public go-google-golang-org-protobuf (package (name "go-google-golang-org-protobuf") - (version "1.34.2") + (version "1.36.0") (source (origin (method git-fetch) @@ -1066,21 +1253,14 @@ values.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0l18301prwy38wam9zsbhgwddwjaflvnvamghg0h1d1p201gxbp3")))) + (base32 "1a6l9zcm1za7w9f9n86wjszn9fm53cfacl0liyk3wpsqx4h4x6dl")))) (build-system go-build-system) (arguments (list #:import-path "google.golang.org/protobuf" #:phases #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (delete 'build)))) ; no go files in project's root (propagated-inputs (list go-github-com-google-go-cmp)) (home-page "https://google.golang.org/protobuf") (synopsis "Go library for Protocol Buffers") @@ -1091,6 +1271,29 @@ data. It is a successor to @code{go-github-com-golang-protobuf} with an improved and cleaner API.") (license license:bsd-3))) +(define-public go-rsc-io-pdf + (package + (name "go-rsc-io-pdf") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rsc/pdf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01qjjwa8nn5a2jzd360xqg5zc8s0i2fpwcn2w2g6y2jgn9wl8x84")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f + #:import-path "rsc.io/pdf")) + (home-page "https://rsc.io/pdf") + (synopsis "PDF reader for Golang") + (description "Package pdf implements reading of PDF files.") + (license license:bsd-3))) + ;;; ;;; Executables: ;;; @@ -1106,6 +1309,18 @@ improved and cleaner API.") #:import-path "golang.org/x/vuln/cmd/govulncheck" #:unpack-path "golang.org/x/vuln")))) +(define-public protoc-gen-go + (package + (inherit go-github-com-golang-protobuf) + (name "protoc-gen-go") + (arguments + (list + #:tests? #f + #:install-source? #f + #:import-path "github.com/golang/protobuf/protoc-gen-go" + #:unpack-path "github.com/golang/protobuf")) + (synopsis "Protoc plugin to generate a Go protocol buffer package"))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm index 4831bb02c7..d0371aa915 100644 --- a/gnu/packages/golang-check.scm +++ b/gnu/packages/golang-check.scm @@ -9,20 +9,22 @@ ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> +;;; Copyright © 2020, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2022 ( <paren@disroot.org> -;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Benjamin <benjamin@uvy.fr> ;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com> ;;; Copyright © 2023 Fries <fries1234@protonmail.com> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> +;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 Greg Hogan <code@greghogan.com> +;;; Copyright © 2024 Herman Rimm <herman@rimm.ee> ;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> -;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +47,7 @@ #:use-module (guix build-system go) #:use-module (guix gexp) #:use-module (guix git-download) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) @@ -120,6 +123,113 @@ value and call @code{t.Fatal()} if the assertion fails.") @end itemize") (license license:expat))) +(define-public go-github-com-andreyvit-diff + (package + (name "go-github-com-andreyvit-diff") + (version "0.0.0-20170406064948-c7f18ee00883") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/andreyvit/diff") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1s4qjkxig5yqahpzfl4xqh4kzi9mymdpkzq6kj3f4dr5dl3hlynr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/andreyvit/diff")) + (propagated-inputs + (list go-github-com-sergi-go-diff)) + (home-page "https://github.com/andreyvit/diff") + (synopsis "Diffing strings in tests") + (description + "This package provides a quick and easy string diffing functions based on +github.com/sergi/go-diff, mainly for diffing strings in tests.") + (license license:expat))) + +(define-public go-github-com-bitfield-gotestdox + (package + (name "go-github-com-bitfield-gotestdox") + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bitfield/gotestdox") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kxj8igjm0wmq9nj3wns7nf95rx70xm327ra68d3ffh300rxg401")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bitfield/gotestdox")) + (propagated-inputs + (list go-github-com-fatih-color + go-github-com-google-go-cmp + go-github-com-mattn-go-isatty + go-github-com-rogpeppe-go-internal + go-golang-org-x-text)) + (home-page "https://github.com/bitfield/gotestdox") + (synopsis "Format Go test results as readable documentation") + (description + "This packages implements a functionality to run tests and report the +results, converting test names WrittenInCamelCase into ordinary sentences.") + (license license:expat))) + +(define-public go-github-com-bool64-dev + (package + (name "go-github-com-bool64-dev") + (version "0.2.37") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bool64/dev") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "041ng9z0qbmbj0l7lpj55d681b7p35lrr8vcyv3iqc1m6jzqqg5q")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bool64/dev")) + (home-page "https://github.com/bool64/dev") + (synopsis "Go development helpers") + (description + "This package provides scripts and workflows to automate common routines +for Golang projects via modular Makefiles and GitHub Actions.") + (license license:expat))) + +(define-public go-github-com-bool64-shared + (package + (name "go-github-com-bool64-shared") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bool64/shared") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "157k7vw9cq84i5yy8bab8n1dk2lc9cmz8kjjy710ic9lwridmnf8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bool64/shared")) + (native-inputs + (list go-github-com-bool64-dev + go-github-com-stretchr-testify)) + (home-page "https://github.com/bool64/shared") + (synopsis "Share variables between test helpers in Golang") + (description + "This package provides a contract to share variables between test helpers +in Golang.") + (license license:expat))) + (define-public go-github-com-caarlos0-testfs (package (name "go-github-com-caarlos0-testfs") @@ -206,6 +316,31 @@ test (using testing.TB's @code{TempDir}) and with a few helper methods.") "A testing library for Go programs.") (license license:expat))) +(define-public go-github-com-corpix-uarand + (package + (name "go-github-com-corpix-uarand") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/corpix/uarand") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ad5k1h2qpam2cfalwkjigrwg1yc45dny10n08qmqix1gxyjillc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/corpix/uarand")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/corpix/uarand") + (synopsis "Random user-agent generator for Golang") + (description + "This package implements a functionality to generate random user-agent +strings which may be used in mock tests.") + (license license:unlicense))) + (define-public go-github-com-davecgh-go-spew (package (name "go-github-com-davecgh-go-spew") @@ -334,6 +469,9 @@ fgprof is designed for analyzing applications with mixed I/O and CPU workloads. This kind of profiling is also known as wall-clock profiling.") (license license:expat))) +;; XXX: The project looks like abandoned, see +;; <https://github.com/frankban/quicktest/issues/172>, remove when nothing +;; depends on it. (define-public go-github-com-frankban-quicktest (package (name "go-github-com-frankban-quicktest") @@ -350,9 +488,18 @@ workloads. This kind of profiling is also known as wall-clock profiling.") (build-system go-build-system) (arguments (list + #:test-flags + #~(list "-skip" (string-join + (list "TestReportOutput" + "TestIndirectReportOutput" + "TestMultilineReportOutput" + "TestCmpReportOutput" + "TestTopLevelAssertReportOutput") + "|")) #:import-path "github.com/frankban/quicktest")) (propagated-inputs - (list go-github-com-google-go-cmp go-github-com-kr-pretty)) + (list go-github-com-google-go-cmp + go-github-com-kr-pretty)) (home-page "https://github.com/frankban/quicktest") (synopsis "Quick helpers for testing Go applications") (description @@ -360,6 +507,64 @@ workloads. This kind of profiling is also known as wall-clock profiling.") tests.") (license license:expat))) +(define-public go-github-com-go-playground-validator-v10 + (package + (name "go-github-com-go-playground-validator-v10") + (version "10.23.0") + (home-page "https://github.com/go-playground/validator") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-playground/validator") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1frr06zq7fimmfjv9nac2cx9gclydbay0smn2h78znsbrylfhcmz")))) + (build-system go-build-system) + (arguments + (list + ;; Tests on non-x86_64 architectures are not well supported upstream. + ;; + ;; Most of them fail with error like: Error:Field validation for + ;; 'IsColor' failed on the 'iscolor' tag. + #:tests? (target-x86-64?) + #:import-path "github.com/go-playground/validator/v10")) + (native-inputs + (list go-github-com-go-playground-assert-v2)) + (propagated-inputs + (list go-github-com-gabriel-vasile-mimetype + go-github-com-go-playground-locales + go-github-com-go-playground-universal-translator + go-github-com-leodido-go-urn + go-golang-org-x-crypto + go-golang-org-x-text)) + (synopsis "Validator for structs and individual fields based on tags") + (description + "This package implements value validations for structs and individual +fields based on tags. It has the following unique features: + +@itemize +@item Cross Field and Cross Struct validations by using validation tags or +custom validators +@item Slice, Array and Map diving, which allows any or all levels of a +multidimensional field to be validated +@item Ability to dive into both map keys and values for validation +@item Handles type interface by determining it's underlying type prior to +validation +@item Handles custom field types such as sql driver +@uref{https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29, +Valuer} +@item Alias validation tags, which allows for mapping of several validations +to a single tag for easier defining of validations on structs +@item Extraction of custom defined Field Name e.g. can specify to extract the +JSON name while validating and have it available in the resulting FieldError +@item Customizable i18n aware error messages. +@item Default validator for the @uref{https://github.com/gin-gonic/gin, gin} +web framework +@end itemize") + (license license:expat))) + (define-public go-github-com-go-quicktest-qt (package (name "go-github-com-go-quicktest-qt") @@ -376,9 +581,20 @@ tests.") (build-system go-build-system) (arguments (list - #:import-path "github.com/go-quicktest/qt")) + #:import-path "github.com/go-quicktest/qt" + #:test-flags + #~(list "-skip" (string-join + ;; Tests failing with assertion error or could not find + ;; test files. + (list "TestReportOutput" + "TestIndirectReportOutput" + "TestMultilineReportOutput" + "TestCmpReportOutput" + "TestTopLevelAssertReportOutput") + "|")))) (propagated-inputs - (list go-github-com-google-go-cmp go-github-com-kr-pretty)) + (list go-github-com-google-go-cmp + go-github-com-kr-pretty)) (home-page "https://github.com/go-quicktest/qt") (synopsis "Qt: quicker Go tests") (description @@ -450,6 +666,30 @@ programming language}. It integrates well with Go's built-in @code{testing} package, but can be used in other contexts too.") (license license:asl2.0))) +(define-public go-github-com-golangplus-fmt + (package + (name "go-github-com-golangplus-fmt") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golangplus/fmt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; failing with new Golang compiler. + #:import-path "github.com/golangplus/fmt")) + (home-page "https://github.com/golangplus/fmt") + (synopsis "Additions to Go's standard @code{fmt} package") + (description + "This package provides additions to Go's stdlib @code{fmt}.") + (license license:bsd-3))) + (define-public go-github-com-golangplus-testing (package (name "go-github-com-golangplus-testing") @@ -467,36 +707,48 @@ package, but can be used in other contexts too.") (build-system go-build-system) (arguments '(#:import-path "github.com/golangplus/testing")) + (native-inputs + (list go-github-com-golangplus-bytes-bootstrap)) (propagated-inputs (list go-github-com-golangplus-fmt)) (synopsis "Additions to Go's standard testing package") (description "This package provides additions to Go's stdlib testing.") (license license:bsd-3))) +(define-public go-github-com-golangplus-testing-bootstrap + (hidden-package + (package + (inherit go-github-com-golangplus-testing) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "github.com/golangplus/testing")) + (native-inputs '()) + (propagated-inputs '())))) + (define-public go-github-com-google-gofuzz - (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382") - (revision "0")) - (package - (name "go-github-com-google-gofuzz") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/google/gofuzz") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/google/gofuzz")) - (home-page "https://github.com/google/gofuzz") - (synopsis "Fuzz testing library for Go") - (description "Gofuzz is a library for populationg Go objects with random -values for the purpose of fuzz testing.") - (license license:asl2.0)))) + (package + (name "go-github-com-google-gofuzz") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gofuzz") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19bykk6y9d1ivylxchkx1r1d02xrh3wfvvd02zvr5qv5ippv78ag")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/gofuzz")) + (home-page "https://github.com/google/gofuzz") + (synopsis "Fuzz testing library for Go") + (description + "Gofuzz is a library for populationg Go objects with random values for +the purpose of fuzz testing.") + (license license:asl2.0))) ;; XXX: Placing to (gnu package profiling) creates some failing cycles. (define-public go-github-com-google-pprof @@ -515,6 +767,7 @@ values for the purpose of fuzz testing.") (build-system go-build-system) (arguments (list + #:tests? #f ; source only package #:import-path "github.com/google/pprof" #:phases #~(modify-phases %standard-phases @@ -571,99 +824,239 @@ package).") "This package provides a library to generate unified diffs.") (license license:bsd-3))) +(define-public go-github-com-icrowley-fake + (package + (name "go-github-com-icrowley-fake") + (version "0.0.0-20240710202011-f797eb4a99c0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/icrowley/fake") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zb2rdck6fwjw1ib7k6gm9d9mnsig4cr2807k7v5z6nwqka1pcw1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/icrowley/fake")) + (propagated-inputs + (list go-github-com-corpix-uarand)) + (home-page "https://github.com/icrowley/fake") + (synopsis "Fake data generator for Golang") + (description + "Package fake is the fake data generatror for go (Golang), heavily +inspired by forgery and @url{https://github.com/ffaker/ffaker,ffaker} Ruby +gems.") + (license license:expat))) + +(define-public go-github-com-jackc-fake + (package + (inherit go-github-com-icrowley-fake) + (name "go-github-com-jackc-fake") + (version "0.0.0-20150926172116-812a484cc733") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/fake") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f32qgzhx7pl3s0g4v916z21kfyh5v1dv28aakxisiw23936wf68")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Module name has not been changed after been forked upstream. + (substitute* (find-files "." "\\.go$") + (("github.com/icrowley/fake") "github.com/jackc/fake")))))) + (arguments + (list + #:import-path "github.com/jackc/fake")) + (home-page "https://github.com/jackc/fake") + (description + "This package is an alternative fork of @url{github.com/icrowley/fake} +used in go-github-com-jackc-pgx.") + (license license:expat))) + +(define-public go-github-com-jackc-pgmock + (package + (name "go-github-com-jackc-pgmock") + (version "0.0.0-20210724152146-4ad1a8207f65") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgmock") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "189hp5fkvavwgg7z0z9b9xj88ypsphvb7s4dpwa5aj42jm39nqha")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgmock")) + (native-inputs + (list go-github-com-jackc-pgconn-bootstrap + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-jackc-pgproto3-v2)) + (home-page "https://github.com/jackc/pgmock") + (synopsis "PostgreSQL server mocking library") + (description + "This package implements a functionality to mock a PostgreSQL server.") + (license license:expat))) + +(define-public go-github-com-jackc-pgmock-bootstrap + (hidden-package + (package + (inherit go-github-com-jackc-pgmock) + (arguments + (list #:tests? #f + #:import-path "github.com/jackc/pgmock" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (native-inputs '())))) + (define-public go-github-com-jacobsa-oglematchers - (let ((commit "141901ea67cd4769c6800aa7bfdfc558fa22bda5") - (revision "0")) - (package - (name "go-github-com-jacobsa-oglematchers") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jacobsa/oglematchers") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "09ff5x6vbhd9zl1z4yzyk573ifh16rry38q1rx986kbz4hqkmniq")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jacobsa/oglematchers" - ;; break loop with with go-github-com-jacobsa-ogletest - #:tests? #f)) - (home-page "https://github.com/jacobsa/oglematchers") - (synopsis "Matchers for Go testing framework") - (description - "Package oglematchers provides a set of matchers useful in a testing or mocking -framework. These matchers are inspired by and mostly compatible with Google -Test for C++ and Google JS Test.") - (license license:asl2.0)))) + (package + (name "go-github-com-jacobsa-oglematchers") + (version "0.0.0-20150720000706-141901ea67cd") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/oglematchers") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09ff5x6vbhd9zl1z4yzyk573ifh16rry38q1rx986kbz4hqkmniq")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jacobsa/oglematchers" + ;; break loop with with go-github-com-jacobsa-ogletest + #:tests? #f)) + (home-page "https://github.com/jacobsa/oglematchers") + (synopsis "Matchers for Go testing framework") + (description + "Package oglematchers provides a set of matchers useful in a testing or +mocking framework. These matchers are inspired by and mostly compatible with +Google Test for C++ and Google JS Test.") + (license license:asl2.0))) (define-public go-github-com-jacobsa-oglemock - (let ((commit "e94d794d06ffc6de42cb19d0dab3c219efdd6dcf") - (revision "0")) - (package - (name "go-github-com-jacobsa-oglemock") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jacobsa/oglemock") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "14yxf8ykwdwkcccksl6741xgzcf8qykyi58kp4maxpgscqhdl8rq")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/jacobsa/oglemock" - ;; break loop with with go-github-com-jacobsa-ogletest - #:tests? #f)) - (native-inputs - (list go-github-com-jacobsa-oglematchers)) - (home-page "https://github.com/jacobsa/oglemock") - (synopsis "Mocking framework for unit tests") - (description - "Package oglemock provides a mocking framework for unit tests.") - (license license:asl2.0)))) + (package + (name "go-github-com-jacobsa-oglemock") + (version "0.0.0-20150831005832-e94d794d06ff") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/oglemock") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14yxf8ykwdwkcccksl6741xgzcf8qykyi58kp4maxpgscqhdl8rq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jacobsa/oglemock" + ;; break loop with with go-github-com-jacobsa-ogletest + #:tests? #f)) + (native-inputs + (list go-github-com-jacobsa-oglematchers)) + (home-page "https://github.com/jacobsa/oglemock") + (synopsis "Mocking framework for unit tests") + (description + "Package oglemock provides a mocking framework for unit tests.") + (license license:asl2.0))) (define-public go-github-com-jacobsa-ogletest - (let ((commit "80d50a735a1108a2aeb7abc4a988d183f20c5292") - (revision "0")) - (package - (name "go-github-com-jacobsa-ogletest") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jacobsa/ogletest") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lbwbxzr75g65q07ry5k4kglxqs3ym7xkvqznzm55rm3qk76v83r")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jacobsa/ogletest" - ;; These tests should be made working - #:tests? #f)) - (native-inputs - (list go-github-com-jacobsa-oglematchers - go-github-com-jacobsa-oglemock - go-github-com-jacobsa-reqtrace - go-golang-org-x-net)) - (home-page "https://github.com/jacobsa/ogletest") - (synopsis "Expressive unit tests") - (description - "Package ogletest provides a framework for writing expressive unit tests. It -integrates with the builtin testing package, so it works with the gotest + (package + (name "go-github-com-jacobsa-ogletest") + (version "0.0.0-20170503003838-80d50a735a11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/ogletest") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lbwbxzr75g65q07ry5k4kglxqs3ym7xkvqznzm55rm3qk76v83r")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jacobsa/ogletest" + #:test-flags #~(list "-skip" "TestGoldenFiles"))) + (propagated-inputs + (list go-github-com-jacobsa-oglematchers + go-github-com-jacobsa-oglemock + go-github-com-jacobsa-reqtrace + go-golang-org-x-net)) + (home-page "https://github.com/jacobsa/ogletest") + (synopsis "Expressive unit tests") + (description + "Package ogletest provides a framework for writing expressive unit tests. +It integrates with the builtin testing package, so it works with the gotest command. Unlike the testing package which offers only basic capabilities for -signalling failures, it offers ways to express expectations and get nice failure -messages automatically.") - (license license:asl2.0)))) +signalling failures, it offers ways to express expectations and get nice +failure messages automatically.") + (license license:asl2.0))) + +(define-public go-github-com-jacobsa-reqtrace + (package + (name "go-github-com-jacobsa-reqtrace") + (version "0.0.0-20150505043853-245c9e0234cb") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/reqtrace") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zfyijig10896v42rvxka1n4wn6lijqz40y2281187l7mq8vv5jn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jacobsa/reqtrace")) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/jacobsa/reqtrace") + (synopsis "Simple request tracing framework") + (description + "Package reqtrace contains a very simple request tracing framework.") + (license license:asl2.0))) + +(define-public go-github-com-jarcoal-httpmock + (package + (name "go-github-com-jarcoal-httpmock") + (version "1.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jarcoal/httpmock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xw73d59nl1jj18h2hp9vlgqmfvqk9bknzpimg4mjn13d4jzhqrf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jarcoal/httpmock")) + (native-inputs + (list go-github-com-maxatome-go-testdeep)) + (home-page "https://github.com/jarcoal/httpmock") + (synopsis "HTTP mocking for Golang") + (description + "Package httpmock provides tools for mocking HTTP responses. It +implements exact URL and regexp matches.") + (license license:expat))) (define-public go-github-com-jbenet-go-cienv (package @@ -690,6 +1083,135 @@ Many times certain facilities are not available, or tests must run differently.") (license license:expat))) +(define-public go-github-com-jmhodges-clock + (package + (name "go-github-com-jmhodges-clock") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jmhodges/clock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ys85dlg3zzzwl7p46kf5gckjm1ddgr5dai42v4p3wn9nm6ln252")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jmhodges/clock")) + (home-page "https://github.com/jmhodges/clock") + (synopsis "System time abstraction Golang library") + (description + "Package clock provides an abstraction for system time that enables +testing of time-sensitive code.") + (license license:expat))) + +(define-public go-github-com-jtolds-gls + (package + (name "go-github-com-jtolds-gls") + (version "4.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jtolds/gls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jtolds/gls" + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys #:rest args) + (unless + ;; The tests fail when run with gccgo. + (false-if-exception (search-input-file inputs "/bin/gccgo")) + (apply (assoc-ref %standard-phases 'check) args))))))) + (home-page "https://github.com/jtolds/gls") + (synopsis "@code{gls} provides Goroutine local storage") + (description + "The @code{gls} package provides a way to store a retrieve values +per-goroutine.") + (license license:expat))) + +(define-public go-github-com-ldez-tagliatelle + (package + (name "go-github-com-ldez-tagliatelle") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldez/tagliatelle") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s891pqzwivmhw7xfw0m8n8fcg90xiykcg808rr869iflbkdik9n")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ldez/tagliatelle")) + (propagated-inputs + (list go-github-com-ettle-strcase + go-github-com-hashicorp-go-immutable-radix-v2 + go-golang-org-x-tools)) + (home-page "https://github.com/ldez/tagliatelle") + (synopsis "Struct tags handling linter for Golang") + (description + "This package implement a functionality for validating tags according to +rules you define and fixing them according to the defined rules.") + (license license:asl2.0))) + +(define-public go-github-com-maruel-panicparse + (package + (name "go-github-com-maruel-panicparse") + (version "1.6.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/maruel/panicparse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07hj3z47v4mzppi8r7ja20arh2kd0dih913xgb9ylapf7w5q98bn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/maruel/panicparse" + #:test-flags + #~(list "-skip" + (string-join + ;; Failed with panic. + (list "TestAugment" + "TestPanic" + "TestPanicweb" + "TestProcessTwoSnapshots" + "TestSnapshotHandler" + "TestSnapshotHandler_Err" + "TestSnapshotHandler_LargeMemory" + ) + "|")))) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-mattn-go-colorable + go-github-com-mattn-go-isatty + go-github-com-mgutz-ansi + go-golang-org-x-sys)) + (home-page "https://github.com/maruel/panicparse") + (synopsis "Toolkit for parsing Go stack traces") + (description + "This package provides a toolkit for parsing Go language panic stack +traces. It simplifies the traces to make salient information more visible and +aid debugging.") + (license license:asl2.0))) + (define-public go-github-com-marvinjwendt-testza (package (name "go-github-com-marvinjwendt-testza") @@ -758,6 +1280,34 @@ output capturing, mocking, and much more.") testing capabilities.") (license license:expat))) +(define-public go-github-com-maxatome-go-testdeep + (package + (name "go-github-com-maxatome-go-testdeep") + (version "1.14.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/maxatome/go-testdeep") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r9w79qm6j080gbqhrd5gwjzsnkmrcihy4yniw77g0wkspxxdjww")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/maxatome/go-testdeep" + ;; Structure comparison not equal. + #:test-flags #~(list "-skip" "TestFatalTrace"))) + (propagated-inputs + (list go-github-com-davecgh-go-spew)) + (home-page "https://github.com/maxatome/go-testdeep") + (synopsis "Extended HTTP API testing framework") + (description + "Package testdeep allows flexible deep comparison, it is an adaptation of +Perl's @url{https://metacpan.org/pod/Test::Deep, Test::Deep perl}.") + (license license:bsd-2))) + (define-public go-github-com-onsi-ginkgo (package (name "go-github-com-onsi-ginkgo") @@ -774,7 +1324,8 @@ testing capabilities.") (build-system go-build-system) (arguments (list - #:import-path "github.com/onsi/ginkgo")) + #:import-path "github.com/onsi/ginkgo" + #:test-flags #~(list "-skip" "TestIntegration"))) (propagated-inputs (list go-github-com-go-task-slim-sprig go-github-com-nxadm-tail @@ -793,7 +1344,7 @@ Gomega matcher library.") (package (inherit go-github-com-onsi-ginkgo) (name "go-github-com-onsi-ginkgo-v2") - (version "2.19.0") + (version "2.22.0") (source (origin (method git-fetch) @@ -802,10 +1353,14 @@ Gomega matcher library.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0dwnkcysb5d9dyg8p84hhx5a3sj85g3bwgki1pgay4i8glz7xa7q")))) + (base32 "1mla4hr73ykbhl2mr40vzr4fjl97whr17ip907cac78fzch1csn8")))) (arguments (list - #:import-path "github.com/onsi/ginkgo/v2")) + #:import-path "github.com/onsi/ginkgo/v2" + #:test-subdirs + ;; XXX: Most of the tests hang, find out why, keeping bare minimal + ;; amount. + #~(list "dsl/..." "extensions/globals" "."))) (propagated-inputs (list go-github-com-go-logr-logr go-github-com-go-task-slim-sprig-v3 @@ -815,6 +1370,19 @@ Gomega matcher library.") go-golang-org-x-sys go-golang-org-x-tools)))) +(define-public go-github-com-onsi-ginkgo-v2-bootstrap + (hidden-package (package (inherit go-github-com-onsi-ginkgo-v2) + (name "go-github-com-onsi-ginkgo-v2") + (arguments + (list + #:tests? #f + #:import-path "github.com/onsi/ginkgo/v2" + #:phases + #~(modify-phases %standard-phases (delete 'build)))) + (native-inputs '()) + (propagated-inputs + (list go-github-com-go-logr-logr))))) + (define-public go-github-com-onsi-gomega (package (name "go-github-com-onsi-gomega") @@ -831,10 +1399,15 @@ Gomega matcher library.") (build-system go-build-system) (arguments (list - ;; Unless we disable the tests, we have a circular dependency on - ;; ginkgo/v2. - #:tests? #f - #:import-path "github.com/onsi/gomega")) + #:import-path "github.com/onsi/gomega" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-failing-test-files + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file "gexec/build_test.go"))))))) + (native-inputs + (list go-github-com-onsi-ginkgo-v2-bootstrap)) (propagated-inputs (list go-github-com-golang-protobuf go-golang-org-x-net @@ -961,6 +1534,31 @@ original value once the test has been run.") current goroutine's ID.") (license license:asl2.0)))) +(define-public go-github-com-rubyist-tracerx + (package + (name "go-github-com-rubyist-tracerx") + (version "0.0.0-20170927163412-787959303086") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rubyist/tracerx") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xj5213r00zjhb7d2l6wlwv62g6mss50jwjpf7g8fk8djv3l29zz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rubyist/tracerx")) + (home-page "https://github.com/rubyist/tracerx/") + (synopsis "Output tracing information in your Go app") + (description + "This package is a simple tracing application that logs messages +depending on environment variables. It is very much inspired by git's +GIT_TRACE mechanism.") + (license license:expat))) + (define-public go-github-com-sasha-s-go-deadlock (package (name "go-github-com-sasha-s-go-deadlock") @@ -989,7 +1587,7 @@ current goroutine's ID.") (define-public go-github-com-stretchr-testify (package (name "go-github-com-stretchr-testify") - (version "1.9.0") + (version "1.10.0") (source (origin (method git-fetch) @@ -998,11 +1596,14 @@ current goroutine's ID.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "12cnhk96h8b3ddlb7jfvwwavzc0j1c2iva92pszl9rv6r571ckzg")))) + (base32 "0g1bdpqih38a7dl1malahz5x4ag01adk61gx47jg2534cqzvid05")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/stretchr/testify")) + (list + ;; XXX: Tests are shaky on non x86_64 architectures, check if some may + ;; be enabled. + #:tests? (target-x86-64?) + #:import-path "github.com/stretchr/testify")) (propagated-inputs (list go-github-com-davecgh-go-spew go-github-com-pmezard-go-difflib @@ -1010,8 +1611,9 @@ current goroutine's ID.") go-gopkg-in-yaml-v3)) (home-page "https://github.com/stretchr/testify") (synopsis "Go helper library for tests and invariant checking") - (description "This package provide many tools for testifying that your -code will behave as you intend. + (description + "This package provide many tools for testifying that your code will +behave as you intend. Features include: @itemize @@ -1058,6 +1660,45 @@ Features include: strings must or must not be sent to a given local UDP listener.") (license license:expat))) +(define-public go-github-com-swaggest-assertjson + (package + (name "go-github-com-swaggest-assertjson") + (version "1.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/swaggest/assertjson") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0smxcs548dnchqqk4bys167xaawzz125qsvlvpa267fkhqrxk7f9")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/swaggest/assertjson" + #:test-flags #~(list "-skip" "TestEquals_message") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file + (list "example_test.go")))))))) + (native-inputs + (list go-github-com-bool64-dev + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-bool64-shared + go-github-com-iancoleman-orderedmap + go-github-com-yosuke-furukawa-json5 + go-github-com-yudai-gojsondiff)) + (home-page "https://github.com/swaggest/assertjson") + (synopsis "JSON equality assertions for Golang") + (description + "This package provides JSON equality assertions for Golang.") + (license license:expat))) + (define-public go-github-com-tdewolff-test (package (name "go-github-com-tdewolff-test") @@ -1112,28 +1753,38 @@ execution when a test fails.") (define-public go-github-com-smartystreets-goconvey (package (name "go-github-com-smartystreets-goconvey") - (version "v1.8.1") + (version "1.8.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/smartystreets/goconvey") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0s9s7yd4jfwgirnz46kw1sfhgcgsdzfxlca6q16i6ixaqczfaap9")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/smartystreets/goconvey")) + (list + #:import-path "github.com/smartystreets/goconvey" + #:test-flags + ;; XXX: Figure out why these test fail. + #~(list "-skip" (string-join + (list "TestShellIntegration" + "TestStackModeMultipleInvocationInheritance" + "TestStackModeMultipleInvocationInheritance2" + "TestStackModeMultipleInvocationInheritance3" + "TestWatcher") + "|")))) (propagated-inputs (list go-github-com-jtolds-gls go-github-com-smarty-assertions go-golang-org-x-tools)) (home-page "https://github.com/smartystreets/goconvey") (synopsis "Go testing tool with both a web and terminal user interface") - (description "GoConvey is a testing tool for Go. It integrates with go -test, can show test coverage and has a web user interface that will refresh -automatically.") + (description + "GoConvey is a testing tool for Go. It integrates with go test, can show +test coverage and has a web user interface that will refresh automatically.") (license license:expat))) (define-public go-github-com-smarty-assertions @@ -1180,7 +1831,13 @@ functions and even in applications.") (build-system go-build-system) (arguments (list - #:import-path "github.com/smarty/gunit")) + #:import-path "github.com/smarty/gunit" + ;; Expected: [&{ BowlingGameScoringTests [0xc000080020 + ;; 0xc000080040 0xc000080060 0xc000080080 0xc0000800a0]}] + ;; Actual: [&{ BowlingGameScoringTests [0xc0000da920 + ;; 0xc0000da940 0xc0000da960 0xc0000da9a0 0xc0000da9c0]}] + #:test-flags + #~(list "-skip" "TestParseFileWithValidFixturesAndConstructs"))) (home-page "https://github.com/smarty/gunit") (synopsis "Golang xUnit-style test fixture test adapter") (description @@ -1188,6 +1845,114 @@ functions and even in applications.") functions for writing tests in an @code{xUnit} style.") (license license:expat))) +(define-public go-github-com-viant-assertly + (package + (name "go-github-com-viant-assertly") + (version "0.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/viant/assertly") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mli7kfkaz3k4izx76w14qhq5a8bp6x1zw9471idrhg5wxg1mr1r")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/viant/assertly" + #:test-flags #~(list "-skip" "TestAssertCoalesceWithZero") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; failed to expand macro 1<ds:env[\"USER\"]>3, path:[/]:, + ;; failed to lookup USER in env. + (setenv "USER" "guix")))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-viant-toolbox)) + (home-page "https://github.com/viant/assertly") + (synopsis "Data structure testing library)") + (description + "This library enables complex data structure testing, specifically: +@itemize +@item realtime transformation or casting of incompatible data types with +directives system +@item consistent way of testing of unordered structures +@item contains, Range, RegExp support on any data structure deeph level +@item switch case directive to provide expected value alternatives based on +actual switch/case input match +@item macro system enabling complex predicate and expression evaluation, and +customization +@end itemize") + (license license:asl2.0))) + +(define-public go-github-com-viant-assertly-bootstrap + (hidden-package + (package + (inherit go-github-com-viant-assertly) + (arguments + (list #:tests? #f + #:import-path "github.com/viant/assertly" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (native-inputs '()) + (propagated-inputs '())))) + +(define-public go-go-abhg-dev-requiredfield + (package + (name "go-go-abhg-dev-requiredfield") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abhinav/requiredfield") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15dccs71is06wi8xi3y2nnwpcpqbsh4pas4iggdr514aix8ljknf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.abhg.dev/requiredfield")) + (propagated-inputs + (list go-golang-org-x-tools)) + (home-page "https://go.abhg.dev/requiredfield") + (synopsis "Linter for required struct fields") + (description + "This package implements a linter that checks for required fields during +struct initialization.") + (license license:bsd-3))) + +(define-public go-go-abhg-dev-testing-stub + (package + (name "go-go-abhg-dev-testing-stub") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abhinav/stub-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04by4hq9lhmz3ij2rdl053nr76l65q5w8w41khxgr5xak8s63yq6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.abhg.dev/testing/stub")) + (home-page "https://github.com/abhinav/stub-go/tree") + (synopsis "Trivial stubbing package for Go") + (description + "Package stub provides helper functions to replace global variables for testing, +and restore them afterwards.") + (license license:bsd-3))) + (define-public go-go-etcd-io-gofail (package (name "go-go-etcd-io-gofail") @@ -1219,6 +1984,33 @@ functions for writing tests in an @code{xUnit} style.") @url{http://www.freebsd.org/cgi/man.cgi?query=fail,failpoints} for Golang.") (license license:asl2.0))) +(define-public go-go-simpler-org-sloglint + (package + (name "go-go-simpler-org-sloglint") + (version "0.7.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-simpler/sloglint") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y5hw79hib5g4fwwr1qdr0k6424vhj0hfs0rj2kxlqfwr3sn99qk")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go-simpler.org/sloglint")) + (propagated-inputs + (list go-github-com-ettle-strcase + go-golang-org-x-tools)) + (home-page "https://pkg.go.dev/go-simpler.org/sloglint") + (synopsis "Ensure consistent code style when using @code{log/slog}") + (description + "Package sloglint implements the sloglint analyzer. The @code{log/slog} +API allows two different types of arguments: key-value pairs and attributes.") + (license license:mpl2.0))) + (define-public go-golang-org-sql-mock (package (name "go-golang-org-sql-mock") @@ -1250,33 +2042,33 @@ real database connection.") (license license:expat))) (define-public go-golang-org-x-lint - (let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445") - (revision "0")) - (package - (name "go-golang-org-x-lint") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://go.googlesource.com/lint") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3")))) - (build-system go-build-system) - (arguments - '(#:import-path "golang.org/x/lint" - #:tests? #f)) ;; TODO: Fix tests - (propagated-inputs - (list go-golang-org-x-tools)) - (home-page "https://golang.org/x/lint") - (synopsis "Linter for Go source code") - (description - "This is a linter for Go source code. Unlike gofmt, it doesn't -reformat the source code, it only prints out style mistakes.") - (license license:bsd-3)))) + (package + (name "go-golang-org-x-lint") + (version "0.0.0-20241112194109-818c5a804067") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/lint") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06ni2jpd3s5bzg2qrry58svakkg9k43gkgkrbk8f8x886qnhnimp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "golang.org/x/lint")) + (propagated-inputs + (list go-golang-org-x-tools)) + (home-page "https://golang.org/x/lint") + (synopsis "Linter for Go source code") + (description + "This is a linter for Go source code. Unlike gofmt, it doesn't reformat +the source code, it only prints out style mistakes.") + (license license:bsd-3))) +;; XXX: Unmaintained since 2020, see +;; <https://github.com/go-check/check/issues/111>. (define-public go-gopkg-in-check-v1 (package (name "go-gopkg-in-check-v1") @@ -1294,15 +2086,9 @@ reformat the source code, it only prints out style mistakes.") (build-system go-build-system) (arguments (list - #:import-path "gopkg.in/check.v1" - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (unless - ;; The tests fail when run with gccgo. - (false-if-exception (search-input-file inputs "/bin/gccgo")) - (apply (assoc-ref %standard-phases 'check) args))))))) + ;; Most tests failed. + #:tests? #f + #:import-path "gopkg.in/check.v1")) (propagated-inputs (list go-github-com-kr-pretty)) (home-page "https://gopkg.in/check.v1") @@ -1310,6 +2096,74 @@ reformat the source code, it only prints out style mistakes.") (description "This package provides a test library for the Go language.") (license license:bsd-2))) +(define-public go-gopkg-in-dnaeon-go-vcr-v3 + (package + (name "go-gopkg-in-dnaeon-go-vcr-v3") + (version "3.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/dnaeon/go-vcr.v3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nij7rjbnrbsgjlm7fwpg298qffrgi2ic3wb51vqzxl6s9qkbzrq")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/dnaeon/go-vcr.v3" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Workaround for go-build-system's lack of Go modules + ;; support. + (delete 'build) + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" "./...")))))))) + (propagated-inputs + (list go-gopkg-in-yaml-v3)) + (home-page "https://gopkg.in/dnaeon/go-vcr.v3") + (synopsis "Record and replay your HTTP interactions") + (description + "@@code{go-vcr} simplifies testing by recording your HTTP interactions +and replaying them in future runs in order to provide fast, deterministic and +accurate testing of your code.") + (license license:bsd-2))) + +(define-public go-gopkg-in-dnaeon-go-vcr-v4 + (package + (inherit go-gopkg-in-dnaeon-go-vcr-v3) + (name "go-gopkg-in-dnaeon-go-vcr-v4") + (version "4.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/dnaeon/go-vcr.v4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p1a4hbk303k2bv9dmaf770dml71zr3260g5z7yd84vzhj8i0rzb")))) + (arguments + (list + #:import-path "gopkg.in/dnaeon/go-vcr.v4" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Workaround for go-build-system's lack of Go modules + ;; support. + (delete 'build) + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" "./...")))))))))) + (define-public go-gopkg-in-go-playground-assert-v1 (package (name "go-gopkg-in-go-playground-assert-v1") @@ -1367,6 +2221,8 @@ custom assertions to be used alongside native Go testing.") (arguments (list #:import-path "github.com/warpfork/go-testmark")) + (propagated-inputs + (list go-github-com-warpfork-go-fsx)) (home-page "https://github.com/warpfork/go-testmark") (synopsis "Parser for @code{testmark} format") (description @@ -1394,7 +2250,15 @@ testmark} format, which itself is a subset of Markdown format.") (build-system go-build-system) (arguments (list - #:import-path "github.com/warpfork/go-wish")) + #:import-path "github.com/warpfork/go-wish" + #:test-subdirs #~(list "cmp/..." "wishfix" ".") + #:test-flags + #~(list "-skip" (string-join + (list "TestDiff" + "TestOptions" + "TestGoTestOutputTree/non-verbose" + "TestGoTestOutputFun/non-verbose") + "|")))) (home-page "https://github.com/warpfork/go-wish") (synopsis "Test assertions for Golang") (description @@ -1485,6 +2349,79 @@ the end of a test.") built-in @code{testing} package, but can be used in other contexts too.") (license license:asl2.0))) +(define-public go-gotest-tools-v3 + (package + (name "go-gotest-tools-v3") + (version "3.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gotestyourself/gotest.tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1r5mc6slab6fj2si9nripl7fdq097s694gsn1gsxg2wj7605m5v4")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separatly: + ;; + ;; - gotest.tools/x/generics + (for-each delete-file-recursively + (list "x/generics")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "gotest.tools/v3" + #:test-flags + #~(list "-skip" (string-join + ;; Most of these failing tests can't read test file + ;; maybe due to the symlink can't be resolved properly + ;; or have assertion not equal. + (list "TestAssert_WithBinaryExpression_Failures" + "TestAssertWithBool.*" + "TestCheckFailure" + "TestCheckEqualFailure" + "TestCheck_MultipleFunctionsOnTheSameLine" + "TestEqualFailure" + "TestEqualFailure.*" + "TestAssertFailureWithOfflineComparison" + "TestErrorTypeFailure" + "TestErrorIs" + "TestEqual_WithGoldenUpdate" + "TestMigrateFile.*" + "TestMigrate_AssertAlready.*" + "TestFormattedCallExprArg.*" + "TestWaitOnSocketWithTimeout/connection_to_" + "TestIfCondition" + "TestIfCondition.*") + "|")))) + (propagated-inputs + (list go-github-com-google-go-cmp + go-golang-org-x-tools)) + (home-page "https://gotest.tools") + (synopsis "gotest.tools") + (description + "Package gotesttools is a collection of packages to augment +@code{testing} and support common patterns. + +Packages: +@itemize +@item @code{assert} - compare values and fail the test when a comparison fails +@item @code{env} - test code which uses environment variables +@item @code{fs} - create temporary files and compare a filesystem tree to an +expected value +@item @code{golden} - compare large multi-line strings against values frozen +in golden files +@item @code{icmd} - execute binaries and test the output +@item @code{poll} - test asynchronous code by polling until a desired state is +reached +@item @code{skip} - skip a test and print the source code of the condition +used to skip the test +@end itemize") + (license license:asl2.0))) + (define-public go-honnef-co-go-tools (package (name "go-honnef-co-go-tools") @@ -1524,6 +2461,67 @@ built-in @code{testing} package, but can be used in other contexts too.") advanced Go linter.") (license license:expat))) +(define-public go-modernc-org-ccorpus2 + (package + (name "go-modernc-org-ccorpus2") + (version "1.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/ccorpus2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mwgi0jdj5a595wlllr5rn3gvl7cqz7fnjx28hn3ia9cs1nxkk0a")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/ccorpus2")) + (home-page "https://gitlab.com/cznic/ccorpus2") + (synopsis "Continuation of ccorpus using @code{embed.FS}") + (description + "This packge provides a test corpus of C code.") + (license license:bsd-3))) + +(define-public go-mvdan-cc-unparam + (package + (name "go-mvdan-cc-unparam") + (version "0.0.0-20240528143540-8a5130ca722f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mvdan/unparam") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qrwszcmb5slbzkq3acw57b896z22zwkv6cf6ldxwlc6p179g009")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "mvdan.cc/unparam" + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'remove-failing-test-scripts + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file + (list "testdata/script/usedas.txtar" + "testdata/script/stubs.txtar" + "testdata/script/impl.txtar" + "testdata/script/paramuses.txtar")))))))) + (propagated-inputs + (list go-github-com-pkg-diff + go-github-com-rogpeppe-go-internal + go-golang-org-x-tools)) + (home-page "https://mvdan.cc/unparam/") + (synopsis "Find unused parameters in Go") + (description + "Reports unused function parameters and results in Go code.") + (license license:bsd-3))) + (define-public go-pgregory-net-rapid (package (name "go-pgregory-net-rapid") @@ -1600,12 +2598,29 @@ tool.")))) (description "This package turns unkeyed struct literals (@code{T{1, 2, 3}}) into keyed ones (@code{T{A: 1, B: 2, C: 3}}) in Go."))) +(define-public go-pgmockproxy + (package + (inherit go-github-com-jackc-pgmock) + (name "go-pgmockproxy") + (arguments + (list + #:install-source? #f + #:import-path "github.com/jackc/pgmock/pgmockproxy" + #:unpack-path "github.com/jackc/pgmock")) + (description + "pgmockproxy is a PostgreSQL proxy that logs the messages back and forth +between the PostgreSQL client and server. This can aid in building a mocking +script by running commands against a real server to observe the results. It +can also be used to debug applications that speak the PostgreSQL wire protocol +without needing to use a tool like Wireshark."))) + (define-public go-pprof (package (inherit go-github-com-google-pprof) (name "go-pprof") (arguments (list + #:tests? #f #:install-source? #f #:import-path "github.com/google/pprof")) (description @@ -1666,6 +2681,29 @@ into @code{go-structlayout-pretty}."))) (description "This package takes @code{go-structlayout}-like JSON and prints an ASCII fraphic representing the memory layout."))) +(define-public go-testdox + (package + (inherit go-github-com-bitfield-gotestdox) + (name "go-testdox") + (arguments + (list + #:install-source? #f + #:import-path "github.com/bitfield/gotestdox/cmd/gotestdox" + #:unpack-path "github.com/bitfield/gotestdox")) + (description + (string-append (package-description go-github-com-bitfield-gotestdox) + " This package provides an command line interface (CLI) +tool.")))) + +(define-public unparam + (package + (inherit go-mvdan-cc-unparam) + (name "unparam") + (arguments + (list #:tests? #f + #:install-source? #f + #:import-path "mvdan.cc/unparam")))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm index d26d775a42..2628036c31 100644 --- a/gnu/packages/golang-compression.scm +++ b/gnu/packages/golang-compression.scm @@ -29,6 +29,8 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-xyz)) ;;; Commentary: @@ -80,6 +82,9 @@ the @code{c2go} tool at (arguments (list #:import-path "github.com/dsnet/compress" + #:test-subdirs + #~(list "brotli/..." "bzip2/..." "flate" "internal" "internal/prefix" + "internal/testutil" "xflate/...") #:phases #~(modify-phases %standard-phases ;; Testdata directories contains some compressed files requiring @@ -163,7 +168,7 @@ library included in the stdlib, and supports GIF, TIFF and PDF.") (define-public go-github-com-klauspost-compress (package (name "go-github-com-klauspost-compress") - (version "1.13.1") + (version "1.17.11") (source (origin (method git-fetch) @@ -172,20 +177,11 @@ library included in the stdlib, and supports GIF, TIFF and PDF.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ydnf9rizlhm8rilh14674qqx272sbwbkjx06xn9pqvy6mmn2r3r")))) + (base32 "1i8r1xiba62nng651p4razxg1kw1910sl4grm7axm2g4q8s3i298")))) (build-system go-build-system) (arguments - `(#:import-path "github.com/klauspost/compress" - #:phases - (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'fix-permissions - (lambda* (#:key outputs #:allow-other-keys) - ;; Provide write permissions on gzip files so that - ;; reset-gzip-timestamps has sufficient permissions. - (for-each make-file-writable - (find-files (assoc-ref outputs "out") ".gz$"))))))) - (propagated-inputs - (list go-github-com-golang-snappy)) + (list + #:import-path "github.com/klauspost/compress")) (home-page "https://github.com/klauspost/compress") (synopsis "Go compression library") (description "@code{compress} provides various compression algorithms.") @@ -351,11 +347,19 @@ Supported archive formats: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0vfn01gd3hcpbj6gb4ig3pw6bv0g4j5780awr0fv4kf9id8gjvyy")))) + (base32 "0vfn01gd3hcpbj6gb4ig3pw6bv0g4j5780awr0fv4kf9id8gjvyy")) + (snippet + ;; XXX: fiano uses this package as library only, cmd requires very + ;; additional not packed and dated inputs. Overwrite with + ;; go-github-com-pierrec-lz4-v4 when fiano is updated. + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "cmd"))))) (build-system go-build-system) (arguments (list #:import-path "github.com/pierrec/lz4")) + (native-inputs + (list go-github-com-frankban-quicktest)) (home-page "https://github.com/pierrec/lz4") (synopsis "LZ4 compression in pure Go") (description @@ -383,7 +387,85 @@ LZ4 data blocks. The implementation is based on the reference C (build-system go-build-system) (arguments (list - #:import-path "github.com/pierrec/lz4/v4")))) + #:import-path "github.com/pierrec/lz4/v4")) + ;; For CLI. + (native-inputs + (list go-code-cloudfoundry-org-bytefmt + go-github-com-pierrec-cmdflag + go-github-com-schollz-progressbar-v3)))) + +(define-public go-github-com-saracen-fastzip + (package + (name "go-github-com-saracen-fastzip") + (version "0.1.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/saracen/fastzip") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h63lhbwkga920n6lrh1ccfps2k4c3dn2pqap0i6mvjk6dba95s0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/saracen/fastzip")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-klauspost-compress + go-github-com-saracen-zipextra + go-golang-org-x-sync + go-golang-org-x-sys)) + (home-page "https://github.com/saracen/fastzip") + (synopsis "Zip archiver and extractor with a focus on speed") + (description + "Fastzip is an opinionated Zip archiver and extractor with a focus on +speed. +Features: +@itemize +@item archiving and extraction of files and directories can only occur within +a specified directory +@item permissions, ownership (uid, gid on linux/unix) and modification times +are preserved +@item buffers used for copying files are recycled to reduce allocations +@item files are archived and extracted concurrently +@item by default, @code{github.com/klauspost/compress/flate} library is used +for compression and decompression +@end itemize") + (license license:expat))) + +(define-public go-github-com-saracen-zipextra + (package + (name "go-github-com-saracen-zipextra") + (version "0.0.0-20220303013732-0187cb0159ea") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/saracen/zipextra") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j24jdi5495nfq08xm6yjr9s32z13x6y961ry1ihhhgi6s8zdddj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/saracen/zipextra" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file "zipextra_example_test.go"))))))) + (home-page "https://github.com/saracen/zipextra") + (synopsis "Encoding and decoding ZIP archive format's \"Extra Fields\"") + (description + "This package provides a library for encoding and decoding ZIP archive +format's \"Extra Fields\". The intention is to eventually support and provide +a low-level API for the majority of PKWARE's and Info-ZIP's extra fields.") + (license license:expat))) (define-public go-github-com-ulikunitz-xz (package @@ -466,10 +548,6 @@ tool.")))) #:install-source? #f #:import-path "github.com/pierrec/lz4/cmd/lz4c" #:unpack-path "github.com/pierrec/lz4")) - (native-inputs - (list go-code-cloudfoundry-org-bytefmt - go-github-com-pierrec-cmdflag - go-github-com-schollz-progressbar-v3)) (description (string-append (package-description go-github-com-pierrec-lz4-v4) " This package provides an additional command line diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm index b1940583d4..75c56684d4 100644 --- a/gnu/packages/golang-crypto.scm +++ b/gnu/packages/golang-crypto.scm @@ -161,7 +161,7 @@ composability.") (define-public go-filippo-io-edwards25519 (package (name "go-filippo-io-edwards25519") - (version "1.0.0") + (version "1.1.0") (source (origin (method git-fetch) @@ -170,7 +170,7 @@ composability.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01m8hpaj0cwp250f7b0din09cf8j6j5y631grx67qfhvfrmwr1zr")))) + (base32 "1b2c4iv13mfa0dydr8wawpnnrxgwl7mxzhryfrkjxrgwad8gas5k")))) (build-system go-build-system) (arguments '(#:import-path "filippo.io/edwards25519")) @@ -198,25 +198,15 @@ primitives.") (arguments (list #:import-path "github.com/99designs/keyring" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - (substitute* (find-files "." "\\_test.go$") - ;; Disable test requring running DBus. - (("TestLibSecretKeysWhenEmpty") - "OffTestLibSecretKeysWhenEmpty") - (("TestLibSecretKeysWhenNotEmpty") - "OffTestLibSecretKeysWhenNotEmpty") - (("TestLibSecretGetWhenEmpty") - "OffTestLibSecretGetWhenEmpty") - (("TestLibSecretGetWhenNotEmpty") - "OffTestLibSecretGetWhenNotEmpty") - (("TestLibSecretRemoveWhenEmpty") - "OffTestLibSecretRemoveWhenEmpty") - (("TestLibSecretRemoveWhenNotEmpty") - "OffTestLibSecretRemoveWhenNotEmpty")))))))) + #:test-flags + #~(list "-skip" (string-join + (list "TestLibSecretKeysWhenEmpty" + "TestLibSecretKeysWhenNotEmpty" + "TestLibSecretGetWhenEmpty" + "TestLibSecretGetWhenNotEmpty" + "TestLibSecretRemoveWhenEmpty" + "TestLibSecretRemoveWhenNotEmpty") + "|")))) (native-inputs (list gnupg go-github-com-stretchr-testify password-store)) (propagated-inputs @@ -325,6 +315,31 @@ Go 1.20 @code{crypto/ecdh} standard package.") cryptographic standards that are not included in the Go standard library.") (license license:asl2.0)))) +(define-public go-github-com-bradenhilton-cityhash + (package + (name "go-github-com-bradenhilton-cityhash") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bradenhilton/cityhash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rfmbis47m42w05inqmph7jk6kza79miq9ifqlsdiax38b684yky")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bradenhilton/cityhash")) + (home-page "https://github.com/bradenhilton/cityhash") + (synopsis "Google CityHash version 1 in Golang") + (description + "This package provides a Go implementation of Google City Hash, +originated from https://github.com/zhenjl/cityhash and +https://github.com/zentures/cityhash projects.") + (license license:expat))) + (define-public go-github-com-btcsuite-btcd-btcec (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0") (revision "0")) @@ -377,8 +392,8 @@ needing to use secp256k1 elliptic curve cryptography.") (base32 "0h508v790wk6g8jq0gh18296xl87vmgc4fhwnac7mk6i5g3mz6v4")))) (build-system go-build-system) (arguments - (list #:unpack-path "github.com/bwesterb/go-ristretto" - #:import-path "github.com/bwesterb/go-ristretto/edwards25519")) + (list + #:import-path "github.com/bwesterb/go-ristretto")) (home-page "https://github.com/bwesterb/go-ristretto") (synopsis "Operations on the Ristretto prime-order group") (description "This is a pure Go implementation of the group operations on @@ -480,7 +495,7 @@ described at @url{https://xxhash.com/}.") (define-public go-github-com-cloudflare-circl (package (name "go-github-com-cloudflare-circl") - (version "1.3.6") + (version "1.5.0") (source (origin (method git-fetch) @@ -489,7 +504,20 @@ described at @url{https://xxhash.com/}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "05hk5svprcjrj6k4mg4kd732pnb658llqv04z6xrcl5v77jda2kd")))) + (base32 "1pfxg0iqai760arvbkznwkb6w2w7gginqpzr49s419dp73kr99hj")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodule(s) with their own go.mod files and packed as + ;; separated packages: + ;; + ;; - github.com/cloudflare/circl/pke/kyber/internal/common/asm + ;; - github.com/cloudflare/circl/sign/internal/dilithium/asm + ;; - github.com/cloudflare/circl/simd/keccakf1600/internal/asm + (for-each delete-file-recursively + (list "pke/kyber/internal/common/asm" + "sign/internal/dilithium/asm" + "simd/keccakf1600/internal/asm")))))) (build-system go-build-system) (arguments '(#:import-path "github.com/cloudflare/circl")) @@ -506,6 +534,36 @@ cryptographic algorithms targeting Post-Quantum (PQ) and Elliptic Curve Cryptography (ECC).") (license license:bsd-3))) +(define-public go-github-com-cloudwego-base64x + (package + (name "go-github-com-cloudwego-base64x") + (version "0.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cloudwego/base64x") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lgs28mj5w350vp6pazz2265hx2kab3kbjw7vnk0w1skslxbj8kx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cloudwego/base64x")) + (native-inputs + (list go-github-com-davecgh-go-spew + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-bytedance-sonic-loader + go-github-com-klauspost-cpuid-v2)) + (home-page "https://github.com/cloudwego/base64x") + (synopsis "Drop-in replacement of the std @code{encoding/base64} library") + (description + "This package provides a drop-in replacement of the Golang standard +@code{encoding/base64} library.") + (license (list license:asl2.0 license:asl2.0)))) + (define-public go-github-com-davidlazar-go-crypto (package (name "go-github-com-davidlazar-go-crypto") @@ -556,6 +614,29 @@ one-time authenticator as specified in @end itemize") (license license:expat))) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d6vbg5i5r6pgfk3vh93a20jdj67lgr17dk2iml7fffw67i25a2c")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description + "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-decred-dcrd-crypto-blake256 (package (name "go-github-com-decred-dcrd-crypto-blake256") @@ -649,6 +730,31 @@ signature scheme specific to Decred) signatures. See the README.md files in the relevant sub packages for more details about those aspects.") (license license:isc))) +(define-public go-github-com-dgryski-dgoogauth + (package + (name "go-github-com-dgryski-dgoogauth") + (version "0.0.0-20190221195224-5a805980a5f3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgryski/dgoogauth") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ma09ghwwizxaby37jmd9xjp6560p8lp29qqi8g4xw1d35h9nhny")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dgryski/dgoogauth")) + (home-page "https://github.com/dgryski/dgoogauth") + (synopsis "Google Authenticator for Golang") + (description + "This is a Go implementation of the Google Authenticator library as +specified in @url{https://www.rfc-editor.org/rfc/rfc4226, RFC 4226} and +@url{https://www.rfc-editor.org/rfc/rfc6238, RFC 6238}.") + (license license:asl2.0))) + (define-public go-github-com-dgryski-go-farm (package (name "go-github-com-dgryski-go-farm") @@ -675,6 +781,79 @@ It is implemented as a mechanical translation of the non-SSE4/non-AESNI hash functions from @url{https://github.com/google/farmhash,Google's FarmHash}.") (license license:expat))) +(define-public go-github-com-dgryski-go-metro + (package + (name "go-github-com-dgryski-go-metro") + (version "0.0.0-20250106013310-edb8663e5e33") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgryski/go-metro") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0had4wbhhghr3rbm5v4dcj73nlq49k1mpklqn9gkmzkkxfs8hf6z")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/dgryski/go-metro")) + (home-page "https://github.com/dgryski/go-metro") + (synopsis "Go translation of MetroHash") + (description + "This package provides a Go translation of the +@url{https://github.com/jandrewrogers/MetroHash, reference C++ code for +MetroHash}, a high quality, high performance hash algorithm.") + (license license:expat))) + +(define-public go-github-com-dgryski-go-mph + (package + (name "go-github-com-dgryski-go-mph") + (version "0.0.0-20211217222804-81a8625fb7ed") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgryski/go-mph") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10q8l4jdzqf54bnnxka2jk6qzayri3ijv51knn1n0iimfric8w9g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dgryski/go-mph")) + (propagated-inputs + (list go-github-com-dgryski-go-metro)) + (home-page "https://github.com/dgryski/go-mph") + (synopsis "Go minimal perfect hash function") + (description + "This package implements a hash/displace minimal perfect hash function.") + (license license:expat))) + +(define-public go-github-com-dgryski-go-rendezvous + (package + (name "go-github-com-dgryski-go-rendezvous") + (version "0.0.0-20200823014737-9f7001d12a5f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgryski/go-rendezvous") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hhdbsm5k19kh1fyxs4aibza9jylils4p3555lr8xalhj2iz3zlz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dgryski/go-rendezvous")) + (home-page "https://github.com/dgryski/go-rendezvous") + (synopsis "Hashing functions for Golang") + ;; Project provides no README. + (description + "This package provides a hashing function.") + (license license:expat))) + (define-public go-github-com-dvsekhvalnov-jose2go (package (name "go-github-com-dvsekhvalnov-jose2go") @@ -802,6 +981,34 @@ providing bidirectional mapping values to their names, plus enum convenience for values.") (license license:bsd-3))) +(define-public go-github-com-gliderlabs-ssh + (package + (name "go-github-com-gliderlabs-ssh") + (version "0.3.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gliderlabs/ssh") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01svn6n2i7gb3j4wvjh3d7xyh3n0kxm5cda2kg9vgpl1l3bbsvqm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gliderlabs/ssh")) + (propagated-inputs + (list go-github-com-anmitsu-go-shlex + go-golang-org-x-crypto)) + (home-page "https://github.com/gliderlabs/ssh") + (synopsis "SSH servers in Golang") + (description + "Package ssh wraps the crypto/ssh package with a higher-level API for +building SSH servers. The goal of the API was to make it as simple as using +net/http, so the API is very similar.") + (license license:bsd-3))) + (define-public go-github-com-go-asn1-ber-asn1-ber (package (name "go-github-com-go-asn1-ber-asn1-ber") @@ -1245,6 +1452,31 @@ implementations are described in \"Fast SHA-256 Implementations on Intel Architecture Processors\" by J. Guilford et al.") (license license:asl2.0))) +(define-public go-github-com-mr-tron-base58 + (package + (name "go-github-com-mr-tron-base58") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mr-tron/base58") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ngxfpaa26p53lciz9vf2gn21l77kz8pcm2asxbv0l87g6xwqp7h")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mr-tron/base58")) + (home-page "https://github.com/mr-tron/base58") + (synopsis "Fast implementation of base58 encoding on Golang") + (description + "Fast implementation of base58 encoding on Golang. A trivial +@command{big.Int} encoding benchmark results in 6 times faster encoding and 8 +times faster decoding.") + (license license:expat))) + (define-public go-github-com-multiformats-go-multihash (package (name "go-github-com-multiformats-go-multihash") @@ -1426,10 +1658,36 @@ algorithm.") "This package provides primitives for generating random values.") (license license:expat))) +(define-public go-github-com-pjbgf-sha1cd + (package + (name "go-github-com-pjbgf-sha1cd") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pjbgf/sha1cd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1g07kp07kvbsmpdrrv0r805vw4rr1mp77vx06m31nxvnp1s42zwi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pjbgf/sha1cd")) + (home-page "https://github.com/pjbgf/sha1cd") + (synopsis "sha1cd") + (description + "Package sha1cd implements collision detection based on the whitepaper +Counter-cryptanalysis from Marc Stevens. The original ubc implementation was +done by Marc Stevens and Dan Shumow, and can be found at: +@@url{https://github.com/cr-marcstevens/sha1collisiondetection,https://github.com/cr-marcstevens/sha1collisiondetection}.") + (license license:asl2.0))) + (define-public go-github-com-protonmail-go-crypto (package (name "go-github-com-protonmail-go-crypto") - (version "1.0.0") + (version "1.1.3") (source (origin (method git-fetch) @@ -1438,21 +1696,14 @@ algorithm.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "11q94983r6zjrdvflpikms4773a9s5vb9gg4qw1rj5800yhhah0n")))) + (base32 "0kcan2bw548cn6pm282zyddysv400dankcsrdanha7qmxqki34c0")))) (build-system go-build-system) (arguments (list #:import-path "github.com/ProtonMail/go-crypto" #:phases #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + (delete 'build)))) ; no go files in project's root (propagated-inputs (list go-github-com-cloudflare-circl go-golang-org-x-crypto)) @@ -1465,34 +1716,6 @@ completely backwards compatible with @code{golang.org/x/crypto}, the official package.") (license license:bsd-3))) -(define-public go-github-com-quic-go-qtls-go1-20 - (package - (name "go-github-com-quic-go-qtls-go1-20") - (version "0.4.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/quic-go/qtls-go1-20") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "069rknxpg7d0dmxc4akq2mw7wm5bi0420nshykf2iclvmbcg9ajh")))) - (build-system go-build-system) - (arguments - (list - ;; XXX: panic: qtls.ClientSessionState doesn't match, with Golang 1.20+. - #:go go-1.20 - #:import-path "github.com/quic-go/qtls-go1-20")) - (propagated-inputs - (list go-golang-org-x-crypto - go-golang-org-x-sys)) - (home-page "https://github.com/quic-go/qtls-go1-20") - (synopsis "TLS 1.3 for QUIC") - (description "Go standard library TLS 1.3 implementation, modified for -QUIC. For Go 1.20.") - (license license:expat))) - (define-public go-github-com-refraction-networking-utls (package (name "go-github-com-refraction-networking-utls") @@ -1572,6 +1795,30 @@ wide-block encryption mode developed by Halevi and Rogaway.") (description "Go-Bloom implements bloom filter using double hashing.") (license license:asl2.0)))) +(define-public go-github-com-sean--seed + (package + (name "go-github-com-sean--seed") + (version "0.0.0-20170313163322-e2103e2c3529") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sean-/seed") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0glir8jxi1w7aga2jwdb63pp1h8q4whknili7xixsqzwyy716125")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sean-/seed")) + (home-page "https://github.com/sean-/seed") + (synopsis "Seed random number generator") + (description + "Boiler-plate to securely @url{https://en.wikipedia.org/wiki/Random_seed, +seed} Go's random number generator (if possible).") + (license license:expat))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") @@ -1588,16 +1835,7 @@ wide-block encryption mode developed by Halevi and Rogaway.") (build-system go-build-system) (arguments (list - #:import-path "github.com/shadowsocks/go-shadowsocks2" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:import-path "github.com/shadowsocks/go-shadowsocks2")) (propagated-inputs (list go-github-com-riobard-go-bloom go-golang-org-x-crypto)) @@ -1607,6 +1845,210 @@ wide-block encryption mode developed by Halevi and Rogaway.") tunnel proxy protocol.") (license license:asl2.0))) +(define-public go-github-com-shogo82148-go-shuffle + (package + (name "go-github-com-shogo82148-go-shuffle") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shogo82148/go-shuffle") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z5n5jp57b68pq70wkrmw9z3vibjnq7b7f6i62pjhh1a83kknfg1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/shogo82148/go-shuffle")) + (home-page "https://github.com/shogo82148/go-shuffle") + (synopsis "Shuffling slices and user-defined collections") + (description + "Package shuffle provides primitives for shuffling slices and +user-defined collections.") + (license license:expat))) + +(define-public go-github-com-skeema-knownhosts + (package + (name "go-github-com-skeema-knownhosts") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/skeema/knownhosts") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i74wqingiflrrvpzhahwdly9f8c27i2far1qxkszi7aswhpj956")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/skeema/knownhosts")) + (propagated-inputs (list go-golang-org-x-crypto)) + (home-page "https://github.com/skeema/knownhosts") + (synopsis "Go SSH known_hosts wrapper with host key lookup") + (description + "Package knownhosts is a thin wrapper around @code{golang.org/x/crypto/ssh/knownhosts}, +adding the ability to obtain the list of host key algorithms for a known +host.") + (license license:asl2.0))) + +(define-public go-github-com-spaolacci-murmur3 + (package + (name "go-github-com-spaolacci-murmur3") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spaolacci/murmur3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/spaolacci/murmur3")) + (home-page "https://github.com/spaolacci/murmur3") + (synopsis "Native MurmurHash3 Go implementation") + (description + "Native Go implementation of Austin Appleby's third MurmurHash +revision (aka MurmurHash3). Reference algorithm has been slightly hacked as +to support the streaming mode required by Go's standard Hash interface.") + (license license:bsd-3))) + +(define-public go-github-com-tjfoc-gmsm + (package + (name "go-github-com-tjfoc-gmsm") + (version "1.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tjfoc/gmsm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18x1g555a3i86rkjrlxa6h6j3j87vhx480dqnv9hdij6cy3zph7i")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/tjfoc/gmsm" + #:test-subdirs + #~(list ;; "gmtls/..." ; requires go-google-golang-org-grpc + "pkcs12/..." + "sm2/..." + "sm3/..." + "sm4/..." + "x509/...") + #: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 "sm3/ifile")))) + (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 "sm3/ifile"))))))) + (propagated-inputs + (list go-github-com-golang-protobuf + go-golang-org-x-crypto + go-golang-org-x-net + #;go-google-golang-org-grpc)) ; not packed yet + (home-page "https://github.com/tjfoc/gmsm") + ;; Project's README is in Chinese Mandarin, translated with + ;; auto translator and corrected manually. + (synopsis "ShangMi (SM) cipher suites for Golang") + (description + "This package provides @url{https://en.wikipedia.org/wiki/SM4_(cipher), +ShāngMì 4} cipher suites implementation (GM SM2/3/4). + +Main functions: +@itemize +@item @code{SM2} national secret elliptic curve algorithm library +@item @code{SM3} national secret hash algorithm library +@item @code{SM4} national secret block cipher algorithm library +@end itemize") + (license license:asl2.0))) + +(define-public go-github-com-twmb-murmur3 + (package + (name "go-github-com-twmb-murmur3") + (version "1.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twmb/murmur3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "064bbgbgc45i3m9b3rqyw09g0nlrjs7dq1k716i5f06zjjpr56wg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/twmb/murmur3")) + (home-page "https://github.com/twmb/murmur3") + (synopsis "Native MurmurHash3 Go implementation") + (description + "Native Go implementation of Austin Appleby's third MurmurHash +revision (aka MurmurHash3). Reference algorithm has been slightly hacked as to +support the streaming mode required by Go's standard Hash interface.") + (license license:bsd-3))) + +(define-public go-github-com-twpayne-go-pinentry + (package + (name "go-github-com-twpayne-go-pinentry") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-pinentry") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ixvvfd7ywsgj0jk1plb4h2g5bpmw86qc89m02c184jh5ndawhip")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/twpayne/go-pinentry")) + (native-inputs + (list go-github-com-alecthomas-assert-v2 + go-github-com-golang-mock)) + (propagated-inputs + (list go-github-com-rs-zerolog)) + (home-page "https://github.com/twpayne/go-pinentry") + (synopsis "Golang client to GnuPG's pinentry") + (description + "Package pinentry provides a client to @code{GnuPG's} pinentry.") + (license license:expat))) + +(define-public go-github-com-twpayne-go-pinentry-v4 + (package + (inherit go-github-com-twpayne-go-pinentry) + (name "go-github-com-twpayne-go-pinentry-v4") + (version "4.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-pinentry") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1z9h2lg5xd3g6dd9avcfx0nnwdybr2yibmsw7akl6pz0cls3sf63")))) + (arguments + (list + #:import-path "github.com/twpayne/go-pinentry/v4")))) + (define-public go-github-com-xanzy-ssh-agent (package (name "go-github-com-xanzy-ssh-agent") @@ -1633,10 +2075,35 @@ ssh-agent that uses UNIX sockets, and one could implement an alternative ssh-agent process using the sample server.") (license license:asl2.0))) +(define-public go-github-com-xdg-go-pbkdf2 + (package + (name "go-github-com-xdg-go-pbkdf2") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xdg-go/pbkdf2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nipijy5xkdnfyhkp5ryrjzm14si1i2v2xyfmblf84binwkbr8jh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xdg-go/pbkdf2")) + (home-page "https://github.com/xdg-go/pbkdf2") + (synopsis "Go implementation of PBKDF2") + (description + "Package pbkdf2 implements password-based key derivation using the PBKDF2 +algorithm described in @url{https://rfc-editor.org/rfc/rfc2898.html,RFC 2898} +and @url{https://rfc-editor.org/rfc/rfc8018.html,RFC 8018}.") + (license license:asl2.0))) + (define-public go-github-com-youmark-pkcs8 (package (name "go-github-com-youmark-pkcs8") - (version "1.2") + (version "1.3") (source (origin (method git-fetch) @@ -1645,7 +2112,7 @@ ssh-agent process using the sample server.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ckdrwa5rmp2c85936qd9d0gzrnrvqfg0297ansz5frdhg6fc6nq")))) + (base32 "17pnl7b0ml4595cmxhramnc7ry6df6f4zisvaafxj4r7ravx8i7c")))) (build-system go-build-system) (arguments (list @@ -1673,7 +2140,14 @@ PKCS#5 (v2.0) algorithms.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf")))) + (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/zeebo/blake3/avo + (delete-file-recursively "avo"))))) (build-system go-build-system) (arguments (list @@ -1690,6 +2164,33 @@ PKCS#5 (v2.0) algorithms.") and SSE4.1 acceleration.") (license license:cc0))) +(define-public go-github-com-zeebo-blake3-avo + (package + (name "go-github-com-zeebo-blake3-avo") + (version "0.0.0-20240814144702-1a8215cf69be") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zeebo/blake3") + (commit (go-version->git-ref version + #:subdir "avo")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "117p973ccgalaqg7byj0qcd1xapysplql9np1sr9jkca500khcgf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/zeebo/blake3/avo" + #:unpack-path "github.com/zeebo/blake3")) + (propagated-inputs (list go-github-com-mmcloughlin-avo)) + (home-page "https://github.com/zeebo/blake3") + (synopsis "BLAKE3 Avo integration") + (description + "This package provides a @url{https://github.com/mmcloughlin/avo, avo} +vectorized version of BLAKE3 implementation in Golang.") + (license license:cc0))) + (define-public go-github-com-zeebo-pcg (package (name "go-github-com-zeebo-pcg") @@ -1716,6 +2217,58 @@ and SSE4.1 acceleration.") Congruential Generator} (PCG) algorithm.") (license license:cc0))) +(define-public go-gitlab-com-nyarla-go-crypt + (package + (name "go-gitlab-com-nyarla-go-crypt") + (version "0.0.0-20160106005555-d9a5dc2b789b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/nyarla/go-crypt.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0249hbwvhy0xywi9b5k8964km27pvfkr3jvliy3azri6vnyvkkx1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.com/nyarla/go-crypt")) + (home-page "https://gitlab.com/nyarla/go-crypt") + (synopsis "Implementation of @code{crypt(3)} in Golang") + (description + "Package crypt is a implementation of crypt(3) by golang, originated from +https://code.google.com/p/go-crypt.") + (license license:bsd-3))) + +(define-public go-gitlab-com-yawning-bsaes-git + (package + (name "go-gitlab-com-yawning-bsaes-git") + (version "0.0.0-20190805113838-0a714cd429ec") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/yawning/bsaes.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1w4g9phpb2f02dpkyd0ixp8jw9v42lnjljj4ysfz8im15abskwdn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.com/yawning/bsaes.git")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://gitlab.com/yawning/bsaes") + (synopsis "AES implementatin in Golang") + (description + "The @code{bsaes} is a portable pure-Go constant time AES implementation +based on the code from @url{https://bearssl.org/,BearSSL}. On appropriate +systems, with a sufficiently recent Go runtime, it will transparently call +crypto/aes when NewCipher is invoked.") + (license license:expat))) + (define-public go-gitlab-com-yawning-edwards25519-extra (let ((commit "2149dcafc266f66d2487f45b156f6397f9c4760b") (revision "0")) @@ -1781,6 +2334,96 @@ package is intended for interoperability with the standard library and the possible.") (license license:bsd-3)))) +(define-public go-gitlab-com-yawning-obfs4-git + (package + (name "go-gitlab-com-yawning-obfs4-git") + (version "0.0.0-20231012084234-c3e2d44b1033") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/yawning/obfs4.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kv62161jf28v1d31avlc0f5iyk5ar06zlk3zdw99hyyfqjiasdr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.com/yawning/obfs4.git" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (propagated-inputs + (list go-filippo-io-edwards25519 + go-github-com-dchest-siphash + go-gitlab-com-yawning-edwards25519-extra + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib + go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://gitlab.com/yawning/obfs4") + (synopsis "Network traffic obfourscator library") + (description + "This package implements functionality based on ideas and concepts from +Philipp Winter's +@url{https://www.cs.kau.se/philwint/scramblesuit/,ScrambleSuit} protocol. +The notable differences between ScrambleSuit and obfs4: +@itemize +@item the handshake always does a full key exchange (no such thing as a +Session Ticket Handshake) +@item the handshake uses the Tor Project's ntor handshake with public keys +obfuscated via the Elligator 2 mapping +@item the link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20) +@end itemize") + (license license:gpl3+))) + +(define-public go-gitlab-com-yawning-utls-git + (package + (name "go-gitlab-com-yawning-utls-git") + (version "0.0.12-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/yawning/utls.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f4m5g6yc0kn2s457gy98id4rr4m4z56y1nsxzx3xl04n408aimx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.com/yawning/utls.git" + #:test-flags + #~(list "-skip" (string-join + ;; Test requiring network setup. + (list "TestHandshakeClientCertECDSA" + "TestHandshakeServerECDHEECDSAAES" + "TestVerifyHostname" + ;; Fails with error: misamtch on read. + "TestCipherSuiteCertPreferenceECDSA/TLSv12" + "TestUTLSHandshakeClientParrotGolang" + ;; Fails with error: expected "key size too small + ;; for PSS signature". + "TestKeyTooSmallForRSAPSS" + ;; Time bomb tests, certs are not valid after + ;; certain date. + "TestResumption/TLSv12" + "TestResumption/TLSv13") + "|")))) + (propagated-inputs + (list go-github-com-dsnet-compress + go-gitlab-com-yawning-bsaes-git + go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://gitlab.com/yawning/utls") + (synopsis "Alternative fork of @code{github.com/refraction-networking/utls}") + (description + "This provides a fork of +@url{https://github.com/refraction-networking/utls,uTLS} for the specific +purpose of improving obfs4proxy's meek_lite transport.") + (license license:bsd-3))) + (define-public go-lukechampine-com-blake3 (package (name "go-lukechampine-com-blake3") @@ -1807,6 +2450,35 @@ contains AVX-512 and AVX2 routines (generated by avo) that greatly increase performance for large inputs and outputs.") (license license:expat))) +(define-public go-software-sslmate-com-src-go-pkcs12 + (package + (name "go-software-sslmate-com-src-go-pkcs12") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SSLMate/go-pkcs12") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bmkv9nxflgr5sbizpm737rbarmi8iyxny6pwdmqk0jzrg5ppd85")))) + (build-system go-build-system) + (arguments + (list + #:import-path "software.sslmate.com/src/go-pkcs12")) + (propagated-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/SSLMate/go-pkcs12") + (synopsis "Encoding and decoding PKCS#12 files") + (description + "Package pkcs12 implements some of PKCS#12 (also known as P12 or PFX). +It is intended for decoding DER-encoded P12/PFX files for use with the +@code{crypto/tls} package, and for encoding P12/PFX files for use by legacy +applications which do not support newer formats. Since PKCS#12 uses weak +encryption primitives, it SHOULD NOT be used for new applications.") + (license license:bsd-3))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") diff --git a/gnu/packages/golang-maths.scm b/gnu/packages/golang-maths.scm index cf783226ea..b14533c169 100644 --- a/gnu/packages/golang-maths.scm +++ b/gnu/packages/golang-maths.scm @@ -23,7 +23,8 @@ #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) - #:use-module (gnu packages)) + #:use-module (gnu packages) + #:use-module (gnu packages golang-build)) ;;; Commentary: ;;; @@ -35,6 +36,126 @@ ;;; Libraries: ;;; +(define-public go-github-com-aclements-go-moremath + (package + (name "go-github-com-aclements-go-moremath") + (version "0.0.0-20241023150245-c8bbc672ef66") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aclements/go-moremath") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01c9fkjs6gx7z6qkzy9qld7q3jhi9vgqhk8ymqck3ccmhg9bh1nq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aclements/go-moremath" + #:phases + #~(modify-phases %standard-phases + ;; No Go files in project root. + (delete 'build)))) + (propagated-inputs + (list go-gonum-org-v1-gonum)) + (home-page "https://github.com/aclements/go-moremath") + (synopsis "Assortment of more specialized math routines for Golang") + (description + "These packages provide more specialized math routines than are available +in the standard Go @code{math} package. go-moremath currently focuses on +statistical routines, with particular focus on high-quality implementations +and APIs for non-parametric methods.") + (license license:bsd-3))) + +(define-public go-github-com-cockroachdb-apd + (package + (name "go-github-com-cockroachdb-apd") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cockroachdb/apd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14jnnqpdsa3vxh2zpznd2dpnychcrlkljppfplrigrs245slyh72")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cockroachdb/apd")) + (propagated-inputs + (list go-github-com-pkg-errors)) + (home-page "https://github.com/cockroachdb/apd") + (synopsis "Arbitrary-precision decimals for Golang") + (description + "This package implements much of the decimal specification from the +@url{http://speleotrove.com/decimal/,General Decimal Arithmetic} description. +This is the same specification implemented by +@url{https://docs.python.org/2/library/decimal.html,Python’s decimal module} +and GCC’s decimal extension.") + (license license:asl2.0))) + +(define-public go-github-com-cockroachdb-apd-v3 + (package + (inherit go-github-com-cockroachdb-apd) + (name "go-github-com-cockroachdb-apd-v3") + (version "3.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cockroachdb/apd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jrb43l80mr8q1hx8q4p54rld6kya886ackv5yzqyhhhl271rnm6")))) + (arguments + (list + #:import-path "github.com/cockroachdb/apd/v3")))) + +(define-public go-github-com-johncgriffin-overflow + (package + (name "go-github-com-johncgriffin-overflow") + (version "0.0.0-20211019200055-46fa312c352c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JohnCGriffin/overflow") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1g4sfhdmzjl5vr16lfv7nv042w8dbz608bwzyvf7xlw4i7ypjjpq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/JohnCGriffin/overflow" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'generate-impl + ;; Note that because Go has no template types, the majority of + ;; repetitive code is generated by overflow_template.sh. If you + ;; have to change an algorithm, change it there and regenerate the + ;; Go code. + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "overflow_template.sh" + (("/bin/sh") (which "sh"))) + (make-file-writable "overflow_impl.go") + (invoke "./overflow_template.sh") + (invoke "go" "generate"))))))) + (home-page "https://github.com/JohnCGriffin/overflow") + (synopsis "Check for int/int64/int32 arithmetic overflow in Golang") + (description + "This package offers overflow-checked integer arithmetic operations for +@code{int},@code{int32}, and @code{int64}. Each of the operations returns a +@code{result,bool} combination. This was prompted by the need to know when to +flow into higher precision types from the @code{math.big} library.") + ;; It's in README, see <https://github.com/JohnCGriffin/overflow/pull/5>. + (license license:expat))) + (define-public go-github-com-montanaflynn-stats (package (name "go-github-com-montanaflynn-stats") @@ -51,13 +172,43 @@ (build-system go-build-system) (arguments (list - #:import-path "github.com/montanaflynn/stats")) + #:import-path "github.com/montanaflynn/stats" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) (home-page "https://github.com/montanaflynn/stats") (synopsis "Statistics library for Golang") (description "This package provides a statistical library for Golang.") (license license:expat))) +(define-public go-github-com-remyoudompheng-bigfft + (package + (name "go-github-com-remyoudompheng-bigfft") + (version "0.0.0-20230129092748-24d4a6f8daec") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/remyoudompheng/bigfft") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qxfda0jq70ank99zlgfz7iig2jpicbbxnpr7xcf1v9p474ak2dx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/remyoudompheng/bigfft")) + (home-page "https://github.com/remyoudompheng/bigfft") + (synopsis "Big integer multiplication library for using Fast Fourier transform") + (description + "Package bigfft implements multiplication of @code{big.Int} using +FFT (Schonhage-Strassen method for multiplying integers).") + (license license:bsd-3))) + (define-public go-github-com-shopspring-decimal (package (name "go-github-com-shopspring-decimal") @@ -116,6 +267,111 @@ rounding for conversions. IEEE 754-2008 refers to this 16-bit floating-point format as binary16.") (license license:expat))) +(define-public go-gonum-org-v1-gonum + (package + (name "go-gonum-org-v1-gonum") + (version "0.15.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gonum/gonum") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "002qsavnylj8l4ki56narpn3zm0r9p7p8ccgd20q1xp751wg2kvp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gonum.org/v1/gonum" + #:test-subdirs + #~(list "." + "blas/..." + "cmplxs/..." + "diff/..." + "dsp/fourier/..." + "floats/..." + "integrate/..." + "internal/..." + "interp/..." + "lapack/..." + "mat/..." + "mathext/..." + "num/..." + "optimize/..." + "spatial/..." + "stat/..." + "uniti/..."))) + (propagated-inputs + (list go-github-com-goccmack-gocc + go-github-com-google-go-cmp + go-golang-org-x-exp + go-golang-org-x-tools + #;go-gonum-org-v1-plot ; not packed yet + )) + (home-page "https://www.gonum.org/") + (synopsis "Set of numeric libraries for Golang") + (description + "Gonum is a set of packages designed to make writing numerical and +scientific algorithms productive, performant, and scalable. It provides +libraries for matrices and linear algebra; statistics, probability +distributions, and sampling; tools for function differentiation,integration, +and optimization; network creation and analysis") + (license license:expat))) + +(define-public go-lukechampine-com-uint128 + (package + (name "go-lukechampine-com-uint128") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lukechampine/uint128") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yy6lbprrsl9gscxn4194kr5sfvgi9cgvjdxn2141k36ab3nz8ip")))) + (build-system go-build-system) + (arguments + (list + #:import-path "lukechampine.com/uint128")) + (home-page "https://github.com/lukechampine/uint128") + (synopsis "Uint128 for Golang") + (description + "This package provides a high-performance @code{Uint128} type that +supports standard arithmetic operations. Unlike @code{math/big}, operations +on @code{Uint128} values always produce new values instead of modifying a +pointer receiver. A @@code{Uint128} value is therefore immutable, just like +@code{uint64} and friends.") + (license license:expat))) + +(define-public go-modernc-org-mathutil + (package + (name "go-modernc-org-mathutil") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/mathutil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wafxarpfvys5p2wsamadkv8j54ahrv9dwmlba9xsxb85n4q9ywm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/mathutil")) + (propagated-inputs (list go-github-com-remyoudompheng-bigfft)) + (home-page "https://modernc.org/mathutil") + (synopsis + "Utilities supplemental to the Go standard @code{rand} and @code{math} packages") + (description + "Package mathutil provides utilities supplementing the standard +@code{math} and @code{math/rand} packages.") + (license license:bsd-3))) + ;;; ;;; Executables: ;;; diff --git a/gnu/packages/golang-vcs.scm b/gnu/packages/golang-vcs.scm new file mode 100644 index 0000000000..2c2dcc2d11 --- /dev/null +++ b/gnu/packages/golang-vcs.scm @@ -0,0 +1,172 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages golang-vcs) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages version-control)) + +;;; Commentary: +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +;;; +;;; Libraries: +;;; + +(define-public go-github-com-go-git-gcfg + (package + (name "go-github-com-go-git-gcfg") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-git/gcfg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lb14z4j35pwz2b2rbykkpsq515spwbndb00gwn2xlrzn949xb83")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-git/gcfg" + ;; pass; got 10, error <nil> + ;; failed to parse "a" as int: expected integer; *ptr==0 + #:test-flags #~(list "-skip" "TestParseInt|TestScanFully"))) + (propagated-inputs + (list go-github-com-pkg-errors + go-gopkg-in-warnings-v0)) + (home-page "https://github.com/go-git/gcfg") + (synopsis "Gcfg reads INI-style configuration files into Go structs") + (description "Gcfg reads INI-style configuration files into Go structs.") + (license license:bsd-3))) + +(define-public go-github-com-go-git-go-git-v5 + (package + (name "go-github-com-go-git-go-git-v5") + (version "5.13.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-git/go-git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mgzwwmq1awai9n8vkjp8xpq26hvivl53g57f1k2cgg6bkj13r2a")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ;requires network connection + #:import-path "github.com/go-git/go-git/v5" + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'setup + (lambda* (#:key inputs #:allow-other-keys) + (let* ((git #$(this-package-native-input "git-minimal")) + (git-bin (string-append git "/bin")) + (git-exe (string-append git-bin "/git"))) + (setenv "GIT_DIST_PATH=" git) + (setenv "GIT_EXEC_PATH=" git-bin) + (setenv "HOME" (getcwd)) + (invoke git-exe "config" "--global" "user.email" "gha@example.com") + (invoke git-exe "config" "--global" "user.name" "GitHub Actions"))))))) + (native-inputs + (list git-minimal/pinned + go-github-com-stretchr-testify + go-gopkg-in-check-v1)) + (propagated-inputs + (list go-dario-cat-mergo + go-github-com-armon-go-socks5 + go-github-com-elazarl-goproxy + go-github-com-emirpasic-gods + go-github-com-gliderlabs-ssh + go-github-com-go-git-gcfg + go-github-com-go-git-go-billy-v5 + go-github-com-go-git-go-git-fixtures-v4 + go-github-com-golang-groupcache + go-github-com-google-go-cmp + go-github-com-jbenet-go-context + go-github-com-kevinburke-ssh-config + go-github-com-pjbgf-sha1cd + go-github-com-protonmail-go-crypto + go-github-com-sergi-go-diff + go-github-com-skeema-knownhosts + go-github-com-xanzy-ssh-agent + go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-sys + go-golang-org-x-text)) + (home-page "https://github.com/go-git/") + (synopsis "Git implementation library") + (description "This package provides a Git implementation library.") + (license license:asl2.0))) + +(define-public go-github-com-xanzy-go-gitlab + (package + (name "go-github-com-xanzy-go-gitlab") + (version "0.114.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xanzy/go-gitlab") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "136iik1pqggdk2z3yz4wh5z05wp9sb6j1rpbf33bjn5djqxcxbbf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xanzy/go-gitlab")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-google-go-querystring + go-github-com-hashicorp-go-cleanhttp + go-github-com-hashicorp-go-retryablehttp + go-golang-org-x-oauth2 + go-golang-org-x-time)) + (home-page "https://github.com/xanzy/go-gitlab") + (synopsis "GitLab Go SDK") + (description + "This package provides a GitLab API client enabling Go programs to +interact with GitLab in a simple and uniform way.") + (license license:asl2.0))) + +;;; +;;; Executables: +;;; + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above in alphabetic order. +;;; diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 6d1a0c1eae..4ac18ed019 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> @@ -34,6 +35,8 @@ ;;; Copyright © 2024 Dominic Martinez <dom@dominicm.dev> ;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> +;;; Copyright © 2024 Herman Rimm <herman@rimm.ee> +;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +68,7 @@ #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages ipfs) + #:use-module (gnu packages prometheus) #:use-module (gnu packages tls) #:use-module (gnu packages web)) @@ -85,6 +89,52 @@ ;;; Libraries: ;;; +(define-public go-0xacab-org-leap-obfsvpn + (package + (name "go-0xacab-org-leap-obfsvpn") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/obfsvpn.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iq3m2j6m9n1h9rkysaj97nnqx65fn7vz9jskl4qa4rwh002pv3d")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; It's the same project. + (substitute* (find-files "." "\\.go$") + (("git.torproject.org/pluggable-transports/goptlib.git") + (string-append "gitlab.torproject.org/tpo/anti-censorship" + "/pluggable-transports/goptlib"))))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "0xacab.org/leap/obfsvpn")) + (native-inputs + (list go-github-com-spf13-pflag + go-github-com-spf13-viper)) + (propagated-inputs + (list go-github-com-labstack-echo-v4 + go-github-com-quic-go-quic-go + go-github-com-sirupsen-logrus + go-github-com-xtaci-kcp-go-v5 + go-gitlab-com-yawning-obfs4-git + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib)) + (home-page "https://0xacab.org/leap/obfsvpn") + (synopsis "OBFS4 client and server proxies") + (description + "The @@code{obfsvpn} module contains a Go package that provides server +and client components to use variants of the obfs4 obfuscation protocol. It +is intended to be used as a drop-in Pluggable Transport for @code{OpenVPN} +connections +(although it can be used for other, more generic purposes).") + (license license:bsd-2))) + (define-public go-cloud-google-com-go-compute-metadata (package (name "go-cloud-google-com-go-compute-metadata") @@ -111,6 +161,33 @@ API service accounts for Go.") (license license:asl2.0))) +(define-public go-git-sr-ht-adnano-go-gemini + (package + (name "go-git-sr-ht-adnano-go-gemini") + (version "0.2.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~adnano/go-gemini") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xxcljhk9abjjdcl1dnxaq7qwvl13rq51bwps5nxlkib7fxgbyyl")))) + (build-system go-build-system) + (arguments + (list + #:import-path "git.sr.ht/~adnano/go-gemini")) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://git.sr.ht/~adnano/go-gemini") + (synopsis "Gemini protocol in Go") + (description + "The @code{gemini} package implements the Gemini protocol in Go. It +provides an API similar to that of NET/HTTP to facilitate the development of +Gemini clients and servers.") + (license license:expat))) + (define-public go-git-sr-ht-emersion-gqlclient (package (name "go-git-sr-ht-emersion-gqlclient") @@ -126,7 +203,13 @@ API service accounts for Go.") (base32 "0x64kcryawdr0daq1w6fada60zqrddw75yi397835b9ij7wb5gmh")))) (build-system go-build-system) (arguments - (list #:import-path "git.sr.ht/~emersion/gqlclient")) + (list + #:embed-files #~(list "prelude.graphql") + #:import-path "git.sr.ht/~emersion/gqlclient")) + ;; For the CLI. + (native-inputs + (list go-github-com-dave-jennifer + go-github-com-vektah-gqlparser-v2)) (home-page "https://git.sr.ht/~emersion/gqlclient") (synopsis "GraphQL client and code generator") (description @@ -171,6 +254,31 @@ API service accounts for Go.") 2019.") (license license:expat))) +(define-public go-github-com-aki237-nscjar + (package + (name "go-github-com-aki237-nscjar") + (version "0.0.0-20210417074043-bbb606196143") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aki237/nscjar") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vbagy9g795b17lnnkkm2f3pcrkxrzc4qbzc656g2cdkdprdyb4m")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aki237/nscjar")) + (home-page "https://github.com/aki237/nscjar") + (synopsis "Handle Netscape / Mozilla cookies") + (description + "@code{nscjar} is a Go library used to parse and output +Netscape/Mozilla's old-style cookie files. It also implements a simple cookie +jar struct to manage the cookies added to the cookie jar.") + (license license:expat))) + (define-public go-github-com-alexliesenfeld-health (package (name "go-github-com-alexliesenfeld-health") @@ -310,6 +418,34 @@ that of BeautifulSoup.") the parse trees produced by the html package.") (license license:bsd-2))) +(define-public go-github-com-armon-go-socks5 + (package + (name "go-github-com-armon-go-socks5") + (version "0.0.0-20160902184237-e75332964ef5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/armon/go-socks5") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "104w10jf0wlxyxi35hf6frndgf0ybz21h54xjmnkivpb6slycpyq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/armon/go-socks5")) + (native-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/armon/go-socks5") + (synopsis "SOCKS5 server in Golang") + (description + "This package provides the @code{socks5} package that implements a +@url{http://en.wikipedia.org/wiki/SOCKS,SOCKS5 server}. SOCKS (Secure +Sockets) is used to route traffic between a client and server through an +intermediate proxy layer. This can be used to bypass firewalls or NATs.") + (license license:expat))) + (define-public go-github-com-audriusbutkevicius-pfilter (package (name "go-github-com-audriusbutkevicius-pfilter") @@ -425,7 +561,7 @@ functions.") (define-public go-github-com-aws-aws-sdk-go-v2 (package (name "go-github-com-aws-aws-sdk-go-v2") - (version "1.30.5") + (version "1.32.0") (source (origin (method git-fetch) @@ -434,11 +570,22 @@ functions.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1mxm3j8xwlzjqhdw515kwzzhnfr325s08ry73chjbdw6qb940lb1")))) + (base32 "1iflf2ski7vm2z78wdmbrqpchc3qr50macnf965wmdyfinvx58wn")) + ;; XXX: It contains a lot of sub packages defined with go.mod, consider + ;; to pack them separately. + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/aws/aws-sdk-go-v2/service/sqs + (for-each delete-file-recursively + (list "service/sqs")))))) (build-system go-build-system) (arguments (list - #:import-path "github.com/aws/aws-sdk-go-v2")) + #:import-path "github.com/aws/aws-sdk-go-v2" + #:test-subdirs #~(list "."))) (propagated-inputs (list go-github-com-jmespath-go-jmespath go-github-com-aws-smithy-go)) @@ -463,21 +610,29 @@ functions.") (define-public go-github-com-aws-aws-sdk-go-v2-credentials (package (name "go-github-com-aws-aws-sdk-go-v2-credentials") - (version "1.17.27") + (version "1.17.48") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aws/aws-sdk-go-v2") - (commit (string-append "credentials/v" version)))) + (commit (go-version->git-ref version + #:subdir "credentials")))) (file-name (git-file-name name version)) (sha256 - (base32 "0jdj7wim98g80hjbw3av7ffrr3dqxzbygprmhjs0cxc16cw62wj7")))) + (base32 "1n3spqncpw6w11pwkqaiq7jyv6dv0229jsbshibg24l2g3accdqi")))) (build-system go-build-system) (arguments (list #:import-path "github.com/aws/aws-sdk-go-v2/credentials" - #:unpack-path "github.com/aws/aws-sdk-go-v2")) + #:unpack-path "github.com/aws/aws-sdk-go-v2" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* (find-files "." "test\\.go") + (("/bin/sleep") (which "sleep"))))))))) (propagated-inputs (list go-github-com-google-go-cmp go-github-com-aws-smithy-go)) @@ -520,6 +675,86 @@ credentials sources.") (propagated-inputs (list go-github-com-aws-smithy-go)))) +(define-public go-github-com-aws-aws-sdk-go-v2-service-secretsmanager + (package + (name "go-github-com-aws-aws-sdk-go-v2-service-secretsmanager") + (version "1.34.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/aws-sdk-go-v2") + (commit (go-version->git-ref version + #:subdir "service/secretsmanager")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n3spqncpw6w11pwkqaiq7jyv6dv0229jsbshibg24l2g3accdqi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aws/aws-sdk-go-v2/service/secretsmanager" + #:unpack-path "github.com/aws/aws-sdk-go-v2")) + (propagated-inputs + (list go-github-com-aws-smithy-go)) + (home-page "https://github.com/aws/aws-sdk-go-v2") + (synopsis "AWS Secrets Manager service") + (description + "Package secretsmanager provides the API client, operations, and +parameter types for AWS Secrets Manager.") + (license license:asl2.0))) + +(define-public go-github-com-aws-aws-sdk-go-v2-service-sqs + (package + (name "go-github-com-aws-aws-sdk-go-v2-service-sqs") + (version "1.37.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/aws-sdk-go-v2") + (commit (go-version->git-ref version + #:subdir "service/sqs")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "158mgp8czzkhjdwli2wciwqihs56jp879ahjdjyy8c6fn0g3xdvb")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (define (directory? x) + (and=> (stat x #f) + (compose (cut eq? 'directory <>) stat:type))) + (with-directory-excursion directory + (let* ((pred + (negate (cut member <> (append '("." "..") preserve)))) + (items (scandir "." pred))) + (for-each (lambda (item) + (if (directory? item) + (delete-file-recursively item) + (delete-file item))) + items)))) + (delete-all-but "service" "sqs") + (delete-all-but "." "service"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aws/aws-sdk-go-v2/service/sqs" + #:unpack-path "github.com/aws/aws-sdk-go-v2")) + (propagated-inputs + (list go-github-com-aws-smithy-go + go-github-com-aws-aws-sdk-go-v2)) + (home-page "https://github.com/aws/aws-sdk-go-v2") + (synopsis "AWS Golang SDK for Simple Queue Service") + (description + "Package sqs provides the API client, operations, and parameter types for +Amazon Simple Queue Service.") + (license license:asl2.0))) + (define-public go-github-com-aws-aws-sdk-go-v2-service-sso (package (inherit go-github-com-aws-aws-sdk-go-v2) @@ -556,27 +791,150 @@ credentials sources.") (define-public go-github-com-aws-smithy-go (package (name "go-github-com-aws-smithy-go") - (version "1.21.0") + (version "1.22.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aws/smithy-go") - (commit "v1.21.0"))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1pcq9d154l41c4k23q6ri51ba5i2kc8ihrv4sgkv4q59cw70rspi")))) + (base32 "16jbv7cyj85048f4kcrib8k2yif165sc099h0aklal5dwlf85xcg")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/aws/smithy-go/aws-http-auth + ;; - github.com/aws/smithy-go/codegen + ;; - github.com/aws/smithy-go/metrics/smithyotelmetrics + ;; - github.com/aws/smithy-go/tracing/smithyoteltracing + (for-each delete-file-recursively + (list "aws-http-auth" + "codegen" + "metrics/smithyotelmetrics" + "tracing/smithyoteltracing")))))) (build-system go-build-system) (arguments - '(#:import-path "github.com/aws/smithy-go")) - (propagated-inputs - (list go-github-com-jmespath-go-jmespath go-github-com-google-go-cmp)) + (list + #:import-path "github.com/aws/smithy-go")) (home-page "https://github.com/aws/smithy-go") (synopsis "Smithy code generators for Go") (description "Package smithy provides the core components for a Smithy SDK.") (license license:asl2.0))) +(define-public go-github-com-aws-smithy-go-aws-http-auth + (package + (name "go-github-com-aws-smithy-go-aws-http-auth") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/smithy-go") + (commit (go-version->git-ref version + #:subdir "aws-http-auth")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iy9rlcj6qwy58rrddbvqy38lzw9d7y1i2d3mvf3f3z4i6rkwvd4")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/aws/smithy-go/aws-http-auth" + #:unpack-path "github.com/aws/smithy-go")) + (home-page "https://github.com/aws/smithy-go") + (synopsis "Consumable SigV4 and SigV4a request signing") + (description + "This package implements generically consumable SigV4 and SigV4a request +signing.") + (license license:asl2.0))) + +(define-public go-github-com-aws-smithy-go-codegen + (package + (name "go-github-com-aws-smithy-go-codegen") + (version "0.0.0-20241226171254-10fbeed6f845") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/smithy-go") + (commit (go-version->git-ref version + #:subdir "codegen")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16jbv7cyj85048f4kcrib8k2yif165sc099h0aklal5dwlf85xcg")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/aws/smithy-go/codegen" + #:unpack-path "github.com/aws/smithy-go")) + (home-page "https://github.com/aws/smithy-go") + (synopsis "Smithy code generators for Golang") + (description + "This package provides Gradle templates for Smithy code generators.") + (license license:asl2.0))) + +(define-public go-github-com-aws-smithy-go-metrics-smithyotelmetrics + (package + (name "go-github-com-aws-smithy-go-metrics-smithyotelmetrics") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/smithy-go") + (commit (go-version->git-ref version + #:subdir "metrics/smithyotelmetrics")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16jbv7cyj85048f4kcrib8k2yif165sc099h0aklal5dwlf85xcg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aws/smithy-go/metrics/smithyotelmetrics" + #:unpack-path "github.com/aws/smithy-go")) + (propagated-inputs + (list go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel)) ; for go.opentelemetry.io/otel/metric + (home-page "https://github.com/aws/smithy-go") + (synopsis "AWS Smithy OTEL metrics adapter") + (description + "Package smithyotelmetrics implements a Smithy client metrics adapter for +the OTEL Go SDK.") + (license license:asl2.0))) + +(define-public go-github-com-aws-smithy-go-tracing-smithyoteltracing + (package + (name "go-github-com-aws-smithy-go-tracing-smithyoteltracing") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/smithy-go") + (commit (go-version->git-ref version + #:subdir "tracing/smithyoteltracing")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16jbv7cyj85048f4kcrib8k2yif165sc099h0aklal5dwlf85xcg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/aws/smithy-go/tracing/smithyoteltracing" + #:unpack-path "github.com/aws/smithy-go")) + (propagated-inputs + (list go-go-opentelemetry-io-otel)) + (home-page "https://github.com/aws/smithy-go") + (synopsis "AWS Smithy OTEL tracing adapter") + (description + "Package smithyoteltracing implements a Smithy client tracing adapter for +the OTEL Go SDK.") + (license license:asl2.0))) + (define-public go-github-com-aymerick-douceur (package (name "go-github-com-aymerick-douceur") @@ -631,6 +989,72 @@ credentials sources.") Manager,NTLM}/Negotiate authentication over HTTP.") (license license:expat))) +(define-public go-github-com-babolivier-go-doh-client + (package + (name "go-github-com-babolivier-go-doh-client") + (version "0.0.0-20201028162107-a76cff4cb8b6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/babolivier/go-doh-client") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ca72jz5d5wf5hkcjiwrjvh4fp9p0nqhgwyx9p3vq9sdrx524d21")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/babolivier/go-doh-client")) + (home-page "https://github.com/babolivier/go-doh-client") + (synopsis "DNS over HTTPS client implementation written in Golang") + (description + "Package doh implements client operations for @code{DoH} (DNS over HTTPS) +lookups. It implements looking up the following records: +@itemize +@item A +@item AAAA +@item CNAME +@item MX +@item NS +@item TXT +@item SRV +@item SOA +@item PTR +@end itemize") + (license license:gpl3))) + +(define-public go-github-com-beevik-ntp + (package + (name "go-github-com-beevik-ntp") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/beevik/ntp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n2mr4nnbsv5f0w3hkk3kmyn3wd2xqi5zxgcm8s50fdizk0nqmi9")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/beevik/ntp" + ;; Tests requir access to <0.beevik-ntp.pool.ntp.org:53>. + #:test-flags #~(list "-skip" "TestOnlineQuery|TestOnlineTime"))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/beevik/ntp") + (synopsis "NTP client package for Golang") + (description + "Package ntp provides an implementation of a Simple NTP (SNTP) client +capable of querying the current time from a remote NTP server as specified in +@url{https://rfc-editor.org/rfc/rfc5905.html, RFC 5905}.") + (license license:bsd-2))) + (define-public go-github-com-bep-golibsass (package (name "go-github-com-bep-golibsass") @@ -688,6 +1112,34 @@ Manager,NTLM}/Negotiate authentication over HTTP.") "This package provides SCSS compiler support for Go applications.") (license license:expat))) +(define-public go-github-com-bradenhilton-mozillainstallhash + (package + (name "go-github-com-bradenhilton-mozillainstallhash") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bradenhilton/mozillainstallhash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j54ssnvk2vy77g23zrhi9acwblnamj63i7wmmdnb89fjg0xc9km")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bradenhilton/mozillainstallhash")) + (propagated-inputs + (list go-github-com-bradenhilton-cityhash + go-golang-org-x-text)) + (home-page "https://github.com/bradenhilton/mozillainstallhash") + (synopsis "Generates the hash used in installs of Mozilla software") + (description + "This package provides a functionality to get the hash used to +differentiate between installs of Mozilla software in @code{installs.ini} and +@code{profiles.ini}.") + (license license:expat))) + (define-public go-github-com-caddyserver-certmagic (package (name "go-github-com-caddyserver-certmagic") @@ -968,6 +1420,32 @@ API. See the full Circonus API Documentation at @url{https://login.circonus.com/resources/api} for more information.") (license license:bsd-3))) +(define-public go-github-com-cli-browser + (package + (name "go-github-com-cli-browser") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/browser") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f54ap2a4df32bwrwqsasfsikkxngkk4wr2wfbsns4lf0yymra6k")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cli/browser")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/cli/browser") + (synopsis "Helpers to open URLs, files, or readers in a web browser") + (description + "Package browser provides helpers to open files, readers, and URLs in a +browser window.") + (license license:bsd-2))) + (define-public go-github-com-coder-websocket (package (name "go-github-com-coder-websocket") @@ -980,10 +1458,19 @@ API. See the full Circonus API Documentation at (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "172v9mqghswf50ga512qghb6ii0ivz5fi2iyjzdnbm42g0cr4fjj")))) + (base32 "172v9mqghswf50ga512qghb6ii0ivz5fi2iyjzdnbm42g0cr4fjj")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/coder/websocket/internal/thirdparty + (delete-file-recursively "internal/thirdparty"))))) (build-system go-build-system) (arguments (list #:import-path "github.com/coder/websocket")) + (native-inputs + (list go-golang-org-x-time)) ; for examples (home-page "https://github.com/coder/websocket") (synopsis "WebSocket library for Go") (description @@ -1071,7 +1558,7 @@ Any}.") (define-public go-github-com-coreos-go-oidc (package (name "go-github-com-coreos-go-oidc") - (version "2.2.1") + (version "2.3.0") (source (origin (method git-fetch) @@ -1080,14 +1567,16 @@ Any}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "11m6slbpi33ynffml7812piq4anhjlf1qszjlsf26f5y7x3qh8n5")))) + (base32 "180wnxiim622v17xcnrjrg9g07mg4xizmlxxyrl9p42is0abi9c8")))) (build-system go-build-system) (arguments (list #:import-path "github.com/coreos/go-oidc")) + (native-inputs + (list go-golang-org-x-net)) (propagated-inputs (list go-github-com-pquerna-cachecontrol go-golang-org-x-oauth2 - go-gopkg-in-square-go-jose-v2)) + go-gopkg-in-go-jose-go-jose-v2)) (home-page "https://github.com/coreos/go-oidc") (synopsis "OpenID Connect support for Go") (description @@ -1150,6 +1639,7 @@ Any}.") (arguments (list #:import-path "github.com/cretz/bine" + #:test-subdirs #~(list "tests/..." "torutil/...") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'remove-examples @@ -1234,6 +1724,167 @@ client in Golang.") (modify-inputs (package-native-inputs go-github-com-datadog-datadog-go) (append go-github-com-golang-mock))))) +(define-public go-github-com-davecgh-go-xdr + (package + (name "go-github-com-davecgh-go-xdr") + (version "0.0.0-20161123171359-e6a2ba005892") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/davecgh/go-xdr") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vifrz4iil4r7k8sz5iqlfbh80ysgs5abp2simgyhsbrkxrrsrrd")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/davecgh/go-xdr/xdr2" + #:unpack-path "github.com/davecgh/go-xdr")) + (home-page "https://github.com/davecgh/go-xdr") + (synopsis "Pure Go implementation of the XDR standard") + (description + "@code{go-xdr} implements the data representation portion of the External +Data Representation (XDR) standard protocol as specified in RFC +4506 (obsoletes RFC 1832 and RFC 1014) in pure Go.") + (license license:isc))) + +(define-public go-github-com-docker-go-connections + (package + (name "go-github-com-docker-go-connections") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/go-connections") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0svfa9g4xvbn87l5kiww1jkijmci9g5821wjp81xz1rfp13cqrk8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/docker/go-connections" + #:test-flags + #~(list "-skip" + (string-join + ;; Unable to verify certificate 1: x509: certificate signed by + ;; unknown authority. + (list "TestConfigClientExclusiveRootPools" + "TestConfigServerExclusiveRootPools") + "|")))) + (home-page "https://github.com/docker/go-connections") + (synopsis "Networking library for Go") + (description + "This package provides a library to work with network connections in the +Go language. In particular it provides tools to deal with network address +translation (NAT), proxies, sockets, and transport layer security (TLS).") + (license license:asl2.0))) + +(define-public go-github-com-dpotapov-go-spnego + (package + (name "go-github-com-dpotapov-go-spnego") + (version "0.0.0-20220426193508-b7f82e4507db") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dpotapov/go-spnego") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rpcgzkqhdwfsi8a9f9qar16i663pdx3gvwd6c0vfppy7qjmpjfr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dpotapov/go-spnego")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-jcmturner-gokrb5-v8 + go-golang-org-x-net)) + (home-page "https://github.com/dpotapov/go-spnego") + (synopsis "HTTP calls with Kerberos authentication") + (description + "The package extends Go's HTTP Transport allowing Kerberos +authentication through Negotiate mechanism (see +@url{https://tools.ietf.org/html/rfc4559, RFC4559}).") + (license license:expat))) + +(define-public go-github-com-elazarl-goproxy + (package + (name "go-github-com-elazarl-goproxy") + (version "0.0.0-20241221210044-9faedc2f9e9f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elazarl/goproxy") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j3v0y18igr3wy9vbwyg19fzy12jc41kmpfcz2jh1dnk6kxn2n67")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/elazarl/goproxy" + #:test-flags + #~(list "-skip" (string-join + ;; Networking or curl are required. + (list "TestCurlMinusP" + "TestSimpleHttpRequest" + "TestBasicConnectAuthWithCurl" + "TestBasicAuthWithCurl" + "TestConstantImageHandler" + "TestImageHandler" + "TestReplaceImage") + "|")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/elazarl/goproxy") + (synopsis "HTTP proxy library for Go") + (description + "GoProxy is a library to create a customized HTTP/HTTPS proxy server +using Go (aka Golang), with several configurable settings available. The +target of this project is to offer an optimized proxy server, usable with +reasonable amount of traffic, yet customizable and programmable.") + (license license:bsd-3))) + +(define-public go-github-com-ema-qdisc + (package + (name "go-github-com-ema-qdisc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ema/qdisc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1v2k2z1xjxfa0qrrnafvb51dxwxm0s3nbsi6n64cm2rylxjskfmy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ema/qdisc")) + (propagated-inputs + (list go-github-com-mdlayher-netlink)) + (home-page "https://github.com/ema/qdisc") + (synopsis "Queuing discipline information via netlink") + (description + "Package @code{qdisc} allows getting queuing discipline information via +netlink,similarly to what @code{tc -s qdisc show} does.") + (license license:expat))) + (define-public go-github-com-emersion-go-imap (package (name "go-github-com-emersion-go-imap") @@ -1504,9 +2155,9 @@ for Go.") RFC 5321.") (license license:expat))) -(define-public go-github-com-emicklei-go-restful +(define-public go-github-com-emicklei-go-restful-v3 (package - (name "go-github-com-emicklei-go-restful") + (name "go-github-com-emicklei-go-restful-v3") (version "3.4.0") (source (origin @@ -1519,12 +2170,20 @@ RFC 5321.") (base32 "0m1y5a6xr6hmdj77afrvyh2llkbhn1166lcrgis654shl8zs9qhz")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/emicklei/go-restful")) + (list + #:import-path "github.com/emicklei/go-restful" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) (home-page "https://github.com/emicklei/go-restful") (synopsis "Build REST-style web services using Go") - (description "This package provides @code{go-restful}, which helps -developers to use @code{http} methods explicitly and in a way that's -consistent with the HTTP protocol definition.") + (description + "This package provides @code{go-restful}, which helps developers to use +@code{http} methods explicitly and in a way that's consistent with the HTTP +protocol definition.") (license license:expat))) (define-public go-github-com-evanphx-json-patch @@ -1579,7 +2238,7 @@ metrics (i.e. response time, bytes written, and http status code) from your application's http.Handlers.") (license license:expat))) -;; This project looks like domain or abandoned, see +;; This project looks like dormant or abandoned, see ;; <https://github.com/francoispqt/gojay/issues/150>. (define-public go-github-com-francoispqt-gojay (package @@ -1601,9 +2260,25 @@ application's http.Handlers.") ;; <https://github.com/francoispqt/gojay/issues/173>. #:tests? (and (not (%current-target-system)) (target-x86-64?)) - #:import-path "github.com/francoispqt/gojay")) + #:import-path "github.com/francoispqt/gojay" + #:test-flags + #~(list "-skip" (string-join + (list "TestMessage_Unmarshal" + "TestMessage_Marshal" + "TestGenerator_Generate") + "|")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples-and-benchmarks + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "benchmarks" "examples")))))))) (native-inputs - (list go-github-com-stretchr-testify)) + (list go-github-com-go-errors-errors ; for CLI build + go-github-com-stretchr-testify + go-github-com-viant-assertly ; for CLI build + go-github-com-viant-toolbox)) ; for CLI build (home-page "https://github.com/francoispqt/gojay") (synopsis "JSON encoder/decoder with powerful stream API for Golang") (description @@ -1612,6 +2287,30 @@ API and doesn't use reflection. It relies on small interfaces to decode/encode structures and slices.") (license license:expat))) +(define-public go-github-com-gaissmai-bart + (package + (name "go-github-com-gaissmai-bart") + (version "0.11.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gaissmai/bart") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rnbmykmkl0c1fzz4vkv7q72l7hl2xpmalbm41f4lifdjscx5nk7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gaissmai/bart")) + (propagated-inputs + (list go-github-com-bits-and-blooms-bitset)) + (home-page "https://github.com/gaissmai/bart") + (synopsis "Balanced Routing Table in Golang") + (description "This package provides a Balanced-Routing-Table (BART).") + (license license:expat))) + (define-public go-github-com-gatherstars-com-jwz (package (name "go-github-com-gatherstars-com-jwz") @@ -1641,6 +2340,51 @@ algorithm originally designed for use in Golang.") (license license:asl2.0))) +(define-public go-github-com-getkin-kin-openapi + (package + (name "go-github-com-getkin-kin-openapi") + (version "0.128.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/getkin/kin-openapi") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "162hxwqywpbmfybyj1m0s4a0nxx0qldx90k49d2mf52xps1jp5p2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/getkin/kin-openapi" + #:test-flags + ;; They try to access network. + #~(list "-skip" "TestIssue495WithDraft04|TestExtraSiblingsInRemoteRef") + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-openapi-jsonpointer + go-github-com-gorilla-mux + go-github-com-invopop-yaml + go-github-com-mohae-deepcopy + go-github-com-perimeterx-marshmallow + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/getkin/kin-openapi") + (synopsis "OpenAPI 3.0 and Swagger v2 implementation for Golang") + (description + "This package implements a functionality for parsing, converting and +validating +@url{https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md, +OpenAPI v2.0}, +@url{https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md, +OpenAPI v3.0} and +@url{https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md, +OpenAPI v3.1}.") + (license license:expat))) + ;; TODO: This repository has been archived by the owner on Aug 30, 2023. It is ;; now read-only. The raven-go SDK is no longer maintained and was superseded ;; by the sentry-go @@ -1670,6 +2414,83 @@ Golang.") logging system.") (license license:bsd-3)))) +(define-public go-github-com-gin-contrib-sse + (package + (name "go-github-com-gin-contrib-sse") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gin-contrib/sse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "072nq91a65n5xvwslqjyvydfd0mfpnvb3vwjyfvmzm1ym96wr1nd")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gin-contrib/sse")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/gin-contrib/sse") + (synopsis "Server-Sent Events implementation in Golang") + (description + "@acronym{Server-sent events, SSE} is a technology where a browser +receives automatic updates from a server via HTTP connection. The SSE +@code{EventSource} API is +@url{http://www.w3.org/TR/2009/WD-eventsource-20091029/,standardized as part +of HTML5[1] by the W3C}.") + (license license:expat))) + +(define-public go-github-com-gin-gonic-gin + (package + (name "go-github-com-gin-gonic-gin") + (version "1.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gin-gonic/gin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01xjvw2d46b77jnszgbwqbdzh9jx7y3h5ik3q30y9dn9gaq5mhks")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gin-gonic/gin")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-bytedance-sonic + go-github-com-gin-contrib-sse + go-github-com-go-playground-validator-v10 + go-github-com-goccy-go-json + go-github-com-json-iterator-go + go-github-com-mattn-go-isatty + go-github-com-pelletier-go-toml-v2 + go-github-com-ugorji-go-codec + go-golang-org-x-net + go-google-golang-org-protobuf + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/gin-gonic/gin") + (synopsis "HTTP web framework") + (description + "This package provides a Golang web framework wit martini-like API. + +Features: +@itemize +@item zero allocation router +@item middleware support +@item crash-free +@item JSON validation +@item routes grouping +@item error management +@item rendering built-in +@item extendable +@end itemize") + (license license:expat))) + (define-public go-github-com-go-chi-chi-v5 (package (name "go-github-com-go-chi-chi-v5") @@ -1693,6 +2514,31 @@ logging system.") decompose request handling into many smaller layers.") (license license:expat))) +(define-public go-github-com-go-http-utils-headers + (package + (name "go-github-com-go-http-utils-headers") + (version "0.0.0-20181008091004-fed159eddc2a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-http-utils/headers") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19h2sffi04hr56qxkag2baa17v91x4vp1a1zkm9rqr846xqwspvm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-http-utils/headers")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/go-http-utils/headers") + (synopsis "HTTP header constants for Golang") + (description + "This package provides HTTP header constants.") + (license license:expat))) + (define-public go-github-com-go-jose-go-jose-v3 (package (name "go-github-com-go-jose-go-jose-v3") @@ -1705,15 +2551,23 @@ decompose request handling into many smaller layers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0kbkplhzqv9ai28r4smhdsxxwh20d96srr3am37pwwnh48ivwch8")))) + (base32 "0kbkplhzqv9ai28r4smhdsxxwh20d96srr3am37pwwnh48ivwch8")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separatly: + ;; + ;; - github.com/go-jose/go-jose/jose-util + (delete-file-recursively "jose-util"))))) (build-system go-build-system) (arguments - '( #:import-path "github.com/go-jose/go-jose/v3")) - (propagated-inputs - (list go-golang-org-x-crypto)) + (list + #:import-path "github.com/go-jose/go-jose/v3")) (native-inputs (list go-github-com-google-go-cmp go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-crypto)) (home-page "https://github.com/go-jose/go-jose") (synopsis "Implementation of JOSE standards (JWE, JWS, JWT) in Go") (description @@ -1740,10 +2594,10 @@ Encryption, JSON Web Signature, and JSON Web Token standards.") (list #:import-path "github.com/go-jose/go-jose/v4")))) -(define-public go-github-com-go-ldap-ldap +(define-public go-github-com-go-ldap-ldap-v3 (package - (name "go-github-com-go-ldap-ldap") - (version "3.4.8") + (name "go-github-com-go-ldap-ldap-v3") + (version "3.4.9") (source (origin (method git-fetch) @@ -1752,26 +2606,35 @@ Encryption, JSON Web Signature, and JSON Web Token standards.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0fbmhlc8ss5vn6zz0iiifvy4pm0mwaf13qpz70k83mmnv9vrv16x")))) + (base32 "0qcm4piyk7l5n3kplcism0y7zp40xcfmjl04hw1s276qqf7vi6hg")))) (build-system go-build-system) (arguments (list #:import-path "github.com/go-ldap/ldap/v3" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'remove-failing-tests - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (for-each delete-file - ;; FAIL <...> LDAP Result Code 200 "Network Error": - ;; dial tcp: lookup ldap.itd.umich.edu on <...> - (list "ldap_test.go")))))))) + #:test-flags + #~(list "-skip" (string-join + (list "TestCompare" + "TestExtendedRequest_WhoAmI" + "TestExtendedRequest_FastBind" + "TestMatchDNError" + "TestMultiGoroutineSearch" + "TestSearch" + "TestSearchAsync" + "TestSearchAsyncAndCancel" + "TestSearchStartTLS" + "TestSearchWithPaging" + "TestSecureDialURL" + "TestStartTLS" + "TestTLSConnectionState" + "TestUnsecureDialURL") + "|")))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-azure-go-ntlmssp go-github-com-go-asn1-ber-asn1-ber - go-github-com-google-uuid)) + go-github-com-google-uuid + go-github-com-jcmturner-gokrb5-v8)) (home-page "https://github.com/go-ldap/ldap") (synopsis "LDAP v3 functionality for Go") (description "This package provides basic LDAP v3 functionality in the Go @@ -2236,6 +3099,58 @@ from CloudFlare's github.com/cloudflare/cfssl/revoke.") ;; For the WebAuthn's fork: LICENSE. license:bsd-3)))) +(define-public go-github-com-gobwas-httphead + (package + (name "go-github-com-gobwas-httphead") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gobwas/httphead") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "106l8ml5yihld3rrf45q5fhlsx64hrpj2dsvnnm62av4ya5nf0gb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gobwas/httphead")) + (home-page "https://github.com/gobwas/httphead") + (synopsis "Tiny HTTP header value parsing library in Golang") + (description + "Package httphead contains utils for parsing HTTP and HTTP-grammar +compatible text protocols headers.") + (license license:expat))) + +(define-public go-github-com-gobwas-ws + (package + (name "go-github-com-gobwas-ws") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gobwas/ws") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nqgb75cizx11igwjqx6b6mlzl7yxy6x683m9aaalgcx9n1qxan7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gobwas/ws")) + (propagated-inputs + (list go-github-com-gobwas-httphead + go-github-com-gobwas-pool)) + (home-page "https://github.com/gobwas/ws") + (synopsis "Tiny WebSocket library for Golang") + (description + "Package ws implements a client and server for the @code{WebSocket} +protocol as specified in @url{https://rfc-editor.org/rfc/rfc6455.html, RFC +6455}.") + (license license:expat))) + (define-public go-github-com-goccy-go-json (package (name "go-github-com-goccy-go-json") @@ -2260,6 +3175,95 @@ from CloudFlare's github.com/cloudflare/cfssl/revoke.") "Fast JSON encoder/decoder compatible with encoding/json for Go.") (license license:expat))) +(define-public go-github-com-gofiber-fiber-v2 + (package + (name "go-github-com-gofiber-fiber-v2") + (version "2.52.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gofiber/fiber") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12gr7a38dd02p7b9fimrk16ybxfp93krh7wah0jzc0v6syjmzfi0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gofiber/fiber/v2" + #:test-flags + #~(list "-skip" + (string-join + (list "Test_Proxy_DoRedirects_TooManyRedirects" + "Test_Proxy_Do_WithRealURL" + "Test_Proxy_DoRedirects_RestoreOriginalURL" + "Test_Proxy_Do_WithRedirect") + "|")))) + (propagated-inputs + (list go-github-com-google-uuid + go-github-com-mattn-go-colorable + go-github-com-mattn-go-isatty + go-github-com-mattn-go-runewidth + go-github-com-tinylib-msgp + go-github-com-valyala-bytebufferpool + go-github-com-valyala-fasthttp + go-golang-org-x-sys)) + (home-page "https://github.com/gofiber/fiber") + (synopsis "Express inspired web framework written in Golang") + (description + "Package fiber is an @code{https://github.com/expressjs/express, Express} +inspired web framework built on top of Fasthttp, the fastest HTTP engine for +Go. Designed to ease things up for fast development with zero memory +allocation and performance in mind.") + (license license:expat))) + +(define-public go-github-com-gogo-protobuf + (package + (name "go-github-com-gogo-protobuf") + (version "1.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/protobuf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dfv1bhx5zhb5bsj5sj757nkacf2swp1ajpcyj9d0b37n602m18a")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/gogo/protobuf" + ;; protoc: exec: "protoc-min-version": executable file not found in $PATH + ;; err = exec: "protoc": executable file not found in $PATH: + #:test-flags + #~(list "-skip" + (string-join + (list "TestDashFilename" + "TestEmbedMarshaler" + "TestGolden" + "TestParameters" + "TestPopulateWarning" + "TestRepeatedEmbed" + "TestStdTypesGoString" + "TestTakesTooLongToDebug") + "|")))) + (home-page "https://github.com/gogo/protobuf") + (synopsis "Protocol Buffers for Go with Gadgets") + (description "Gogoprotobuf is a fork of golang/protobuf with extra code +generation features. This code generation is used to achieve: +@itemize +@item fast marshalling and unmarshalling +@item more canonical Go structures +@item goprotobuf compatibility +@item less typing by optionally generating extra helper code +@item peace of mind by optionally generating test and benchmark code +@item other serialization formats +@end itemize") + (license license:bsd-3))) + (define-public go-github-com-golang-groupcache (package (name "go-github-com-golang-groupcache") @@ -2287,10 +3291,10 @@ replacement for memcached in many cases. It provides a data loading mechanism with caching and de-duplication that works across a set of peer processes.") (license license:asl2.0))) -(define-public go-github-com-google-go-github +(define-public go-github-com-google-go-github-v31 (package - (name "go-github-com-google-go-github") - (version "26.1.3") + (name "go-github-com-google-go-github-v31") + (version "31.0.0") (source (origin (method git-fetch) @@ -2299,12 +3303,30 @@ with caching and de-duplication that works across a set of peer processes.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0x0zz1vcmllp6r6l2qin9b2llm5cxbf6n84rf99h8wrmhvzs2ipi")))) + (base32 "0bcybmr341hnp8k630pi4dcgia7561yzqc874l4c3nl4bc9rkh5j")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/google/go-github/scrape + ;; - github.com/google/go-github/update-urls + (delete-file-recursively "scrape") + (delete-file-recursively "update-urls"))))) (build-system go-build-system) (arguments - `(#:tests? #f ;application/octet-stream instead of text/plain - #:import-path "github.com/google/go-github/v26/github" - #:unpack-path "github.com/google/go-github/v26")) + (list + #:skip-build? #t + #:import-path "github.com/google/go-github/v31" + ;; repos_releases_test.go:449: Header.Get("Content-Type") returned + ;; "application/octet-stream", want "text/plain; charset=utf-8" + #:test-flags #~(list "-skip" "TestRepositoriesService_UploadReleaseAsset") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "example"))))))) (propagated-inputs (list go-github-com-google-go-querystring go-golang-org-x-crypto @@ -2319,7 +3341,7 @@ GitHub API v3.") ;; For chezmoi-1.8.10 (define-public go-github-com-google-go-github-v33 (package - (inherit go-github-com-google-go-github) + (inherit go-github-com-google-go-github-v31) (name "go-github-com-google-go-github-v33") (version "33.0.0") (source @@ -2330,14 +3352,52 @@ GitHub API v3.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1nzwgvaa9k1ky3sfynib6nhalam9dx66h5lxff334m9kk3rf5nn0")))) + (base32 "1nzwgvaa9k1ky3sfynib6nhalam9dx66h5lxff334m9kk3rf5nn0")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/google/go-github/scrape + (delete-file-recursively "scrape") + (delete-file-recursively "update-urls"))))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-google-go-github-v31) + ((#:import-path _) "github.com/google/go-github/v33"))))) + +(define-public go-github-com-google-go-github-v50 + (package + (inherit go-github-com-google-go-github-v31) + (name "go-github-com-google-go-github-v50") + (version "50.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/go-github") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11qzikm988zfzs6g70lbdjfhw7kdndagahg0q2bkn2ibq2c47xxp")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/google/go-github/scrape + (delete-file-recursively "scrape") + (delete-file-recursively "update-urls"))))) (arguments (substitute-keyword-arguments - (package-arguments go-github-com-google-go-github) - ((#:unpack-path _ "github.com/google/go-github/v26") - "github.com/google/go-github/v33") - ((#:import-path _ "github.com/google/go-github/v26/github") - "github.com/google/go-github/v33/github"))))) + (package-arguments go-github-com-google-go-github-v31) + ((#:import-path _) "github.com/google/go-github/v50"))) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-google-go-querystring + go-github-com-protonmail-go-crypto + go-golang-org-x-oauth2)))) (define-public go-github-com-google-go-querystring (package @@ -2381,7 +3441,15 @@ parameters.") (base32 "048qwm2n0wrpql4qqgd7jyynn3gk069yvqbxnshlayzmbhf87ls4")))) (build-system go-build-system) (arguments - (list #:import-path "github.com/google/gopacket")) + (list + #:import-path "github.com/google/gopacket" + ;; XXX: pfring/pfring.go:14:10: fatal error: pfring.h: No such file or + ;; directory. Check how to fix all tests. + #:test-subdirs #~(list "."))) + (propagated-inputs + (list go-github-com-vishvananda-netlink + go-golang-org-x-net + go-golang-org-x-sys)) (home-page "https://github.com/google/gopacket") (synopsis "Packet processing capabilities library") (description @@ -2537,6 +3605,30 @@ web applications.") incoming requests with their respective handler.") (license license:bsd-3))) +(define-public go-github-com-gorilla-schema + (package + (name "go-github-com-gorilla-schema") + (version "1.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorilla/schema") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16gk174mybvz0gg2w1wmpc96jhhi94i1vvclyzr3qkv7s6gadifn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gorilla/schema")) + (home-page "https://github.com/gorilla/schema") + (synopsis "Fills a struct with form values") + (description + "This package implements a functionality to fills a struct with form +values.") + (license license:bsd-3))) + (define-public go-github-com-gorilla-securecookie (package (name "go-github-com-gorilla-securecookie") @@ -2590,7 +3682,7 @@ sessions, flash messages, custom backends, and more.") (define-public go-github-com-gorilla-websocket (package (name "go-github-com-gorilla-websocket") - (version "1.5.0") + (version "1.5.3") (home-page "https://github.com/gorilla/websocket") (source (origin @@ -2600,7 +3692,7 @@ sessions, flash messages, custom backends, and more.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xrr6snvs9g1nzxxg05w4i4pq6k1xjljl5mvavd838qc468n118i")))) + (base32 "1k84plbz6bxarbdrdcsrm9vhiy971prpvfnkcpsfv2q4ac80ccmx")))) (build-system go-build-system) (arguments `(#:import-path "github.com/gorilla/websocket")) @@ -2610,32 +3702,35 @@ protocol.") (license license:bsd-2))) (define-public go-github-com-gregjones-httpcache - (let ((commit "901d90724c7919163f472a9812253fb26761123d") - (revision "0")) - (package - (name "go-github-com-gregjones-httpcache") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gregjones/httpcache") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05r0xq51vfb55di11m7iv19341d73f7in33vq1ihcqs1nffdwiq0")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/gregjones/httpcache")) - (home-page "https://github.com/gregjones/httpcache") - (synopsis "Transport for @code{http.Client} that will cache responses") - (description - "Package @code{httpcache} provides a @code{http.RoundTripper} -implementation that works as a mostly @url{https://tools.ietf.org/html/rfc7234, RFC 7234} -compliant cache for HTTP responses. It is only suitable for use as a -\"private\" cache (i.e. for a web-browser or an API-client and not for a -shared proxy).") - (license license:expat)))) + (package + (name "go-github-com-gregjones-httpcache") + (version "0.0.0-20190611155906-901d90724c79") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gregjones/httpcache") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05r0xq51vfb55di11m7iv19341d73f7in33vq1ihcqs1nffdwiq0")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gregjones/httpcache")) + (propagated-inputs + (list go-github-com-peterbourgon-diskv + go-github-com-syndtr-goleveldb + go-github-com-bradfitz-gomemcache + go-github-com-gomodule-redigo)) + (home-page "https://github.com/gregjones/httpcache") + (synopsis "Transport for @code{http.Client} that will cache responses") + (description + "Package @code{httpcache} provides a @code{http.RoundTripper} +implementation that works as a mostly +@url{https://tools.ietf.org/html/rfc7234, RFC 7234} compliant cache for HTTP +responses. It is only suitable for use as a \"private\" cache (i.e. for a +web-browser or an API-client and not for a shared proxy).") + (license license:expat))) (define-public go-github-com-hashicorp-go-cleanhttp (package @@ -2695,6 +3790,122 @@ standard @code{net/http} client library and exposes nearly the same public API.") (license license:mpl2.0))) +(define-public go-github-com-hashicorp-go-sockaddr + (package + (name "go-github-com-hashicorp-go-sockaddr") + (version "1.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-sockaddr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ajcffaqxrbqyg00b04a1ia7np0180x7z5q3bcxqxm0smqqag54z")) + (modules '((guix build utils))) + (snippet + #~(begin + (delete-file-recursively "cmd/sockaddr/vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/go-sockaddr" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests require network set-up or fail randomly. + (list "TestGetDefaultInterface" + "TestGetDefaultInterfaces" + "TestGetIfAddrs" + "TestGetPrivateIP" + "TestGetPrivateIPs" + "TestGetPrivateInterfaces" + "TestSockAddr_IPAddrs_IPAddrsByNetworkSize/0" + "TestSockAddr_Parse") + "|")))) + (propagated-inputs + (list go-github-com-hashicorp-errwrap + go-github-com-mitchellh-cli + go-github-com-mitchellh-go-wordwrap + go-github-com-ryanuber-columnize)) + (home-page "https://github.com/hashicorp/go-sockaddr") + (synopsis "IP Address/UNIX Socket convenience functions for Golang") + (description + "This package provides an implementation of the UNIX socket family data +types and related helper functions.") + (license license:mpl2.0))) + +(define-public go-github-com-hashicorp-yamux + (package + (name "go-github-com-hashicorp-yamux") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/yamux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c46zdj94lv28sb9rmhinzcckl72vs3gwm197nsa80ca3b161yi6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/yamux")) + (home-page "https://github.com/hashicorp/yamux") + (synopsis "Golang connection multiplexing library") + (description + "Yamux (Yet another Multiplexer) relies on an underlying connection to +provide reliability and ordering, such as TCP or Unix domain sockets, and +provides stream-oriented multiplexing. It is inspired by SPDY but is not +interoperable with it. + +Features: +@itemize +@item streams can be opened by either client or server +@item useful for nat traversal +@item server-side push support +@item avoid starvation +@item back-pressure to prevent overwhelming a receiver +@item enables persistent connections over a load balancer +@item enables thousands of logical streams with low overhead +@end itemize") + (license license:mpl2.0))) + +(define-public go-github-com-hetznercloud-hcloud-go-v2 + (package + (name "go-github-com-hetznercloud-hcloud-go-v2") + (version "2.17.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hetznercloud/hcloud-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rmrp100clcymz6j741dpvx217d6ljnfqn9qfndlmy9rwi64ih8h")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/hetznercloud/hcloud-go/v2")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-jmattheis-goverter + go-github-com-prometheus-client-golang + go-github-com-vburenin-ifacemaker + go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://github.com/hetznercloud/hcloud-go") + (synopsis "Golang library for the Hetzner Cloud API") + (description + "This package provides a library for the Hetzner Cloud API.") + (license license:expat))) + (define-public go-github-com-hjson-hjson-go-v4 (package (name "go-github-com-hjson-hjson-go-v4") @@ -2917,7 +4128,7 @@ authenticated identities and their attributes.") (define-public go-github-com-jcmturner-gokrb5-v8 (package (name "go-github-com-jcmturner-gokrb5-v8") - (version "8.4.2") + (version "8.4.4") (source (origin (method git-fetch) @@ -2926,7 +4137,7 @@ authenticated identities and their attributes.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0w9d1pa3r6qmdblk25bghf78ncs03l15l1sxnh4n536c356rzq4b")))) + (base32 "1rv495j8j2x6avw5hqpf7rpiakr5gdsx6pv8rfn0ff7vi35zfa62")))) (build-system go-build-system) (arguments '(#:import-path "github.com/jcmturner/gokrb5/v8" @@ -2940,10 +4151,8 @@ authenticated identities and their attributes.") go-github-com-jcmturner-dnsutils-v2 go-github-com-jcmturner-gofork go-github-com-jcmturner-goidentity-v6 - go-github-com-jcmturner-rpc-v2-mstypes - go-github-com-jcmturner-rpc-v2-ndr - go-golang-org-x-crypto - go-golang-org-x-net)) + go-github-com-jcmturner-rpc-v2 + go-golang-org-x-crypto)) (home-page "https://github.com/jcmturner/gokrb5") (synopsis "Pure Go Kerberos library for clients and services") (description "This package provides a pure Go Kerberos library. It @@ -2964,6 +4173,61 @@ SPNEGO Kerberos authentication, as well as a HTTP handler wrapper decodes Microsoft AD PAC authorization data.") (license license:asl2.0))) +(define-public go-github-com-jcmturner-rpc + (package + (name "go-github-com-jcmturner-rpc") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jcmturner/rpc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hkmvf8qdcifnzym8kv1xhq7lq0wpr0i6gzff159lh9xn0wfg175")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/jcmturner/rpc.v1" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/jcmturner/rpc") + (synopsis "Remote Procedure Call libraries") + (description + "This package provides a partial Go implementation of the Remote Call +Procedure libraries, presented in +@@url{http://pubs.opengroup.org/onlinepubs/9629399/,CDE 1.1: Remote Procedure +Call}.") + (license license:asl2.0))) + +(define-public go-github-com-jcmturner-rpc-v2 + (package + (inherit go-github-com-jcmturner-rpc) + (name "go-github-com-jcmturner-rpc-v2") + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jcmturner/rpc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nm4j2nwcszghldw39rwdx2hr56i1lybfpv33y4gd67w6qcqbpsi")))) + (arguments + (list + #:import-path "github.com/jcmturner/rpc/v2" + #:unpack-path "github.com/jcmturner/rpc" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (propagated-inputs + (list go-golang-org-x-net)))) + (define-public go-github-com-jhillyerd-enmime (package (name "go-github-com-jhillyerd-enmime") @@ -3115,7 +4379,11 @@ controlled. It is based on netlink messages.") (base32 "1c8f0hxm18wivx31bs615x3vxs2j3ba0v6vxchsjhldc8kl311bz")))) (build-system go-build-system) (arguments - (list #:import-path "github.com/json-iterator/go")) + (list + #:import-path "github.com/json-iterator/go" + #:test-flags + ;; XXX: Try to skip just "Test_symmetric/map[test.stringKeyType]string". + #~(list "-skip" "Test_symmetric"))) (native-inputs (list go-github-com-davecgh-go-spew go-github-com-google-gofuzz @@ -3157,6 +4425,32 @@ jsoniter and variable type declarations (if any). jsoniter interfaces gives router.") (license license:bsd-3))) +(define-public go-github-com-kolo-xmlrpc + (package + (name "go-github-com-kolo-xmlrpc") + (version "0.0.0-20220921171641-a4b6fa1dd06b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kolo/xmlrpc") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nhcnqycdc52k4ymdd4g2chcimsnvr86m0yx13ws91qxs5pgs9d2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kolo/xmlrpc")) + (propagated-inputs + (list go-golang-org-x-text)) + (home-page "https://github.com/kolo/xmlrpc") + (synopsis "Implementation of XMLRPC protocol in Golang") + (description + "This package provides an implementation of client side part of XMLRPC +protocol in Go language.") + (license license:expat))) + (define-public go-github-com-koron-go-ssdp (package (name "go-github-com-koron-go-ssdp") @@ -3174,28 +4468,19 @@ router.") (arguments (list #:import-path "github.com/koron/go-ssdp" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "\\_test.go$") - ;; Test requiring network setup. - (("TestAdvertise_Alive") "OffTestAdvertise_Alive") - (("TestAdvertise_Bye") "OffTestAdvertise_Bye") - (("TestAnnounceAlive") "OffTestAnnounceAlive") - (("TestAnnounceBye") "OffTestAnnounceBye") - (("TestInterfaces") "OffTestInterfaces") - (("TestSearch_Request") "OffTestSearch_Request") - (("TestSearch_Response") "OffTestSearch_Response") - (("TestSearch_ServiceRawHeader") "OffTestSearch_ServiceRawHeader"))))) - ;; XXX: Run all tests, workaround for go-build-system's lack of Go - ;; modules support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:test-flags + #~(list "-skip" + (string-join + ;; Tests requiring network setup. + (list "TestAdvertise_Alive" + "TestAdvertise_Bye" + "TestAnnounceAlive" + "TestAnnounceBye" + "TestInterfaces" + "TestSearch_Request" + "TestSearch_Response" + "TestSearch_ServiceRawHeader") + "|")))) (propagated-inputs (list go-golang-org-x-net)) (home-page "https://github.com/koron/go-ssdp") @@ -3205,6 +4490,134 @@ router.") @acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.") (license license:expat))) +(define-public go-github-com-kortschak-wol + (package + (name "go-github-com-kortschak-wol") + (version "0.0.0-20200729010619-da482cc4850a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kortschak/wol") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16qyy1c1q5cxcnwdzl69v49pjmyxha4i88fsg0g83gwdyapzsyln")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kortschak/wol")) + (home-page "https://github.com/kortschak/wol") + (synopsis "Wake On LAN client") + (description + "Package wol provides a Wake On LAN function.") + (license license:bsd-3))) + +(define-public go-github-com-labbsr0x-goh + (package + (name "go-github-com-labbsr0x-goh") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/labbsr0x/goh") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06yrd6ih6r0rkxyn88b66gfarjxsqmi3wzi8cgsxskq7mbah0iyp")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/labbsr0x/goh")) + (propagated-inputs + (list go-github-com-go-cmd-cmd + go-github-com-go-errors-errors + go-github-com-sirupsen-logrus)) + (home-page "https://github.com/labbsr0x/goh") + (synopsis "Utility library for writing web hooks") + (description + "This package provides an utility library for writing extremely simple +webhooks in Golang.") + (license license:expat))) + +(define-public go-github-com-labstack-echo-v4 + (package + (name "go-github-com-labstack-echo-v4") + (version "4.13.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/labstack/echo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i4w36f1k17bykc24dzr2ng5zpsyysfg5bzfvlbrphxxzhsngxdy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/labstack/echo/v4")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-labstack-gommon + go-github-com-valyala-fasttemplate + go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-time)) + (home-page "https://echo.labstack.com/") + (synopsis "High performance, minimalist Go web framework") + (description + "Package echo implements a high performance, minimalist Go web framework. +Features: +@itemize +@item optimized HTTP router which smartly prioritize routes +@item build robust and scalable RESTful APIs +@item group APIs +@item extensible middleware framework +@item define middleware at root, group or route level +@item data binding for JSON, XML and form payload +@item handy functions to send variety of HTTP responses +@item centralized HTTP error handling +@item template rendering with any template engine +@item define your format for the logger +@item highly customizable +@item automatic TLS via Let’s Encrypt +@item HTTP/2 support +@end itemize") + (license license:expat))) + +(define-public go-github-com-levigross-grequests + (package + (name "go-github-com-levigross-grequests") + (version "0.0.0-20231203190023-9c307ef1f48d") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/levigross/grequests") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13r24vrcgfkps8r09crjlhsywpxs8bnnmlgn5qhbhqiqag754xdc")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; most of them need network access + #:embed-files #~(list "children" "nodes" "text") + #:import-path "github.com/levigross/grequests")) + (propagated-inputs + (list go-github-com-google-go-querystring + go-golang-org-x-net)) + (home-page "https://github.com/levigross/grequests") + (synopsis "Requests library for Golang") + (description + "Package grequests implements a friendly API over Go's existing +@code{net/http} library.") + (license license:asl2.0))) + (define-public go-github-com-libdns-libdns (package (name "go-github-com-libdns-libdns") @@ -3557,10 +4970,36 @@ It is inspired by SPDY but is not interoperable with it.") intends to be compatible with Avahi.") (license license:expat))) +(define-public go-github-com-macronut-go-tproxy + (package + (name "go-github-com-macronut-go-tproxy") + (version "0.0.0-20190726054950-ef7efd7f24ed") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FutureProtocolLab/go-tproxy") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jibsg0xhsn0h1jq4g9qd4nr58w43y8majlwfri9ffk2cbfrwqdr")) + (modules '((guix build utils))) + (snippet '(delete-file-recursively "example")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/macronut/go-tproxy")) + (home-page "https://github.com/FutureProtocolLab/go-tproxy") + (synopsis "Linux Transparent Proxy library") + (description + "Golang TProxy provides an easy to use wrapper for the Linux Transparent +Proxy functionality.") + (license license:expat))) + (define-public go-github-com-mailru-easyjson (package (name "go-github-com-mailru-easyjson") - (version "0.7.7") + (version "0.9.0") (source (origin (method git-fetch) @@ -3569,11 +5008,19 @@ intends to be compatible with Avahi.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0clifkvvy8f45rv3cdyv58dglzagyvfcqb63wl6rij30c5j2pzc1")))) + (base32 "00if9lpfy7bz853snqp7zgg76pn4mgpkk42h0riahcwk5v19jrcv")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/mailru/easyjson")) + #:import-path "github.com/mailru/easyjson" + ;; XXX: All tests in "tests" directory fail, figure out why. + #:test-subdirs #~(list ".") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-benchmarks + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "benchmark"))))))) (propagated-inputs (list go-github-com-josharian-intern)) (home-page "https://github.com/mailru/easyjson") @@ -3712,6 +5159,93 @@ supported by HTTP PATCH method, allowing for standards based partial updates via REST APIs.") (license license:asl2.0))) +(define-public go-github-com-mattn-go-xmlrpc + (package + (name "go-github-com-mattn-go-xmlrpc") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-xmlrpc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hv843qf8lzyn01mgk4lwwhirzpzpz33a1cz2ws998shhvq75dvg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/go-xmlrpc")) + (home-page "https://github.com/mattn/go-xmlrpc") + (synopsis "XML RPC interface for Golang") + (description + "This package implements XML RPC interface for Go programming +language.") + (license license:expat))) + +(define-public go-github-com-mdlayher-ethtool + (package + (name "go-github-com-mdlayher-ethtool") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mdlayher/ethtool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pwm4cg1yf364k0c4i0jrrvgn82k14b163xcvnm3bvpglfbcy2ks")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mdlayher/ethtool")) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-josharian-native + go-github-com-mdlayher-genetlink + go-github-com-mdlayher-netlink + go-golang-org-x-sys)) + (home-page "https://github.com/mdlayher/ethtool") + (synopsis "Control of the Linux ethtool generic netlink interface") + (description + "Package ethtool allows control of the Linux ethtool generic netlink +interface. as it's described in +@url{https://www.kernel.org/doc/html/latest/networking/ethtool-netlink.html, +ethtool-netlink}.") + (license license:expat))) + +(define-public go-github-com-mdlayher-genetlink + (package + (name "go-github-com-mdlayher-genetlink") + (version "1.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mdlayher/genetlink") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vppn8071nh8pnbyq9769j1zcgq76iadd5fry90xkmfq429if356")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mdlayher/genetlink")) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-mdlayher-netlink + go-golang-org-x-net + go-golang-org-x-sys)) + (home-page "https://github.com/mdlayher/genetlink") + (synopsis "Generic netlink interactions and data types") + (description + "Package genetlink implements generic netlink interactions and data +types.") + (license license:expat))) + (define-public go-github-com-mdlayher-netlink (package (name "go-github-com-mdlayher-netlink") @@ -3724,21 +5258,20 @@ via REST APIs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1pxd0qn73jr9n64gkp2kd8q8x7xgssm3v8a68vkh88al55g8jkma")))) + (base32 "1pxd0qn73jr9n64gkp2kd8q8x7xgssm3v8a68vkh88al55g8jkma")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Cycles with go-github-com-jsimonetti-rtnetlink. + (delete-file-recursively "internal/integration"))))) (build-system go-build-system) (arguments (list #:import-path "github.com/mdlayher/netlink" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "_test\\.go$") - ;; failed to start command "ip": exec: "ip": executable file - ;; not found in $PATH - (("TestIntegrationConnSetBuffersSyscallConn") - "OffTestIntegrationConnSetBuffersSyscallConn")))))))) + #:test-flags + ;; Test fails to start command "ip": exec: "ip": executable file not + ;; found in $PATH + #~(list "-skip" "TestIntegrationConnSetBuffersSyscallConn"))) (propagated-inputs (list go-github-com-google-go-cmp go-github-com-josharian-native @@ -3781,6 +5314,68 @@ integrates with Go's runtime network poller to provide asynchronous I/O and deadline support.") (license license:expat))) +(define-public go-github-com-mdlayher-vsock + (package + (name "go-github-com-mdlayher-vsock") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mdlayher/vsock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pnhxz9jz25469gnd5p9a8jl10w3affcjxlvzhlni2c434s3l6kx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mdlayher/vsock")) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-mdlayher-socket + go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-sys)) + (home-page "https://github.com/mdlayher/vsock") + (synopsis "Access to Linux VM sockets for Golang") + (description + "Package vsock provides access to Linux VM sockets (AF_VSOCK) for +communication between a hypervisor and its virtual machines.") + (license license:expat))) + +(define-public go-github-com-mdlayher-wifi + (package + (name "go-github-com-mdlayher-wifi") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mdlayher/wifi") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18h5n58gr3i4jbf7c4hfvx3w87bjjiaavcnpcl0j310bgrc6dnzi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mdlayher/wifi")) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-mdlayher-genetlink + go-github-com-mdlayher-netlink + go-golang-org-x-crypto + go-golang-org-x-sys)) + (home-page "https://github.com/mdlayher/wifi") + (synopsis "Access to IEEE 802.11 WiFi device actions") + (description + "Package wifi provides access to IEEE 802.11 @code{WiFi} device +operations on Linux using nl80211.") + (license license:expat))) + (define-public go-github-com-mholt-acmez (package (name "go-github-com-mholt-acmez") @@ -4154,6 +5749,35 @@ multistream-select protocol. The protocol is defined at 2616} HTTP/1.1 standard.") (license license:bsd-3))) +(define-public go-github-com-nrdcg-goinwx + (package + (name "go-github-com-nrdcg-goinwx") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nrdcg/goinwx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ld3spdi7q8cf4hf0wnbl7gyw2k8n4wp03fqncjx2gw2nsjng684")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/nrdcg/goinwx")) + (propagated-inputs + (list + go-github-com-fatih-structs + go-github-com-kolo-xmlrpc + go-github-com-mitchellh-mapstructure)) + (home-page "https://github.com/nrdcg/goinwx") + (synopsis "INWX Go API client") + (description + "This go library implements some parts of the official +@url{https://www.inwx.com/en/help/apidoc, INWX XML-RPC API}.") + (license license:expat))) + (define-public go-github-com-nwidger-jsoncolor (package (name "go-github-com-nwidger-jsoncolor") @@ -4180,6 +5804,32 @@ multistream-select protocol. The protocol is defined at which produce colorized output using github.com/fatih/color.") (license license:expat))) +(define-public go-github-com-nytimes-gziphandler + (package + (name "go-github-com-nytimes-gziphandler") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nytimes/gziphandler") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rhrjlw220hnymzfccm0yir3pc9dpj7h3gwzhzq2cbsb3hhsqvyy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/NYTimes/gziphandler")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/NYTimes/gziphandler") + (synopsis "Middleware to gzip HTTP responses") + (description + "This is a tiny Go package which wraps HTTP handlers to transparently +gzip the response body, for clients which support it.") + (license license:asl2.0))) + (define-public go-github-com-opentracing-contrib-go-stdlib (package (name "go-github-com-opentracing-contrib-go-stdlib") @@ -4343,6 +5993,37 @@ higher-level API for doing so.") "Common enterprise features for the Go programming language.") (license license:cc0))) +(define-public go-github-com-perimeterx-marshmallow + (package + (name "go-github-com-perimeterx-marshmallow") + (version "1.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PerimeterX/marshmallow") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jxpjfyshcbrmj9qmj3sr21va6kw7hs55w2gaz9118jd861s6mbw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/perimeterx/marshmallow")) + (native-inputs + (list go-github-com-go-test-deep)) + (propagated-inputs + (list go-github-com-mailru-easyjson + go-github-com-ugorji-go-codec)) + (home-page "https://github.com/perimeterx/marshmallow") + (synopsis "JSON unmarshalling in Golang") + (description + "This package provides a simple API to perform JSON unmarshalling. +It supports unmarshalling of some known and some unknown fields with zero +performance overhead. While unmarshalling, it allows fully retaining the +original data and access it via a typed struct and a dynamic map.") + (license license:expat))) + (define-public go-github-com-pion-datachannel (package (name "go-github-com-pion-datachannel") @@ -4849,6 +6530,28 @@ Protocol,SCTP} as specified in go-golang-org-x-crypto go-golang-org-x-net)))) +(define-public go-github-com-pion-stun-v3 + (package + (inherit go-github-com-pion-stun-v2) + (name "go-github-com-pion-stun-v3") + (version "3.0.0") + (source + (origin + (inherit (package-source go-github-com-pion-stun)) + (uri (git-reference + (url "https://github.com/pion/stun") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yavl76y0fida9f1jfdmzdg7rm5jhp6kvdgn3smsf93jad1vbr2x")))) + (arguments + (list + #:import-path "github.com/pion/stun/v3")) + (propagated-inputs + (list go-github-com-pion-dtls-v3 + go-github-com-pion-logging + go-github-com-pion-transport-v3)))) + (define-public go-github-com-pion-transport (package (name "go-github-com-pion-transport") @@ -4900,7 +6603,14 @@ throughout the @url{https://github.com/pion, Pion} modules.") (base32 "0g5pg6mz61blprccxzysbwldkil84qgwp6404lsp4m9wh44312hf")))) (arguments (list - #:import-path "github.com/pion/transport/v2")) + #:import-path "github.com/pion/transport/v2" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-module-paths + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* (find-files "." "\\.go$") + (("github.com/pion/transport/v3") import-path)))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -5144,7 +6854,7 @@ dependant.") (define-public go-github-com-pkg-sftp (package (name "go-github-com-pkg-sftp") - (version "1.13.6") + (version "1.13.7") (source (origin (method git-fetch) @@ -5153,7 +6863,7 @@ dependant.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0n35lzfrnrffjqy34ny6gxs27kq81s67ply6q8s1g19mhfzm6my7")))) + (base32 "0hhnsl327acwlmvp8wk4x1ml2mi6gdrdwm1dh9666n2cj9d8yj24")))) (build-system go-build-system) (arguments (list @@ -5210,7 +6920,11 @@ Caching.") (build-system go-build-system) (arguments (list - #:import-path "github.com/pquerna/ffjson")) + #:import-path "github.com/pquerna/ffjson" + #:test-subdirs #~(list "fflib/v1/..."))) + (native-inputs + (list go-github-com-google-gofuzz + go-github-com-stretchr-testify)) (home-page "https://github.com/pquerna/ffjson") (synopsis "Faster JSON for Golang") (description @@ -5351,26 +7065,24 @@ the Go standard library}.") #:import-path "github.com/quic-go/quic-go" #:phases #~(modify-phases %standard-phases - ;; TODO: Figure out why some tests fail. - (add-after 'unpack 'remove-failing-tests - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (for-each delete-file - (list "integrationtests/self/timeout_test.go" - "server_test.go"))))) ;; Test steps are taken from GitHub Actions - - ;; <https://github.com/quic-go/quic-go/blob/v0.42.0/.github/workflows/unit.yml>. + ;; <https://github.com/quic-go/quic-go/blob/v0.42.0/ + ;; .github/workflows/unit.yml>. (replace 'check (lambda* (#:key tests? import-path #:allow-other-keys) (when tests? (with-directory-excursion (string-append "src/" import-path) - (invoke "ginkgo" "-r" "-v" - (string-append "--procs=" - (number->string (parallel-job-count))) - "--randomize-all" - "--randomize-suites" - "--skip-package" - "integrationtests")))))))) + (setenv "TIMESCALE_FACTOR" "10") + (invoke "ginkgo" "-r" "-v" "--no-color" + (string-append + "--procs=" (number->string + ;; All tests passed on 16 threads + ;; mathine, but fail on + ;; ci.guix.gnu.org. + (if (> (parallel-job-count) 17) + 16 + (parallel-job-count)))) + "--skip-package=integrationtests")))))))) (native-inputs (list go-ginkgo go-github-com-onsi-ginkgo-v2 @@ -5407,7 +7119,9 @@ protocol.") (build-system go-build-system) (arguments (list - #:import-path "github.com/quic-go/webtransport-go")) + #:import-path "github.com/quic-go/webtransport-go" + ;; Error: "68" is not greater than "80" + #:test-flags #~(list "-skip" "TestDatagrams"))) (native-inputs (list go-go-uber-org-mock go-github-com-stretchr-testify)) @@ -5423,6 +7137,59 @@ on @@url{https://github.com/quic-go/quic-go,quic-go}. It currently implements of the specification.") (license license:expat))) +(define-public go-github-com-rcrowley-go-metrics + (package + (name "go-github-com-rcrowley-go-metrics") + (version "0.0.0-20201227073835-cf1acfcdf475") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rcrowley/go-metrics") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s7zab04slz07c7l4h2cqz62qnqah69r6p157vvbd7725a7wzkr0")))) + (build-system go-build-system) + (arguments + ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le + ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249 + `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system) + (%current-system)))) + #:import-path "github.com/rcrowley/go-metrics")) + (propagated-inputs + (list go-github-com-stathat-go)) + (home-page "https://github.com/rcrowley/go-metrics") + (synopsis "Go port of Coda Hale's Metrics library") + (description + "This package provides a Go implementation of Coda Hale's Metrics +library.") + (license license:bsd-2))) + +(define-public go-github-com-realclientip-realclientip-go + (package + (name "go-github-com-realclientip-realclientip-go") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/realclientip/realclientip-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mg3nrb4b1q38q9j1diz4pl2nqpa3ay45gi81i6ma3bvss8v7ri3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/realclientip/realclientip-go")) + (home-page "https://github.com/realclientip/realclientip-go") + (synopsis "Go reference implementation of \"real\" client IP algorithms") + (description + "Package realclientip provides strategies for obtaining the \"real\" +client IP from HTTP requests.") + (license license:bsd-0))) + (define-public go-github-com-rs-cors (package (name "go-github-com-rs-cors") @@ -5501,6 +7268,45 @@ per host/process @end itemize") (license license:expat))) +(define-public go-github-com-safchain-ethtool + (package + (name "go-github-com-safchain-ethtool") + (version "0.5.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/safchain/ethtool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01q0qfyksnhd4a2w2824yzdmyb4g4xr0y2z4ffnpbzz1wp60rydg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/safchain/ethtool" + #:test-flags + ;; Unable to retrieve driver from any interface of this system. + #~(list "-skip" + (string-join + (list "TestCmdGet" + "TestCmdGetMapped" + "TestMsglvlGet" + "TestStats" + "TestDriverName" + "TestBusInfo") + "|")))) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/safchain/ethtool") + (synopsis "Ethtool library for Golang") + (description + "The ethtool package aims to provide a library that implements easy +access to the Linux SIOCETHTOOL ioctl operations. It can be used to retrieve +information from a network device such as statistics, driver related +information or even the peer of a VETH interface.") + (license license:asl2.0))) + (define-public go-github-com-sherclockholmes-webpush-go (package (name "go-github-com-sherclockholmes-webpush-go") @@ -5528,6 +7334,56 @@ per host/process support.") (license license:expat))) +(define-public go-github-com-shurcool-githubv4 + (package + (name "go-github-com-shurcool-githubv4") + (version "0.0.0-20240429030203-be2daab69064") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/githubv4") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kkvqwv0waa8hj1jr9b4nvz8rmslqpchidl7gs9bplrkl3fvsxn6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/shurcooL/githubv4")) + (propagated-inputs + (list go-github-com-shurcool-graphql + go-golang-org-x-oauth2)) + (home-page "https://github.com/shurcooL/githubv4") + (synopsis "Client library for GitHub GraphQL API v4") + (description + "Package githubv4 is a client library for accessing GitHub @code{GraphQL} +API v4.") + (license license:expat))) + +(define-public go-github-com-shurcool-graphql + (package + (name "go-github-com-shurcool-graphql") + (version "0.0.0-20230722043721-ed46e5a46466") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/graphql") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12cq16qak217bkpklqsmqhl42gz8cpadpzqw6fsivc3ambjpqdry")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/shurcooL/graphql")) + (home-page "https://github.com/shurcooL/graphql") + (synopsis "GraphQL client") + (description + "Package graphql provides a @code{GraphQL} client implementation.") + (license license:expat))) + (define-public go-github-com-shurcool-httpfs (package (name "go-github-com-shurcool-httpfs") @@ -5646,10 +7502,60 @@ provided @code{http.FileSystem}.") "Package jsonrpc2 provides a Go implementation of JSON-RPC 2.0.") (license license:expat))) +(define-public go-github-com-ssgelm-cookiejarparser + (package + (name "go-github-com-ssgelm-cookiejarparser") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ssgelm/cookiejarparser") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fnm53br0cg3iwzniil0lh9w4xd6xpzfypwfpdiammfqavlqgcw4")))) + (build-system go-build-system) + (arguments + (list + #:embed-files #~(list "children" "nodes" "text") + #:import-path "github.com/ssgelm/cookiejarparser")) + (propagated-inputs (list go-golang-org-x-net)) + (home-page "https://github.com/ssgelm/cookiejarparser") + (synopsis "Parse a curl cookiejar with Go") + (description + "This package is a Go library that parses a curl (netscape) cookiejar +file into a Go http.CookieJar.") + (license license:expat))) + +(define-public go-github-com-stathat-go + (package + (name "go-github-com-stathat-go") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stathat/go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/stathat/go")) + (home-page "https://github.com/stathat/go") + (synopsis "Post statistics to StatHat") + (description + "This is a Go package for posting to a @url{https://www.stathat.com/, +StatHat} account.") + (license license:expat))) + (define-public go-github-com-tdewolff-minify-v2 (package (name "go-github-com-tdewolff-minify-v2") - (version "2.12.7") + (version "2.21.2") (source (origin (method git-fetch) @@ -5658,7 +7564,7 @@ provided @code{http.FileSystem}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qhslaq885zbqs83nvbi29yh09b89kkb6ycami8lz28wkwrlayap")))) + (base32 "0vhblx1xim14i4npglzdp9hpjz92q2k29wbf9kp9m7id9cm7c7l9")))) (build-system go-build-system) (arguments (list @@ -5673,13 +7579,18 @@ provided @code{http.FileSystem}.") (format #f "src/~a/~a" import-path dir) (make-file-writable "hash.go") (format #t "Generating `hash.go' for ~a...~%" dir) - (invoke "go" "generate"))) + (invoke "go" "generate" "-v" "-n"))) '("css" "html" "svg"))))))) - (propagated-inputs - (list go-github-com-tdewolff-parse-v2)) + ;; For tests and the CLI. (native-inputs - (list go-github-com-tdewolff-hasher + (list go-github-com-djherbis-atime + go-github-com-fsnotify-fsnotify + go-github-com-matryer-try + go-github-com-tdewolff-argp + go-github-com-tdewolff-hasher ; to generate go files go-github-com-tdewolff-test)) + (propagated-inputs + (list go-github-com-tdewolff-parse-v2)) (home-page "https://go.tacodewolff.nl/minify") (synopsis "Go minifiers for web formats") (description @@ -5690,7 +7601,7 @@ an interface to implement any other minifier.") (define-public go-github-com-tdewolff-parse-v2 (package (name "go-github-com-tdewolff-parse-v2") - (version "2.6.6") + (version "2.7.19") (source (origin (method git-fetch) @@ -5699,7 +7610,7 @@ an interface to implement any other minifier.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dqki9ima079k9a3l72igmx5dml8qsl9z8rzw8a433f4gjhlv320")))) + (base32 "17yswndnxgdj425h5q25wfvchjxnjf6nxyx76k9yn12r16arbl44")))) (build-system go-build-system) (arguments (list @@ -5725,6 +7636,95 @@ an interface to implement any other minifier.") "This package contains several lexers and parsers written in Go.") (license license:expat))) +(define-public go-github-com-tetratelabs-wabin + (package + (name "go-github-com-tetratelabs-wabin") + (version "0.0.0-20230304001439-f6f874872834") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tetratelabs/wabin") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "195bh4n2ba3rbgzcb1h7zi93dr0k38qxhg8m0laa0z41vl9i0igm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tetratelabs/wabin" + #: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" "./...")))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/tetratelabs/wabin") + (synopsis "WebAssembly Binary Format in Go") + (description + "This package provides @code{WebAssembly} a @code{WebAssembly} data model +and binary encoder.") + (license license:asl2.0))) + +(define-public go-github-com-tetratelabs-wazero + (package + (name "go-github-com-tetratelabs-wazero") + (version "1.8.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tetratelabs/wazero") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xchvrkp6m729x3jknj3qwms4w2b2q8kcwyxhkmagms43yg4ykm5")) + (modules '((guix build utils))) + (snippet + #~(begin + (for-each delete-file-recursively + (list + ;; This directory holds the wazero site's source code. + "site" + ;; Windows related MSI packaging files. + "packaging")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tetratelabs/wazero" + #:test-flags + #~(list "-skip" (string-join + (list "TestHugePageConfigs" + "TestRun" + "TestRun/3_1" + "Test_cli" + "Test_cli/cargo-wasi" + "Test_cli/cargo-wasi/test.txt" + "Test_cli/cargo-wasi/testcases/test.txt" + "Test_cli/tinygo" + "Test_cli/tinygo/test.txt" + "Test_cli/tinygo/testcases/test.txt" + "Test_cli/zig" + "Test_cli/zig-cc" + "Test_cli/zig-cc/test.txt" + "Test_cli/zig-cc/testcases/test.txt" + "Test_cli/zig/test.txt") + "|")))) + (home-page "https://github.com/tetratelabs/wazero") + (synopsis "Zero dependency WebAssembly runtime for Go") + (description + "wazero is a WebAssembly Core Specification +@url{https://www.w3.org/TR/2019/REC-wasm-core-1-20191205/,1.0} and +@code{https://www.w3.org/TR/2022/WD-wasm-core-2-20220419/,2.0} compliant +runtime. It has zero dependencies, and doesn't rely on CGO. This means you +can run applications in other languages and still keep cross compilation.") + (license license:asl2.0))) + (define-public go-github-com-tv42-httpunix (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22") (revision "0")) @@ -5749,6 +7749,34 @@ an interface to implement any other minifier.") sockets.") (license license:expat)))) +(define-public go-github-com-txthinking-socks5 + (package + (name "go-github-com-txthinking-socks5") + (version "0.0.0-20230325130024-4230056ae301") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/txthinking/socks5") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zbwczxwmx8ngs6s0bnb0v73jvx96m9ll753zfgcns8fvvgdi2lb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/txthinking/socks5")) + (propagated-inputs + (list go-github-com-miekg-dns + go-github-com-patrickmn-go-cache + go-github-com-txthinking-runnergroup)) + (home-page "https://github.com/txthinking/socks5") + (synopsis "SOCKSv5 protocol Golang library") + (description + "This package provides a SOCKS protocol version 5 library with full +TCP/UDP and IPv4/IPv6 support.") + (license license:expat))) + (define-public go-github-com-ucarion-urlpath (package (name "go-github-com-ucarion-urlpath") @@ -5809,7 +7837,7 @@ encoding library for the MessagePack, CBOR, JSON and the Binc formats.") (define-public go-github-com-valyala-fasthttp (package (name "go-github-com-valyala-fasthttp") - (version "1.39.0") + (version "1.58.0") (source (origin (method git-fetch) @@ -5818,11 +7846,17 @@ encoding library for the MessagePack, CBOR, JSON and the Binc formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12qwx0yk7wjj25v4fswgmj28r69gk94kqdmzavca8k9f0yznniz1")))) + (base32 "0r823fikgyhnmcn322anhs3ivkbzhdgbywvwi81v9kvfhi35plli")))) (build-system go-build-system) (arguments (list #:import-path "github.com/valyala/fasthttp" + #:test-flags + #~(list "-skip" (string-join + ;; Network set up is required. + (list "TestClientConfigureClientFailed" + "TestDialer_GetDialFunc") + "|")) #:phases #~(modify-phases %standard-phases (replace 'check @@ -5847,6 +7881,132 @@ encoding library for the MessagePack, CBOR, JSON and the Binc formats.") replacement for native @code{net/http} module.") (license license:expat))) +(define-public go-github-com-valyala-tcplisten + (package + (name "go-github-com-valyala-tcplisten") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/valyala/tcplisten") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fv5hxmq1jwrjn1rdjvbmjrrkb601zcdh01qhx6d8l7ss6n05zb8")))) + (build-system go-build-system) + (arguments + ;; NOTE: (Sharlatan-20211218T165504+0000): Tests failing: + ;; + ;; tcplisten_test.go:56: cannot create listener 0 using Config + ;; &tcplisten.Config{ReusePort:false, DeferAccept:false, FastOpen:false, + ;; Backlog:32}: lookup ip6-localhost on [::1]:53: read udp + ;; [::1]:33932->[::1]:53: read: connection refused + ;; + '(#:tests? #f + #:import-path "github.com/valyala/tcplisten")) + (home-page "https://github.com/valyala/tcplisten") + (synopsis "Customizable TCP net.Listener for Go") + (description + "@code{tcplisten} provides customizable TCP net.Listener with various +performance-related options.") + (license license:expat))) + +(define-public go-github-com-vektah-gqlparser-v2 + (package + (name "go-github-com-vektah-gqlparser-v2") + (version "2.5.21") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vektah/gqlparser") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hrzm9f3kvcblff4hypf1p95kxsv5pww7vcghhw2jb7r8r4kmdf0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/vektah/gqlparser/v2")) + (native-inputs + (list go-github-com-andreyvit-diff + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-agnivade-levenshtein + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/vektah/gqlparser") + (synopsis "Port of the parser from @code{graphql-js} into golang") + (description + "This is a parser for GraphQL, written to mirror the +@url{https://github.com/graphql/graphql-js, graphql-js} reference +implementation as closely while remaining idiomatic and easy to use.") + (license license:expat))) + +(define-public go-github-com-vishvananda-netlink + (package + (name "go-github-com-vishvananda-netlink") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vishvananda/netlink") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ckwb1ml7i2ccdd7kzc04s839naf4arlxav2ip5kf4rm4xhba9g7")))) + (build-system go-build-system) + (arguments + (list + ;; The tests are unsupported on all architectures except x86_64-linux: + ;; cannot use 0xabcdef99 (untyped int constant 2882400153) as int value + ;; in struct literal (overflows) + #:tests? (and (not (%current-target-system)) (target-x86-64?)) + #:test-flags + ;; One test fails with error: operation not permitted. + #~(list "-skip" "TestSocketXDPGetInfo") + #:import-path "github.com/vishvananda/netlink")) + (propagated-inputs + (list go-github-com-vishvananda-netns + go-golang-org-x-sys)) + (home-page "https://github.com/vishvananda/netlink") + (synopsis "Simple netlink library for Go") + (description + "The netlink package provides a simple netlink library for Go. Netlink +is the interface a user-space program in Linux uses to communicate with the +kernel. It can be used to add and remove interfaces, set IP addresses and +routes, and configure IPsec.") + (license license:asl2.0))) + +(define-public go-github-com-vishvananda-netns + (package + (name "go-github-com-vishvananda-netns") + (version "0.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vishvananda/netns") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f96fbmjq93msdfxmicnypnn2lzvi7jrxy82fiyd9gwxdapfd061")))) + (build-system go-build-system) + (arguments + (list + ;; Tests fail with error: operation not permitted. + #:test-flags #~(list "-skip" "TestGetNewSetDelete|TestThreaded") + #:import-path "github.com/vishvananda/netns")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/vishvananda/netns") + (synopsis "Simple network namespace handling for Go") + (description + "The netns package provides a simple interface for handling network +namespaces in Go.") + (license license:asl2.0))) + (define-public go-github-com-whyrusleeping-cbor (package (name "go-github-com-whyrusleeping-cbor") @@ -5988,6 +8148,34 @@ missing it. It address the issues @url{https://github.com/golang/go/issues/68082, #68082}.") (license license:bsd-3))) +(define-public go-github-com-xdg-go-scram + (package + (name "go-github-com-xdg-go-scram") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xdg-go/scram") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bkznny84fdn4sy3wq5680v424glsq9nh2169qy51213bah6by84")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xdg-go/scram")) + (propagated-inputs + (list go-github-com-xdg-go-stringprep + go-github-com-xdg-go-pbkdf2)) + (home-page "https://github.com/xdg-go/scram") + (synopsis "Go implementation of RFC-5802") + (description + "Package scram provides client and server implementations of the +@acronym{Salted Challenge Response Authentication Mechanism, SCRAM} described +in RFC-5802 and RFC-7677.") + (license license:asl2.0))) + (define-public go-github-com-xeipuuv-gojsonpointer (let ((commit "4e3ac2762d5f479393488629ee9370b50873b3a6") (revision "0")) @@ -6073,6 +8261,87 @@ programming language.") programming language, which supports draft-04, draft-06 and draft-07.") (license license:asl2.0))) +(define-public go-github-com-xo-dburl + (package + (name "go-github-com-xo-dburl") + (version "0.23.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xo/dburl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yxyfrm45dqd26513r2cvgkqfsclijsfzqrckbw45wydk45mq442")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xo/dburl")) + (home-page "https://github.com/xo/dburl") + (synopsis + "URL style mechanism for parsing and opening SQL database connection strings") + (description + "Package dburl provides a standard, @code{net/url.URL} style mechanism +for parsing and opening SQL database connection strings for Go. Provides +standardized way to parse and open @@url{#URL,URL}'s for popular databases +@code{PostgreSQL}, @code{MySQL}, SQLite3, Oracle Database, Microsoft SQL +Server, in addition to most other SQL databases with a publicly available Go +driver.") + (license license:expat))) + +(define-public go-github-com-xtaci-kcp-go-v5 + (package + (name "go-github-com-xtaci-kcp-go-v5") + (version "5.6.18") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtaci/kcp-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17jqgl2zdra9rz8ap3zlrk7ljnm316gd4dy4cimlk2641n8r5bjx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xtaci/kcp-go/v5")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-klauspost-reedsolomon + go-github-com-pkg-errors + go-github-com-templexxx-xorsimd + go-github-com-tjfoc-gmsm + go-github-com-xtaci-lossyconn + go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://github.com/xtaci/kcp-go") + (synopsis "Crypto-Secure Reliable-UDP Library with FEC") + (description + "This package provides smooth, resilient, ordered, error-checked and +anonymous delivery of streams over UDP packets. +Features: +@itemize +@item designed for latency-sensitive scenarios +@item cache-friendly and memory-optimized design +@item handles >5K concurrent connections on a single commodity server +@item compatible with @code{net.Conn} and @code{net.Listener}, serving as a +drop-in replacement for @code{net.TCPConn} +@item @acronym{Forward Error Correction, FEC} support with +@url{https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction, +Reed-Solomon Codes} +@item packet-level encryption support with @code{3DES}, @code{AES}, +@code{Blowfish}, @code{Cast5}, @code{PBKDF2}, @code{SM4}, @code{Salsa20}, +@code{TEA}, @code{Twofish}, and @code{XTEA} +@item only a fixed number of goroutines are created for the entire server +application +@item compatible with @url{https://github.com/skywind3000, skywind3000}'s C +version with various improvements +@end itemize") + (license license:expat))) + (define-public go-github-com-xtaci-lossyconn (package (name "go-github-com-xtaci-lossyconn") @@ -6124,6 +8393,192 @@ multiplexing. The original intention of this library is to power the connection management for @url{https://github.com/xtaci/kcp-go,kcp-go}.") (license license:expat))) +(define-public go-gitlab-torproject-org-tpo-anti-censorship-geoip + (package + (name "go-gitlab-torproject-org-tpo-anti-censorship-geoip") + (version "0.0.0-20210928150955-7ce4b3d98d01") + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://gitlab.torproject.org/tpo/anti-censorship/geoip.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i7dc717w1g7hk7488vscqxj0a10af6fz9jczxxsfyxagynfzqcq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.torproject.org/tpo/anti-censorship/geoip")) + (propagated-inputs + (list go-github-com-smartystreets-goconvey)) + (home-page "https://gitlab.torproject.org/tpo/anti-censorship/geoip") + (synopsis "GeoIP go library that uses the tor geoipdb") + (description + "This code is for loading database data that maps IP addresses to +countries for collecting and presenting statistics on snowflake use that might +alert us to censorship events.") + (license license:bsd-3))) + +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib + (package + (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jw9vlvlx7rrl366kwz47414aciw3r37lwg6h4jq8cj5hb4bqnd9")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib")) + (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-ptutil + (package + (name + "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-ptutil") + (version "0.0.0-20240710081135-6c4d8ed41027") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append + "https://gitlab.torproject.org/tpo/anti-censorship" + "/pluggable-transports/ptutil.git")) + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h7ssgsny6abhpycgks1kvqzvd20s081n39j5yxjjr7zn495ysdc")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil")) + (propagated-inputs + (list go-github-com-prometheus-client-golang + go-github-com-prometheus-client-model + go-google-golang-org-protobuf)) + (home-page + "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil") + (synopsis "Collection of utilities for Pluggable Transports") + (description + "This package provides a collection of utilities for Pluggable Transports.") + (license license:bsd-3))) + +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2 + (package + (name + "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2") + (version "2.10.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append + "https://gitlab.torproject.org/tpo/anti-censorship" + "/pluggable-transports/snowflake")) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14ypgzj6c6vjw9s85wf2vdfa9l06iandx7gz90i3w6r65q2cp6vj")))) + (build-system go-build-system) + (arguments + (list + ;; Project provides a Go library and also CLI builds. + #:skip-build? #t + #:import-path + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2" + ;; panic: empty transcript [recovered] + #:test-flags #~(list "-skip" "TestQueuePacketConnWriteToKCP"))) + (native-inputs + (list go-github-com-golang-mock + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-aws-aws-sdk-go-v2 + go-github-com-aws-aws-sdk-go-v2-config + go-github-com-aws-aws-sdk-go-v2-credentials + go-github-com-aws-aws-sdk-go-v2-service-sqs + go-github-com-golang-mock + go-github-com-gorilla-websocket + go-github-com-miekg-dns + go-github-com-pion-ice-v2 + go-github-com-pion-sdp-v3 + go-github-com-pion-stun-v3 + go-github-com-pion-transport-v2 + go-github-com-pion-webrtc-v3 + go-github-com-prometheus-client-golang + go-github-com-realclientip-realclientip-go + go-github-com-refraction-networking-utls + go-github-com-smartystreets-goconvey + go-github-com-stretchr-testify + go-github-com-txthinking-socks5 + go-github-com-xtaci-kcp-go-v5 + go-github-com-xtaci-smux + go-gitlab-torproject-org-tpo-anti-censorship-geoip + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-ptutil + go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-sys)) + (home-page + "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake") + (synopsis "Pluggable Transport using WebRTC, inspired by Flashproxy") + (description + "Pluggable Transport using @code{WebRTC}, inspired by Flashproxy and +adheres to the pluggable transports v2.1 Go AP. +This package provides: +@itemize +@item @code{broker} contains code for the Snowflake broker +@item @code{doc} contains Snowflake documentation and manpages +@item @code{client} contains the Tor pluggable transport client and client +library code +@item @code{common} contains generic libraries used by multiple pieces of +Snowflake +@item @code{proxy} contains code for the Go standalone Snowflake proxy +@item @code{probetest} contains code for a NAT probetesting service +@item @code{server} contains the Tor pluggable transport server and server +library code +@end itemize") + (license license:bsd-3))) + +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel + (package + (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel") + (version "0.0.0-20240711104640-e64b1b3562f3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nvd0qp1mdy7w32arnkhghxm5k2g6gy33cxlarxc6vdm4yh6v5nv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel")) + (propagated-inputs + (list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib)) + (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel") + (synopsis "Go WebTunnel Pluggable Transport") + (description + "WebTunnel is a Go Pluggable Transport that attempts to imitate web +browsing activities based on HTTP Upgrade (HTTPT).") + (license license:bsd-2))) + (define-public go-go-opentelemetry-io-otel (package (name "go-go-opentelemetry-io-otel") @@ -6180,7 +8635,9 @@ connection management for @url{https://github.com/xtaci/kcp-go,kcp-go}.") (build-system go-build-system) (arguments (list - #:import-path "go.opentelemetry.io/otel")) + #:import-path "go.opentelemetry.io/otel" + ;; Error: Both arguments must be pointers. + #:test-flags #~(list "-skip" "TestTraceProviderDelegatesSameInstance"))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -6197,10 +8654,65 @@ go.opentelemetry.io/otel, go.opentelemetry.io/otel/metric and go.opentelemetry.io/otel/trace.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-otel-log + (package + (name "go-go-opentelemetry-io-otel-log") + (version "0.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "log")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (define (directory? x) + (and=> (stat x #f) + (compose (cut eq? 'directory <>) stat:type))) + (with-directory-excursion directory + (let* ((pred + (negate (cut member <> (append '("." "..") preserve)))) + (items (scandir "." pred))) + (for-each (lambda (item) + (if (directory? item) + (delete-file-recursively item) + (delete-file item))) + items)))) + (delete-all-but "." "log"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel/log" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-logr-logr + go-go-opentelemetry-io-otel)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "OpenTelemetry Logs API") + (description + "This package is intended to be used by bridges between existing logging +libraries and OpenTelemetry. Users should not directly use this package as a +logging library. Instead, install one of the bridges listed in the +[registry], and use the associated logging library.") + (license license:asl2.0))) + (define-public go-go-opentelemetry-io-otel-sdk (package (name "go-go-opentelemetry-io-otel-sdk") - (version "1.30.0") + (version "1.33.0") (source (origin (method git-fetch) @@ -6209,7 +8721,7 @@ go.opentelemetry.io/otel/trace.") (commit (go-version->git-ref version #:subdir "sdk")))) (file-name (git-file-name name version)) (sha256 - (base32 "0mpkwz2ryah5j2fb835pdw9084nwhr6fj3jig2mnvwwnsymp2bvy")) + (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-26))) @@ -6231,7 +8743,9 @@ go.opentelemetry.io/otel/trace.") (delete-file-recursively item) (delete-file item))) items)))) - (delete-all-but "." "sdk"))))) + (delete-all-but "." "sdk") + (delete-file-recursively "sdk/log") + (delete-file-recursively "sdk/metric"))))) (build-system go-build-system) (arguments (list @@ -6251,6 +8765,123 @@ go.opentelemetry.io/otel/trace.") "This package provides OpenTelemetry Otel SDK.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-otel-sdk-log + (package + (name "go-go-opentelemetry-io-otel-sdk-log") + (version "0.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "sdk/log")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (define (directory? x) + (and=> (stat x #f) + (compose (cut eq? 'directory <>) stat:type))) + (with-directory-excursion directory + (let* ((pred + (negate (cut member <> (append '("." "..") preserve)))) + (items (scandir "." pred))) + (for-each (lambda (item) + (if (directory? item) + (delete-file-recursively item) + (delete-file item))) + items)))) + (delete-all-but "sdk" "log") + (delete-all-but "." "sdk"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel/sdk/log" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-logr-logr + go-github-com-go-logr-stdr + go-github-com-google-go-cmp + go-go-opentelemetry-io-otel-log + go-go-opentelemetry-io-otel-sdk)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "OpenTelemetry Log SDK library") + (description "Package log provides the @code{OpenTelemetry} Logs SDK.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-otel-sdk-metric + (package + (name "go-go-opentelemetry-io-otel-sdk-metric") + (version "1.33.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "sdk/metric")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (define (directory? x) + (and=> (stat x #f) + (compose (cut eq? 'directory <>) stat:type))) + (with-directory-excursion directory + (let* ((pred + (negate (cut member <> (append '("." "..") preserve)))) + (items (scandir "." pred))) + (for-each (lambda (item) + (if (directory? item) + (delete-file-recursively item) + (delete-file item))) + items)))) + (delete-all-but "sdk" "metric") + (delete-all-but "." "sdk"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel/sdk/metric" + #:unpack-path "go.opentelemetry.io/otel" + #:test-flags + #~(list "-skip" (string-join + (list "TestGlobalInstRegisterCallback" + "TestMeterProviderDelegation") + "|")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-logr-logr + go-github-com-go-logr-stdr + go-github-com-google-go-cmp + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-sdk)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "OpenTelemetry Metric SDK library") + (description + "Package metric provides an implementation of the @code{OpenTelemetry} +metrics SDK.") + (license license:asl2.0))) + (define-public go-golang-org-x-oauth2 (package (name "go-golang-org-x-oauth2") @@ -6325,42 +8956,166 @@ go.opentelemetry.io/otel/trace.") (description "This package is a Go Implementation of WireGuard.") (license license:expat))) -;; XXX: This repository has been archived by the owner on Feb 27, 2023. It is -;; now read-only and it is DEPRECATED. -(define-public go-gopkg-in-square-go-jose-v2 +(define-public go-gopkg-in-go-jose-go-jose-v2 (package - (name "go-gopkg-in-square-go-jose-v2") - (version "2.6.0") + (inherit go-github-com-go-jose-go-jose-v3) + (name "go-gopkg-in-go-jose-go-jose-v2") + (version "2.6.3") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/square/go-jose") + (url "https://github.com/go-jose/go-jose") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1b1nhqxfmhzwrfk7pkvp2w3z3d0pf5ir00vizmy2d4xdbnldn70r")))) + (base32 "0frg4g9gyqdgf7h0xai9771a47ndb0zqbw0rp5yk0dswsq1vk4kq")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-go-jose-go-jose-v3) + ((#:import-path _) "gopkg.in/go-jose/go-jose.v2"))) + (propagated-inputs + (list go-golang-org-x-crypto + go-gopkg-in-alecthomas-kingpin-v2)))) + +;; This to satisfy alternative import path. +(define-public go-gopkg-in-jcmturner-rpc-v1 + (package + (inherit go-github-com-jcmturner-rpc) + (name "go-gopkg-in-jcmturner-rpc-v1") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-jcmturner-rpc) + ((#:import-path _) "gopkg.in/jcmturner/rpc.v1"))))) + +;; This to satisfy alternative import path. +(define-public go-gopkg-in-jcmturner-rpc-v2 + (package + (inherit go-github-com-jcmturner-rpc-v2) + (name "go-gopkg-in-jcmturner-rpc-v2") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-jcmturner-rpc-v2) + ((#:tests? _ #t) #f) + ((#:import-path _) "gopkg.in/jcmturner/rpc.v2"))))) + +(define-public go-k8s-io-kube-openapi + (package + (name "go-k8s-io-kube-openapi") + (version "0.0.0-20241212222426-2c72e554b1e7") + ;; XXX: Unbundle third_party in pkg. + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes/kube-openapi") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0crd349jd210bh68ic70pqmdkfns7cix2qhsa6pfya6kbvschyf9")) + ;; XXX: test/integration contains submodule with it's own go.mod. + (modules '((guix build utils))) + (snippet + #~(begin + ;; Keeping just testdata. + (for-each delete-file-recursively + (list "test/integration/builder" + "test/integration/builder3" + "test/integration/openapiconv" + "test/integration/pkg/generated" + "test/integration/testutil" + "test/integration/import.go" + "test/integration/integration_suite_test.go")))))) (build-system go-build-system) (arguments (list - ;; XXX: We strongly encourage users of square/go-jose to migrate to v3 - ;; of go-jose/go-jose. No support, security fixes or updates will be - ;; delivered to the v1/v2 branches in the Square repository. - #:tests? #f - #:import-path "gopkg.in/square/go-jose.v2")) - (propagated-inputs - (list go-golang-org-x-crypto)) + #:go go-1.23 + #:import-path "k8s.io/kube-openapi" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root (native-inputs - (list go-github-com-google-go-cmp + (list go-github-com-getkin-kin-openapi + go-github-com-google-gofuzz + go-github-com-onsi-ginkgo-v2 + go-github-com-onsi-gomega go-github-com-stretchr-testify)) - (home-page "https://gopkg.in/square/go-jose.v2") - (synopsis "Implementation of JOSE standards (JWE, JWS, JWT) in Go") - (description - "This package aims to provide an implementation of the Javascript Object -Signing and Encryption set of standards. This includes support for JSON Web -Encryption, JSON Web Signature, and JSON Web Token standards.") + (propagated-inputs + (list go-github-com-emicklei-go-restful-v3 + go-github-com-go-openapi-jsonreference + go-github-com-go-openapi-swag + go-github-com-google-gnostic-models + go-github-com-google-go-cmp + go-github-com-google-uuid + go-github-com-munnerz-goautoneg + go-github-com-nytimes-gziphandler + go-github-com-spf13-pflag + go-golang-org-x-tools + go-google-golang-org-protobuf + go-gopkg-in-yaml-v3 + go-k8s-io-gengo-v2 + go-k8s-io-klog-v2 + go-k8s-io-utils + go-sigs-k8s-io-json + go-sigs-k8s-io-structured-merge-diff-v4 + go-sigs-k8s-io-yaml)) + (home-page "https://github.com/kubernetes/kube-openapi") + (synopsis "Kubernetes OpenAPI spec generation & serving") + (description + "This package implements a Kubernetes OpenAPI discovery spec generation, +providing support a subset of OpenAPI features to satisfy kubernetes use-cases +but implement that subset with little to no assumption about the structure of +the code or routes.") (license license:asl2.0))) +(define-public go-modernc-org-httpfs + (package + (name "go-modernc-org-httpfs") + (version "1.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/httpfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01q5rvhxmrd45h0ljh4185wlly7rxv6vvh28d2shsyan4nj67zf1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/httpfs")) + (home-page "https://gitlab.com/cznic/httpfs") + (synopsis "HTTP file system implementation in Golang") + (description + "Package httpfs implements @code{http.FileSystem} on top of a +@code{map[string]string}.") + (license license:bsd-3))) + +(define-public go-modernc-org-token + (package + (name "go-modernc-org-token") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/token") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vvnnfppmgq7hxmw18dx90fg6khwnxpwn9kwwf0hwxsckxfb5icv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/token")) + (home-page "https://modernc.org/token") + (synopsis "Variant of the Golang stdlib package @code{token}") + (description + "Package token is variant of the stdlib package token with types +@code{FileSet} and Token removed.") + (license license:bsd-3))) + (define-public go-mvdan-cc-xurls-v2 (package (name "go-mvdan-cc-xurls-v2") @@ -6377,7 +9132,8 @@ Encryption, JSON Web Signature, and JSON Web Token standards.") (build-system go-build-system) (arguments (list - #:import-path "mvdan.cc/xurls/v2")) + #:import-path "mvdan.cc/xurls/v2" + #:test-flags #~(list "-skip" "TestScript/version"))) (propagated-inputs (list go-github-com-rogpeppe-go-internal go-golang-org-x-mod @@ -6420,6 +9176,85 @@ protocol.") ;;; Executables: ;;; +(define-public go-jose-util + (package + (name "go-jose-util") + (version "0.0.0-20240226165647-31202557b449") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-jose/go-jose") + (commit (go-version->git-ref version + #:subdir "jose-util")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19kr2r9nnrnixpmpp37p5adnxc92bc3gzqz7rpybgaly2wfssz0q")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/go-jose/go-jose/jose-util" + #:unpack-path "github.com/go-jose/go-jose")) + (native-inputs + (list go-github-com-go-jose-go-jose-v3 + go-gopkg-in-alecthomas-kingpin-v2)) + (home-page "https://github.com/go-jose/go-jose") + (synopsis "JOSE CLI") + (description + "The @code{jose-util} command line utility allows for encryption, +decryption,signing and verification of JOSE messages. Its main purpose is to +facilitate dealing with JOSE messages when testing or debugging.") + (license license:asl2.0))) + +(define-public go-gojay + (package + (inherit go-github-com-francoispqt-gojay) + (name "go-gojay") + (arguments + (list + #:tests? #f ; already tested in the library + #:install-source? #f + #:import-path "github.com/francoispqt/gojay/gojay" + #:unpack-path "github.com/francoispqt/gojay")) + (description + "This package provides a command line tool to generate gojay's marshaling +and unmarshaling interface implementation for custom struct type(s)."))) + +(define-public go-gqlclient + (package + (inherit go-git-sr-ht-emersion-gqlclient) + (name "go-gqlclient") + (arguments + (substitute-keyword-arguments + (package-arguments go-git-sr-ht-emersion-gqlclient) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:phases _ '%standard-phases) + #~(modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,cmd))) + (list "git.sr.ht/~emersion/gqlclient/cmd/gqlclient" + "git.sr.ht/~emersion/gqlclient/cmd/gqlclientgen" + "git.sr.ht/~emersion/gqlclient/cmd/gqlintrospect")))) + (replace 'install + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,cmd))) + (list "git.sr.ht/~emersion/gqlclient/cmd/gqlclient" + "git.sr.ht/~emersion/gqlclient/cmd/gqlclientgen" + "git.sr.ht/~emersion/gqlclient/cmd/gqlintrospect")))))))) + (description + "This package provides command line tools: @code{gqlclient}, +@code{gqlclientgen}, and @code{gqlintrospect}. For the Golang libriray, see +go-git-sr-ht-emersion-gqlclient package."))) + (define-public go-html2text (package (inherit go-github-com-jaytaylor-html2text) @@ -6455,20 +9290,45 @@ go-github-com-multiformats-go-multiaddr-dns."))) (inherit go-github-com-tdewolff-minify-v2) (name "go-minify") (arguments - (substitute-keyword-arguments - (package-arguments go-github-com-tdewolff-minify-v2) - ((#:install-source? _ #t) #f) - ((#:import-path _ "github.com/tdewolff/minify/v2") - "github.com/tdewolff/minify/cmd/minify"))) - (inputs - (list go-github-com-djherbis-atime - go-github-com-dustin-go-humanize - go-github-com-fsnotify-fsnotify - go-github-com-matryer-try - go-github-com-spf13-pflag)) + (list + #:install-source? #f + #:tests? #f ; tested in the library + #:import-path "github.com/tdewolff/minify/cmd/minify" + #:unpack-path "github.com/tdewolff/minify")) (description "This package provides a CLI binary executible built from go-github-com-tdewolff-minify-v2 source."))) +(define-public gron + (package + (name "gron") + (version "0.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tomnomnom/gron") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sj34b6yv0qigy3aq7qmwf8bqxp1a8qh9p10lzkpw58s1c0iyh36")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/tomnomnom/gron")) + (native-inputs + (list go-github-com-fatih-color + go-github-com-mattn-go-colorable + go-github-com-nwidger-jsoncolor + go-github-com-pkg-errors)) + (home-page "https://github.com/tomnomnom/gron") + (synopsis "Transform JSON to make it easier to grep") + (description + "This package transforms JSON into discrete assignments to make it easier +to use line-based tools such as grep to search for what you want and see the +absolute \"path\" to it.") + (license license:expat))) + (define-public xurls (package (inherit go-mvdan-cc-xurls-v2) diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index 72216ae2a4..60321ace58 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -1,36 +1,41 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017-2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> +;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018, 2020 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> +;;; Copyright © 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2021 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2019-2021 Martin Becze <mjbecze@riseup.net> -;;; Copyright © 2019-2022, 2024 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019-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> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2020 Ryan Prior <rprior@protonmail.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 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; 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 © 2021, 2023-2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2022 (unmatched-parenthesis <paren@disroot.org> ;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev> ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev> +;;; Copyright © 2022 JOULAUD François <Francois.JOULAUD@radiofrance.com> ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la> ;;; Copyright © 2022 kiasoc5 <kiasoc5@disroot.org> ;;; Copyright © 2023 Benjamin <benjamin@uvy.fr> +;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com> ;;; Copyright © 2023 Fries <fries1234@protonmail.com> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> @@ -46,10 +51,11 @@ ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> ;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Luis Higino <luishenriquegh2701@gmail.com> +;;; Copyright © 2024 Simen Endsjø <contact@simendsjo.me> ;;; 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> +;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,6 +84,7 @@ #:use-module (gnu packages cmake) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) @@ -85,6 +92,7 @@ #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-maths) #:use-module (gnu packages golang-web) + #:use-module (gnu packages libedit) #:use-module (gnu packages linux) #:use-module (gnu packages specifications) #:use-module (gnu packages xdisorg) @@ -242,6 +250,37 @@ use the C library from the project called FUSE.") a human-readable byte format.") (license license:asl2.0))) +(define-public go-dario-cat-mergo + (package + (name "go-dario-cat-mergo") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/darccio/mergo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0v12vc9bmqq89k4y60a8ykmv85hpa7nh73sn9b7ars143pxvmhf1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "dario.cat/mergo")) + (native-inputs + (list go-gopkg-in-yaml-v3)) + (home-page "https://github.com/darccio/mergo") + (synopsis "Helper to merge structs and maps in Golang") + (description + "Helper to merge structs and maps in Golang. Useful for configuration +default values, avoiding messy if-statements. + +Mergo merges same-type structs and maps by setting default values in +zero-value fields. Mergo won't merge unexported (private) fields. It will do +recursively any exported one. It also won't merge structs inside +maps (because they are not addressable using Go reflection).") + (license license:bsd-3))) + (define-public go-git-sr-ht-emersion-go-scfg (package (name "go-git-sr-ht-emersion-go-scfg") @@ -335,6 +374,35 @@ annotations on struct fields. It came as a spin-off from commands.") (license license:expat))) +(define-public go-git-sr-ht-rockorager-tcell-term + (package + (name "go-git-sr-ht-rockorager-tcell-term") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~rockorager/tcell-term") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1z64yzr2l5j5r5rqi89jk4madn3ak8hw95lva5ra7gnlyhh2vs05")))) + (build-system go-build-system) + (arguments + (list #:import-path "git.sr.ht/~rockorager/tcell-term")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-creack-pty + go-github-com-gdamore-tcell-v2 + go-github-com-mattn-go-runewidth)) + (home-page "https://git.sr.ht/~rockorager/tcell-term") + (synopsis "Terminal widget for @code{tcell}") + (description + "This package provides a virtual terminal widget for the @code{tcell} +Go library.") + (license license:expat))) + (define-public go-git-sr-ht-rockorager-vaxis (package (name "go-git-sr-ht-rockorager-vaxis") @@ -539,6 +607,82 @@ XDG defined locations instead of hardcoding paths. The package also includes the locations of well known user directories.") (license license:expat))) +(define-public go-github-com-agext-levenshtein + (package + (name "go-github-com-agext-levenshtein") + (version "1.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/agext/levenshtein") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0a26c8pp9h5w66bhd9vb6lpvmhp30mz46pnh3a8vrjx50givb2lw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/agext/levenshtein")) + (home-page "https://github.com/agext/levenshtein") + (synopsis "Calculating the Levenshtein distance between two strings in Go") + (description + "Package levenshtein implements distance and similarity metrics for +strings, based on the Levenshtein measure.") + (license license:asl2.0))) + +(define-public go-github-com-agnivade-levenshtein + (package + (name "go-github-com-agnivade-levenshtein") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/agnivade/levenshtein") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vg9aj9k4qv96nqqp261qrm9g7kj0axqhv3mm9qvw932l72943hn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/agnivade/levenshtein")) + (native-inputs ; for tests only + (list go-github-com-arbovm-levenshtein + go-github-com-dgryski-trifles)) + (home-page "https://github.com/agnivade/levenshtein") + (synopsis "Golang implementation to calculate Levenshtein Distance") + (description + "This package implements a functionality to calculate +@url{https://en.wikipedia.org/wiki/Levenshtein_distance, Levenshtein +Distance}.") + (license license:expat))) + +(define-public go-github-com-agonopol-go-stem + (package + (name "go-github-com-agonopol-go-stem") + (version "0.0.0-20150630113328-985885018250") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/agonopol/go-stem") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "128qv5s2g13akbsclyi6kyvx52gx20wz81yxkd3qnlfh0f5fqjd0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/agonopol/go-stem")) + (home-page "https://github.com/agonopol/go-stem") + (synopsis "Word Stemming in Golang") + (description + "This package provides a implementation of the porter stemming algorithm: +http://tartarus.org/~martin/PorterStemmer/index.html.") + (license license:expat))) + (define-public go-github-com-alecthomas-chroma (package (name "go-github-com-alecthomas-chroma") @@ -560,7 +704,14 @@ the locations of well known user directories.") (arguments `(#:import-path "github.com/alecthomas/chroma")) (native-inputs - (list go-github-com-dlclark-regexp2 + (list go-github-com-alecthomas-kong + go-github-com-alecthomas-kong-hcl + go-github-com-dlclark-regexp2 + go-github-com-gorilla-csrf + go-github-com-gorilla-handlers + go-github-com-gorilla-mux + go-github-com-mattn-go-colorable + go-github-com-mattn-go-isatty go-github-com-stretchr-testify)) (home-page "https://github.com/alecthomas/chroma/") (synopsis "General purpose syntax highlighter in pure Go") @@ -689,7 +840,7 @@ be stripped.") (define-public go-github-com-alecthomas-kong (package (name "go-github-com-alecthomas-kong") - (version "0.9.0") + (version "1.5.1") (source (origin (method git-fetch) @@ -698,7 +849,7 @@ be stripped.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0a9arf30h84ll8k612jh50c3vjmvdfj6i7dbvfnw3dalm6dn2aan")))) + (base32 "1b9yns6rgmxjb40rlm6v2pybi25my0760vvp6666vx5da7yg4dg9")))) (build-system go-build-system) (arguments (list @@ -716,6 +867,44 @@ be stripped.") with as little developer effort as possible.") (license license:expat))) +(define-public go-github-com-alecthomas-kong-hcl + (package + (name "go-github-com-alecthomas-kong-hcl") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alecthomas/kong-hcl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q383705kavn23ay4vzr662x9lsl2xc1mv5irhcy0cazjjc7jzp2")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/alecthomas/kong-hcl/v2 + (delete-file-recursively "v2"))))) + (build-system go-build-system) + (arguments + (list + #:test-flags #~(list "-skip" "TestHCL/FromResolver") + #:import-path "github.com/alecthomas/kong-hcl")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-alecthomas-kong + go-github-com-hashicorp-hcl + go-github-com-pkg-errors)) + (home-page "https://github.com/alecthomas/kong-hcl") + (synopsis "Kong configuration loader for HCL") + (description + "This package implements functionality to map HCL or JSON fragment into +Golang structs.") + (license license:expat))) + (define-public go-github-com-alecthomas-participle-v2 (package (name "go-github-com-alecthomas-participle-v2") @@ -734,7 +923,8 @@ with as little developer effort as possible.") (list #:import-path "github.com/alecthomas/participle/v2")) (native-inputs - (list go-github-com-alecthomas-assert-v2)) + (list go-github-com-alecthomas-assert-v2 + go-github-com-alecthomas-kong)) ; for CLI (home-page "https://github.com/alecthomas/participle") (synopsis "Parser library for Go") (description @@ -830,6 +1020,32 @@ newlines until a non-newline.") "This library provides unit multipliers and functions for Go.") (license license:expat)))) +(define-public go-github-com-alsm-ioprogress + (package + (name "go-github-com-alsm-ioprogress") + (version "0.0.0-20170412085706-063c3725f436") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alsm/ioprogress") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/alsm/ioprogress")) + (home-page "https://github.com/alsm/ioprogress") + (synopsis "Textual progress bars in Go") + (description + "@code{ioprogress} is a Go library with implementations of +@code{io.Reader} and @code{io.Writer} that draws progress bars. The primary +use case for these are for command-line applications but alternate progress +bar writers can be supplied for alternate environments.") + (license license:expat))) + (define-public go-github-com-andreasbriese-bbloom (package (name "go-github-com-andreasbriese-bbloom") @@ -879,6 +1095,264 @@ JSONMarshal/JSONUnmarshal to store/reload the Bloom filter.") commands.") (license license:expat))) +(define-public go-github-com-antihax-optional + (package + (name "go-github-com-antihax-optional") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/antihax/optional") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ix08vl49qxr58rc6201cl97g1yznhhkwvqldslawind99js4rj0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/antihax/optional")) + (home-page "https://github.com/antihax/optional") + (synopsis "Optional parameters for Golang") + (description + "This package implements optimal parameters for data-types.") + (license license:expat))) + +(define-public go-github-com-apparentlymart-go-dump + (package + (name "go-github-com-apparentlymart-go-dump") + (version "0.0.0-20190214190832-042adf3cf4a0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-dump") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yqc50v82za54j2yy3ln7jzx983scb5gbh195wb6vmvqj18q696q")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/apparentlymart/go-dump")) + (home-page "https://github.com/apparentlymart/go-dump") + (synopsis "Utility for formatting Go values in a pretty-printed way") + (description + "This package implements a functionality for generating pretty-printed +dumps of Go values.") + (license license:mpl2.0))) + +(define-public go-github-com-apparentlymart-go-textseg-v9 + (package + (name "go-github-com-apparentlymart-go-textseg-v9") + (version "9.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pmnl674ksbizkdilqz1j44djws9dj23pc6bpbjma8jfjq6b2zax")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/apparentlymart/go-textseg/v9" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-submodule + (lambda* (#:key import-path #:allow-other-keys #:rest args) + (when (false-if-exception + (stat (string-append "src/" import-path "/autoversion"))) + (delete-file-recursively + (string-append "src/" import-path "/autoversion")))))))) + (home-page "https://github.com/apparentlymart/go-textseg") + (synopsis "Go implementation of Unicode Text Segmentation") + (description + "This package provides an implementation of the Unicode Text Segmentation +specification for Go. Specifically, it currently includes only the grapheme +cluster segmentation algorithm.") + ;; Project is released under Expat terms. Some parts use Unicode and + ;; ASL2.0 licenses. + (license (list license:expat license:unicode license:asl2.0)))) + +(define-public go-github-com-apparentlymart-go-textseg-v10 + (package + (inherit go-github-com-apparentlymart-go-textseg-v9) + (name "go-github-com-apparentlymart-go-textseg-v10") + (version "10.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jj3w8m2vz574s9lq0468f56kq348wm7xhvrac5yrqw1axg6hjxd")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-apparentlymart-go-textseg-v9) + ((#:import-path _) "github.com/apparentlymart/go-textseg/v10"))))) + +(define-public go-github-com-apparentlymart-go-textseg-v11 + (package + (inherit go-github-com-apparentlymart-go-textseg-v10) + (name "go-github-com-apparentlymart-go-textseg-v11") + (version "11.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gyhj8vqpmxcd7zjq3myj6872fqf1si09dwbv03msp7hf4g976cx")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-apparentlymart-go-textseg-v10) + ((#:import-path _) "github.com/apparentlymart/go-textseg/v11"))))) + +(define-public go-github-com-apparentlymart-go-textseg-v12 + (package + (inherit go-github-com-apparentlymart-go-textseg-v11) + (name "go-github-com-apparentlymart-go-textseg-v12") + (version "12.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i8p4kkgx8yhxwzqmnpx8f87s0h27n7jrdhv78ydh6618512x5v9")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-apparentlymart-go-textseg-v11) + ((#:import-path _) "github.com/apparentlymart/go-textseg/v12"))))) + +(define-public go-github-com-apparentlymart-go-textseg-v13 + (package + (inherit go-github-com-apparentlymart-go-textseg-v12) + (name "go-github-com-apparentlymart-go-textseg-v13") + (version "13.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gdgi0d52rq1xsdn9icc8lghn0f2q927cifmrlfxflf7bf21vism")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-apparentlymart-go-textseg-v12) + ((#:import-path _) "github.com/apparentlymart/go-textseg/v13"))))) + +(define-public go-github-com-apparentlymart-go-textseg-v15 + (package + (inherit go-github-com-apparentlymart-go-textseg-v13) + (name "go-github-com-apparentlymart-go-textseg-v15") + (version "15.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bb7mxkxjhsp8kfwm26n0ds1mpwxxdpy4gndvyz26bqfm6v8vsa4")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-apparentlymart-go-textseg-v13) + ((#:import-path _) "github.com/apparentlymart/go-textseg/v15"))))) + +(define-public go-github-com-apparentlymart-go-textseg-v16 + (package + (inherit go-github-com-apparentlymart-go-textseg-v15) + (name "go-github-com-apparentlymart-go-textseg-v16") + (version "16.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j7vm09cd36wm4z986qz5am3rk242v52amcapwbdbkbgzx2kqfkm")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-apparentlymart-go-textseg-v15) + ((#:import-path _) "github.com/apparentlymart/go-textseg/v16"))))) + +(define-public go-github-com-apparentlymart-go-textseg-autoversion + (package + (name "go-github-com-apparentlymart-go-textseg-autoversion") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-textseg") + (commit (go-version->git-ref version #:subdir "autoversion")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j7vm09cd36wm4z986qz5am3rk242v52amcapwbdbkbgzx2kqfkm")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/apparentlymart/go-textseg/autoversion" + #:unpack-path "github.com/apparentlymart/go-textseg")) + (propagated-inputs + (list go-github-com-apparentlymart-go-textseg-v9 + go-github-com-apparentlymart-go-textseg-v10 + go-github-com-apparentlymart-go-textseg-v11 + go-github-com-apparentlymart-go-textseg-v12 + go-github-com-apparentlymart-go-textseg-v13 + go-github-com-apparentlymart-go-textseg-v15)) + (home-page "https://github.com/apparentlymart/go-textseg") + (synopsis "Wrap go-textesg based on the Unicode Golang version") + (description + "This package is a wrapper around each of the the +Unicode-version-specific textseg implementations that selects an +implementation automatically based on the Unicode version of the Go standard +library that it's being built against.") + (license (list license:expat license:unicode license:asl2.0)))) + +(define-public go-github-com-arbovm-levenshtein + (package + (name "go-github-com-arbovm-levenshtein") + (version "0.0.0-20160628152529-48b4e1c0c4d0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arbovm/levenshtein") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nmx2iip8xpnbmy6gvqpc9ikizr33dr40xgv746h0b0by8n7rv7y")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/arbovm/levenshtein")) + (home-page "https://github.com/arbovm/levenshtein") + (synopsis "Levenshtein Distance in Golang") + (description + "This package implements a functionality to calculate the +@url{http://en.wikipedia.org/wiki/Levenshtein_distance, Levenshtein +Distance}.") + (license license:bsd-3))) + (define-public go-github-com-arceliar-phony (package (name "go-github-com-arceliar-phony") @@ -1228,16 +1702,8 @@ can use the realtime clock while tests can use the mock clock.") (build-system go-build-system) (arguments (list - #:import-path "github.com/beorn7/perks" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:skip-build? #t + #:import-path "github.com/beorn7/perks")) (home-page "https://github.com/beorn7/perks") (synopsis "Compute approximate quantiles over an unbounded data stream") (description @@ -1246,6 +1712,32 @@ approximate quantiles over an unbounded data stream within low memory and CPU bounds.") (license license:expat))) +(define-public go-github-com-bgentry-speakeasy + (package + (name "go-github-com-bgentry-speakeasy") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bgentry/speakeasy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pasgmb9gcchprc06fbn7yjgp6caz03j6pgj14mmr8bcx0zfq7ag")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bgentry/speakeasy")) + (home-page "https://github.com/bgentry/speakeasy") + (synopsis "Reading password input without cgo") + (description + "This package provides cross-platform Golang helpers for taking user +input from the terminal while not echoing the input back (similar to +@code{getpasswd}). The package uses syscalls to avoid any dependence on cgo, +and is therefore compatible with cross-compiling.") + (license license:expat))) + (define-public go-github-com-bitly-go-hostpool (package (name "go-github-com-bitly-go-hostpool") @@ -1293,6 +1785,58 @@ robin or epsilon greedy mode, and unresponsive hosts are avoided.") information and periodically output metrics") (license license:expat))) +(define-public go-github-com-bits-and-blooms-bitset + (package + (name "go-github-com-bits-and-blooms-bitset") + (version "1.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bits-and-blooms/bitset") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m1rk1bf6i1jnhjxm774i3rhg8n8s88a3n5pnhg5a9gf34y7r8az")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bits-and-blooms/bitset")) + (home-page "https://github.com/bits-and-blooms/bitset") + (synopsis "Bitsets in Go") + (description + "This package provides a Go implementation of bitsets, which are a +mapping between non-negative integers and boolean values focused on efficient +space usage.") + (license license:bsd-3))) + +(define-public go-github-com-bits-and-blooms-bloom-v3 + (package + (name "go-github-com-bits-and-blooms-bloom-v3") + (version "3.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bits-and-blooms/bloom") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "022pyzjp862ysl30aj105i2xmapn400ambjh8h1dcyjy9c0f8agn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bits-and-blooms/bloom/v3")) + (propagated-inputs + (list go-github-com-bits-and-blooms-bitset + go-github-com-twmb-murmur3)) + (home-page "https://github.com/bits-and-blooms/bitset") + (synopsis "Bloom filters in Go") + (description + "This package provides a Go implementation of bloom filters, +based on murmurhash.") + (license license:bsd-2))) + (define-public go-github-com-blang-semver (package (name "go-github-com-blang-semver") @@ -1340,6 +1884,89 @@ information and periodically output metrics") (delete-file-recursively (string-append "src/" import-path "/examples"))))))))) +(define-public go-github-com-bmatcuk-doublestar + (package + (name "go-github-com-bmatcuk-doublestar") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bmatcuk/doublestar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bk5bixl6rqa8znxghyp6zndbccx9kdyrymjahgyp6qsrp7rk144")))) + (build-system go-build-system) + (arguments + (list + ;; This test fails with Go 1.16. + #:test-flags #~(list "-skip" "TestMatch") + #:import-path "github.com/bmatcuk/doublestar")) + (home-page "https://github.com/bmatcuk/doublestar/") + (synopsis "Path pattern matching and globbing supporting doublestar") + (description + "@code{doublestar} is a Go implementation of path pattern +matching and globbing with support for \"doublestar\" patterns.") + (license license:expat))) + +;; For chezmoi-1.8.11 +(define-public go-github-com-bmatcuk-doublestar-v2 + (package + (inherit go-github-com-bmatcuk-doublestar) + (name "go-github-com-bmatcuk-doublestar-v2") + (version "2.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bmatcuk/doublestar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09ma8a9rhs8dg527vjhdf3lsb6lajaq193m6ksssm2k3qajhpi94")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-bmatcuk-doublestar) + ((#:import-path _) "github.com/bmatcuk/doublestar/v2"))))) + +(define-public go-github-com-bmatcuk-doublestar-v3 + (package + (inherit go-github-com-bmatcuk-doublestar) + (name "go-github-com-bmatcuk-doublestar-v3") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bmatcuk/doublestar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "011h07mlmscbxxjr3h30fjjb4dw3gb245nzczaq520r112xlidhj")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-bmatcuk-doublestar) + ((#:import-path _) "github.com/bmatcuk/doublestar/v3"))))) + +(define-public go-github-com-bmatcuk-doublestar-v4 + (package + (inherit go-github-com-bmatcuk-doublestar) + (name "go-github-com-bmatcuk-doublestar-v4") + (version "4.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bmatcuk/doublestar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bvfxqkpl8bkfqxjxjgmz0gd4b4v6dxwrzxq2qzly0r9zrj1lfic")))) + (arguments + (list + #:import-path "github.com/bmatcuk/doublestar/v4")))) + (define-public go-github-com-bmizerany-perks-quantile (package (name "go-github-com-bmizerany-perks-quantile") @@ -1393,6 +2020,30 @@ project is to provide a simple, fast, and reliable database for projects that don't require a full database server such as Postgres or MySQL.") (license license:expat))) +(define-public go-github-com-bradfitz-gomemcache + (package + (name "go-github-com-bradfitz-gomemcache") + (version "0.0.0-20230905024940-24af94b03874") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bradfitz/gomemcache") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xhf5zphhilv1jiwsdf5f4b4g2jj8q3yhn2r83f52mpi9s8jp5db")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/bradfitz/gomemcache")) + (home-page "https://github.com/bradfitz/gomemcache") + (synopsis "Memcache client library in Go") + (description + "This is a memcache client library for the Go programming language.") + (license license:asl2.0))) + (define-public go-github-com-briandowns-spinner (package (name "go-github-com-briandowns-spinner") @@ -1425,6 +2076,100 @@ don't require a full database server such as Postgres or MySQL.") indicator to any terminal application.") (license license:asl2.0))) +(define-public go-github-com-btcsuite-btclog + (package + (name "go-github-com-btcsuite-btclog") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/btcsuite/btclog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1aqpgb3bw1g5am2az4f1g1a54xii0axvxp0zymhyl8jdk6hhyyd8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/btcsuite/btclog")) + (home-page "https://github.com/btcsuite/btclog") + (synopsis "Subsystem aware logger for Go") + (description + "Package @command{btclog} defines a logger interface and provides a +default implementation of a subsystem-aware leveled logger implementing the +same interface.") + (license license:isc))) + +(define-public go-github-com-btcsuite-btclog-v2 + (package + (inherit go-github-com-btcsuite-btclog) + (name "go-github-com-btcsuite-btclog-v2") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/btcsuite/btclog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0v9zh39d35647g6m9b74l5z1ifbnk4chbglnbmj5ndzj9alzsc38")))) + (arguments + (list + #:import-path "github.com/btcsuite/btclog/v2" + #:unpack-path "github.com/btcsuite/btclog")))) + +(define-public go-github-com-buildkite-shellwords + (package + (name "go-github-com-buildkite-shellwords") + (version "0.0.0-20180315110454-59467a9b8e10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/buildkite/shellwords") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kx6wxbdznarmnifwzmxxcd86bgn27rwpfnw2y2gd0j8zg9g1682")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/buildkite/shellwords")) + (home-page "https://github.com/buildkite/shellwords") + (synopsis "Split command-line strings into words") + (description + "This package provides a golang library for splitting command-line +strings into words like a POSIX or Windows shell would.") + (license license:expat))) + +(define-public go-github-com-burntsushi-graphics-go + (package + (name "go-github-com-burntsushi-graphics-go") + (version "0.0.0-20160129215708-b43f31a4a966") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BurntSushi/graphics-go") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1084wkrj5l6j48s9lkh28h2zgmw8kp63ra1yw1nfpkf0f6hil3hn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/BurntSushi/graphics-go" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (home-page "https://github.com/BurntSushi/graphics-go") + (synopsis "Graphics library for the Golang") + (description + "This package provides a library to works with graphics.") + (license license:bsd-3))) + (define-public go-github-com-burntsushi-toml (package (name "go-github-com-burntsushi-toml") @@ -1441,15 +2186,7 @@ indicator to any terminal application.") (build-system go-build-system) (arguments (list - #:import-path "github.com/BurntSushi/toml" - #: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" "./...")))))))) + #:import-path "github.com/BurntSushi/toml")) (home-page "https://github.com/BurntSushi/toml") (synopsis "Toml parser and encoder for Go") (description @@ -1457,31 +2194,116 @@ indicator to any terminal application.") similar to Go's standard library @code{json} and @code{xml} package.") (license license:expat))) -;; XXX: This repository has been archived by the owner on Feb 21, 2018. It is -;; now read-only. -(define-public go-github-com-calmh-xdr +(define-public go-github-com-bytedance-sonic (package - (name "go-github-com-calmh-xdr") - (version "1.1.0") + (name "go-github-com-bytedance-sonic") + (version "1.12.6") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/calmh/xdr") + (url "https://github.com/bytedance/sonic") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh")))) + (base32 "011hp6lvqvx4facxsmy6vya02g9q3rlnmxcii827sbf6bssy7wxp")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/bytedance/sonic/external_jsonlib_test + ;; - github.com/bytedance/sonic/fuzz + ;; - github.com/bytedance/sonic/generic_test + ;; - github.com/bytedance/sonic/loader + (for-each delete-file-recursively + (list "external_jsonlib_test" + "fuzz" + "generic_test" + "loader")))))) (build-system go-build-system) (arguments (list - #:import-path "github.com/calmh/xdr")) - (home-page "https://github.com/calmh/xdr") - (synopsis "XDR marshalling and unmarshalling") + #:import-path "github.com/bytedance/sonic")) + (native-inputs + (list go-github-com-davecgh-go-spew + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-bytedance-sonic-loader + go-github-com-cloudwego-base64x + go-github-com-klauspost-cpuid-v2 + go-github-com-twitchyliquid64-golang-asm + go-golang-org-x-arch)) + (home-page "https://github.com/bytedance/sonic") + (synopsis "JSON serializing and deserializing library") (description - "XDR is an External Data Representation (XDR) -marshalling and unmarshalling library in Go. It uses code generation and not -reflection.") + "This package implements a functionality to serialize/deserialize JSON by +using JIT and SIMD approaches.") + ;; There some other licenses in "licenses" but all of them look like ASL + ;; compatible. + (license license:asl2.0))) + +(define-public go-github-com-bytedance-sonic-loader + (package + (name "go-github-com-bytedance-sonic-loader") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bytedance/sonic") + (commit (go-version->git-ref version + #:subdir "loader")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fyjq3hr4cmai2r06ppzil314bcqz416gd1zpw7lfp9h7mcwxwa4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bytedance/sonic/loader" + #:unpack-path "github.com/bytedance/sonic")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cloudwego-iasm)) + (home-page "https://github.com/bytedance/sonic") + (synopsis "Function loader for Sonic Golang library") + (description + "This package provides functionality to load functions used in Sonic JSON +library.") + (license license:asl2.0))) + +(define-public go-github-com-c-bata-go-prompt + (package + (name "go-github-com-c-bata-go-prompt") + (version "0.2.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c-bata/go-prompt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16hfb5xvgixn1anbsvazs8ihcrzyww0n8fddx10yiygqhsp07avz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/c-bata/go-prompt")) + (propagated-inputs + (list go-github-com-mattn-go-colorable + go-github-com-mattn-go-runewidth + go-github-com-mattn-go-tty + go-github-com-pkg-term + go-golang-org-x-sys)) + (home-page "https://github.com/c-bata/go-prompt") + (synopsis "Interactive CLI prompts toolit") + (description + "This package provides a library for building powerful interactive +prompts inspired by +@url{https://github.com/jonathanslenders/python-prompt-toolkit, +python-prompt-toolkit}, making it easier to build cross-platform command line +tools using Go.") (license license:expat))) (define-public go-github-com-caarlos0-env @@ -1508,6 +2330,54 @@ reflection.") variables into structs.") (license license:expat))) +(define-public go-github-com-cention-sany-utf7 + (package + (name "go-github-com-cention-sany-utf7") + (version "0.0.0-20170124080048-26cad61bd60a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cention-sany/utf7") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jy15ryfcln1iwchrksqyrnyfy41gisymm4f9sr1d73ja029bznm")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/cention-sany/utf7")) + (propagated-inputs (list go-golang-org-x-text)) + (home-page "https://github.com/cention-sany/utf7") + (synopsis "UTF-7 for Go") + (description + "The utf7 package provides support for the obsolete UTF-7 text +encoding in Go.") + (license license:bsd-3))) + +(define-public go-github-com-cespare-mph + (package + (name "go-github-com-cespare-mph") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cespare/mph") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mvd6bkvf3i3555kqkkr3k9jd4c25scjq4xad35sxpny8f72nbg1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cespare/mph")) + (home-page "https://github.com/cespare/mph") + (synopsis "Minimal perfect hashing in Go") + (description + "@code{mph} is a Go package that implements a minimal perfect hash table +over strings.") + (license license:expat))) + (define-public go-github-com-charlievieth-fastwalk (package (name "go-github-com-charlievieth-fastwalk") @@ -1570,6 +2440,126 @@ tools.") @@url{https://github.com/charmbracelet/bubbletea, Bubble Tea} applications.") (license license:expat))) +(define-public go-github-com-charmbracelet-bubbletea + (package + (name "go-github-com-charmbracelet-bubbletea") + (version "1.2.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/bubbletea") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g5pj40lsdkh2gwixlpg53ji7fajncj512xj0v1x3mk5grgbc2zr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/bubbletea" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + '("examples" "tutorials"))))) + (add-before 'check 'fix-tests + (lambda _ + ;; XXX: The package requires + ;; "go-github-com-charmbracelet-x-ansi" version 0.4.5; with the + ;; newer version of "ansi", some "bubbletea" screen tests fail + ;; as "ansi" 0.5.2 handles escape sequences a little bit + ;; differently. + (substitute* "src/github.com/charmbracelet/bubbletea/screen_test.go" + (("x1b\\[0K") + "x1b[K") + (("x1b\\[2;0H") + "x1b[2;H"))))))) + (propagated-inputs + (list go-github-com-charmbracelet-lipgloss + go-github-com-charmbracelet-x-ansi + go-github-com-charmbracelet-x-term + go-github-com-erikgeiser-coninput + go-github-com-muesli-ansi + go-github-com-muesli-cancelreader + go-golang-org-x-sync + go-golang-org-x-sys)) + (home-page "https://github.com/charmbracelet/bubbletea") + (synopsis "Powerful little TUI framework") + (description + "Bubble Tea is a Go framework based on The Elm Architecture. It is +well-suited for simple and complex terminal applications, either inline, +full-window, or a mix of both.") + (license license:asl2.0))) + +(define-public go-github-com-charmbracelet-glamour + (package + (name "go-github-com-charmbracelet-glamour") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/glamour") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "112clivb9nsxlaqvypwcidmk4dkszg7vglb4apia43rdqqj82s6k")))) + (build-system go-build-system) + (arguments + (list + #:embed-files #~(list ".*\\.xml") + #:import-path "github.com/charmbracelet/glamour")) + (propagated-inputs + (list go-github-com-alecthomas-chroma-v2 + go-github-com-charmbracelet-lipgloss + go-github-com-charmbracelet-x-ansi + go-github-com-charmbracelet-x-exp-golden + go-github-com-microcosm-cc-bluemonday + go-github-com-muesli-reflow + go-github-com-muesli-termenv + go-github-com-yuin-goldmark + go-github-com-yuin-goldmark-emoji + go-golang-org-x-term)) + (home-page "https://github.com/charmbracelet/glamour/") + (synopsis "Write handsome command-line tools with glamour") + (description + "@code{glamour} lets you render markdown documents and templates on ANSI +compatible terminals. You can create your own stylesheet or use one of our +glamorous default themes.") + (license license:expat))) + +(define-public go-github-com-charmbracelet-harmonica + (package + (name "go-github-com-charmbracelet-harmonica") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/harmonica") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1aasg0c0xxhwav4ivm1mqmsqab6lk407xky8c19pb85r1hdbq0n7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/harmonica" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/examples"))))))) + (home-page "https://github.com/charmbracelet/harmonica") + (synopsis "Simple, physics-based animation library") + (description + "A simple, efficient spring animation library for smooth, natural motion.") + (license license:expat))) + (define-public go-github-com-charmbracelet-lipgloss (package (name "go-github-com-charmbracelet-lipgloss") @@ -1586,7 +2576,13 @@ tools.") (build-system go-build-system) (arguments (list - #:import-path "github.com/charmbracelet/lipgloss")) + #:import-path "github.com/charmbracelet/lipgloss" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/examples"))))))) (propagated-inputs (list go-github-com-aymanbagabas-go-udiff go-github-com-charmbracelet-x-ansi @@ -1599,10 +2595,40 @@ tools.") "Style definitions for nice terminal layouts. Built with TUIs in mind.") (license license:expat))) +(define-public go-github-com-charmbracelet-log + (package + (name "go-github-com-charmbracelet-log") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/log") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dljsz5h6pw9w396sy9na99c2pvi542b3r138lka7l0ifmzpxjw9")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/log")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-charmbracelet-lipgloss + go-github-com-go-logfmt-logfmt + go-github-com-muesli-termenv + go-golang-org-x-exp)) + (home-page "https://github.com/charmbracelet/log") + (synopsis "Colorful Go logging library") + (description + "This package provides a minimal and colorful Go logging library.") + (license license:expat))) + (define-public go-github-com-charmbracelet-x-ansi (package (name "go-github-com-charmbracelet-x-ansi") - (version "0.5.2") + (version "0.6.0") (source (origin (method git-fetch) @@ -1612,7 +2638,7 @@ tools.") #:subdir "ansi")))) (file-name (git-file-name name version)) (sha256 - (base32 "016s67690dr3w3an6m24q6f4vrmwpk0qd4akvvh1dzpfyf4khxd4")))) + (base32 "0y76a1zqj2ccyqibh4xk47hyw8grwrf5j3qm2j0pzd2yn592dny5")))) (build-system go-build-system) (arguments (list @@ -1629,6 +2655,82 @@ tools.") ECMA-48} specs.") (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-charmbracelet-x-input + (package + (name "go-github-com-charmbracelet-x-input") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charmbracelet/x") + (commit (go-version->git-ref version + #:subdir "input")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0v7yrpq6ffa2qdqlrdgl7wm5jvm9wlh2iwyhd4x6hqkq90gwllyr")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "ansi"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/charmbracelet/x/input" + #:unpack-path "github.com/charmbracelet/x")) + (propagated-inputs + (list go-github-com-charmbracelet-x-ansi + go-github-com-erikgeiser-coninput + go-github-com-muesli-cancelreader + go-github-com-xo-terminfo + go-golang-org-x-sys)) + (home-page "https://github.com/charmbracelet/x") + (synopsis "Terminal event input handler and driver") + (description + "This package provides a terminal event input handler and driver.") + (license license:expat))) + (define-public go-github-com-charmbracelet-x-term (package (name "go-github-com-charmbracelet-x-term") @@ -1662,46 +2764,30 @@ ECMA-48} specs.") @end itemize") (license license:expat))) -(define-public go-github-com-charmbracelet-x-exp-golden +(define-public go-github-com-charmbracelet-x-windows (package - (name "go-github-com-charmbracelet-x-exp-golden") - (version "0.0.0-20241121171228-5bc00623ea2f") + (name "go-github-com-charmbracelet-x-windows") + (version "0.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/charmbracelet/x") (commit (go-version->git-ref version - #:subdir "exp/golden")))) + #:subdir "windows")))) (file-name (git-file-name name version)) (sha256 - (base32 "016s67690dr3w3an6m24q6f4vrmwpk0qd4akvvh1dzpfyf4khxd4")))) + (base32 "011kkz7l7fqr3a4sslfipiyl6bq51md1rc7ayj73xm5ayscpm0r2")))) (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"))))))) + (list #:import-path "github.com/charmbracelet/x/windows" + #:unpack-path "github.com/charmbracelet/x")) (propagated-inputs - (list go-github-com-aymanbagabas-go-udiff)) + (list go-golang-org-x-sys)) (home-page "https://github.com/charmbracelet/x") - (synopsis "Verify @code{.golden} file equality") + (synopsis "Windows API used at Charmbracelet") (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.") + "This package provides the Windows API used at Charmbracelet.") (license license:expat))) (define-public go-github-com-cheggaaa-pb @@ -1725,7 +2811,8 @@ package provides an API for comparing Golden files.") (list go-github-com-fatih-color go-github-com-mattn-go-colorable go-github-com-mattn-go-isatty - go-github-com-mattn-go-runewidth)) + go-github-com-mattn-go-runewidth + go-github-com-vividcortex-ewma)) (home-page "https://github.com/cheggaaa/pb/") (synopsis "Console progress bar for Go") (description @@ -1750,9 +2837,10 @@ package provides an API for comparing Golden files.") (list #:import-path "github.com/cheggaaa/pb/v3" #:unpack-path "github.com/cheggaaa/pb")) - (propagated-inputs - (modify-inputs (package-propagated-inputs go-github-com-cheggaaa-pb) - (append go-github-com-vividcortex-ewma))))) + (arguments + (list + #:import-path "github.com/cheggaaa/pb/v3" + #:unpack-path "github.com/cheggaaa/pb")))) (define-public go-github-com-chzyer-logex (package @@ -1809,6 +2897,213 @@ levels that works by wrapping the standard @code{log} library.") "Readline is a pure Go implementation of a GNU-Readline like library.") (license license:expat))) +(define-public go-github-com-cilium-ebpf + (package + (name "go-github-com-cilium-ebpf") + (version "0.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cilium/ebpf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p3wssg00d0h5dn1fadl0g8iwcak0d6myyjlqwgf6rnfnlajcrgi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cilium/ebpf" + #:test-flags + ;; Tests fail with errors: + ;; - neither debugfs nor tracefs are mounted + ;; - no such file or directory + #~(list "-skip" (string-join + (list + "TestNewEvent" + "TestFSType" + "TestEventID" + "TestSanitizePath" + "TestGetTracefsPath") + "|")) + ;; XXX: 337 tests failed and 664 passed when "..." is preserved, run + ;; some of available tests, figure out how to fix the rests. + #:test-subdirs + #~(list + ;; Tests fail with error: detect support for + ;; FnSkbSetTstamp for program type SchedCLS: + ;; detect support for SchedCLS: load program: + ;; operation not permitted + ;; "features" + + ;; Failed to adjust rlimit, tests may fail + ;; "link" + ;; "perf" + ;; "ringbuf" + "asm" + "internal/...") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "example_sock_elf_test.go" + "example_sock_extract_dist_test.go" + "examples")))))))) + (propagated-inputs + (list go-github-com-go-quicktest-qt + go-github-com-google-go-cmp + go-github-com-jsimonetti-rtnetlink-v2 + go-golang-org-x-exp + go-golang-org-x-sys)) + (home-page "https://ebpf-go.dev/") + (synopsis "Read, modify and load extended Berkeley Packet Filter programs in Golang") + (description + "This package provides utilities for loading, compiling, and debugging +@url{https://www.ebpf.io/,eBPF} programs. It has minimal external +dependencies and is intended to be used in long running processes.") + (license license:expat))) + +(define-public go-github-com-clbanning-mxj-v2 + (package + (name "go-github-com-clbanning-mxj-v2") + (version "2.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clbanning/mxj") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kdh9cdq0x9jk5vzn2k489w7k88rdwf1b87yzhr7jbkchh2nh608")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; XXX: find out why + #:import-path "github.com/clbanning/mxj/v2" + #:test-subdirs #~(list "."))) + (native-inputs + (list go-github-com-google-go-cmp)) + (home-page "https://github.com/clbanning/mxj") + (synopsis "Decode / encode XML in Golang") + (description + "This package implements a functionality to marshal/unmarshal XML to/from +@code{map[string]interface{}} values (and JSON); extract/modify values from +maps by key or key-path, including wildcards.") + (license license:expat))) + +(define-public go-github-com-cli-safeexec + (package + (name "go-github-com-cli-safeexec") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/safeexec") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j6hspjx9kyxn98nbisawx6wvbi1d6rpzr6p2rzhllm673wibwr3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cli/safeexec")) + (home-page "https://github.com/cli/safeexec") + (synopsis "Safe implementation of Go's exec.Command") + (description + "This package provides a Go module that provides a stabler alternative to +@code{exec.LookPath()}.") + (license license:bsd-2))) + +(define-public go-github-com-client9-misspell + (package + (name "go-github-com-client9-misspell") + (version "0.3.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/client9/misspell") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/client9/misspell" + #:test-subdirs #~(list "ignore" "."))) + (propagated-inputs (list go-github-com-gobwas-glob)) + (home-page "https://github.com/client9/misspell") + (synopsis "Correct commonly misspelled English words in source files") + (description + "misspell assists with correcting commonly misspelled English words in +source files. A neutral variety of English is used by default, but a US or UK +locale can be selected.") + (license license:expat))) + +(define-public go-github-com-cloudwego-iasm + (package + (name "go-github-com-cloudwego-iasm") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cloudwego/iasm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j9jvx6ijlr2xz3am4qrz5py68xpl8np7m7yfq9m2ilkli3ksq9x")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cloudwego/iasm")) + (native-inputs + (list go-github-com-davecgh-go-spew + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-klauspost-cpuid-v2 + go-github-com-knz-go-libedit + go-nullprogram-com-x-optparse)) + (home-page "https://github.com/cloudwego/iasm") + (synopsis "Interactive Assembler for Golang") + (description + "This package provides x86_64 variant of ported from a Python module +@url{https://github.com/Maratyszcza/PeachPy,PeachPy}, with some adaption to +the Go language features.") + (license license:asl2.0))) + +(define-public go-github-com-containerd-btrfs-v2 + (package + (name "go-github-com-containerd-btrfs-v2") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/btrfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05xwni5gvg5nka1n6lbx7mah0iykz2jw7ca010r33djcn4i8r5bs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/containerd/btrfs/v2")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/containerd/btrfs") + (synopsis "Btrfs bindings for Go") + (description + "Package btrfs provides bindings for working with btrfs partitions from +Go. The Linux kernel headers are only required on compilation time, not on +run time.") + (license license:asl2.0))) + (define-public go-github-com-containerd-cgroups (package (name "go-github-com-containerd-cgroups") @@ -1834,20 +3129,36 @@ levels that works by wrapping the standard @code{log} library.") (arguments (list #:import-path "github.com/containerd/cgroups" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "_test\\.go$") - ;; expected error "controller is not supported" but received - ;; "cgroups: cannot find cgroup mount destination" - (("TestSystemd240") "OffTestSystemd240")))))))) + #:test-flags + #~(list "-skip" (string-join + ;; cannot find cgroup mount destination" + (list "TestSystemd240" + ;; cannot statfs cgroup root + "TestCgroupType" + "TestCgroupv2CpuStats" + "TestCgroupv2MemoryStats" + "TestCgroupv2PSIStats" + "TestCgroupv2PidsStats" + "TestErrorsWhenUnitAlreadyExists" + "TestEventChanCleanupOnCgroupRemoval" + "TestIgnoreUnitExistsWhenPidNegativeOne" + "TestKill" + "TestMoveTo" + "TestSystemdCgroupCpuController" + "TestSystemdCgroupMemoryController" + "TestSystemdCgroupPSIController" + "TestSystemdCgroupPidsController" + ;; Assertion failed + "TestDeviceFilter_Nil" + "TestDeviceFilter_Privileged" + "TestDeviceFilter_Weird") + "|")))) (native-inputs (list go-github-com-stretchr-testify go-go-uber-org-goleak)) (propagated-inputs - (list go-github-com-coreos-go-systemd-v22 + (list go-github-com-cilium-ebpf + go-github-com-coreos-go-systemd-v22 go-github-com-docker-go-units go-github-com-godbus-dbus-v5 go-github-com-gogo-protobuf @@ -1863,6 +3174,69 @@ cgroup uses the OCI runtime-spec found @url{https://github.com/opencontainers/runtime-spec,here}.") (license license:asl2.0))) +(define-public go-github-com-containerd-cgroups-v3 + (package + (inherit go-github-com-containerd-cgroups) + (name "go-github-com-containerd-cgroups-v3") + (version "3.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/cgroups") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09fkbhkx0hmcfcym3zl0dshbhj3p692xg7d6y8pj732g64zk6v4k")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodule(s) with their own go.mod files and packed as + ;; separated packages: + ;; + ;; - github.com/containerd/cgroups/cmd cgctl + (delete-file-recursively "cmd"))))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-containerd-cgroups) + ((#:import-path _) "github.com/containerd/cgroups/v3"))) + (propagated-inputs + (list go-github-com-cilium-ebpf + go-github-com-containerd-log + go-github-com-coreos-go-systemd-v22 + go-github-com-docker-go-units + go-github-com-godbus-dbus-v5 + go-github-com-moby-sys-userns + go-github-com-opencontainers-runtime-spec + go-golang-org-x-sys + go-google-golang-org-protobuf)))) + +(define-public go-github-com-containerd-console + (package + (name "go-github-com-containerd-console") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/console") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p10k6lwfxgij5a9i47dark8apffc6wn254dwj43ks8jr134854v")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/containerd/console")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/containerd/console") + (synopsis "Console package for Go") + (description + "This is Golang package for dealing with consoles. It has few +dependencies and a simple API.") + (license license:asl2.0))) + (define-public go-github-com-containerd-fifo (package (name "go-github-com-containerd-fifo") @@ -1890,6 +3264,87 @@ cgroup uses the OCI runtime-spec found way.") (license license:asl2.0))) +(define-public go-github-com-containerd-log + (package + (name "go-github-com-containerd-log") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/log") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nzviiqpn0djdwql2q3m2xs1ndxyd0v2klvq6xi2r0dn4wr3mqdy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/containerd/log")) + (propagated-inputs (list go-github-com-sirupsen-logrus)) + (home-page "https://github.com/containerd/log") + (synopsis "Common log interface for containerd repositories and clients") + (description + "Package log provides types and functions related to logging, passing +loggers through a context, and attaching context to the logger.") + (license license:asl2.0))) + +(define-public go-github-com-containerd-platforms + (package + (name "go-github-com-containerd-platforms") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/platforms") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03clc3b2fvlym5d2rvgima0p0br1m34p8gs7rn6y5rp7v7z601sx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/containerd/platforms")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-containerd-log + go-github-com-opencontainers-image-spec + go-golang-org-x-sys)) + (home-page "https://github.com/containerd/platforms") + (synopsis "Handling container platform type") + (description + "Package platforms provides a toolkit for normalizing, matching and +specifying container platforms.") + (license license:asl2.0))) + +(define-public go-github-com-containerd-plugin + (package + (name "go-github-com-containerd-plugin") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/plugin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gzm8h4yaparji0llqqfxl68gv56hwlybz4rgwnr54fhr029mpzp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/containerd/plugin")) + (propagated-inputs + (list go-github-com-opencontainers-image-spec)) + (home-page "https://github.com/containerd/plugin") + (synopsis "Registering and managing typed plugins with dependencies") + (description + "This package provides a common plugin interface across containerd +repositories.") + (license license:asl2.0))) + (define-public go-github-com-coocood-freecache (package (name "go-github-com-coocood-freecache") @@ -1917,6 +3372,32 @@ objects can be cached in memory without increased latency or degraded throughput.") (license license:expat))) +(define-public go-github-com-coreos-go-semver + (package + (name "go-github-com-coreos-go-semver") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/coreos/go-semver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vs04yykv1bwgvbyvi1m7ps83w06wzplw4giw8jac2iidx0x74v5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/coreos/go-semver")) + (propagated-inputs + (list go-gopkg-in-yaml-v3)) + (home-page "https://github.com/coreos/go-semver/") + (synopsis "Semantic versioning library") + (description + "@code{go-semver} is a semantic versioning library for Go. It lets you +parse and compare two semantic version strings.") + (license license:asl2.0))) + (define-public go-github-com-coreos-go-systemd-v22 (package (name "go-github-com-coreos-go-systemd-v22") @@ -1997,10 +3478,39 @@ submodules: @end itemize") (license license:asl2.0))) +(define-public go-github-com-couchbase-gomemcached + (package + (name "go-github-com-couchbase-gomemcached") + (version "0.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/couchbase/gomemcached") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "132zjbr7d586gb1wqlnhg3vgyshq629z1wsskrpbmyypjfkq620c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/couchbase/gomemcached" + #:test-flags #~(list "-skip" "TestEncodingResponse") + #:test-subdirs #~(list "."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pkg-errors)) + (home-page "https://github.com/couchbase/gomemcached") + (synopsis "Memcached binary protocol toolkit for go") + (description + "This package provides memcache client and server functionality.") + (license license:expat))) + (define-public go-github-com-creack-pty (package (name "go-github-com-creack-pty") - (version "1.1.23") + (version "1.1.24") (source (origin (method git-fetch) @@ -2009,7 +3519,7 @@ submodules: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1chx7ml9wlpk8pzgnnxb97gblmxz1j1v37m5i1asb94l5c24r1fg")))) + (base32 "0yy4zhfb7vrrbwd13rcw0zzcq0ami3zv3hp0x7g7il6mrbadcf25")))) (build-system go-build-system) (arguments (list @@ -2045,6 +3555,34 @@ submodules: "The pty package provides functions for working with Unix pseudoterminals.") (license license:expat))) +(define-public go-github-com-creasty-defaults + (package + (name "go-github-com-creasty-defaults") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creasty/defaults") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1avbm47ghqc6hiafv0c61mzrw9rajgszjyqh4yww916fqzaw8li3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/creasty/defaults")) + (home-page "https://github.com/creasty/defaults") + (synopsis "Initialize structs with default values") + (description + "This package implements functionlity to initialize structs with default +values. It supports almost all kind of types: @code{int/8/16/32/64}, +@code{uint/8/16/32/64}, @code{float32/64}, @code{uintptr}, @code{bool}, +@code{string}, @code{map}, @code{slice}, @code{struct}, +@code{f,map[K1]map[K2]Struct}, @code{}[]map[K1]Struct[]}, +@code{time.Duration}, @code{*SampleStruct}, and @code{*int}") + (license license:expat))) + (define-public go-github-com-cskr-pubsub (package (name "go-github-com-cskr-pubsub") @@ -2100,7 +3638,7 @@ metrics to Graphite.") (define-public go-github-com-cyphar-filepath-securejoin (package (name "go-github-com-cyphar-filepath-securejoin") - (version "0.3.2") + (version "0.3.4") (source (origin (method git-fetch) @@ -2109,7 +3647,7 @@ metrics to Graphite.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10clm1hfzndwhi7lwz5ph72apxwbxr3vg4nln5xsrrx26j6qv6v2")))) + (base32 "1iflclxcm5a4g2qp980q5qr1g4dwdxn02nnvvx3pi4sa1gk5bmr3")))) (build-system go-build-system) (arguments (list @@ -2147,6 +3685,8 @@ more tangible.") (arguments (list #:import-path "github.com/d4l3k/messagediff")) + (propagated-inputs + (list go-golang-org-x-net)) (home-page "https://github.com/d4l3k/messagediff") (synopsis "Diff arbitrary Go structs") (description @@ -2246,6 +3786,34 @@ gist (https://gist.github.com/kballard/272720).") (description "This package provides functionality to generate Go code.") (license license:expat))) +(define-public go-github-com-daviddengcn-go-colortext + (package + (name "go-github-com-daviddengcn-go-colortext") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/daviddengcn/go-colortext") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j5ldwg3a768d3nniiglghr9axj4p87k7f7asqxa1a688xvcms48")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/daviddengcn/go-colortext")) + (native-inputs + (list go-github-com-golangplus-testing)) + (home-page "https://github.com/daviddengcn/go-colortext") + (synopsis "Change the color of console text and background") + (description + "This is a package to change the color of the text and background in the +console, working both under Windows and other systems. Under Windows, the +console APIs are used. Otherwise, ANSI texts are output.") + ;; dual-licensed + (license (list license:bsd-3 license:expat)))) + (define-public go-github-com-dbaggerman-cuba (package (name "go-github-com-dbaggerman-cuba") @@ -2274,6 +3842,30 @@ gist (https://gist.github.com/kballard/272720).") more complicated parallel cases.") (license license:expat))) +(define-public go-github-com-dchest-stemmer + (package + (name "go-github-com-dchest-stemmer") + (version "0.0.0-20161207102402-66719a20c4b5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dchest/stemmer") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1r2rz8ynmcrkwjk8sq10n6jgxmkfqf2wqy8nvgriyww41pfq5fgn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dchest/stemmer")) + (home-page "https://github.com/dchest/stemmer") + (synopsis "Stemmer package for Golang") + (description + "Stemmer package provides an interface for stemmers and includes English, +German and Dutch stemmers as sub-packages.") + (license license:bsd-2))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") @@ -2319,6 +3911,93 @@ more complicated parallel cases.") (propagated-inputs (list go-github-com-elliotchance-orderedmap-v2)))) +(define-public go-github-com-delthas-go-localeinfo + (package + (name "go-github-com-delthas-go-localeinfo") + (version "0.0.0-20240813094314-e5413e186769") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/delthas/go-localeinfo") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nw21gv3j7cc9x4gq4avlg4s7xzgc7gxrkmq4v451zrvx0mnv0bn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/delthas/go-localeinfo")) + (home-page "https://github.com/delthas/go-localeinfo") + (synopsis "Library for extracting locale information") + (description + "@code{go-localeinfo} extracts monetary/numeric/time +formatting information, rather than the current locale name.") + (license license:expat))) + +(define-public go-github-com-dennwc-btrfs + (package + (name "go-github-com-dennwc-btrfs") + (version "0.0.0-20241002142654-12ae127e0bf6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dennwc/btrfs") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0afc1clhzzhvshxp6xqs4d1hq681pzm85fqwjdgs9yh0j5bxjnhg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dennwc/btrfs" + #:test-flags + ;; Tests require "mount" and "mkfs.btrfs" in the PATH. + #~(list "-skip" + (string-join + (list "TestCloneFile" + "TestCompression" + "TestIsSubvolume" + "TestOpen" + "TestResize" + "TestSubvolumes") + "|")))) + (native-inputs + (list go-github-com-spf13-cobra)) ; for CLI + (propagated-inputs (list go-github-com-dennwc-ioctl)) + (home-page "https://github.com/dennwc/btrfs") + (synopsis "Btrfs library in a pure Golang") + ;; XXX: Projects lacks README or any other documentation describing the + ;; functionality. + (description + "This package implements Btrfs functionality in a pure Go.") + (license license:asl2.0))) + +(define-public go-github-com-dennwc-ioctl + (package + (name "go-github-com-dennwc-ioctl") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dennwc/ioctl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01b5d6fywrzs0q4q1j2c3qb15hwslb405w7bbc54w4qav0f61l55")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dennwc/ioctl")) + (home-page "https://github.com/dennwc/ioctl") + (synopsis "Golang implementation of ioctl") + (description + "This package provides @code{ioctl} wrapper to std @code{syscall} and +@code{os}.") + (license license:expat))) + (define-public go-github-com-dennwc-varint (package (name "go-github-com-dennwc-varint") @@ -2336,14 +4015,9 @@ more complicated parallel cases.") (arguments (list #:import-path "github.com/dennwc/varint" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "\\_test.go$") - ;; XXX: varint_test.go:94: unexpected error: -11. - (("TestUvarint") "OffTestUvarint")))))))) + ;; XXX: varint_test.go:94: unexpected error: -11. + #:test-flags + #~(list "-skip" "TestUvarint/overflow|TestUvarint/overflow_short"))) (home-page "https://github.com/dennwc/varint") (synopsis "Fast varint library for Golang") (description @@ -2351,6 +4025,30 @@ more complicated parallel cases.") encoding/decoding. It has no dependencies.") (license license:expat))) +(define-public go-github-com-detailyang-go-fallocate + (package + (name "go-github-com-detailyang-go-fallocate") + (version "0.0.0-20180908115635-432fa640bd2e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/detailyang/go-fallocate") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yvgkj5i43ihagdwg70vjgrhwf2mjsbyv2xwd6znsdwav6qpcdnw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/detailyang/go-fallocate")) + (home-page "https://github.com/detailyang/go-fallocate") + (synopsis "Syscal @code{fallocate} implementation in Golang") + (description + "This package implements syscal @code{fallocate} by wrapping standard Go +@code{os.SEEK_SET}.") + (license license:expat))) + (define-public go-github-com-dgraph-io-badger (package (name "go-github-com-dgraph-io-badger") @@ -2368,6 +4066,10 @@ encoding/decoding. It has no dependencies.") (arguments (list #:import-path "github.com/dgraph-io/badger" + #:test-flags + #~(list "-skip" + ;; Test fails with error: assertion is not equal. + "TestBuildKeyValueSizeHistogram/All_same_size_key-values") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-failing-tests @@ -2379,15 +4081,7 @@ encoding/decoding. It has no dependencies.") ;; fmt.Sprint(x)?). ;; See: <https://github.com/dgraph-io/badger/issues/2103>. (("\"testing\"") (string-append "\"testing\"\n\"fmt\"")) - (("string") "fmt.Sprint"))))) - ;; 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" - "-skip" "TestBuildKeyValueSizeHistogram" - "./..." )))))))) + (("string") "fmt.Sprint")))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -2463,6 +4157,119 @@ supports concurrent serializable transactions.") on throughput and hit ratio performance.") (license (list license:asl2.0 license:expat)))) +(define-public go-github-com-dgryski-go-linebreak + (package + (name "go-github-com-dgryski-go-linebreak") + (version "0.0.0-20180812204043-d8f37254e7d3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgryski/go-linebreak") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jv8ldb9vh5mgh66g61fh418x16s8jszrykhkbc901y1llf2mi22")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dgryski/go-linebreak")) + (home-page "https://github.com/dgryski/go-linebreak") + (synopsis "Wraps text at a given width") + (description + "Package linebreak wraps text at a given width, it's a translation of +@url{http://xxyxyz.org/line-breaking/, linear}, an implementation of +@url{https://en.wikipedia.org/wiki/SMAWK_algorithm, SMAWK algorithm}.") + (license license:expat))) + +;; The project provides no go.mod files and contains a veracity of commands +;; and libraries which might need missing dependencies, update them on demand. +(define-public go-github-com-dgryski-trifles + (package + (name "go-github-com-dgryski-trifles") + (version "0.0.0-20240922021506-5ecb8eeff266") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgryski/trifles") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "071pnsyax99ikc58b110hdvqk1v46mqk6zdd0sshrf9lmwixwpnj")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f + #:import-path "github.com/dgryski/trifles")) + (home-page "https://github.com/dgryski/trifles") + (synopsis "Collection of Golang utitity libraries and commands") + (description + "This package provides a collection veriaty of utility libraries: + +@itemize +@item intset - compress a stream of integers +@item lz - lempel-ziv compression +@item threadtree - a threaded binary-tree +@item numerical - numerical integration and root finding +@item maze - maze generation stuff +@item hist - simple command-line histogramming tool +@item simhash - trivial simhash implementation +@item wscat - trivial websocket netcat +@item servedir - trivial http fileserver +@item rndtxt - generate random text strings +@item mpush - push to multiple notification services (pushbullet, nma, pushover) +@item superbat - batmanjs and go-restful playground +@item msgrpc - msgpack rpc python/go interop samples +@item quantile - testing different streaming quantile estimators +@item wtflog - logging package with some renamed log levels +@item qrshow - display QR codes in a terminal +@item nlz - asm code to find number of leading zeros +@item httpecho - server to dump information about an http request +@item lzpack - trivial packed format for lz4 compression +@item grinderplot - generate a flot chart from grinder logs +@item worker - framework for spawning concurrent workers +@item gddo - search godoc.org from the command line +@item uuid - generate random UUIDs +@item entropy - reducer to compute entropy per epoch for a set of values in a category +@item inthash - integer hashing functions +@item udprelay - simple udp-to-tcp multiplexing relay +@item shufsecs - shuffle sorted epoch-data within epochs +@item strtable - dumb string->uint32 hash table for profiling vs native maps +@item cachetest - playing with different caching algorithms (clock, lru, lfu, random) +@item glj - passing data from go to lua with msgpack +@item toms - text filter for time.Duration to milliseconds +@item bluniq - bloom-filter based unique filter +@item skvdist - check distribution of shardedkv choosers +@item gcwatch - print out garbage collection stats from /debug/vars +@item toepoch - convert time fields to epochs +@item repl - framework for making dumb repls for testing +@item skvchk - tool for checking shardedkv distributions +@item interp - interpolation search +@item oma - simulation of the Dutch children's board game \"Met de bus naar Oma\" +@item rndsample - uniform random sample from stdin +@item pphrase - simple passphrase generator +@item fastrand - fast xorshift rng with bias-free [0..n) +@item range2cird - turn IP ranges into CIDR +@item gfmt - trivial filter wrapping go-linebreak +@item mtest - port of libtommath test program +@item leven - fastest levenshtein distance algorithm I could find +@item matcher - test different methods of testing string set membership +@item cstbucket - crunch carbonserver logs for time-ranges of queries +@item stablepart - stable partition a sort.Interface on a boolean predicate +@item jumpreplica - tool for playing with replica choices for jump-hash +@item sshdregex - demo using ragel for optimized regexp matching +@item hllbench - benchmark different hyperloglog implementations +@item shlines, sipsum - tools for siphashing things +@item urlq - extract query parameters from a list of URLs +@item median - compute the median of 5 numbers with a sorting network +@item hashbench - benchmark different hashing functions +@item fastpprof - how to use pprof with fasthttp +@item ewmaest - progress logging with ewma-based ETA estimation +@end itemize") + (license license:expat))) + (define-public go-github-com-dimchansky-utfbom (package (name "go-github-com-dimchansky-utfbom") @@ -2486,6 +4293,32 @@ on throughput and hit ratio performance.") Mark} detection.") (license license:asl2.0))) +(define-public go-github-com-disintegration-imaging + (package + (name "go-github-com-disintegration-imaging") + (version "1.6.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/disintegration/imaging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sl201nmk601h0aii4234sycn4v2b0rjxf8yhrnik4yjzd68q9x5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/disintegration/imaging")) + (inputs + (list go-golang-org-x-image)) + (home-page "https://github.com/disintegration/imaging") + (synopsis "Simple image processing for Go") + (description + "This package provides basic image processing functions +(resize, rotate, crop, brightness/contrast adjustments, etc.).") + (license license:expat))) + (define-public go-github-com-djherbis-atime (package (name "go-github-com-djherbis-atime") @@ -2557,6 +4390,101 @@ mtime,ctime and btime for files.") "Regexp2 is a feature-rich RegExp engine for Go.") (license license:expat))) +(define-public go-github-com-dnephin-pflag + (package + (name "go-github-com-dnephin-pflag") + (version "1.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dnephin/pflag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d3aakwpwdbq3lqpk5kdqlr0h7maqxnpsbrd2022xwd93fxyxcq0")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; FIXME + #:import-path "github.com/dnephin/pflag")) + (home-page "https://github.com/dnephin/pflag") + (synopsis "Drop-in replacement for Go's flag package") + (description + "Package pflag is a drop-in replacement for Go's flag package, +implementing POSIX/GNU-style --flags. It is compatible with the +@url{http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html, +GNU extensions to the POSIX recommendations for command-line options}. This +is an activly maintained fork of @url{https://github.com/ogier/pflag}.") + (license license:bsd-3))) + +(define-public go-github-com-docker-distribution + (package + (name "go-github-com-docker-distribution") + (version "2.8.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/distribution") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dbaxmkhg53anhkzngyzlxm2bd4dwv0sv75zip1rkm0874wjbxzb")) + (snippet + ;; TODO: Unbundle more. + #~(begin (use-modules (guix build utils)) + (for-each delete-file-recursively + (list "vendor/golang.org")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/docker/distribution" + #:test-flags #~(list "-test.short") + #:test-subdirs + #~(list "configuration" + "context" + "health" + "manifest/..." + "notifications/..." + "uuid"))) + (native-inputs + (list go-github-com-sirupsen-logrus + go-golang-org-x-crypto + go-golang-org-x-sys)) + (home-page "https://github.com/docker/distribution") + (synopsis + "This package is a Docker toolset to pack, ship, store, and deliver content") + (description + "Docker Distribution is a Docker toolset to pack, ship, +store, and deliver content. It contains Docker Registry 2.0 and libraries to +interact with distribution components.") + (license license:asl2.0))) + +(define-public go-github-com-docker-go-units + (package + (name "go-github-com-docker-go-units") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/go-units") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q92l7pyfg9rn4ljr1warnv1ri6z7svah7m3rqmvmyaw6bzdbbw8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/docker/go-units")) + (home-page "https://github.com/docker/go-units") + (synopsis "Parse and print size and time units in human-readable format") + (description + "@code{go-units} is a library to transform human friendly measurements +into machine friendly values.") + (license license:asl2.0))) + (define-public go-github-com-docopt-docopt-go (let ((commit "ee0de3bc6815ee19d4a46c7eb90f829db0e014b1") (revision "0")) @@ -2601,6 +4529,8 @@ implementation of http://docopt.org/.") (arguments (list #:import-path "github.com/dsnet/golib")) + (propagated-inputs + (list go-github-com-google-go-cmp)) (home-page "https://github.com/dsnet/golib") (synopsis "Collection of helper libraries for Golang") (description @@ -2624,41 +4554,6 @@ Implements string conversion functionality for unit prefixes. @end table") (license license:bsd-3))) -(define-public go-github-com-dustin-gojson - (package - (name "go-github-com-dustin-gojson") - (version "v0.0.0-20160307161227-2e71ec9dd5ad") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dustin/gojson") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1vrmmyn7l568l1k71mxd54iqf3d54pn86cf278i374j86jn0bdxf")) - (modules '((guix build utils))) - (snippet '(begin - ;; Fix the library to work with go-1.21. - (substitute* "decode.go" - (("trying to unmarshal unquoted value into") - "trying to unmarshal unquoted value %v into")) - (substitute* "decode_test.go" - (("t.Fatalf\\(\"Unmarshal: %v\"\\)") - "t.Fatalf(\"Unmarshal: %v\", data)")) ;)))) - (substitute* "scanner.go" - (("s := strconv.Quote\\(string\\(c\\)\\)") - "s := strconv.QuoteRune(rune(c))")))))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/dustin/gojson")) - (home-page "https://github.com/dustin/gojson") - (synopsis "Extended Golang's @code{encoding/json} module with the public scanner API") - (description - "This package provides a fork of Golang's @code{encoding/json} with the -scanner API made public.") - (license license:bsd-3))) - (define-public go-github-com-dustin-go-humanize (package (name "go-github-com-dustin-go-humanize") @@ -2928,6 +4823,62 @@ specified in @url{https://datatracker.ietf.org/doc/html/rfc6350, RFC 6350}.") @url{https://tools.ietf.org/html/rfc6352, RFC 6352} specifications.") (license license:expat))) +(define-public go-github-com-emirpasic-gods + (package + (name "go-github-com-emirpasic-gods") + (version "1.18.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emirpasic/gods") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vnnmv813m8yhykwlxpizpvpimsirbaiwa3ckxfyx3ybv1swlq44")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/emirpasic/gods")) + (home-page "https://github.com/emirpasic/gods/") + (synopsis "Implementation of various data structures and algorithms in Go") + (description + "This package provides implementation of various data structures and +algorithms in Go.") + (license license:bsd-2))) + +(define-public go-github-com-erikgeiser-coninput + (package + (name "go-github-com-erikgeiser-coninput") + (version "0.0.0-20211004153227-1c3628e74d0f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/erikgeiser/coninput") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x8yw15ngyg4vlcdv5wsgpr6w5kavjv7bmk5mpvvx848bwvslr1r")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/erikgeiser/coninput" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/example"))))))) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/erikgeiser/coninput") + (synopsis "Input handling with Windows Console API") + (description + "Go library for input handling using Windows Console API.") + (license license:expat))) + (define-public go-github-com-errata-ai-ini (package (name "go-github-com-errata-ai-ini") @@ -2989,6 +4940,36 @@ and @code{io.ReadCloser}) with overwrites " This package is a fork of dlclark/regexp2 providing a more similar API to regexp.")))) +(define-public go-github-com-ettle-strcase + (package + (name "go-github-com-ettle-strcase") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ettle/strcase") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gg3zxbbp3vfskzg2dl1s1agjn34dw14282fj28g9nrwqbbq854x")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ettle/strcase" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-benchmark + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "benchmark"))))))) + (home-page "https://github.com/ettle/strcase") + (synopsis "String naming convention style library") + (description + "Package strcase is a package for converting strings into various word +cases (e.g. snake_case, camelCase, kebab-case, etc).") + (license license:expat))) + (define-public go-github-com-expr-lang-expr (package (name "go-github-com-expr-lang-expr") @@ -3001,7 +4982,16 @@ more similar API to regexp.")))) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "08p7gcxm7psgn1rzhhy2s2va59ssy77x8wd706gdp2pif7wln883")))) + (base32 "08p7gcxm7psgn1rzhhy2s2va59ssy77x8wd706gdp2pif7wln883")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/expr-lang/expr/repl + ;; - github.com/expr-lang/expr/debug + (for-each delete-file-recursively + (list "repl" "debug")))))) (build-system go-build-system) (arguments (list @@ -3074,6 +5064,30 @@ in a consistent state and never represent an in-progress write.") Alphanum Algorithm} developed by Dave Koelle in Go.") (license license:bsd-3))) +(define-public go-github-com-fatih-camelcase + (package + (name "go-github-com-fatih-camelcase") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fatih/camelcase") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z7rw6f5j97dkzqya257dqlxf3cm8zl508081gmnr4bsjhkwpz2l")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/fatih/camelcase")) + (home-page "https://github.com/fatih/camelcase") + (synopsis "Split a camelcase word into a slice of words in Go") + (description + "Package camelcase is a micro package to split the words of a camelcase type +string into a slice of words.") + (license license:expat))) + (define-public go-github-com-fatih-color (package (name "go-github-com-fatih-color") @@ -3101,6 +5115,53 @@ Alphanum Algorithm} developed by Dave Koelle in Go.") defined output to the standard output.") (license license:expat))) +(define-public go-github-com-fatih-structs + (package + (name "go-github-com-fatih-structs") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fatih/structs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wrhb8wp8zpzggl61lapb627lw8yv281abvr6vqakmf569nswa9q")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/fatih/structs")) + (home-page "https://github.com/fatih/structs") + (synopsis "Utilities for Go structs") + (description "This package provides various utilitiy functions to work +with Go structs.") + (license license:expat))) + +(define-public go-github-com-fatih-structtag + (package + (name "go-github-com-fatih-structtag") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fatih/structtag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09a9pycvkf384v5f47ff4q33bjbzpx6kbkn23za1gcwc96466sk3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/fatih/structtag")) + (home-page "https://github.com/fatih/structtag") + (synopsis "Parse and modify Go struct field tags") + (description + "This package provides an easy way of parsing and manipulating struct tag fields. +Please vendor the library as it might change in future versions.") + (license license:bsd-3))) + ;; XXX: This repository has been archived by the owner on Nov 9, 2017. It is ;; now read-only. (define-public go-github-com-flynn-archive-go-shlex @@ -3132,7 +5193,7 @@ quoting, commenting, and escaping.") (define-public go-github-com-fsnotify-fsnotify (package (name "go-github-com-fsnotify-fsnotify") - (version "1.7.0") + (version "1.8.0") (source (origin (method git-fetch) @@ -3141,11 +5202,12 @@ quoting, commenting, and escaping.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1h7vs21lkj4bqbw5a6mqykaf56y181r0nja7c8pzajkvbsc39y8m")))) + (base32 "1wr3695yb7hl405h6pzkbdkkxpdbmc5kwjjwaf9almbvmpk6077r")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/fsnotify/fsnotify")) + #:import-path "github.com/fsnotify/fsnotify" + #:test-flags #~(list "-skip" "TestDiffMatch/3"))) (propagated-inputs (list go-golang-org-x-sys)) (home-page "https://github.com/fsnotify/fsnotify") @@ -3239,10 +5301,252 @@ Differentiation between text and binary files}. @end itemize") (license license:expat))) +(define-public go-github-com-gdamore-encoding + (package + (name "go-github-com-gdamore-encoding") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdamore/encoding") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0506b4pnn3yk80sjrsh38z29qj41spxjl80fjw7vg3mz5kfkdxhi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gdamore/encoding")) + (inputs + (list go-golang-org-x-text)) + (home-page "https://github.com/gdamore/encoding") + (synopsis "Provide encodings missing from Go") + (description + "This package provides useful encodings not included in the standard +@code{Text} package, including some for dealing with I/O streams from +non-UTF-friendly sources.") + (license license:expat))) + +(define-public go-github-com-gdamore-tcell + (package + (name "go-github-com-gdamore-tcell") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdamore/tcell") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "178h7kj4zb8lcw84nbqanapnxrgvhq4111xw4fj6m56y46anlzwg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gdamore/tcell")) + (inputs + (list go-github-com-gdamore-encoding + go-github-com-mattn-go-runewidth + go-github-com-lucasb-eyer-go-colorful + go-golang-org-x-sys + go-golang-org-x-text)) + (home-page "https://github.com/gdamore/tcell") + (synopsis "Provide a cell-based view for text terminals") + (description + "This package includes a full parser and expander for terminfo +capability strings to avoid hard-coding escape strings for formatting. It +also favors portability, and includes support for all POSIX systems.") + (license license:asl2.0))) + +(define-public go-github-com-gdamore-tcell-v2 + (package + (inherit go-github-com-gdamore-tcell) + (name "go-github-com-gdamore-tcell-v2") + (version "2.7.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdamore/tcell") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05b22sgyf8lnwjddxlfvlj7i8b67gnidhbnz86vvx8fddggpa5nd")))) + (arguments + (list + #:import-path "github.com/gdamore/tcell/v2")) + (propagated-inputs + (modify-inputs (package-inputs go-github-com-gdamore-tcell) + (prepend go-golang-org-x-term go-golang-org-x-sys))))) + +(define-public go-github-com-delthas-tcell-v2 + ;; TODO This variant allows upgrading senpai, and looks to be unnecessary in + ;; the next release of senpai + (hidden-package + (package + (inherit go-github-com-gdamore-tcell) + (name "go-github-com-delthas-tcell") + (version "2.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/delthas/tcell") + (commit "837a7d7"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05zr73q38dawl7hr6g7v4pkyv6mqr0zp2l9qsgn7xmf1p9q4bn7j")))) + (propagated-inputs + (modify-inputs (package-inputs go-github-com-gdamore-tcell) + (prepend go-golang-org-x-term go-golang-org-x-sys)))))) + +(define-public go-github-com-gedex-inflector + (package + (name "go-github-com-gedex-inflector") + (version "0.0.0-20170307190818-16278e9db813") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gedex/inflector") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gedex/inflector")) + (home-page "https://github.com/gedex/inflector") + (synopsis "Go library that pluralizes and singularizes English nouns") + (description + "Go library that pluralizes and singularizes English nouns.") + (license license:bsd-2))) + +(define-public go-github-com-git-lfs-go-netrc + (package + (name "go-github-com-git-lfs-go-netrc") + (version "0.0.0-20230601124202-e96144b9a966") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/git-lfs/go-netrc") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rb8xk0gp7yvw10zs122p48qhj3xc9csaykbflr7wdfx5xqpbr2f")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/git-lfs/go-netrc")) + (home-page "https://github.com/git-lfs/go-netrc") + (synopsis "Netrc file parser for Go") + (description + "This package is for reading and writing netrc files. This package can +parse netrc files, make changes to them, and then serialize them back to netrc +format, while preserving any whitespace that was present in the source file.") + (license license:expat))) + +(define-public go-github-com-gizak-termui-v3 + (package + (name "go-github-com-gizak-termui-v3") + (version "3.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gizak/termui") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1v3k8l5p95kb1v297ra5mw9sxdd59y82y6ibjzya5ma2pry6k5cn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gizak/termui/v3" + #:unpack-path "github.com/gizak/termui")) + (propagated-inputs + (list go-github-com-mattn-go-runewidth + go-github-com-mitchellh-go-wordwrap + go-github-com-nsf-termbox-go)) + (home-page "https://github.com/gizak/termui") + (synopsis "Terminal dashboard widget Go library") + (description + "The termui Go library draws customizable dashboard widgets in a text +terminal. It includes several common widgets: lists, trees, tables and tabs, +but also more complex items such as (stacked) bar and pie charts, scatter +plots, gauges, and even images and a canvas for drawing `high resolution' +braille dots. + +You can also easily create new custom widgets. Widgets can be coloured and +styled and positioned absolutely or relatively. They respond to keyboard, +mouse, and terminal resizing events.") + (license license:expat))) + +(define-public go-github-com-go-cmd-cmd + (package + (name "go-github-com-go-cmd-cmd") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-cmd/cmd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n465pnvphvs4jp3mn1krbxb0wcjclfcrif1c5zcir8idj18vsax")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-cmd/cmd")) + (native-inputs + (list go-github-com-go-test-deep)) + (home-page "https://github.com/go-cmd/cmd") + (synopsis "Non-blocking external commands in Go with streaming output") + (description + "Package cmd runs external commands with concurrent access to output and +status. It wraps the Go standard library @code{os/exec.Command} to correctly +handle reading output (STDOUT and STDERR) while a command is running and +killing a command. All operations are safe to call from multiple +goroutines.") + (license license:expat))) + +(define-public go-github-com-go-errors-errors + (package + (name "go-github-com-go-errors-errors") + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-errors/errors") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ydwx20al9x99xnki0srb9iy96y638inw05xx5jb16dn8rz09wib")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-errors/errors" + ;; Stack trace does not contain source line: 'a: b(5)'. + #:test-flags #~(list "-skip" "TestStackFormat"))) + (home-page "https://github.com/go-errors/errors") + (synopsis "Errors with stacktraces for Golang") + (description + "Package errors provides errors that have stack-traces. It provides the +type @code{*Error} which implements the standard golang error interface, so +you can use this library interchangeably with code that is expecting a normal +error return.") + (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") + (version "5.6.0") (source (origin (method git-fetch) @@ -3251,13 +5555,14 @@ Differentiation between text and binary files}. (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1r7hfwc6lqnb7jhbbmicdlb3yipjyazq3pndpffw026fcq7jhxg1")))) + (base32 "061yczvpxq5xcnjbi8ywx0qvrispi8pwk3nqky5cv1dsi6xzkchc")))) (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-github-com-stretchr-testify go-gopkg-in-check-v1)) (propagated-inputs (list go-github-com-cyphar-filepath-securejoin @@ -3287,8 +5592,9 @@ operations.") (build-system go-build-system) (arguments (list - ;; XXX: panic: runtime error: makeslice: cap out of range + ;; XXX: The onpanic: runtime error: makeslice: cap out of range #:tests? (target-64bit?) + #:test-subdirs #~(list ".") #:import-path "github.com/go-git/go-git-fixtures/v4")) (native-inputs (list go-github-com-stretchr-testify)) @@ -3301,6 +5607,48 @@ operations.") "This package provides fixtures used by @code{go-git}.") (license license:asl2.0))) +(define-public go-github-com-go-git-go-git-fixtures-v5 + (package + (inherit go-github-com-go-git-go-git-fixtures-v4) + (name "go-github-com-go-git-go-git-fixtures-v5") + (version "5.0.0") + (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 "0mdwqdmqbqmrh21n25nqrv48zkamgw89parcbyp7k2skqk1jkjpf")))) + (arguments + (list + #:import-path "github.com/go-git/go-git-fixtures/v5")))) + +(define-public go-github-com-go-ini-ini + (package + (name "go-github-com-go-ini-ini") + (version "1.67.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-ini/ini") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vpzkjmrwp7bqqsijp61293kk2vn6lcck56j8m5y6ks6cf21lpap")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/go-ini/ini")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://gopkg.in/ini.v1") + (synopsis "INI file read and write functionality in Go") + (description + "This package provides INI file read and write functionality in Go.") + (license license:asl2.0))) + (define-public go-github-com-go-kit-log (package (name "go-github-com-go-kit-log") @@ -3454,6 +5802,78 @@ implemented features include @end itemize") (license license:expat))) +(define-public go-github-com-go-playground-universal-translator + (package + (name "go-github-com-go-playground-universal-translator") + (version "0.18.1") + (home-page "https://github.com/go-playground/universal-translator") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lgz9wrkcfx6q3x6i9fprr8rfwnk0c6x61jgzacgikbmzsl7dw6v")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-playground/universal-translator")) + (propagated-inputs + (list go-github-com-go-playground-locales)) + (synopsis "Translator using Unicode CLDR data and pluralization rules") + (description + "This package offers an Internalization Translator for Go using +@uref{http://cldr.unicode.org/, Unicode CLDR Project} data and pluralization +rules. Its currently implemented features include + +@itemize +@item Rules generated from the CLDR data, v30.0.3 +@item Contains Cardinal, Ordinal and Range Plural Rules +@item Contains Month, Weekday and Timezone translations built in +@item Contains Date & Time formatting functions +@item Contains Number, Currency, Accounting and Percent formatting functions +@item Supports the \"Gregorian\" calendar only +@item Support loading translations from files +@item Exporting translations to file(s), mainly for getting them +professionally translated +@end itemize") + (license license:expat))) + +(define-public go-github-com-go-sql-driver-mysql + (package + (name "go-github-com-go-sql-driver-mysql") + (version "1.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-sql-driver/mysql") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ihdqg411gkv454fwx8w5nbndgkm5dz5phfliksxgmhggyxxm7sn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-sql-driver/mysql" + #:test-flags + #~(list "-skip" (string-join + (list "TestConnectorReturnsTimeout" + "TestErrorInMultiResult" + "TestDSNReformat/user:p" + "FuzzFormatDSN/seed#8") + "|")))) + (propagated-inputs + (list go-filippo-io-edwards25519)) + (home-page "https://github.com/go-sql-driver/mysql") + (synopsis "MySQL driver for golang") + (description + "This is a pure Go implementation of the MySQL API, compatible with +golang's database/sql package.") + (license license:mpl2.0))) + (define-public go-github-com-go-stack-stack (package (name "go-github-com-go-stack-stack") @@ -3470,7 +5890,13 @@ implemented features include (build-system go-build-system) (arguments (list - #:import-path "github.com/go-stack/stack")) + #:import-path "github.com/go-stack/stack" + #:test-flags + #~(list "-skip" (string-join + (list "TestCallStackString" + "TestCallStackMarshalText" + "TestTrimRuntime") + "|")))) (home-page "https://github.com/go-stack/stack") (synopsis "Utilities to capture, manipulate, and format call stacks") (description @@ -3536,6 +5962,30 @@ the library more lightweight.") (package-arguments go-github-com-go-task-slim-sprig) ((#:import-path _) "github.com/go-task/slim-sprig/v3"))))) +(define-public go-github-com-go-yaml-yaml + (package + (name "go-github-com-go-yaml-yaml") + (version "0.0.0-20220527083530-f6f7691b1fde") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-yaml/yaml") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01b0wjb7yzv8wzzz2iim8mjpkwjnykcanrwiq06pkl89lr6gv8hn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-yaml/yaml")) + (native-inputs (list go-gopkg-in-check-v1)) + (propagated-inputs (list go-gopkg-in-yaml-v3)) + (home-page "https://github.com/go-yaml/yaml") + (synopsis "YAML support for the Go language") + (description "Package yaml implements YAML support for the Go language.") + (license license:asl2.0))) + (define-public go-github-com-gobwas-glob (package (name "go-github-com-gobwas-glob") @@ -3560,6 +6010,30 @@ the library more lightweight.") "This package provides a Go implementation of globs.") (license license:expat))) +(define-public go-github-com-gobwas-pool + (package + (name "go-github-com-gobwas-pool") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gobwas/pool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0imipsf8nslc78in78wcri2ir2zzajp2h543dp2cshrrdbwkybx7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gobwas/pool")) + (home-page "https://github.com/gobwas/pool") + (synopsis "Go Pooling Helpers") + (description + "Package pool contains helpers for pooling structures distinguishable by +size.") + (license license:expat))) + (define-public go-github-com-goccy-go-yaml (package (name "go-github-com-goccy-go-yaml") @@ -3610,6 +6084,64 @@ the library more lightweight.") @end itemize") (license license:expat))) +(define-public go-github-com-godbus-dbus + (package + (name "go-github-com-godbus-dbus") + (version "0.0.0-20190726142602-4481cbc300e2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/godbus/dbus") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0h0cl1r136g0kxbw3i7ggb9mhavpi1yr7d7312iwhkxm93dxkphg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/godbus/dbus" + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "dbus-run-session" "--" + "go" "test" "./..." + ;; Disable tests which require a system D-Bus + ;; instance. + "-skip" "TestSystemBus|TestConnectSystemBus")))))))) + (native-inputs + (list dbus)) ;dbus-launch + (home-page "https://github.com/godbus/dbus/") + (synopsis "Native Go client bindings for the D-Bus") + (description + "@code{dbus} is a library that implements native Go client bindings for +the D-Bus message bus system.") + (license license:bsd-2))) + +(define-public go-github-com-godbus-dbus-v5 + (package + (inherit go-github-com-godbus-dbus) + (name "go-github-com-godbus-dbus-v5") + (version "5.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/godbus/dbus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kayd4x7idrhi06ahh5kqkgwzgh9icvv71mjar2d0jl486dfs8r5")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-godbus-dbus) + ((#:import-path _ "github.com/godbus/dbus") + "github.com/godbus/dbus/v5"))))) + + (define-public go-github-com-gofrs-flock (package (name "go-github-com-gofrs-flock") @@ -3705,6 +6237,183 @@ execution.") "The chardet package ports character set detection from ICU to Go.") (license license:expat))) +(define-public go-github-com-golang-freetype + (package + (name "go-github-com-golang-freetype") + (version "0.0.0-20170609003504-e2365dfdc4a0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/freetype") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/golang/freetype")) + (propagated-inputs + (list go-golang-org-x-image)) + (home-page "https://github.com/golang/freetype") + (synopsis "Freetype font rasterizer in the Go programming language") + (description + "The Freetype font rasterizer in the Go programming language.") + (license (list license:freetype + license:gpl2+)))) + +(define-public go-github-com-golangplus-bytes + (package + (name "go-github-com-golangplus-bytes") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golangplus/bytes") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r8f9m7hm6idnbapfb01nw5h09a20b09r7sky2gkniympn98ra75")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/golangplus/bytes")) + (native-inputs + (list go-github-com-golangplus-testing-bootstrap)) + (home-page "https://github.com/golangplus/bytes") + (synopsis "Extention to Golang standard @code{bytes} library.") + (description + "Package bytesp is a plus to the standard @code{bytes} package.") + (license license:bsd-3))) + +(define-public go-github-com-golangplus-bytes-bootstrap + (hidden-package + (package + (inherit go-github-com-golangplus-bytes) + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "github.com/golangplus/bytes")) + (native-inputs '()) + (propagated-inputs '())))) + +(define-public go-github-com-gologme-log + (package + (name "go-github-com-gologme-log") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gologme/log") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m7dszaisviq7fgwyxg9lwhxyzdab0w7d1zbilrnarzvyx9wh3ax")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gologme/log")) + (home-page "https://github.com/gologme/log/") + (synopsis "Fork of the golang built in log package to add support for levels") + (description + "This package is a drop in replacement for the built-in Go log package. +All the functionality of the built-in package still exists and is unchanged. +This package contains a series of small enhancements and additions.") + (license license:bsd-3))) + +(define-public go-github-com-gomodule-redigo + (package + (name "go-github-com-gomodule-redigo") + (version "1.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gomodule/redigo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03z02zmkl8cj73c6xrvlpj144d9ysikc25ay64dhpbzwkn16h5yv")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/gomodule/redigo" + #:test-flags + #~(list "-skip" + (string-join + ;; Run just unit tests which do not require Redis reducing + ;; closure size. + (list "TestDoCommands" + "TestPipelineCommands" + "TestBlankCommand" + "TestRecvBeforeSend" + "TestError" + "TestDialContext_CanceledContext" + "TestDialClientName" + "TestExecError" + "Test.*Pool.*" + "TestPushed" + "TestPubSubReceiveContext" + "TestSlowLog" + "TestLatency" + "TestLatencyHistories" + "TestScript" + "Example.*" + "TestConnMux" + "TestConnMuxClose") + "|")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file + (list "redis/zpop_example_test.go" + "redis/scan_test.go" + "redis/pubsub_example_test.go" + "redis/reply_test.go")))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/gomodule/redigo") + (synopsis "Go client for Redis") + (description + "Redigo is a Go client for the Redis database.") + (license license:asl2.0))) + +(define-public go-github-com-google-gnostic-models + (package + (name "go-github-com-google-gnostic-models") + (version "0.6.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gnostic-models") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z170sw1dlspxwbgpzffry5xm8mmcq7kpkrn0zkjzwdnmjhmmdqx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/gnostic-models" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (propagated-inputs + (list go-google-golang-org-protobuf + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/google/gnostic-models") + (synopsis "Protocol Buffer models for Gnostic") + (description + "This package provides Protocol Buffer models and associated libraries +for working with API description formats supported by +@url{https://github.com/google/gnostic,gnostic}. It exists to provide a +lightweight distribution of these models with minimal dependencies.") + (license license:asl2.0))) + (define-public go-github-com-google-goterm (package (name "go-github-com-google-goterm") @@ -3731,6 +6440,31 @@ It also contains some convenience functions for colors, SSH to and from termios translations, readCh, reading passwords, etc.") (license license:bsd-3))) +;; XXX: This repository has been archived by the owner on Dec 29, 2022. It is +;; now read-only. It's only used by kiln, consider to remove it when it does +;; no longer require it. +(define-public go-github-com-google-shlex + (package + (name "go-github-com-google-shlex") + (version "0.0.0-20191202100458-e7afc7fbc510") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/shlex") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14z8hqyik910wk2qwnzgz8mjsmiamxa0pj55ahbv0jx6j3dgvzfm")))) + (build-system go-build-system) + (arguments (list #:import-path "github.com/google/shlex")) + (home-page "https://github.com/google/shlex") + (synopsis "Simple lexer for Go") + (description + "@code{shlex} implements a simple lexer which splits input into tokens +using shell-style rules for quoting and commenting.") + (license license:asl2.0))) + (define-public go-github-com-google-subcommands (package (name "go-github-com-google-subcommands") @@ -3845,6 +6579,169 @@ underneath and returns only matching files or direcories, depending on the configuration.") (license license:expat))) +(define-public go-github-com-gorhill-cronexpr + (package + (name "go-github-com-gorhill-cronexpr") + (version "0.0.0-20180427100037-88b0669f7d75") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorhill/cronexpr") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hc7xdfclp2qgkr1581jb3ckjvl34nxmqrnraci5jzmqx5av9j1r")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gorhill/cronexpr")) + (home-page "https://github.com/gorhill/cronexpr") + (synopsis "Cron expression parser in the Go language") + (description + "This package provides a cron expression parser in the Go language. +Given a cron expression and a time stamp, you can get the next time stamp +which satisfies the cron expression.") + (license (list license:gpl3+ + license:asl2.0)))) + +(define-public go-github-com-gosuri-uilive + (package + (name "go-github-com-gosuri-uilive") + (version "0.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gosuri/uilive") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pwxx0w4mv908dascnxkdjq865ks01niqy71imv4kllz0a84zkag")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gosuri/uilive")) + (home-page "https://github.com/gosuri/uilive") + (synopsis "Updating terminal output in realtime") + (description + "Package uilive provides a writer that live updates the terminal. It +provides a buffered io.Writer that is flushed at a timed interval.") + (license license:expat))) + +(define-public go-github-com-goverter-patherr + (package + (name "go-github-com-goverter-patherr") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/goverter/patherr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zjcyva959ir23rgk2rvc7ivlyan9dh2rqw7hl03h6xq935zznjq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/goverter/patherr")) + (home-page "https://github.com/goverter/patherr") + (synopsis "Implementation for Goverter's wrapErrorsUsing") + (description + "This package provides an implementation for the goverter feature +@code{wrapErrorsUsing}.") + (license license:expat))) + +(define-public go-github-com-guptarohit-asciigraph + (package + (name "go-github-com-guptarohit-asciigraph") + (version "0.7.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/guptarohit/asciigraph") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j708hj80hk1b39zbdfx6kqy75i70jhz55bml0jngqwfx698d1pv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/guptarohit/asciigraph")) + (home-page "https://github.com/guptarohit/asciigraph") + (synopsis "ASCII line graphs for Golang") + (description + "This package can generate ASCII line graphs in Golang.") + (license license:bsd-3))) + +(define-public go-github-com-hanwen-go-fuse + (package + (name "go-github-com-hanwen-go-fuse") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hanwen/go-fuse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04xa8mh34639lv1b2p8dx13x742j5i493i3sk89hd3jfskzvval1")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/hanwen/go-fuse" + ;; Most of the tests require "/bin/fusermount" to be available which + ;; is missed during packaging, limit to some unit tests only. + #:test-subdirs #~(list "internal/..." "splice") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-example + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "example"))))))) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/hanwen/go-fuse") + (synopsis "Go bindings for FUSE filesystems") + (description + "This is a repository containing Go bindings for writing FUSE file systems.") + (license license:bsd-3))) + +(define-public go-github-com-hanwen-go-fuse-v2 + (package + (inherit go-github-com-hanwen-go-fuse) + (name "go-github-com-hanwen-go-fuse-v2") + (version "2.7.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hanwen/go-fuse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fcf94chf9ffgjk0wcpnlz0kfb69m2fwzfn4k348kal75x178aar")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-hanwen-go-fuse) + ((#:import-path _) "github.com/hanwen/go-fuse/v2") + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'remove-benchmark + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "benchmark")))))))) + (propagated-inputs + (list go-github-com-kylelemons-godebug + go-github-com-moby-sys-mountinfo + go-golang-org-x-sync + go-golang-org-x-sys)))) + (define-public go-github-com-hashicorp-errwrap (package (name "go-github-com-hashicorp-errwrap") @@ -3869,6 +6766,31 @@ configuration.") wrapping errors and checking if an error contains another error.") (license license:mpl2.0))) +(define-public go-github-com-hashicorp-go-envparse + (package + (name "go-github-com-hashicorp-go-envparse") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-envparse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wqb96gbfrj5986a1cg1sa0412dk7qpnh9l2w3y5q7a38v2dlh9j")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/go-envparse")) + (home-page "https://github.com/hashicorp/go-envparse") + (synopsis "Environment variable parser for Golang") + (description + "Package envparse is a minimal environment variable parser. It handles +empty lines, comments, single quotes, double quotes, and JSON escape +sequences.") + (license license:mpl2.0))) + (define-public go-github-com-hashicorp-go-hclog (package (name "go-github-com-hashicorp-go-hclog") @@ -4169,7 +7091,10 @@ overhead is linear with the size of the cache.") (build-system go-build-system) (arguments (list - #:import-path "github.com/hashicorp/hcl")) + #:import-path "github.com/hashicorp/hcl" + #:test-subdirs + #~(list "json/..." "hcl/ast" "hcl/fmtcmd" "hcl/printer" "hcl/scanner" + "hcl/strconv" "hcl/token" "."))) (native-inputs (list go-github-com-davecgh-go-spew)) (synopsis "Go implementation of HashiCorp Configuration Language V1") @@ -4196,9 +7121,24 @@ expressing configuration which is easy for both humans and machines to read.") (build-system go-build-system) (arguments (list - #:import-path "github.com/hashicorp/hcl/v2")) + #:import-path "github.com/hashicorp/hcl/v2" + #:test-flags + #~(list "-skip" + (string-join + (list "TestExpressionParseAndValue/.*unk.*" + "TestFunctionCallExprValue/valid_call_with_unknown_arg.*" + "TestFunctionCallExprValue/valid_call_with_dynamic_arg") + "|")))) (native-inputs - (list go-github-com-davecgh-go-spew)) + (list go-github-com-apparentlymart-go-dump + go-github-com-davecgh-go-spew + go-github-com-go-test-deep + go-github-com-kr-pretty + go-github-com-kylelemons-godebug + go-github-com-sergi-go-diff + go-github-com-spf13-pflag + go-github-com-zclconf-go-cty-debug + go-golang-org-x-crypto)) (inputs (list go-github-com-agext-levenshtein go-github-com-apparentlymart-go-textseg-v13 @@ -4212,6 +7152,119 @@ expressing configuration which is easy for both humans and machines to read.") (home-page "https://github.com/hashicorp/hcl") (license license:mpl2.0))) +(define-public go-github-com-hebcal-gematriya + (package + (name "go-github-com-hebcal-gematriya") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hebcal/gematriya") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xmnb2i80dy380yv8c4pd04bbyqgbc7c40p8hz1vqj2lhbm6jabf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hebcal/gematriya")) + (home-page "https://github.com/hebcal/gematriya") + (synopsis "Print numbers as Hebrew letters in Go") + (description + "This package provides a Go library for printing numbers as Hebrew +letters.") + (license license:bsd-2))) + +(define-public go-github-com-hebcal-greg + (package + (name "go-github-com-hebcal-greg") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hebcal/greg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cf53ay6sj0m635k9p3f64iw03asx81aqmyrk102lzmhg838mq1a")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hebcal/greg")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/hebcal/greg") + (synopsis "Converts between Gregorian dates and Rata Die day numbers") + (description + "Hebcal's greg package converts between Gregorian dates and R.D. (Rata +Die) day numbers.") + (license license:gpl2))) + +(define-public go-github-com-hebcal-hdate + (package + (name "go-github-com-hebcal-hdate") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hebcal/hdate") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i3r3ng9ygd7ly59znw948im4z4sbp23jqj3hhgxabwhh6b8mdmf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hebcal/hdate")) + (native-inputs (list go-github-com-stretchr-testify)) + (propagated-inputs (list go-github-com-hebcal-greg)) + (home-page "https://github.com/hebcal/hdate") + (synopsis "Converts between Hebrew and Gregorian dates") + (description + "Hebcal's hdate package converts between Hebrew and Gregorian dates.") + (license license:gpl2))) + +(define-public go-github-com-hebcal-hebcal-go + (package + (name "go-github-com-hebcal-hebcal-go") + (version "0.9.31") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hebcal/hebcal-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vccmjb4g8g8x733a45g78lz25k2a0avsq4zvlp94varssk8wj1q")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/hebcal/hebcal-go")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-dustin-go-humanize + go-github-com-hebcal-gematriya + go-github-com-hebcal-greg + go-github-com-hebcal-hdate + go-github-com-nathan-osman-go-sunrise)) + (home-page "https://github.com/hebcal/hebcal-go") + (synopsis "Go library for the Hebcal perpetual Jewish calendar") + (description + "This package provides a library for conversion between Hebrew and +Gregorian dates, and generation of lists of Jewish holidays for a given year. +Shabbat and holiday candle lighting and havdalah times are approximated based +on location. + +Torah readings, Daf Yomi, and counting of the Omer can also be specified. +Algorithms are included to calculate yahrzeits, birthdays, and +anniversaries.") + (license license:gpl2+))) + (define-public go-github-com-hhrutter-tiff (package (name "go-github-com-hhrutter-tiff") @@ -4242,6 +7295,78 @@ expressing configuration which is easy for both humans and machines to read.") @end itemize") (license license:bsd-3))) +(define-public go-github-com-hodgesds-perf-utils + (package + (name "go-github-com-hodgesds-perf-utils") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hodgesds/perf-utils") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wrma5rn0pybav8lwmv5xjwjl6slgnr8ya64f1npijam59r7afzj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hodgesds/perf-utils" + #:test-flags + ;; XXX: Tests requiring root access to mount file system or shaky, check + ;; if they may be fixed. + #~(list "-skip" + (string-join + (list "TestAvailableEvents" + "TestAvailablePMUs" + "TestBusCycles" + "TestCPURefCycles" + "TestDebugFSMount" + "TestGroupProfiler" + "TestLLCache" + "TestMSR" + "TestMSRPaths" + "TestNodeCache" + "TestProfiler" + "TestSoftwareProfiler" + "TestTraceFSMount") + "|")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-sys + go-go-uber-org-multierr)) + (home-page "https://github.com/hodgesds/perf-utils") + (synopsis "Perf Utilities for Golang") + (description + "This package is a Go library for interacting with the @code{perf} +subsystem in Linux.") + (license license:expat))) + +(define-public go-github-com-huandu-xstrings + (package + (name "go-github-com-huandu-xstrings") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/huandu/xstrings") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04z4xb22mi03a772f1si2fqwi5vn5584afzxas73jc6n6sppz0db")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/huandu/xstrings")) + (home-page "https://github.com/huandu/xstrings/") + (synopsis "Collection of string functions") + (description + "Go package xstrings is a collection of string functions,which are widely +used in other languages but absent in Go package strings.") + (license license:expat))) + (define-public go-github-com-ianlancetaylor-demangle ;; No release, see <https://github.com/ianlancetaylor/demangle/issues/21>. (package @@ -4270,6 +7395,79 @@ the C++ ABI defined at https://codesourcery.com/cxx-abi/ and the ABI}.") (license license:bsd-3))) +(define-public go-github-com-iancoleman-orderedmap + (package + (name "go-github-com-iancoleman-orderedmap") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/iancoleman/orderedmap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rkahhb86ngvzjmdlrpw9rx24a0b1yshq2add1ry2ii6nkx0xbfs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/iancoleman/orderedmap")) + (home-page "https://github.com/iancoleman/orderedmap") + (synopsis "Ordered map in Golang") + (description + "This package provides a Golang data type for ordered maps where the keys +keep the order that they're added. It can be de/serialized from/to JSON.") + (license license:expat))) + +(define-public go-github-com-iancoleman-strcase + (package + (name "go-github-com-iancoleman-strcase") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/iancoleman/strcase") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "169fb56kiif2gq92b7hvh9xgl2n8kjmdg4gqaa1492kb97ia8lwm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/iancoleman/strcase")) + (home-page "https://github.com/iancoleman/strcase") + (synopsis "Converting to snake_case or CamelCase") + (description + "Package strcase converts strings to various cases.") + (license license:expat))) + +(define-public go-github-com-invopop-yaml + (package + (name "go-github-com-invopop-yaml") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/invopop/yaml") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0isvalfivw39hjj20y28g4yws0plzqaym8asz3sr5lfwv5gnq7zg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/invopop/yaml")) + (propagated-inputs + (list go-gopkg-in-yaml-v3)) + (home-page "https://github.com/invopop/yaml") + (synopsis "YAML marshaling and unmarshaling support for Golang") + (description + "This package provides a wrapper around go-yaml designed to enable a +better way of handling YAML when marshaling to and from structs.") + (license license:expat))) + (define-public go-github-com-itchyny-timefmt-go (package (name "go-github-com-itchyny-timefmt-go") @@ -4293,6 +7491,679 @@ ABI}.") time strings.") (license license:expat))) +(define-public go-github-com-jackc-chunkreader + (package + (name "go-github-com-jackc-chunkreader") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/chunkreader") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zsxsd6alk51lssq1xq194sf88awj083fjiy7pk3098v2nj9m65l")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/chunkreader")) + (home-page "https://github.com/jackc/chunkreader") + (synopsis "Wrapper for @code{io.Reader}") + (description + "ChunkReader is a @code{io.Reader} wrapper that minimizes IO reads and +memory allocations. It allocates memory in chunks and will read as much as +will fit in the current buffer in a single call regardless of how large a read +is actually requested. The memory returned via Next is owned by the caller. +This avoids the need for an additional copy. It extracted from original +implementation in https://github.com/jackc/pgx.") + (license license:expat))) + +(define-public go-github-com-jackc-chunkreader-v2 + (package + (inherit go-github-com-jackc-chunkreader) + (name "go-github-com-jackc-chunkreader-v2") + (version "2.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/chunkreader") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fj585hp3s4cjfzncr5gmim96p0b956pqdf4nm7yan1ipfch9l1c")))) + (arguments + (list + #:import-path "github.com/jackc/chunkreader/v2")))) + +(define-public go-github-com-jackc-pgconn + (package + (name "go-github-com-jackc-pgconn") + (version "1.14.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgconn") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rqx0y9k6g8ydcpciv3k246hfd5am4yw4jg3cbq4wlfny01ksh3y")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgconn" + #:test-flags + #~(list "-skip" + (string-join + (list "TestConfigCopyCanBeUsedToConnect" + "TestConnStress" + "TestFrontendFatalErrExec" + "TestLRUModePrepare" + "TestLRUContext" + "TestLRUStmtInvalidationIntegration" + "TestLRUModeDescribe" + "TestLRUModePrepareStress" + "TestLRUStmtInvalidation") + "|")) + #:phases + #~(modify-phases %standard-phases + ;; All tests in this file rquire PostgreSQL service running. + (add-before 'check 'remove-failing-test-files + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file "pgconn_test.go"))))))) + (native-inputs + (list go-github-com-jackc-pgmock-bootstrap + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-jackc-chunkreader-v2 + go-github-com-jackc-pgio + go-github-com-jackc-pgpassfile + go-github-com-jackc-pgproto3-v2 + go-github-com-jackc-pgservicefile + go-golang-org-x-crypto + go-golang-org-x-text)) + (home-page "https://github.com/jackc/pgconn") + (synopsis "Low-level PostgreSQL database driver") + (description + "Package pgconn is a low-level PostgreSQL database driver. It operates +at nearly the same level as the C library libpq. + +It is primarily intended to serve as the foundation for higher level libraries +such as @url{https://github.com/jackc/pgx}. Applications should handle normal +queries with a higher level library and only use pgconn directly when required +for low-level access to PostgreSQL functionality.") + (license license:expat))) + +(define-public go-github-com-jackc-pgconn-bootstrap + (hidden-package + (package + (inherit go-github-com-jackc-pgconn) + (arguments + (list #:tests? #f + #:import-path "github.com/jackc/pgconn" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (native-inputs '())))) + +(define-public go-github-com-jackc-pgerrcode + (package + (name "go-github-com-jackc-pgerrcode") + (version "0.0.0-20240316143900-6e2875d9b438") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgerrcode") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00csrjkg8fg97q5wy4r2wqi88w7g1cj0f5xkp5442nz3agmkxgrj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgerrcode")) + (home-page "https://github.com/jackc/pgerrcode") + (synopsis "Constants for PostgreSQL error codes") + (description + "Package pgerrcode contains constants for @code{PostgreSQL} error +codes.") + (license license:expat))) + +(define-public go-github-com-jackc-pgio + (package + (name "go-github-com-jackc-pgio") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0l17gpn11wf6jm5kbfmxh8j00n5zpmwck3wr91f1cv34k4chyvg1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgio")) + (home-page "https://github.com/jackc/pgio") + (synopsis "Low-level toolkit building messages in the PostgreSQL wire protocol") + (description + "Package pgio is a low-level toolkit building messages in the +@code{PostgreSQL} wire protocol.") + (license license:expat))) + +(define-public go-github-com-jackc-pgpassfile + (package + (name "go-github-com-jackc-pgpassfile") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgpassfile") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1crw06lzksgimbmr1a3sr00azg2v7l4qkvjra1cpmzzq5mncaj8z")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgpassfile")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/jackc/pgpassfile") + (synopsis "PostgreSQL .pgpass files parser") + (description + "Package pgpassfile is a parser @code{PostgreSQL} .pgpass files.") + (license license:expat))) + +(define-public go-github-com-jackc-pgproto3 + (package + (name "go-github-com-jackc-pgproto3") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgproto3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03vpkqa6j4sanmsj7q13fb6yamspszfv38sr28d40g887bcwf0j8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgproto3")) + (propagated-inputs + (list go-github-com-jackc-chunkreader + go-github-com-jackc-pgio + go-github-com-pkg-errors)) + (home-page "https://github.com/jackc/pgproto3") + (synopsis "Encoder and decoder of the PostgreSQL wire protocol version 3") + (description + "This package provides a encoder and decoder of the @code{PostgreSQL} +wire protocol version 3.") + (license license:expat))) + +(define-public go-github-com-jackc-pgproto3-v2 + (package + (inherit go-github-com-jackc-pgproto3) + (name "go-github-com-jackc-pgproto3-v2") + (version "2.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgproto3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bmj1bqnn5863178a0k8m3f9xv48zs10z96dm2rl28ybx33d2l77")))) + (arguments + (list + #:import-path "github.com/jackc/pgproto3/v2")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-jackc-chunkreader-v2 + go-github-com-jackc-pgio)))) + +(define-public go-github-com-jackc-pgservicefile + (package + (name "go-github-com-jackc-pgservicefile") + (version "0.0.0-20240606120523-5a60cdf6a761") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgservicefile") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z8ndfdxx5r4dpjbjn9caq9w56lrzwm6nh8jwwk0gnq0n2q4cfhi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgservicefile")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/jackc/pgservicefile") + (synopsis "Parser PostgreSQL for service files") + (description + "Package pgservicefile is a parser for @code{PostgreSQL} service +files (e.g. .pg_service.conf).") + (license license:expat))) + +(define-public go-github-com-jackc-pgtype + (package + (name "go-github-com-jackc-pgtype") + (version "1.14.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgtype") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04yd3b1c1qph6g1giskmm49c9hk0scagfqd08bhj1pprvp9jmn2f")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; test require running PostgreSQL + #:import-path "github.com/jackc/pgtype")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-gofrs-uuid + go-github-com-jackc-pgconn + go-github-com-jackc-pgio + go-github-com-jackc-pgx-v4-bootstrap + go-github-com-lib-pq + go-github-com-shopspring-decimal)) + (home-page "https://github.com/jackc/pgtype") + (synopsis "PostgreSQL types implementations in Golang") + (description + "This package implements Go types for over 70 PostgreSQL types. It is +the type system underlying the https://github.com/jackc/pgx PostgreSQL driver. +These types support the binary format for enhanced performance with pgx. They +also support the database/sql @code{Scan} and @code{Value} interfaces and can +be used with https://github.com/lib/pq.") + (license license:expat))) + +(define-public go-github-com-jackc-pgtype-bootstrap + (hidden-package + (package + (inherit go-github-com-jackc-pgtype) + (arguments + (list #:tests? #f + #:import-path "github.com/jackc/pgtype" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (native-inputs '()) + (propagated-inputs '())))) + +(define-public go-github-com-jackc-pgx + (package + (name "go-github-com-jackc-pgx") + (version "3.6.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hbnh69ss0pq83n18b62znj3qi54y9kr31a3xi9h35p27nsk3izf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/pgx" + #:test-subdirs + #~(list ;; "pgtype/..." ; most tests require networking setup + ;; "stdlib" + ;; "." ; github.com/jackc/pgx [build failed] + "chunkreader" + "internal/sanitize" + "log/..." + "pgio" + "pgproto3") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples-and-benchmarks + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-cockroachdb-apd + go-github-com-jackc-fake)) + (propagated-inputs + (list go-github-com-gofrs-uuid + go-github-com-lib-pq + go-github-com-rs-zerolog + go-github-com-satori-go-uuid + go-github-com-shopspring-decimal + go-github-com-sirupsen-logrus + go-go-uber-org-zap)) + (home-page "https://github.com/jackc/pgx") + (synopsis "PostgreSQL driver and toolkit for Golang") + (description + "This package implements a pure Go driver and toolkit for PostgreSQL. It +is different from other drivers such as +@url{http://godoc.org/github.com/lib/pq,pq} because, while it can operate as a +database/sql compatible driver, pgx is also usable directly. It offers a +native interface similar to database/sql that offers better performance and +more features.") + (license license:expat))) + +(define-public go-github-com-jackc-pgx-v4 + (package + (inherit go-github-com-jackc-pgx) + (name "go-github-com-jackc-pgx-v4") + (version "4.18.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xxvkgngl8c73zg06xdm5sqvck6yvrvjpzidpmsaah1az0lh1lay")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-jackc-pgx) + ((#:import-path _) "github.com/jackc/pgx/v4") + ((#:test-subdirs _) #~(list "internal/sanitize" "log/...")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cockroachdb-apd + go-github-com-go-kit-log + go-github-com-gofrs-uuid + go-github-com-jackc-pgconn + go-github-com-jackc-pgio + go-github-com-jackc-pgproto3-v2 + go-github-com-jackc-pgtype-bootstrap + go-github-com-jackc-puddle + go-github-com-masterminds-semver-v3 + go-github-com-rs-zerolog + go-github-com-shopspring-decimal + go-github-com-sirupsen-logrus + go-go-uber-org-zap + go-gopkg-in-inconshreveable-log15-v2)))) + +(define-public go-github-com-jackc-pgx-v4-bootstrap + (hidden-package + (package + (inherit go-github-com-jackc-pgx-v4) + (arguments + (list #:tests? #f + #:import-path "github.com/jackc/pgx/v4" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (native-inputs '()) + (propagated-inputs '())))) + +(define-public go-github-com-jackc-pgx-v5 + (package + (inherit go-github-com-jackc-pgx-v4) + (name "go-github-com-jackc-pgx-v5") + (version "5.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/pgx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b8wgqax34q77m4pmaaqlp9dr1x9mam76jx7ah1sxdldl737rv27")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-jackc-pgx-v4) + ((#:import-path _) "github.com/jackc/pgx/v5") + ((#:test-subdirs _) + #~(list "internal/..." + "log/..." + "multitracer")))) + (propagated-inputs + (list go-github-com-jackc-pgpassfile + go-github-com-jackc-pgservicefile + go-github-com-jackc-puddle-v2 + go-golang-org-x-crypto + go-golang-org-x-sync + go-golang-org-x-text)))) + +(define-public go-github-com-jackc-puddle + (package + (name "go-github-com-jackc-puddle") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/puddle") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0382q7xjdw5wx6174i2sf4gnc5ppgj9snvrvh3rcnwg02yd0np38")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackc/puddle")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/jackc/puddle") + (synopsis "Generic resource pool for Golang") + (description + "Puddle is a tiny generic resource pool library hat uses the standard +context library to signal cancellation of acquires. It is designed to contain +the minimum functionality required for a resource pool. It can be used +directly or it can be used as the base for a domain specific resource pool. +For example, a database connection pool may use puddle internally and +implement health checks and keep-alive behavior without needing to implement +any concurrent code of its own.") + (license license:expat))) + +(define-public go-github-com-jackc-puddle-v2 + (package + (inherit go-github-com-jackc-puddle) + (name "go-github-com-jackc-puddle-v2") + (version "2.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackc/puddle") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0agbk4nnja0fahi8mjp1y5ac9vjsjhldjwx9zshw0zjqhaxmsk11")))) + (arguments + (list + #:import-path "github.com/jackc/puddle/v2")) + (propagated-inputs + (list go-golang-org-x-sync)))) + +(define-public go-github-com-jacobsa-fuse + (package + (name "go-github-com-jacobsa-fuse") + (version "0.0.0-20241025064006-8ccd61173b05") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/fuse") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zf9fhv5j0pffmp4c0zba58627lb6cwr2qxjsa3dwba9b8fiz7sf")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; requires fusermount + #:import-path "github.com/jacobsa/fuse")) + (native-inputs + (list go-github-com-detailyang-go-fallocate + go-github-com-jacobsa-ogletest + go-github-com-kylelemons-godebug)) + (propagated-inputs + (list go-github-com-jacobsa-oglematchers + go-github-com-jacobsa-syncutil + go-github-com-jacobsa-timeutil + go-golang-org-x-net + go-golang-org-x-sys)) + (home-page "https://github.com/jacobsa/fuse") + (synopsis "FUSE file system in Golang") + (description + "Package fuse enables writing and mounting user-space file systems. +Subpackages: +@itemize +@item @code{fuse} provides support for mounting a new file system and reading +requests from the kernel + +@item @code{fuseops} enumerates the supported requests from the kernel, and +provides documentation on their semantics + +@item @code{fuseutil}, in particular the @code{FileSystem} interface, provides +a convenient way to create a file system type and export it to the kernel via +@code{fuse.Mount}. +@end itemize") + (license license:asl2.0))) + +(define-public go-github-com-jacobsa-syncutil + (package + (name "go-github-com-jacobsa-syncutil") + (version "0.0.0-20180201203307-228ac8e5a6c3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/syncutil") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dylp0qaabm8djqmn0qjki3gy9wnq23cbr4k4g63zk4axqgm2ns2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jacobsa/syncutil")) + (native-inputs + (list go-github-com-jacobsa-oglematchers + go-github-com-jacobsa-ogletest)) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/jacobsa/syncutil") + (synopsis "Code supplementing Go's sync package") + (description + "This package contains code that supplements the +@url{http://godoc.org/sync,sync} package from the Go standard library. + +In particular: +@itemize +@item Bundle, which makes it easy to write code that spawns multiple +cancellation-aware workers that may fail +@item invariantMutex, which makes it possible to automatically check your +invariants at lock and unlock time +@end itemize") + (license license:asl2.0))) + +(define-public go-github-com-jacobsa-timeutil + (package + (name "go-github-com-jacobsa-timeutil") + (version "0.0.0-20170205232429-577e5acbbcf6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/timeutil") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vp6ngfyw3z3n7fzqpijqh26mnwnhapy5x4kzly1qb8gmv15a8xb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jacobsa/timeutil")) + (native-inputs + (list go-github-com-jacobsa-oglematchers + go-github-com-jacobsa-ogletest)) + (home-page "https://github.com/jacobsa/timeutil") + (synopsis "Code supplementing Go's time package") + (description + "This package contains code that supplements the +@url{http://godoc.org/time, time} package from the Go standard library. + +In particular: +@itemize +@item a Clock interface, with a fake implementation that can be used in tests +@item implementations of +@url{https://godoc.org/github.com/jacobsa/oglematchers#Matcher, +oglematchers.Matcher} for time values +@end itemize") + (license license:asl2.0))) + +(define-public go-github-com-jba-templatecheck + (package + (name "go-github-com-jba-templatecheck") + (version "0.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jba/templatecheck") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03nlpfgjiiqqhf0df6vgvxi7kn58ykh0jhnrffpa32wv2w67ndxz")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "github.com/jba/templatecheck")) + (propagated-inputs + (list go-github-com-google-safehtml)) + (home-page "https://github.com/jba/templatecheck") + (synopsis "Checks Go templates for problems") + (description + "Package templatecheck checks Go templates for problems. It can detect +many errors that are normally caught only during execution. Use templatecheck +in tests to find template errors early, and along template execution paths +that might only rarely be reached.") + (license license:expat))) + +(define-public go-github-com-jbenet-go-context + (package + (name "go-github-com-jbenet-go-context") + (version "0.0.0-20150711004518-d14ea06fba99") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jbenet/go-context") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jbenet/go-context")) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/jbenet/go-context/") + (synopsis "@code{jbenet's} context extensions") + (description + "This package provides @code{jbenet's} context extensions.") + (license license:expat))) + (define-public go-github-com-jbenet-go-random (package (name "go-github-com-jbenet-go-random") @@ -4370,6 +8241,60 @@ more like a Context-WaitGroup hybrid. @code{goprocess} is about being able to s and stop units of work, which may receive @code{Close} signals from many clients.") (license license:expat))) +(define-public go-github-com-jcmturner-gofork + (package + (name "go-github-com-jcmturner-gofork") + (version "1.7.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jcmturner/gofork") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0w1j6b671121r6md5w7hnh2d0sa332pw5q49yihw23wdfinknyin")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jcmturner/gofork")) + (home-page "https://github.com/jcmturner/gofork") + (synopsis "Modified Go standard library packages") + (description + "This repository contains modified Go standard library packages for use +as work arounds until issues are addressed in the official distribution.") + (license license:bsd-3))) + +(define-public go-github-com-jdkato-go-tree-sitter-julia + (package + (name "go-github-com-jdkato-go-tree-sitter-julia") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jdkato/go-tree-sitter-julia") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17xr33vvrqsl0v1xzb3ya99anhg5zf04kp6wfk1m3iqi904ff0am")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/jdkato/go-tree-sitter-julia")) + (propagated-inputs + (list go-github-com-smacker-go-tree-sitter)) + (home-page "https://github.com/jdkato/go-tree-sitter-julia") + (synopsis "Julia grammar for tree sitter") + (description + "This package provides a Julia grammar for +@url{https://github.com/tree-sitter/tree-sitter, tree-sitter} bindings in +Golang.") + ;; It's a component of Vale, written by the same author and does not + ;; provide license. + (license license:unlicense))) + (define-public go-github-com-jdkato-twine (package (name "go-github-com-jdkato-twine") @@ -4419,6 +8344,68 @@ and stop units of work, which may receive @code{Close} signals from many clients "NLP-related string utility functions for Golang.") (license license:expat))) +(define-public go-github-com-jedib0t-go-pretty-v6 + (package + (name "go-github-com-jedib0t-go-pretty-v6") + (version "6.6.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jedib0t/go-pretty") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sy8fia04lxi07yga7z3h3fp19y4bla5p16v1n7ldip0ymdmvjnx")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/jedib0t/go-pretty/v6")) + (native-inputs + (list go-github-com-pkg-profile ; for the CLI + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-mattn-go-runewidth + go-golang-org-x-sys + go-golang-org-x-term + go-golang-org-x-text)) + (home-page "https://github.com/jedib0t/go-pretty") + (synopsis "Table-writer and more in Golang") + (description + "Utilities to prettify console output of tables, lists, progress-bars, +text, etc. with a heavy emphasis on customization.") + (license license:expat))) + +(define-public go-github-com-jessevdk-go-flags + (package + (name "go-github-com-jessevdk-go-flags") + (version "1.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jessevdk/go-flags") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dxk8n06sh15rm7777v5jgwxz9ca1c090ni6lyjhj1d2lxfysb45")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jessevdk/go-flags" + #:test-flags #~(list "-skip" "TestCompletion|TestParserCompletion"))) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/jessevdk/go-flags") + (synopsis "Go library for parsing command line arguments") + (description + "The @code{flags} package provides a command line option parser. The +functionality is similar to the go builtin @code{flag} package, but +@code{flags} provides more options and uses reflection to provide a succinct +way of specifying command line options.") + (license license:bsd-3))) + (define-public go-github-com-jinzhu-copier (package (name "go-github-com-jinzhu-copier") @@ -4442,6 +8429,83 @@ and stop units of work, which may receive @code{Close} signals from many clients struct to another.") (license license:expat))) +(define-public go-github-com-jmattheis-goverter + (package + (name "go-github-com-jmattheis-goverter") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jmattheis/goverter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ph8470wxpf8p2cdr5w3hkchlgpiyzljlsdna9jvhgw53sf2c32n")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jmattheis/goverter" + ;; Test requiring compplex set-up, fails during build but passed outside + ;; build-system. + #:test-flags #~(list "-skip" "TestScenario") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-broken-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "example/enum/transform-custom" + "example/wrap-errors-using" + "example/protobuf")))))))) + (native-inputs + (list go-github-com-stretchr-testify + go-github-com-goverter-patherr)) + (propagated-inputs + (list go-github-com-dave-jennifer + go-golang-org-x-tools + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/jmattheis/goverter") + (synopsis "Type-safe Go converters by defining function signatures") + (description + "This package provides a functionality to generate type-safe converters +for Go. The project is meant as alternative to +@url{https://github.com/jinzhu/copier, jinzhu/copier} that doesn't use +reflection.") + (license license:expat))) + +(define-public go-github-com-jmoiron-sqlx + (package + (name "go-github-com-jmoiron-sqlx") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jmoiron/sqlx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10rg9b6cl1j7jjr6z95xa1k45016mhicii3cmz0pkwrxw3dpfzfh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jmoiron/sqlx")) + (propagated-inputs + (list go-github-com-go-sql-driver-mysql + go-github-com-lib-pq + go-github-com-mattn-go-sqlite3)) + (home-page "https://github.com/jmoiron/sqlx") + (synopsis "General purpose extensions to golang's @code{database/sql}") + (description + "sqlx is a library which provides a set of extensions on go's standard +@code{database/sql} library. The sqlx versions of @code{sql.DB}, +@code{sql.TX}, @code{sql.Stmt}, et al. all leave the underlying interfaces +untouched, so that their interfaces are a superset on the standard ones. This +makes it relatively painless to integrate existing codebases using +database/sql with sqlx.") + (license license:expat))) + (define-public go-github-com-johnkerl-lumin (package (name "go-github-com-johnkerl-lumin") @@ -4469,6 +8533,30 @@ just matching lines. This package proviedes a CLI tool and @code{colors} library.") (license license:bsd-2))) +(define-public go-github-com-joho-godotenv + (package + (name "go-github-com-joho-godotenv") + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joho/godotenv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03vijs05k31jdf24pzj3vlk6b5jxf894v1kvzals4wzclyq2h3ch")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/joho/godotenv")) + (home-page "https://github.com/joho/godotenv") + (synopsis "Golang libary to load environment variables from @code{.env}") + (description + "This package provides a Go port of the Ruby's dotenv library +https://github.com/bkeepers/dotenv.") + (license license:expat))) + (define-public go-github-com-jonboulle-clockwork (package (name "go-github-com-jonboulle-clockwork") @@ -4566,6 +8654,35 @@ called concurrently with themselves and each other.") "This package is a simple exponential backoff counter in Go.") (license license:expat)))) +(define-public go-github-com-juju-ansiterm + (package + (name "go-github-com-juju-ansiterm") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/juju/ansiterm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05mk7mlvg11dd6b0j0wlq547ghbmx2ywwrlbcb4kddpg7qaqp1va")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/juju/ansiterm")) + (propagated-inputs + (list go-gopkg-in-check-v1 + go-github-com-mattn-go-isatty + go-github-com-mattn-go-colorable + go-github-com-lunixbochs-vtclean)) + (home-page "https://github.com/juju/ansiterm") + (synopsis "Writer to output ANSI escape codes for color and styles") + (description + "The ansiterm package provides a writer to output the ANSI escape codes +for color and styles.") + (license license:lgpl3))) + (define-public go-github-com-k0kubun-go-ansi (package (name "go-github-com-k0kubun-go-ansi") @@ -4618,6 +8735,83 @@ ansi.") customized globally.") (license license:expat))) +;; Some packages (Yggdrasil) need it to compile it's a tiny package and it's +;; easier to bundle it than to patch it out. +(define-public go-github-com-kardianos-minwinsvc + (package + (name "go-github-com-kardianos-minwinsvc") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kardianos/minwinsvc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02k2vibmm65bzkdjpmllphvq88wwyz3m02lbz8bffcpxjad2453v")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kardianos/minwinsvc")) + (home-page "https://github.com/kardianos/minwinsvc/") + (synopsis "Minimal windows only service stub for Go") + (description + "Go programs designed to run from most *nix style operating systems can +import this package to enable running programs as services without modifying +them.") + (license license:zlib))) + +(define-public go-github-com-kardianos-osext + (package + (name "go-github-com-kardianos-osext") + (version "0.0.0-20190222173326-2bc1f35cddc0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kardianos/osext") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pvrbrvmrf4mx0fxbfaphbzgqgwn8v6lkfk2vyrs0znxrs1xyc5r")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kardianos/osext")) + (home-page "https://github.com/kardianos/osext") + (synopsis "Find the running executable") + (description + "Osext provides a method for finding the current executable file that is +running. This can be used for upgrading the current executable or finding +resources located relative to the executable file.") + (license license:bsd-3))) + +(define-public go-github-com-kardianos-service + (package + (name "go-github-com-kardianos-service") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kardianos/service") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wcrc632nf2l5gzwgjfpx7bh6v4la0qjmaykj58fysabb9fkk9dy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kardianos/service" + #:test-flags #~(list "-skip" "TestPlatformName"))) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/kardianos/service") + (synopsis "Run go programs as a service") + (description + "This package provides a simple way to create a system service.") + (license license:zlib))) + (define-public go-github-com-karrick-godirwalk (package (name "go-github-com-karrick-godirwalk") @@ -4635,12 +8829,95 @@ customized globally.") (arguments (list #:import-path "github.com/karrick/godirwalk")) + ;; To build all examples as a test scenario. + (native-inputs + (list go-github-com-karrick-golf + go-github-com-mattn-go-isatty)) (home-page "https://github.com/karrick/godirwalk") (synopsis "Fast directory traversal library for Go") (description "This package provides functions to read and traverse directory trees.") (license license:bsd-2))) +(define-public go-github-com-karrick-golf + (package + (name "go-github-com-karrick-golf") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/karrick/golf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0iskalk32zqiwwrfmi9lcd1s69xgn3yl056xcm5q4y5znbs96fac")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/karrick/golf" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "example"))))))) + (home-page "https://github.com/karrick/golf") + (synopsis "Light-weight long and short command line option parser") + (description + "Go long flag: a light-weight long and short command line option parser.") + (license license:bsd-3))) + +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1szibhgxmkd52gz6i77p3fwlxqyidj7l5vf59pjl5bjy8ggv0kpv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kataras/golog")) + (propagated-inputs + (list go-github-com-kataras-pio)) + (home-page "https://github.com/kataras/golog") + (synopsis "Logging foundation for Go applications") + (description + "GoLog is a level-based logger written in Go.") + (license license:bsd-3))) + +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.13") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1z0fkhs6amnkvb02519pfxy2x2r5sfmvdzxfi31ipa17m98pk3bq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description + "PIO is a low-level package that provides a way to centralize different +output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-kballard-go-shellquote ;; No release, see <https://github.com/kballard/go-shellquote/issues/13>. (let ((commit "95032a82bc518f77982ea72343cc1ade730072f0") @@ -4668,6 +8945,122 @@ word-splitting rules.") (home-page "https://github.com/kballard/go-shellquote") (license license:expat)))) +(define-public go-github-com-kevinburke-ssh-config + (package + (name "go-github-com-kevinburke-ssh-config") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kevinburke/ssh_config") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jvv3i0g8ll210xlbxy8ywj09gab0im676rmnywh3wlpdhxdkbjd")))) + (arguments + (list + #:import-path "github.com/kevinburke/ssh_config")) + (build-system go-build-system) + (home-page "https://github.com/kevinburke/ssh_config/") + (synopsis "Parser for @file{ssh_config} files") + (description + "This is a Go parser for @file{ssh_config} files. Importantly, this +parser attempts to preserve comments in a given file, so you can manipulate a +@file{ssh_config} file from a program.") + (license license:expat))) + +(define-public go-github-com-keybase-dbus + (package + (name "go-github-com-keybase-dbus") + (version "0.0.0-20220506165403-5aa21ea2c23a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/keybase/dbus") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ihicxqq685jy47dw522b5c7b8vcikay0xph6y55jcas3m3zj1lj")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f; tests require running D-bus + #:import-path "github.com/keybase/dbus")) + (home-page "https://github.com/keybase/dbus") + (synopsis "Native Go bindings for D-Bus") + (description + "Package dbus implements bindings to the D-Bus message bus system. +Features: +@itemize +@item complete native implementation of the D-Bus message protocol +@item go-like API (channels for signals / asynchronous method calls, +Goroutine-safe connections) +@item subpackages that help with the introspection / property interfaces +@end itemize") + (license license:bsd-2))) + +(define-public go-github-com-keybase-go-ps + (package + (name "go-github-com-keybase-go-ps") + (version "0.0.0-20190827175125-91aafc93ba19") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/keybase/go-ps" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* (find-files "." "test\\.go") + (("/bin/sleep") (which "sleep"))) + (substitute* "process_openbsd.go" + (("^// \\+build ignore") "")))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/keybase/go-ps") + (synopsis "Process list library for Go") + (description + "Go-Ps is a library for Go that implements OS-specific APIs to list and +manipulate processes in a safe way.") + (license license:expat))) + +(define-public go-github-com-klauspost-asmfmt + (package + (name "go-github-com-klauspost-asmfmt") + (version "1.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/asmfmt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01qas9x9qb0s1aiq0235p8hvvqqn76ff0cs4cg71paxcy6l1a4k3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/klauspost/asmfmt")) + (home-page "https://github.com/klauspost/asmfmt") + (synopsis "Go Assembler Formatter") + (description + "This package implements functionality to format Assembler code the same +way that @code{gofmt} formats Go code.") + (license license:expat))) + (define-public go-github-com-klauspost-cpuid (package (name "go-github-com-klauspost-cpuid") @@ -4713,6 +9106,165 @@ very eas to use.") (list #:import-path "github.com/klauspost/cpuid/v2")))) +(define-public go-github-com-klauspost-reedsolomon + (package + (name "go-github-com-klauspost-reedsolomon") + (version "1.12.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/reedsolomon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04j6arqk9pisn3yjr9k90nmfs51fh5i7firl7lzs3x98d84qq5lv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/klauspost/reedsolomon" + #:test-flags #~(list "-short") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples-and-benchmarks + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "benchmark") + (delete-file-recursively "examples")))) + (add-before 'build 'go-generate + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "generate" "-v" "-n" "_gen"))))))) + (propagated-inputs (list go-github-com-klauspost-cpuid-v2)) + (home-page "https://github.com/klauspost/reedsolomon") + (synopsis "Reed-Solomon algorithm implementation in Golang") + (description + "Package reedsolomon enables +@url{https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction, +Erasure Coding}. It's a Go port of the +@url{https://github.com/Backblaze/JavaReedSolomon, JavaReedSolomon}. + +For encoding high shard counts (>256) a Leopard implementation is used. For +most platforms this performs close to the original Leopard implementation in +terms of speed.") + (license license:expat))) + +(define-public go-github-com-kljensen-snowball + (package + (name "go-github-com-kljensen-snowball") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kljensen/snowball") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ldc8hw13jwffhfac3w19033rxg8042jpwnw16l5mnwc0rg8b23l")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kljensen/snowball")) + (home-page "https://github.com/kljensen/snowball") + (synopsis "Go implementation of the Snowball stemmers") + (description + "This package provides a implementation of the +@url{http://snowball.tartarus.org/, Snowball stemmer} for natural language +processing.") + (license license:expat))) + +(define-public go-github-com-knz-go-libedit + (package + (name "go-github-com-knz-go-libedit") + (version "1.10.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/knz/go-libedit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04a5ryzldsk7agybcz4rpd7g1v5vh7smawlky58bwj0341083p44")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/knz/go-libedit" + #:phases + #~(modify-phases %standard-phases + ;; These steps are taken from the project's README. + (add-after 'unpack 'use-system-wide-libedit + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "unix/editline_unix.go" + ((".*#cgo linux CFLAGS.*") "") + (("#cgo linux CPPFLAGS.*") + (string-append "#cgo linux CPPFLAGS: -I" + #$(this-package-input "libedit") + "/include -Ishim\n")) + (("#cgo linux LDFLAGS.*") "#cgo linux LDFLAGS: -ledit\n")))))))) + (inputs + (list libedit)) + (home-page "https://github.com/knz/go-libedit") + (synopsis "Go wrapper around @code{libedit}") + (description + "This packae provides a wrapper around @code{libedit} for Golang.") + (license license:asl2.0))) + +(define-public go-github-com-knz-lipgloss-convert + (package + (name "go-github-com-knz-lipgloss-convert") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/knz/lipgloss-convert") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x9p89jfafkvsz3rrk856bniwcxlj8b1bhi0ixyngh620mx4h0cq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/knz/lipgloss-convert" + #:test-flags #~(list "-skip" "TestExport/full"))) + (propagated-inputs + (list go-github-com-charmbracelet-lipgloss + go-github-com-kr-pretty + go-github-com-pmezard-go-difflib)) + (home-page "https://github.com/knz/lipgloss-convert") + (synopsis "String conversion functions for lipgloss Styles") + (description + "String conversion functions for +@url{https://github.com/charmbracelet/lipgloss, lipgloss} Styles.") + (license license:asl2.0))) + +(define-public go-github-com-kortschak-utter + (package + (name "go-github-com-kortschak-utter") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kortschak/utter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pycm9kkfwpxz10v6f3w0478qy66bzaginr94rnmnnz7kp40fa00")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kortschak/utter")) + (home-page "https://github.com/kortschak/utter") + (synopsis "Deep pretty printer") + (description + "This package implements a deep pretty printer for Go data structures to +aid data snapshotting.") + (license license:isc))) + (define-public go-github-com-kpango-glg (package (name "go-github-com-kpango-glg") @@ -4765,6 +9317,33 @@ very eas to use.") allocation. @code{fastime} is returning the approximate time.") (license license:expat))) +(define-public go-github-com-kr-fs + (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba") + (revision "0")) + (package + (name "go-github-com-kr-fs") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kr/fs") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kr/fs" + #:test-flags #~(list "-skip" "TestBug3486"))) + (home-page "https://github.com/kr/fs") + (synopsis "File-system-related functions for Go") + (description + "The fs package provides file-system-related Go functions.") + (license license:bsd-3)))) + (define-public go-github-com-kr-pretty (package (name "go-github-com-kr-pretty") @@ -4790,6 +9369,211 @@ allocation. @code{fastime} is returning the approximate time.") "This package provides a pretty printer for Go values.") (license license:expat))) +(define-public go-github-com-kr-text + (package + (name "go-github-com-kr-text") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kr/text") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hf58ypz6rxsw6nx3i856whir9lvy4sdx946wbw1nfaf2rdmr9vx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kr/text")) + (propagated-inputs + (list go-github-com-creack-pty)) + (home-page "https://github.com/kr/text") + (synopsis "Text formatting in Go") + (description "This package provides a text formatting functions in Go.") + (license license:expat))) + +(define-public go-github-com-kylelemons-godebug + (package + (name "go-github-com-kylelemons-godebug") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kylelemons/godebug") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/kylelemons/godebug")) + (home-page "https://github.com/kylelemons/godebug") + (synopsis "Pretty printer for Go values") + (description + "This package will pretty print a compact representation of a Go data +structure. It can also produce a much more verbose, one-item-per-line +representation suitable for computing diffs.") + (license license:asl2.0))) + +(define-public go-github-com-labstack-gommon + (package + (name "go-github-com-labstack-gommon") + (version "0.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/labstack/gommon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05mafzmx050hc3js3i0h05ga81kk3hhhlv395xwzv9n38h27xpnz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/labstack/gommon")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-mattn-go-colorable + go-github-com-mattn-go-isatty + go-github-com-valyala-fasttemplate)) + (home-page "https://github.com/labstack/gommon") + (synopsis "Common libraries for Go") + (description + "This package provides functionlaity for common tasks: +@itemize +@item @code{Bytes} - format/parse bytes +@item @code{Color} - style terminal text +@item @code{Log} - simple logging +@end itemize") + (license license:expat))) + +(define-public go-github-com-lann-builder + (package + (name "go-github-com-lann-builder") + (version "0.0.0-20180802200727-47ae307949d0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lann/builder") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kg9jy1rciznj627hafpq2mi7hr5d3ssgqcpwrm3bnlk9sqnydil")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lann/builder")) + (propagated-inputs + (list go-github-com-lann-ps)) + (home-page "https://github.com/lann/builder") + (synopsis "Fluent immutable builders for Golang") + (description + "Package builder provides a method for writing fluent immutable DSL +builders. It uses immutable persistent data structures so that each step in +the method chain can be reused.") + (license license:expat))) + +(define-public go-github-com-lann-ps + (package + (name "go-github-com-lann-ps") + (version "0.0.0-20150810152359-62de8c46ede0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lann/ps") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10yhcyymypvdiiipchsp80jbglk8c4r7lq7h54v9f4mxmvz6xgf7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lann/ps")) + (home-page "https://github.com/lann/ps") + (synopsis "Persistent data structures for Golang") + (description + "This package implements a fully persistent data structures - a data +structure that always preserves the previous version of itself when it is +modified. Such data structures are effectively immutable, as their operations +do not update the structure in-place, but instead always yield a new +structure. It's a stable fork of https://github.com/mndrix/ps.") + (license license:expat))) + +(define-public go-github-com-leodido-go-urn + (package + (name "go-github-com-leodido-go-urn") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/leodido/go-urn") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bn9dj6y299jdh8szfim32yxj9zip38cqgv965dj23cixgr7baxb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/leodido/go-urn")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/leodido/go-urn") + (synopsis "Parser for uniform resource names as seen on RFC 2141") + (description + "This package implements a parser for uniform resource names (URN) as +specified by @uref{https://tools.ietf.org/html/rfc2141, IETF RFC 2141}.") + (license license:expat))) + +(define-public go-github-com-leonelquinteros-gotext + (package + (name "go-github-com-leonelquinteros-gotext") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/leonelquinteros/gotext") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ccls9xzbbrbrplbikz18lcky5p5rmifif6w69l5rl34dv11948m")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/leonelquinteros/gotext")) + (propagated-inputs + (list go-golang-org-x-text + go-golang-org-x-tools)) + (home-page "https://github.com/leonelquinteros/gotext") + (synopsis "GNU gettext utilities in Go") + (description + "This package implements GNU gettext utilities in Go. It features: + +@itemize +@item Implements GNU gettext support in native Go. +@item Complete support for PO files including: +@item Support for MO files. +@item Thread-safe: This package is safe for concurrent use across multiple +goroutines. +@item It works with UTF-8 encoding as it's the default for Go language. +@item Unit tests available. +@item Language codes are automatically simplified from the form en_UK to en if +the first isn't available. +@item Ready to use inside Go templates. +@item Objects are serializable to []byte to store them in cache. +@item Support for Go Modules. +@end itemize") + (license license:expat))) + (define-public go-github-com-lestrrat-go-envload (package (name "go-github-com-lestrrat-go-envload") @@ -4956,6 +9740,32 @@ 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-dedent + (package + (name "go-github-com-lithammer-dedent") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lithammer/dedent") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zqdlz3csraphk12q91vmv5zhap3abscjn9v725d8r55qblwrvs0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lithammer/dedent")) + (home-page "https://github.com/lithammer/dedent") + (synopsis "Remove any common leading whitespace from multiline strings") + (description + "This package provides a functionality to remove common leading +whitespace from multiline strings. Inspired by +@url{https://docs.python.org/3/library/textwrap.html#textwrap.dedent,(code +textwrap.dedent)} in Python.") + (license license:expat))) + (define-public go-github-com-lithammer-fuzzysearch (package (name "go-github-com-lithammer-fuzzysearch") @@ -5088,6 +9898,128 @@ Printf/Sprintf etc.") (native-inputs (list go-github-com-stretchr-testify)))) +(define-public go-github-com-lucasb-eyer-go-colorful + (package + (name "go-github-com-lucasb-eyer-go-colorful") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lucasb-eyer/go-colorful") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08c3fkf27r16izjjd4w94xd1z7w1r4mdalbl53ms2ka2j465s3qs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lucasb-eyer/go-colorful")) + (propagated-inputs + (list go-golang-org-x-image)) + (home-page "https://github.com/lucasb-eyer/go-colorful") + (synopsis "Library for playing with colors in Go") + (description + "The colorful package provides a library for using colors in Go. +It stores colors in RGB and provides methods for converting these to various +color spaces.") + (license license:expat))) + +(define-public go-github-com-lunixbochs-vtclean + (package + (name "go-github-com-lunixbochs-vtclean") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lunixbochs/vtclean") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jqn33l1kzy4dk66zbvxz7rlgkgg34s9mhc8z0lrz0i88466zhd8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lunixbochs/vtclean")) + (home-page "https://github.com/lunixbochs/vtclean") + (synopsis "Filter out terminal escape sequences") + (description + "The @code{vtclean} provides the @command{vtclean} command and a library +designed to clean up raw terminal output by stripping escape sequences, +optionally preserving color.") + (license license:expat))) + +(define-public go-github-com-lyft-protoc-gen-star-v2 + (package + (name "go-github-com-lyft-protoc-gen-star-v2") + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lyft/protoc-gen-star") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c0w7xlarzkmbfsxdknakmnm562q3whxgs3ck3icwrva3dim94qc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lyft/protoc-gen-star/v2" + #:test-flags + #~(list "-skip" + (string-join + (list "TestGraph_Bidirectional" + "TestGraph_Bidirectional_Messages_Enums" + "TestGraph_Bidirectional_Recursive" + "TestGraph_Extensions" + "TestGraph_FDSet" + "TestGraph_Messages" + "TestGraph_Packageless" + "TestGraph_Services" + "TestGraph_SourceCodeInfo") + "|")) + ;; XXX: To enable all tests require more complex set up, check how to + ;; enable most of them. + #:test-subdirs #~(list "."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-spf13-afero + go-golang-org-x-tools + go-google-golang-org-protobuf)) + (home-page "https://github.com/lyft/protoc-gen-star") + (synopsis "Protoc plugin library for efficient proto-based code generation") + ;; The Project lacks a good README, suggesting to read source code + ;; "... the true documentation source is the code itself ...". + (description + "PG* is a protoc plugin library for efficient proto-based code +generation.") + (license license:asl2.0))) + +(define-public go-github-com-magiconair-properties + (package + (name "go-github-com-magiconair-properties") + (version "1.8.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/magiconair/properties") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05nkgdzl393505arq6hf1wxjxs2iaqkc88v5cy1s068abpl65xy0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/magiconair/properties")) + (home-page "https://github.com/magiconair/properties") + (synopsis "Java properties scanner for Go") + (description "Java properties scanner for Go") + (license license:bsd-2))) + (define-public go-github-com-makenowjust-heredoc (package (name "go-github-com-makenowjust-heredoc") @@ -5147,6 +10079,31 @@ implementing features like: @end itemize") (license license:expat)))) +(define-public go-github-com-masterminds-goutils + (package + (name "go-github-com-masterminds-goutils") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Masterminds/goutils") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09m4mbcdlv9ng3xcrmjlxi0niavby52y9nl2jhjnbx1xxpjw0jrh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Masterminds/goutils")) + (home-page "https://github.com/Masterminds/goutils/") + (synopsis "Utility functions to manipulate strings") + (description + "GoUtils provides utility functions to manipulate strings in various +ways. It is a Go implementation of some string manipulation libraries of Java +Apache Commons.") + (license license:asl2.0))) + (define-public go-github-com-masterminds-semver-v3 (package (name "go-github-com-masterminds-semver-v3") @@ -5182,7 +10139,7 @@ semantic versions. Specifically it provides the ability to: (define-public go-github-com-masterminds-sprig-v3 (package (name "go-github-com-masterminds-sprig-v3") - (version "3.2.3") + (version "3.3.0") (source (origin (method git-fetch) @@ -5191,29 +10148,21 @@ semantic versions. Specifically it provides the ability to: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gkwalx8j8h1jdhk6dz8bq8zp7vivxvcivr83dcq0h6nrn4xjqnl")))) + (base32 "1ljpizbfjh29xb4f40ipkrqriyixhdsfnd72y3pdzrjf2kbmgw9n")))) (build-system go-build-system) (arguments (list #:import-path "github.com/Masterminds/sprig/v3" - #:phases - #~(modify-phases %standard-phases - ;; Tests tries to reach Google: - ;; tpl := `{{"www.google.com" | getHostByName}}` - (add-after 'unpack 'remove-network-tests - (lambda* (#:key import-path #:allow-other-keys) - (delete-file - (string-append "src/" import-path "/network_test.go"))))))) + #:test-flags #~(list "-skip" "TestGetHostByName"))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs - (list go-github-com-google-uuid + (list go-dario-cat-mergo + go-github-com-google-uuid go-github-com-huandu-xstrings - go-github-com-imdario-mergo go-github-com-masterminds-goutils go-github-com-masterminds-semver-v3 go-github-com-mitchellh-copystructure - go-github-com-mitchellh-reflectwalk go-github-com-shopspring-decimal go-github-com-spf13-cast go-golang-org-x-crypto)) @@ -5224,19 +10173,49 @@ semantic versions. Specifically it provides the ability to: functions.") (license license:expat))) +(define-public go-github-com-masterminds-squirrel + (package + (name "go-github-com-masterminds-squirrel") + (version "1.5.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Masterminds/squirrel") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ws7p3gchw6n81sfdhpk1pbh7gsj1fm7fbjah702d7q1gbn00vja")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Masterminds/squirrel")) + (native-inputs + (list go-github-com-go-sql-driver-mysql + go-github-com-lib-pq + go-github-com-mattn-go-sqlite3 + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-lann-builder)) + (home-page "https://github.com/Masterminds/squirrel") + (synopsis "Fluent SQL generation for golang") + (description + "Package squirrel provides a fluent SQL generator.") + (license license:expat))) + (define-public go-github-com-matryer-try (package (name "go-github-com-matryer-try") - (version "1") + (version "0.0.0-20161228173917-9ac251b645a2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/matryer/try") - (commit (string-append "v" version)))) + (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "15f0m5ywihivnvwzcw0mh0sg27aky9rkywvxqszxka9q051qvsmy")))) + (base32 "19fnqmpl3p54vmxgm1hmqvdc87brqx754wf3cdhq1bj04fcbb5h9")))) (build-system go-build-system) (arguments (list @@ -5406,6 +10385,8 @@ the @code{cpan} module @code{Parse::CommandLine}.") (arguments (list #:import-path "github.com/mattn/go-sixel")) + (native-inputs + (list go-github-com-burntsushi-graphics-go)) ; for the CLI command (propagated-inputs (list go-github-com-soniakeys-quant)) (home-page "https://github.com/mattn/go-sixel") @@ -5556,6 +10537,130 @@ language, namely support for record length-delimited message streaming.") colored strings.") (license license:expat))) +(define-public go-github-com-michiwend-golang-pretty + (package + (name "go-github-com-michiwend-golang-pretty") + (version "0.0.0-20141116172505-8ac61812ea3f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/michiwend/golang-pretty") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; Upstream tests seem to be broken. + #:import-path "github.com/michiwend/golang-pretty")) + (propagated-inputs + (list go-github-com-kr-text)) + (home-page "https://github.com/michiwend/golang-pretty") + (synopsis "Pretty printing for Go values") + (description + "Package @code{pretty} provides pretty-printing for Go values. This is +useful during debugging, to avoid wrapping long output lines in the terminal. + +It provides a function, @code{Formatter}, that can be used with any function +that accepts a format string. It also provides convenience wrappers for +functions in packages @code{fmt} and @code{log}.") + (license license:expat))) + +(define-public go-github-com-michiwend-gomusicbrainz + (package + (name "go-github-com-michiwend-gomusicbrainz") + (version "0.0.0-20181012083520-6c07e13dd396") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/michiwend/gomusicbrainz") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c13hyv34l5hm7hrwrm62s2414ivx6dbbyhb7rw90bni78q441b1")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/michiwend/gomusicbrainz")) + (propagated-inputs + (list go-github-com-michiwend-golang-pretty)) + (home-page "https://github.com/michiwend/gomusicbrainz") + (synopsis "MusicBrainz WS2 client library for Golang") + (description + "Currently GoMusicBrainz provides methods to perform search and lookup +requests. Browse requests are not supported yet.") + (license license:expat))) + +(define-public go-github-com-miolini-datacounter + (package + (name "go-github-com-miolini-datacounter") + (version "1.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/miolini/datacounter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s1hxqy6666qd524rdp1dr3778davc8gx9brg9lkcjvr5l05s9wa")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/miolini/datacounter")) + (home-page "https://github.com/miolini/datacounter") + (synopsis "Counters for Go readers and writers") + (description + "The datacounter package provides counters for Go readers and writers.") + (license license:expat))) + +(define-public go-github-com-mitchellh-cli + (package + (name "go-github-com-mitchellh-cli") + (version "1.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gp1p7pqc27ps8njv49hmzsfnbxq4wg5azmqpqdw91qxw3prs3kr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mitchellh/cli")) + (propagated-inputs + (list go-github-com-armon-go-radix + go-github-com-bgentry-speakeasy + go-github-com-fatih-color + go-github-com-masterminds-sprig-v3 + go-github-com-mattn-go-isatty + go-github-com-posener-complete)) + (home-page "https://github.com/mitchellh/cli") + (synopsis "Go library for implementing command-line interfaces") + (description + "cli is a library for implementing command-line interfaces. +Features: +@itemize +@item easy sub-command based CLIs: @code{cli foo}, @code{cli bar}, etc. +@item support for nested subcommands such as @code{cli foo bar} +@item optional support for default subcommands so @code{cli} does something +other than error +@item support for shell autocompletion of subcommands, flags, and arguments +with callbacks in Go +@item automatic help generation for listing subcommands +@item automatic help flag recognition of @code{-h}, @code{--help}, etc. +@item automatic version flag recognition of @code{-v}, @code{--version} +@item helpers for interacting with the terminal, such as outputting +information, asking for input, etc. +@item use of Go interfaces/types makes augmenting various parts of the library +a piece of cake +@end itemize") + (license license:mpl2.0))) + (define-public go-github-com-mitchellh-colorstring (package (name "go-github-com-mitchellh-colorstring") @@ -5579,6 +10684,235 @@ colored strings.") "Colorstring provides functions for colorizing strings for terminal output.") (license license:expat))) +(define-public go-github-com-mitchellh-copystructure + (package + (name "go-github-com-mitchellh-copystructure") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/copystructure") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1izw243b3r03nvgnnxvk706l3s3v3q7k69kq3n4asnzjkcymq7sm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mitchellh/copystructure")) + (propagated-inputs + (list go-github-com-mitchellh-reflectwalk)) + (home-page "https://github.com/mitchellh/copystructure") + (synopsis "Go library for decoding deep copying values") + (description "@code{copystructure} is a Go library for deep copying values +in Go. + +This allows you to copy Go values that may contain reference values such as +maps, slices, or pointers, and copy their data as well instead of just their +references.") + (license license:expat))) + +(define-public go-github-com-mitchellh-go-homedir + (package + (name "go-github-com-mitchellh-go-homedir") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/go-homedir") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1")))) + (build-system go-build-system) + (arguments + (quote (#:import-path "github.com/mitchellh/go-homedir" + ;; TODO: Tests fail because it tries to access home. + #:tests? #f))) + (home-page "https://github.com/mitchellh/go-homedir") + (synopsis "Go library for detecting and expanding the user's home directory without cgo") + (description + "This is a Go library for detecting the user's home directory without the +use of @command{cgo}, so the library can be used in cross-compilation +environments. + +Usage is simple, just call homedir.Dir() to get the home directory for a user, +and homedir.Expand() to expand the @command{~} in a path to the home +directory. + +Why not just use @command{os/user}? The built-in @command{os/user} package +requires cgo on Darwin systems. This means that any Go code that uses that +package cannot cross compile. But 99% of the time the use for +@command{os/user} is just to retrieve the home directory, which we can do for +the current user without cgo. This library does that, enabling +cross-compilation.") + (license license:expat))) + +(define-public go-github-com-mitchellh-go-wordwrap + (package + (name "go-github-com-mitchellh-go-wordwrap") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/go-wordwrap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12imq66hgj8q9ii2xqdy8apc0icphh6yimjb0div1pvl3s9gn83y")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mitchellh/go-wordwrap")) + (propagated-inputs + (list go-gopkg-in-yaml-v2)) + (home-page "https://github.com/mitchellh/go-wordwrap") + (synopsis "Go library for word-wrapping strings") + (description + "This Go library automatically wraps words onto multiple lines. It's +primary goal is to format command-line output, but of course word wrapping is +a generally useful thing to do.") + (license license:expat))) + +;; XXX: This package is in maintenance mode: "This repository has been +;; archived by the owner on Jul 22, 2024. It is now read-only." +(define-public go-github-com-mitchellh-mapstructure + (package + (name "go-github-com-mitchellh-mapstructure") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/mapstructure") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10f2v143lkip8h46shd99k5yavfqpgqmd7a6y42v7szc0lcn3mff")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/mitchellh/mapstructure")) + (home-page "https://github.com/mitchellh/mapstructure") + (synopsis "Go library for decoding generic map values") + (description "Go library for decoding generic map values") + (license license:expat))) + +(define-public go-github-com-mitchellh-reflectwalk + (package + (name "go-github-com-mitchellh-reflectwalk") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/reflectwalk") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nxgb4gskzv045539vb312n0a443308dvh1akz7vi6x1l0z46zsm")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/mitchellh/reflectwalk")) + (home-page "https://github.com/mitchellh/reflectwalk/") + (synopsis "Walk a value in Go using reflection") + (description + "reflectwalk is a Go library for \"walking\" a value in Go using +reflection, in the same way a directory tree can be \"walked\" on the file +system. Walking a complex structure can allow you to do manipulations on +unknown structures such as those decoded from JSON.") + (license license:expat))) + +(define-public go-github-com-mmcdole-goxpp + (package + (name "go-github-com-mmcdole-goxpp") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mmcdole/goxpp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g9va3vhc5s60s00kyp4agfhb6kjp8j8i41vkj3lwbz5sx947mif")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mmcdole/goxpp")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/mmcdole/goxpp") + (synopsis "XML pull prser for Golang") + (description + "The @code{goxpp} library, inspired by +@url{http://www.xmlpull.org/v1/download/unpacked/doc/quick_intro.html, Java's +XML@code{PullParser}}, is a lightweight wrapper for Go's standard XML +Decoder,tailored for developers who need fine-grained control over XML +parsing.") + (license license:expat))) + +(define-public go-github-com-moby-sys-mountinfo + (package + (name "go-github-com-moby-sys-mountinfo") + (version "0.7.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moby/sys") + (commit (go-version->git-ref version + #:subdir "mountinfo")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i1phx1kk9qa4jf1i1nl23d3f6k9fn2w46274cl76cqw9hjqg868")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/moby/sys/mountinfo" + #:unpack-path "github.com/moby/sys" + #:test-flags + #~(list "-skip" (string-join + (list "TestMountedBy/not_mounted_socket" + "TestMountedBy/socket_bind-mounted_to_itself") + "|")))) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/moby/sys") + (synopsis "Retrieve information about OS mounts") + (description + "Package mountinfo provides a set of functions to retrieve information +about OS mounts as seen by the current process is available from +@code{/proc/self/mountinfo}.") + (license license:asl2.0))) + +(define-public go-github-com-moby-sys-userns + (package + (name "go-github-com-moby-sys-userns") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moby/sys") + (commit (go-version->git-ref version + #:subdir "userns")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1clr9x412gr1cq3jxf9lxblh9pkf8c42gz57wr14miy0nqsimx7j")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/moby/sys/userns" + #:unpack-path "github.com/moby/sys")) + (home-page "https://github.com/moby/sys") + (synopsis "Probe Linux user namespace") + (description + "Package userns provides utilities to detect whether we are currently +running in a Linux user namespace.") + (license license:asl2.0))) + (define-public go-github-com-modern-go-concurrent (package (name "go-github-com-modern-go-concurrent") @@ -5651,6 +10985,31 @@ standard @code{copy} will copy the pointers where @code{deepcopy} copies the values pointed to. Unexported field values are not copied.") (license license:expat))) +(define-public go-github-com-motemen-go-colorine + (package + (name "go-github-com-motemen-go-colorine") + (version "0.0.0-20180816141035-45d19169413a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/motemen/go-colorine") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/motemen/go-colorine")) + (propagated-inputs + (list go-github-com-daviddengcn-go-colortext)) + (home-page "https://github.com/motemen/go-colorine") + (synopsis "Simple colorized console logger for golang") + (description + "This package provides simple colorized console logger for golang.") + (license license:expat))) + (define-public go-github-com-mreiferson-go-options (package (name "go-github-com-mreiferson-go-options") @@ -5755,6 +11114,28 @@ Authentication Modules, PAM} application API.") ((#:import-path _ "github.com/msteinert/pam") "github.com/msteinert/pam/v2"))))) +(define-public go-github-com-mtibben-percent + (package + (name "go-github-com-mtibben-percent") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mtibben/percent") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iqivw8pigj259rj5yifibbvic70f9hb7k24a4sa967s4fj6agb6")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/mtibben/percent")) + (home-page "https://github.com/mtibben/percent") + (synopsis "Package percent escapes strings using percent-encoding") + (description + "Package percent escapes strings using percent-encoding.") + (license license:expat))) + (define-public go-github-com-muesli-ansi (package (name "go-github-com-muesli-ansi") @@ -5882,7 +11263,13 @@ helping you to transform blocks of text.") (build-system go-build-system) (arguments (list - #:import-path "github.com/muesli/termenv")) + #:import-path "github.com/muesli/termenv" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/examples"))))))) (propagated-inputs (list go-github-com-aymanbagabas-go-osc52-v2 go-github-com-lucasb-eyer-go-colorful @@ -6042,10 +11429,68 @@ multibase} (self identifying base encodings) in Go.") varints.") (license license:expat))) +(define-public go-github-com-nakagami-firebirdsql + (package + (name "go-github-com-nakagami-firebirdsql") + (version "0.9.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nakagami/firebirdsql") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "043wc8pigv0cpnzljry1vfdnwlmbfy14b5yhbkyhnndk81c4pl7s")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; tests require running database service + #:import-path "github.com/nakagami/firebirdsql")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-kardianos-osext + go-github-com-shopspring-decimal + go-gitlab-com-nyarla-go-crypt + go-golang-org-x-crypto + go-golang-org-x-text + go-modernc-org-mathutil)) + (home-page "https://github.com/nakagami/firebirdsql") + (synopsis "Firebird RDBMS sql driver for Golang") + (description + "Package firebird provides database/sql driver for +@url{https://firebirdsql.org/, Firebird} RDBMS.") + (license license:expat))) + +(define-public go-github-com-nathan-osman-go-sunrise + (package + (name "go-github-com-nathan-osman-go-sunrise") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nathan-osman/go-sunrise") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "017zwzx05r5spxcs07dp6bnh7waknzsd819k7aqd8kr819v3x9in")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/nathan-osman/go-sunrise")) + (home-page "https://github.com/nathan-osman/go-sunrise") + (synopsis "Calculate sunrise and sunset times in Go") + (description + "This package provides a Go library for calculating sunrise and +sunset times from geographical coordinates and a date.") + (license license:expat))) + (define-public go-github-com-nats-io-nats-go (package (name "go-github-com-nats-io-nats-go") - (version "1.32.0") + (version "1.38.0") (source (origin (method git-fetch) @@ -6054,15 +11499,22 @@ varints.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "08b3n5mdpxvn9hipz0j001bp5r67i43cqji9x9dyzikypqdfg38k")))) + (base32 "1b21sxzds2x5a8b13hmf5n1pf1bf770ky7q12147gqq7vsw39fa1")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/nats-io/nats.go")) - (propagated-inputs (list go-golang-org-x-text - go-github-com-nats-io-nuid - go-github-com-nats-io-nkeys - go-github-com-klauspost-compress)) + #:import-path "github.com/nats-io/nats.go" + ;; Most tests in "test" directory fail to set up, limit to project's + ;; root tests. + #:test-subdirs #~(list "."))) + (native-inputs + (list go-github-com-nats-io-jwt-v2)) + (propagated-inputs + (list go-github-com-klauspost-compress + go-github-com-nats-io-nkeys + go-github-com-nats-io-nuid + go-golang-org-x-text + go-google-golang-org-protobuf)) ; for encoders (home-page "https://github.com/nats-io/nats.go") (synopsis "Go Client for NATS server") (description @@ -6092,6 +11544,30 @@ varints.") very fast, and tries to be entropy pool friendly.") (license license:asl2.0))) +(define-public go-github-com-ncruces-go-strftime + (package + (name "go-github-com-ncruces-go-strftime") + (version "0.1.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ncruces/go-strftime") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rmr44m8mj5w9j1sy4c24b3n55lx2gwz1z3lb2g3p4qw87wv0j2g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ncruces/go-strftime")) + (home-page "https://github.com/ncruces/go-strftime") + (synopsis "Implementation of strftime/strptime for Golang") + (description + "Package strftime provides strftime/strptime compatible time formatting +and parsing.") + (license license:expat))) + (define-public go-github-com-neurosnap-sentences (package (name "go-github-com-neurosnap-sentences") @@ -6146,6 +11622,32 @@ list of sentences.") pretty printed rendering in Golang.") (license license:expat))) +(define-public go-github-com-nsf-termbox-go + (package + (name "go-github-com-nsf-termbox-go") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nsf/termbox-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n5jwnx53nkjvq8rcqzv2scs532iq9w06pd83w6cipniccqp4m2i")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/nsf/termbox-go")) + (propagated-inputs + (list go-github-com-mattn-go-runewidth)) + (home-page "https://github.com/nsf/termbox-go") + (synopsis "@code{termbox} provides a minimal API for text-based user interfaces") + (description + "Termbox is a library that provides a minimalistic API which allows the +programmer to write text-based user interfaces.") + (license license:expat))) + (define-public go-github-com-nsqio-go-diskqueue (package (name "go-github-com-nsqio-go-diskqueue") @@ -6195,6 +11697,36 @@ queue.") NSQ protocol @url{https://nsq.io/}.") (license license:expat))) +(define-public go-github-com-nxadm-tail + (package + (name "go-github-com-nxadm-tail") + (version "1.4.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nxadm/tail") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s8lawq661g8qqf7c1cip5l60cm2138b125jgmv9h548ji9g5yqx")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/nxadm/tail")) + (propagated-inputs + (list go-github-com-fsnotify-fsnotify + go-gopkg-in-tomb-v1)) + (home-page "https://github.com/nxadm/tail") + (synopsis "Go implementation of the functionality of @command{tail -f}") + (description + "This package provides a Go library for reading from continuously +updating files, like @command{tail -f}.") + (license license:expat))) + (define-public go-github-com-oklog-run (package (name "go-github-com-oklog-run") @@ -6241,6 +11773,8 @@ goroutines as a unit whole.") (arguments (list #:import-path "github.com/oklog/ulid")) + (native-inputs + (list go-github-com-pborman-getopt-v2)) ; for CLI (home-page "https://github.com/oklog/ulid") (synopsis "Universally Unique Lexicographically Sortable Identifier in Golang") (description @@ -6282,6 +11816,72 @@ millisecond) (list #:import-path "github.com/oklog/ulid/v2")))) +(define-public go-github-com-olekukonko-tablewriter + (package + (name "go-github-com-olekukonko-tablewriter") + (version "0.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/olekukonko/tablewriter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zhnrih2px6jm8nxzkz8s7va3lj03bzwxim8wjba9zh7i78bp67z")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/olekukonko/tablewriter")) + (propagated-inputs + (list go-github-com-mattn-go-runewidth)) + (home-page "https://github.com/olekukonko/tablewriter/") + (synopsis "Generate ASCII table") + (description "This package generates ASCII tables. Features: +@itemize +@item automatic Padding +@item support Multiple Lines +@item supports Alignment +@item support Custom Separators +@item automatic Alignment of numbers and percentage +@item write directly to http , file etc via @code{io.Writer} +@item read directly from CSV file +@item optional row line via @code{SetRowLine} +@item normalise table header +@item make CSV Headers optional +@item enable or disable table border +@item set custom footer support +@item optional identical cells merging +@item set custom caption +@item optional reflowing of paragrpahs in multi-line cells +@end itemize") + (license license:expat))) + +(define-public go-github-com-olekukonko-ts + (package + (name "go-github-com-olekukonko-ts") + (version "0.0.0-20171002115256-78ecb04241c0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/olekukonko/ts") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k88n5rvs5k5zalbfa7c71jkjb8dhpk83s425z728qn6aq49c978")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; inappropriate ioctl for device. + #:import-path "github.com/olekukonko/ts")) + (home-page "https://github.com/olekukonko/ts/") + (synopsis "Simple Go application to get the size of the terminal") + (description + "This package provides a simple Go application to get the size of the +terminal.") + (license license:expat))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") @@ -6309,6 +11909,63 @@ syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger.") (license license:bsd-3))) +(define-public go-github-com-opencontainers-go-digest + (package + (name "go-github-com-opencontainers-go-digest") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/opencontainers/go-digest") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i5acjajvr6hi9zb7gxwifd8w28y884cv7cx36adj8lngj647xbi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/opencontainers/go-digest")) + (home-page "https://github.com/opencontainers/go-digest") + (synopsis "Common digest package used across the container ecosystem") + (description + "Package digest provides a generalized type to opaquely represent message +digests and their operations within the registry. The Digest type is designed +to serve as a flexible identifier in a content-addressable system. More +importantly, it provides tools and wrappers to work with hash.Hash-based +digests with little effort.") + (license (list license:asl2.0 license:cc-by-sa4.0)))) + +(define-public go-github-com-opencontainers-image-spec + (package + (name "go-github-com-opencontainers-image-spec") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/opencontainers/image-spec") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "108jws0i4kbawcihprj3wxp3yqv7nrynkwzwmbz42sx8dmbfq0kc")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/opencontainers/image-spec")) + (propagated-inputs + (list go-github-com-opencontainers-go-digest + go-github-com-russross-blackfriday + go-github-com-xeipuuv-gojsonreference + go-github-com-xeipuuv-gojsonschema)) + (home-page "https://github.com/opencontainers/image-spec") + (synopsis "OCI Image Format Specification") + (description + "The OCI Image Format project creates and maintains the software shipping +container image format spec (OCI Image Format).") + (license license:asl2.0))) + ;; XXX: Find a way to source from specification-runtime-spec. (define-public go-github-com-opencontainers-runtime-spec (package @@ -6338,6 +11995,31 @@ levels per backend and logger.") specification-runtime-spec.") (license license:asl2.0))) +(define-public go-github-com-opencontainers-selinux + (package + (name "go-github-com-opencontainers-selinux") + (version "1.11.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/opencontainers/selinux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19j92lj9037d94lsls97b9d6cr0y8qavi8rampyawlykcp7gknqz")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/opencontainers/selinux")) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/opencontainers/selinux") + (synopsis "Common SELinux implementation") + (description + "Common SELinux package used across the container ecosystem.") + (license license:asl2.0))) + (define-public go-github-com-openhistogram-circonusllhist (package (name "go-github-com-openhistogram-circonusllhist") @@ -6449,6 +12131,67 @@ included in this package.") "This package implments recursive copy functinoality for directory.") (license license:expat))) +(define-public go-github-com-outcaste-io-ristretto + (package + (name "go-github-com-outcaste-io-ristretto") + (version "0.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/outcaste-io/ristretto") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07ndjrblmj9b3ghn10h040zvzf2i3mlzvfziklcqdkhxbr1hf1rq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/outcaste-io/ristretto")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cespare-xxhash-v2 + go-github-com-dgryski-go-farm + go-github-com-dustin-go-humanize + go-github-com-pkg-errors + go-go-uber-org-atomic + go-golang-org-x-sys)) + (home-page "https://github.com/outcaste-io/ristretto") + (synopsis "Memory-bound Go cache") + (description + "Ristretto is a fast, fixed size, in-memory cache with a dual focus on +throughput and hit ratio performance. It's a fork of +@code{dgraph-io/ristretto} project.") + (license license:asl2.0))) + +(define-public go-github-com-patrickmn-go-cache + (package + (name "go-github-com-patrickmn-go-cache") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/patrickmn/go-cache") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10020inkzrm931r4bixf8wqr9n39wcrb78vfyxmbvjavvw4zybgs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/patrickmn/go-cache")) + (home-page "https://github.com/patrickmn/go-cache") + (synopsis "In-memory key:value store/cache Golang library") + (description + "go-cache is an in-memory key:value store/cache similar to Memcached that +is suitable for applications running on a single machine. Its major advantage +is that, being essentially a thread-safe @code{map[string]interface{}} with +expiration times, it doesn't need to serialize or transmit its contents over +the network.") + (license license:expat))) + (define-public go-github-com-pbnjay-memory (let ((commit "7b4eea64cf580186c0eceb10dc94ba3a098af46c") (revision "2")) @@ -6476,6 +12219,57 @@ memory accessible to the kernel. It does not account for memory used by other processes.") (license license:bsd-3)))) +(define-public go-github-com-pborman-getopt + (package + (name "go-github-com-pborman-getopt") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pborman/getopt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sa66n392hzqbahn47grbjyaasvpklnn4s1wkzs1kdwrfdd62kfa")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/pborman/getopt/v2 + (delete-file-recursively "v2"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pborman/getopt")) + (home-page "https://github.com/pborman/getopt") + (synopsis "Getopt style option parsing for Go") + (description + "This package provides traditional getopt processing for implementing +programs that use traditional command lines.") + (license license:bsd-3))) + +(define-public go-github-com-pborman-getopt-v2 + (package + (inherit go-github-com-pborman-getopt) + (name "go-github-com-pborman-getopt-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pborman/getopt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sacv6g8cxfibxd3gnfjnzp7fynrnc4s2aaz5wbxivqqhvflc22l")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pborman/getopt/v2" + #:unpack-path "github.com/pborman/getopt")))) + (define-public go-github-com-pelletier-go-toml (package (name "go-github-com-pelletier-go-toml") @@ -6506,7 +12300,7 @@ processes.") (package (inherit go-github-com-pelletier-go-toml) (name "go-github-com-pelletier-go-toml-v2") - (version "2.2.2") + (version "2.2.3") (source (origin (method git-fetch) @@ -6515,14 +12309,54 @@ processes.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0gimgz33yxmvj0nmy56yy7zq4ay8j55ir8pfzmgwga7npgpzspk7")))) + (base32 "0hqxj34d49snvc2m6lxfjxks3z9sic9xbb6w49ajrqbzy953spzs")))) (build-system go-build-system) (arguments - (list #:import-path "github.com/pelletier/go-toml/v2")) + (list + #:import-path "github.com/pelletier/go-toml/v2" + #:parallel-tests? #f + #:test-flags + #~(list "-short" + "-count" "1" + "-skip" "FuzzUnmarshal") ; for benchmark + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-benchmarks + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/benchmark"))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs '()))) +(define-public go-github-com-peterbourgon-diskv + (package + (name "go-github-com-peterbourgon-diskv") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/peterbourgon/diskv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pdy8f7bkm65gx4vknwcvfa619hknflqxkdlvmf427k2mzm91gmh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/peterbourgon/diskv")) + (propagated-inputs (list go-github-com-google-btree)) + (home-page "https://github.com/peterbourgon/diskv") + (synopsis "Disk-backed key-value store") + (description + "Diskv (disk-vee) is a simple, persistent key-value store written in the +Go language. It starts with a simple API for storing arbitrary data on a +filesystem by key, and builds several layers of performance-enhancing +abstraction on top. The end result is a conceptually simple, but highly +performant, disk-backed storage system.") + (license license:expat))) + (define-public go-github-com-philhofer-fwd (package (name "go-github-com-philhofer-fwd") @@ -6548,6 +12382,30 @@ that help improve the encoding/decoding performance of some binary protocols.") (license license:expat))) +(define-public go-github-com-phpdave11-gofpdi + (package + (name "go-github-com-phpdave11-gofpdi") + (version "1.0.14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phpdave11/gofpdi") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zan4wmwd1rzrq57ynz4z5kf00b6xj0dnki123zai0j53xdngwhw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/phpdave11/gofpdi")) + (propagated-inputs (list go-github-com-pkg-errors)) + (home-page "https://github.com/phpdave11/gofpdi") + (synopsis "PDF document importer") + (description + "gofpdi allows you to import an existing PDF into a new PDF.") + (license license:expat))) + (define-public go-github-com-pierrec-cmdflag (package (name "go-github-com-pierrec-cmdflag") @@ -6564,7 +12422,13 @@ protocols.") (build-system go-build-system) (arguments (list - #:import-path "github.com/pierrec/cmdflag")) + #:import-path "github.com/pierrec/cmdflag" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) (home-page "https://github.com/pierrec/cmdflag") (synopsis "Augment the flag package with commands") (description @@ -6596,34 +12460,199 @@ on top of the standard library @code{flag} package.") Pion}.") (license license:expat))) +(define-public go-github-com-pkg-diff + (package + (name "go-github-com-pkg-diff") + (version "0.0.0-20241224192749-4e6772a4315c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/diff") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iwaa6g3mbbi1k6rw7fn85sg6lm6rlnjz07yb91hq1kll6494s18")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pkg/diff")) + (home-page "https://github.com/pkg/diff/") + (synopsis "Create and print diffs") + (description + "This package provides a Go library to create and print diffs.") + (license license:bsd-3))) + +(define-public go-github-com-pkg-term + (package + (name "go-github-com-pkg-term") + (version "1.2.0-beta.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/term") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fflh4lglbvdz8949h8spbw3vwdldgnl6zgps4ylzzr40hhyvgf5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pkg/term" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests fail with error: inappropriate ioctl for device. + (list "TestTiocmbic" + "TestTiocmbis" + "TestTiocmget" + "TestTiocmset") + "|")))) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/pkg/term") + (synopsis "Manages POSIX terminals from Golang") + (description + "Package term manages POSIX terminals. As POSIX terminals are connected +to, or emulate, a UART, this package also provides control over the various +UART and serial line parameters.") + (license license:bsd-2))) + +(define-public go-github-com-pkg-xattr + (package + (name "go-github-com-pkg-xattr") + (version "0.4.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/xattr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rxvfiwgd0z9alj4n8jympmyi68zh1swf3siim8r2h01nm4i0vqh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pkg/xattr")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/pkg/xattr") + (synopsis "Support for extended file system attributes") + (description + "Package xattr provides support for extended attributes on Linux, Darwin +and FreeBSD. Extended attributes are name:value pairs permanently associated +with files or directories. They are similar to the environment strings +associated with a process. An attribute may be defined or undefined. If +defined, its value may be empty or non-empty. You can find more details here: +@@url{https://en.wikipedia.org/wiki/Extended_file_attributes, +https://en.wikipedia.org/wiki/Extended_file_attributes}.") + (license license:bsd-2))) + +(define-public go-github-com-pmezard-go-difflib + (package + (name "go-github-com-pmezard-go-difflib") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pmezard/go-difflib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pmezard/go-difflib/difflib" + #:unpack-path "github.com/pmezard/go-difflib/")) + (home-page "https://github.com/pmezard/go-difflib") + (synopsis "Go diff implementation") + (description + "This package provides unified and context-aware diffs in Go.") + (license license:bsd-3))) + (define-public go-github-com-polydawn-refmt (package (name "go-github-com-polydawn-refmt") - (version "0.89.1-0.20231129105047-37766d95467a") + (version "0.89.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/polydawn/refmt/") - (commit (go-version->git-ref version)))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0grgzacc7igfndk1v3n1g6k4wdz6bjsiqfq3n5br2zpr7n40ha9n")))) + (base32 "1v4av75nlgvps5q2h3q6w3cmry0gg316l82zmj6sph9bp2c87621")))) (build-system go-build-system) (arguments (list #:import-path "github.com/polydawn/refmt")) (propagated-inputs - (list go-github-com-urfave-cli - go-github-com-warpfork-go-wish + (list go-github-com-go-yaml-yaml go-github-com-smartystreets-goconvey - go-gopkg-in-yaml-v2)) + go-github-com-urfave-cli + go-github-com-warpfork-go-wish)) (home-page "https://github.com/polydawn/refmt/") (synopsis "Object mapping for Go language") (description "@code{refmt} is a serialization and object-mapping library.") (license license:expat))) +(define-public go-github-com-posener-complete + (package + (name "go-github-com-posener-complete") + (version "1.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/posener/complete") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nri6hkfb0z3dkxf2fsfidr4bxbn91rjsqhg5s0c2jplf0aclppz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/posener/complete")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-hashicorp-go-multierror)) + (home-page "https://github.com/posener/complete") + (synopsis "Bash completion implemented in Golang") + (description + "Package complete provides a tool for bash writing bash completion in go, +and bash completion for the go command line.") + (license license:expat))) + +(define-public go-github-com-prometheus-community-go-runit + (package + (name "go-github-com-prometheus-community-go-runit") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus-community/go-runit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f5z10ynf67xx566ahnp5ndwxqz0i8rd8xnjiw7za6pz0wgj6wmk")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/prometheus-community/go-runit")) + (home-page "https://github.com/prometheus-community/go-runit") + (synopsis "Wrapping runit service status") + (description + "This package provides a wrapper round runit service status.") + (license license:expat))) + (define-public go-github-com-pterm-pterm (package (name "go-github-com-pterm-pterm") @@ -6693,35 +12722,44 @@ watches memory utilization and forces Go GC in accordance with a user-defined policy.") (license (list license:asl2.0 license:expat)))) -(define-public go-github-com-rcrowley-go-metrics - (let ((commit "cac0b30c2563378d434b5af411844adff8e32960") - (revision "2")) +(define-public go-github-com-reiver-go-porterstemmer + ;; The latest commit contain test fixtures. + (let ((commit "ab0f922907ea0321367a5776bd7a6c35d505d53b") + (revision "0")) (package - (name "go-github-com-rcrowley-go-metrics") - (version (git-version "0.0.0" revision commit)) + (name "go-github-com-reiver-go-porterstemmer") + (version (git-version "1.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/rcrowley/go-metrics") + (url "https://github.com/reiver/go-porterstemmer") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1hfxffnpaw49pr3wrkbzq3pnv3nyzsvk5dxndv0yz70xlrbg8a04")))) + (base32 "10inyn0hdwdp619fk9lamq7cffalq4b201s3m75dfsqrb46az1ph")))) (build-system go-build-system) (arguments - ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le - ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249 - `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system) - (%current-system)))) - #:import-path "github.com/rcrowley/go-metrics")) - (propagated-inputs - (list go-github-com-stathat-go)) - (synopsis "Go port of Coda Hale's Metrics library") - (description "This package provides a Go implementation of Coda Hale's -Metrics library.") - (home-page "https://github.com/rcrowley/go-metrics") - (license license:bsd-2)))) + (list + #:import-path "github.com/reiver/go-porterstemmer" + ;; Could not download test file (from web) from URL: + ;; [http://tartarus.org/martin/PorterStemmer/voc.txt] + #:test-flags #~(list "-skip" "TestHasSuffix|TestStemString") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "porterstemmer_has_suffix_test.go" + ;; (*testing.common).Errorf format %d has arg + ;; datum.Expected of wrong type bool + (("%d") "%t")))))))) + (home-page "https://github.com/reiver/go-porterstemmer") + (synopsis "Clean room implementation of the Porter Stemming algorithm") + (description + "This package provides a native Go clean room implementation of the +Porter Stemming Algorithm.") + (license license:expat)))) (define-public go-github-com-remeh-sizedwaitgroup (package @@ -6750,6 +12788,135 @@ 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-rifflock-lfshook + (package + (name "go-github-com-rifflock-lfshook") + (version "2.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rifflock/lfshook") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rifflock/lfshook")) + (propagated-inputs + (list go-github-com-sirupsen-logrus)) + (home-page "https://github.com/rifflock/lfshook") + (synopsis "Local File System hook for Logrus logger") + (description + "This package provides a hook for Logrus to write directly to a file on +the file system. The log levels are dynamic at instantiation of the hook, so +it is capable of logging at some or all levels.") + (license license:expat))) + +(define-public go-github-com-rivo-tview + (package + (name "go-github-com-rivo-tview") + (version "0.0.0-20241227133733-17b7edb88c57") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rivo/tview") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1w59vyvs8k5mzl7k39zpwcwwdgam2pbz0rnrfnnjgvkld1rh81dc")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/rivo/tview")) + (propagated-inputs + (list go-github-com-gdamore-tcell-v2 + go-github-com-lucasb-eyer-go-colorful + go-github-com-rivo-uniseg)) + (home-page "https://github.com/rivo/tview") + (synopsis "Rich Interactive Widgets for Terminal UIs") + (description + "The tview package implements rich widgets for terminal based user +interfaces. The widgets provided with this package are useful for data +exploration and data entry.") + (license license:expat))) + +(define-public go-github-com-rivo-uniseg + (package + (name "go-github-com-rivo-uniseg") + (version "0.4.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rivo/uniseg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nlcqyvq4vhq3hqhk84h6fp0jbqkjj88kcpcl853yr7sh4sisdxc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rivo/uniseg")) + (home-page "https://github.com/rivo/uniseg") + (synopsis "Unicode Text Segmentation for Go") + (description + "This package implements Unicode Text Segmentation according to +@url{https://unicode.org/reports/tr29/, Unicode Standard Annex #29}.") + (license license:expat))) + +(define-public go-github-com-riywo-loginshell + (package + (name "go-github-com-riywo-loginshell") + (version "0.0.0-20200815045211-7d26008be1ab") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/riywo/loginshell") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "138yvis6lipw9x02jyiz7472bxi20206bcfikcar54i3xsww9q4i")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/riywo/loginshell" + ;; Tests try to get the current user's login shell; the build + ;; user doesn't have one. + #:tests? #f)) + (home-page "https://github.com/riywo/loginshell") + (synopsis "Get the user's login shell in Go") + (description + "The loginshell package provides a Go library to get the login shell of +the current user.") + (license license:expat))) + +(define-public go-github-com-robfig-cron-v3 + (package + (name "go-github-com-robfig-cron-v3") + (version "3.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robfig/cron") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1agzbw2dfk2d1mpmddr85s5vh6ygm8kqrvfg87i9d2wqnlsnliqm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/robfig/cron/v3")) + (home-page "https://godoc.org/github.com/robfig/cron") + (synopsis "Cron library for Go") + (description + "This package provides a cron library for Go. It implements a cron spec +parser and job runner.") + (license license:expat))) + (define-public go-github-com-rogpeppe-fastuuid (package (name "go-github-com-rogpeppe-fastuuid") @@ -6791,21 +12958,9 @@ strings.") (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "github.com/rogpeppe/go-internal" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "\\_test.go$") - (("TestSimple") "OffTestSimple"))))) - ;; 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" "./...")))))))) + #:test-flags #~(list "-skip" "TestSimple/cover"))) (propagated-inputs (list go-golang-org-x-mod go-golang-org-x-sys @@ -6850,12 +13005,16 @@ Included are the following: (build-system go-build-system) (arguments (list - #:import-path "github.com/rs/zerolog")) + #:import-path "github.com/rs/zerolog" + ;; Unexpected error write unixgram @234fb->/run/systemd/journal/socket: + ;; sendmsg: no such file or directory + #:test-flags #~(list "-skip" "TestWriteReturnsNoOfWrittenBytes"))) (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)) + go-github-com-rs-xid + go-golang-org-x-tools)) (home-page "https://github.com/rs/zerolog") (synopsis "Zero Allocation JSON Logger") (description @@ -6863,6 +13022,50 @@ Included are the following: logging.") (license license:expat))) +(define-public go-github-com-russross-blackfriday + (package + (name "go-github-com-russross-blackfriday") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/russross/blackfriday") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "036028ynpq52z9snmd2b1kjzyvv6n9sg71k651ndznggnw19aamp")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/russross/blackfriday")) + (native-inputs + (list go-github-com-pmezard-go-difflib)) + (propagated-inputs + (list go-github-com-shurcool-sanitized-anchor-name)) + (home-page "https://github.com/russross/blackfriday") + (synopsis "Markdown processor in Go") + (description + "Blackfriday is a Markdown processor in Go.") + (license license:bsd-2))) + +(define-public go-github-com-russross-blackfriday-v2 + (package + (inherit go-github-com-russross-blackfriday) + (name "go-github-com-russross-blackfriday-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/russross/blackfriday") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0d1rg1drrfmabilqjjayklsz5d0n3hkf979sr3wsrw92bfbkivs7")))) + (arguments + (list #:import-path "github.com/russross/blackfriday/v2")))) + + (define-public go-github-com-ryanuber-columnize (package (name "go-github-com-ryanuber-columnize") @@ -6886,6 +13089,30 @@ logging.") "This package implements column-formatted output for Golang.") (license license:expat))) +(define-public go-github-com-sabhiram-go-gitignore + (package + (name "go-github-com-sabhiram-go-gitignore") + (version "0.0.0-20210923224102-525f6e181f06") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sabhiram/go-gitignore") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "197giv3snczvbihzvkja5pq53yw5fc516rnjm71hni8gawb8jmh3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sabhiram/go-gitignore")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/sabhiram/go-gitignore") + (synopsis "Gitignore parser for Go") + (description "A @command{.gitignore} parser for Go.") + (license license:expat))) + (define-public go-github-com-sahilm-fuzzy (package (name "go-github-com-sahilm-fuzzy") @@ -6901,8 +13128,7 @@ logging.") (base32 "15j95gm7hcmg09x1b39vc4il8bryv4v0yljvvyq5vyc6iq66qrbz")))) (build-system go-build-system) (native-inputs - (list go-github-com-kylelemons-godebug - go-github-com-kylelemons-godebug-pretty)) + (list go-github-com-kylelemons-godebug)) (arguments (list #:import-path "github.com/sahilm/fuzzy")) (home-page "https://github.com/sahilm/fuzzy") @@ -6912,6 +13138,111 @@ logging.") symbols in the style of Sublime Text, VSCode, @code{IntelliJ} IDEA et al.") (license license:expat))) +(define-public go-github-com-saracen-walker + (package + (name "go-github-com-saracen-walker") + (version "0.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/saracen/walker") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17i2zrbcp0zgwfgap555pk358wpqfa8qj8pmgwhjkzwd77nyl77g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/saracen/walker")) + (inputs + (list go-golang-org-x-sync)) + (home-page "https://github.com/saracen/walker") + (synopsis "Faster, parallel version of Go's filepath.Walk") + (description + "The @code{walker} function is a faster, parallel version, of +@code{filepath.Walk}") + (license license:expat))) + +(define-public go-github-com-satori-go-uuid + (package + (name "go-github-com-satori-go-uuid") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/satori/go.uuid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/satori/go.uuid")) + (native-inputs + (list go-gopkg-in-check-v1)) + (home-page "https://github.com/satori/go.uuid") + (synopsis "UUID package for Go language") + (description + "Package uuid provides implementation of @acronym{Universally Unique +Identifier, UUID}. Supported versions are 1, 3, 4 and 5 (as specified in +@url{https://rfc-editor.org/rfc/rfc4122.html,RFC 4122}) and version 2 (as +specified in DCE 1.1).") + (license license:expat))) + +(define-public go-github-com-savsgio-gotils + (package + (name "go-github-com-savsgio-gotils") + (version "0.0.0-20240704082632-aef3928b8a38") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/savsgio/gotils") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s3xsq4wy2xi17wq0kzw2zszj9vwndzvvmkx7pp7crx8k43x16ll")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/savsgio/gotils")) + (propagated-inputs + (list go-github-com-google-uuid + go-github-com-valyala-bytebufferpool)) + (home-page "https://github.com/savsgio/gotils") + (synopsis "Golang utilities") + (description + "Golang utilities to make your life easier with zero allocations.") + (license license:asl2.0))) + +(define-public go-github-com-schachmat-ingo + (package + (name "go-github-com-schachmat-ingo") + (version "0.0.0-20170403011506-a4bdc0729a3f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/schachmat/ingo") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gw0kddy7jh3467imsqni86cf9yq7k6vpfc0ywkbwj0zsjsdgd49")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/schachmat/ingo")) + (home-page "https://github.com/schachmat/ingo") + (synopsis "Go library to persist flags in a INI-like configuration file") + (description + "Ingo is a Go library helping you to persist flags in a INI-like +configuration file.") + (license license:isc))) + (define-public go-github-com-schollz-progressbar-v3 (package (name "go-github-com-schollz-progressbar-v3") @@ -6956,6 +13287,43 @@ detect the number of bytes written to a stream, so you can use it as a is undetermined, a customizable spinner is shown.") (license license:expat))) +(define-public go-github-com-sebdah-goldie-v2 + (package + (name "go-github-com-sebdah-goldie-v2") + (version "2.5.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sebdah/goldie") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06hyzl7cl09dfsmd0lb88icklv5g59hgs5wqgngl39fbawkbc411")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor") + (delete-file-recursively "v2/vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sebdah/goldie/v2" + #:unpack-path "github.com/sebdah/goldie" + ;; Test requires to refresh test data: "The first time running go test, + ;; with -update, without -clean". + #:test-flags #~(list "-skip" "TestCleanFunction"))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pmezard-go-difflib + go-github-com-sergi-go-diff)) + (home-page "https://github.com/sebdah/goldie") + (synopsis "Golden test utility") + (description + "Package goldie provides test assertions based on golden files. +It's typically used for testing responses with larger data bodies.") + (license license:expat))) + (define-public go-github-com-sergi-go-diff (package (name "go-github-com-sergi-go-diff") @@ -7082,6 +13450,67 @@ sensors).") ;; environment. (string-append "src/" import-path "/host/host_test.go"))))))))) +(define-public go-github-com-shurcool-sanitized-anchor-name + (package + (name "go-github-com-shurcool-sanitized-anchor-name") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/sanitized_anchor_name") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/shurcooL/sanitized_anchor_name")) + (home-page "https://github.com/shurcooL/sanitized_anchor_name") + (synopsis "Create sanitized anchor names") + (description + "This package provides a Go program for creating sanitized anchor +names.") + (license license:expat))) + +(define-public go-github-com-sirupsen-logrus + (package + (name "go-github-com-sirupsen-logrus") + (version "1.9.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sirupsen/logrus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jz7nyq88i9fwfpp7krl046q62kjn6lb9j4r932bxnpypl1hwc49")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sirupsen/logrus" + #:test-flags #~(list "-skip" "TestNestedLoggingReportsCorrectCaller") + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys #:rest args) + (unless + ;; The tests fail when run with gccgo. + (false-if-exception (search-input-file inputs "/bin/gccgo")) + (apply (assoc-ref %standard-phases 'check) args))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/sirupsen/logrus") + (synopsis "Structured, pluggable logging for Go") + (description "Logrus is a structured logger for Go, completely API +compatible with the standard library logger.") + (license license:expat))) + (define-public go-github-com-skip2-go-qrcode (package (name "go-github-com-skip2-go-qrcode") @@ -7103,6 +13532,58 @@ sensors).") (description "This package provides a QR code encoder for the Goloang.") (license license:expat))) +(define-public go-github-com-skratchdot-open-golang + (package + (name "go-github-com-skratchdot-open-golang") + (version "0.0.0-20200116055534-eef842397966") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/skratchdot/open-golang") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n6387csjn024db8wldadsiy8ljz7lk7szl6ls28fcbkax7rw86y")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f ; requires xdg-open and firefox in the PATH + #:import-path "github.com/skratchdot/open-golang")) + (home-page "https://github.com/skratchdot/open-golang") + (synopsis "Open a file, directory, or URI using the default application") + (description + "Open a file, directory, or URI using the OS's default application for +that object type. Optionally, you can specify an application to use. On +GNU/Linux, this is a proxy for the @command{xdg-open} command.") + (license license:expat))) + +(define-public go-github-com-smacker-go-tree-sitter + (package + (name "go-github-com-smacker-go-tree-sitter") + (version "0.0.0-20240827094217-dd81d9e9be82") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/smacker/go-tree-sitter") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15c7w5dv7zvhvgrf71fp5l74mjkiniqgz2cbv024pmkcwsvv48yj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/smacker/go-tree-sitter")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/smacker/go-tree-sitter") + (synopsis "Golang bindings for tree-sitter") + (description + "This package provides a bindings for +@url{https://github.com/tree-sitter/tree-sitter, tree-sitter} in Golang.") + (license license:expat))) + (define-public go-github-com-songgao-water (package (name "go-github-com-songgao-water") @@ -7178,6 +13659,82 @@ Use waterutil with it to work with TUN/TAP packets/frames.") "Quant provides an interface for image color quantizers.") (license license:expat))) +(define-public go-github-com-spf13-afero + (package + (name "go-github-com-spf13-afero") + ;; TODO: It's the latest version which does not require + ;; google.golang.org/api, pulling 400+ missing dependencies. + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/afero") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yi8p0yxiidpcg4cagxg2iyqcaapsng89rak4qyxmgails2fqg37")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/spf13/afero" + #: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" "./...")))))))) + (propagated-inputs + (list go-github-com-pkg-sftp + go-golang-org-x-text)) + (home-page "https://github.com/spf13/afero") + (synopsis "File system abstraction for Go") + (description + "This package provides a file system abstraction for Go.") + (license license:asl2.0))) + +;; XXX: For chezmoi 1.8.10, remove it when updated. +(define-public go-github-com-spf13-afero-1.1.2 + (hidden-package (package (inherit go-github-com-spf13-afero) + (name "go-github-com-spf13-afero") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/afero") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k"))))))) + +(define-public go-github-com-spf13-cast + (package + (name "go-github-com-spf13-cast") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/cast") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1l39v7zd8i8vvwls2frfxc583im5nj5x5lrdss4pcc36cd5a9vf4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/spf13/cast")) + (native-inputs + (list go-github-com-frankban-quicktest)) + (home-page "https://github.com/spf13/cast") + (synopsis "Safe and easy casting from one type to another in Go") + (description + "Safe and easy casting from one type to another in Go.") + (license license:expat))) + (define-public go-github-com-spf13-cobra (package (name "go-github-com-spf13-cobra") @@ -7194,9 +13751,13 @@ Use waterutil with it to work with TUN/TAP packets/frames.") (build-system go-build-system) (arguments (list + #:test-flags #~(list "-skip" "TestGenManSeeAlso") #:import-path "github.com/spf13/cobra")) + (native-inputs + (list go-gopkg-in-yaml-v3)) (propagated-inputs - (list go-github-com-spf13-pflag)) + (list go-github-com-go-md2man + go-github-com-spf13-pflag)) (home-page "https://github.com/spf13/cobra") (synopsis "Go library for creating CLI applications") (description @@ -7204,28 +13765,170 @@ Use waterutil with it to work with TUN/TAP packets/frames.") well as a program to generate applications and command files.") (license license:asl2.0))) -(define-public go-github-com-stathat-go - (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e") - (revision "0")) - (package - (name "go-github-com-stathat-go") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/stathat/go") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/stathat/go")) - (synopsis "Post statistics to StatHat") - (description "This is a Go package for posting to a StatHat account.") - (home-page "https://github.com/stathat/go") - (license license:expat)))) +(define-public go-github-com-spf13-jwalterweatherman + (package + (name "go-github-com-spf13-jwalterweatherman") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/jwalterweatherman") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/spf13/jwalterweatherman")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/spf13/jwalterweatherman") + (synopsis "Go logging library") + (description + "JWW is primarily a wrapper around the standard log library. It provides +a few advantages over using the standard log library alone. + +@itemize +@item ready to go out of the box +@item one library for both printing to the terminal and logging (to files) +@item really easy to log to either a temp file or a file you specify +@end itemize") + (license license:expat))) + +;; XXX: Not maintained for 3y, see +;; <https://github.com/spf13/pflag/issues/385>. +(define-public go-github-com-spf13-pflag + (package + (name "go-github-com-spf13-pflag") + (version "1.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/pflag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; Fix compatibility with go-1.19+ + ;; https://github.com/spf13/pflag/issues/368 + (substitute* "flag_test.go" + (("fmt\\.Println") "fmt.Print") + (("\\+ got\\)") "+ got + \"\\n\")") + (("\\+ defaultOutput\\)") "+ defaultOutput + \"\\n\")")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/spf13/pflag")) + (home-page "https://github.com/spf13/pflag") + (synopsis "Replacement for Go's @code{flag} package") + (description + "Pflag is library to replace Go's @code{flag} package. It implements +POSIX/GNU-style command-line options with double hyphens. It is is compatible +with the +@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html, +GNU extensions} to the POSIX recommendations for command-line options.") + (license license:bsd-3))) + +(define-public go-github-com-spf13-viper + (package + (name "go-github-com-spf13-viper") + ;; Refreshing to a newer version requires long chain of missing packages. + (version "1.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/viper") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jcsvd9l05pv10rma6zicp44q2mlvxj0qlhnf4zcg2pymb5i0hq6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/spf13/viper" + ;; Optional modules are not packed. + #:test-subdirs #~(list "."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-fsnotify-fsnotify + go-github-com-hashicorp-hcl + go-github-com-magiconair-properties + go-github-com-mitchellh-mapstructure + go-github-com-pelletier-go-toml + go-github-com-spf13-afero + go-github-com-spf13-cast + go-github-com-spf13-jwalterweatherman + go-github-com-spf13-pflag + go-github-com-subosito-gotenv + go-gopkg-in-ini-v1 + go-gopkg-in-yaml-v2)) + (home-page "https://github.com/spf13/viper") + (synopsis "Go configuration with fangs") + (description + "Viper is a complete configuration solution for Go applications including +12-Factor apps. It is designed to work within an application, and can handle +all types of configuration needs and formats.") + (license license:expat))) + +(define-public go-github-com-ssor-bom + (package + (name "go-github-com-ssor-bom") + (version "0.0.0-20170718123548-6386211fdfcf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ssor/bom") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09g5496ifwqxqclh2iw58plcwcz0sczlnxwqxzwmnl4shdl371ld")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ssor/bom")) + (home-page "https://github.com/ssor/bom") + (synopsis "Cleaning BOMs in Go") + (description + "The bom package provides small tools for cleaning BOMs from a byte array +or reader.") + (license license:expat))) + +(define-public go-github-com-stoewer-go-strcase + (package + (name "go-github-com-stoewer-go-strcase") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stoewer/go-strcase") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gqswiyj71h676lmqb78rs125iq8msklymhzw0w59afywxqsaj2z")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/stoewer/go-strcase")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/stoewer/go-strcase") + (synopsis "Convert snake case, camel case and kebap case strings") + (description + "Package strcase converts between different kinds of naming formats such +as camel case (@code{CamelCase}), snake case (@code{snake_case}) or kebab +case (@code{kebab-case}). The package is designed to work only with strings +consisting of standard ASCII letters.") + (license license:expat))) (define-public go-github-com-stretchr-objx (package @@ -7292,6 +13995,70 @@ slices, JSON and other data.") "Go library for loading environment variables from files") (license license:expat))) +(define-public go-github-com-surge-glog + (package + (name "go-github-com-surge-glog") + (version "0.0.0-20141108051140-2578deb2b95c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/surge/glog") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/surge/glog")) + (home-page "https://github.com/surge/glog") + (synopsis "Leveled execution logs for Go") + (description + "Leveled execution logs for Go.") + (license license:asl2.0))) + +(define-public go-github-com-surgebase-porter2 + (package + (name "go-github-com-surgebase-porter2") + (version "0.0.0-20150829210152-56e4718818e8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/surgebase/porter2") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/surgebase/porter2" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "cmd/suffixfsm/suffixfsm.go" + ;; fmt.Println arg list ends with redundant newline + (("fmt.Println") "fmt.Printf")))))))) + (native-inputs + (list go-github-com-agonopol-go-stem + go-github-com-dchest-stemmer + go-github-com-kljensen-snowball + go-github-com-reiver-go-porterstemmer + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-surge-glog)) + (home-page "https://github.com/surgebase/porter2") + (synopsis "Go library implementing english Porter2 stemmer") + (description + "Porter2 implements the +@url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english +Porter2 stemmer}. It is written completely using finite state machines to do +suffix comparison, rather than the string-based or tree-based approaches.") + (license license:asl2.0))) + (define-public go-github-com-syndtr-goleveldb (package (name "go-github-com-syndtr-goleveldb") @@ -7360,6 +14127,60 @@ storage system.") @url{https://en.wikipedia.org/wiki/Bloom_filter, bloom filter}.") (license license:bsd-2))) +(define-public go-github-com-tdewolff-argp + (package + (name "go-github-com-tdewolff-argp") + (version "0.0.0-20240625173203-87b04d5d3e52") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tdewolff/argp") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0d2xqir997qrxkwmbb6pn5hgl9ii0nz19f19lrgc4ixjhxxjwyy5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tdewolff/argp")) + (native-inputs + (list go-github-com-tdewolff-test)) + (propagated-inputs + (list go-github-com-go-sql-driver-mysql + go-github-com-jmoiron-sqlx + go-github-com-pelletier-go-toml)) + (home-page "https://github.com/tdewolff/argp") + (synopsis "GNU command line argument parser") + (description "Command line argument parser following the GNU standard.") + (license license:expat))) + +(define-public go-github-com-tdewolff-hasher + (package + (name "go-github-com-tdewolff-hasher") + (version "0.0.0-20210521220142-bc97f602bca2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tdewolff/hasher") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12dmxpmdy2z7c2z7qv2mv2aq4hyvjncb6fzr0ymg3y5bfjvl4dcw")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/tdewolff/hasher")) + (native-inputs + (list go-github-com-cespare-mph + go-github-com-dgryski-go-mph)) + (home-page "https://github.com/tdewolff/hasher") + (synopsis "Go known-keys fast-lookup map generator") + (description + "Hasher is a tool to automate the creation of methods and tables for a +@code{string} to @code{uint32} mapper.") + (license license:bsd-3))) + (define-public go-github-com-teambition-rrule-go (package (name "go-github-com-teambition-rrule-go") @@ -7418,6 +14239,54 @@ Included modules are: @end itemize") (license license:expat))) +(define-public go-github-com-templexxx-cpu + (package + (name "go-github-com-templexxx-cpu") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/templexxx/cpu") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bfygzjz2n8fbc9n9k7hfdnaz5mw6g4n4n1q3a0hyv33j9bvl5hh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/templexxx/cpu")) + (home-page "https://github.com/templexxx/cpu") + (synopsis "@code{internal/cpu} in Go (add AVX512)") + (description + "Package cpu implements processor feature detection used by the Go +standard library.") + (license license:bsd-3))) + +(define-public go-github-com-templexxx-xorsimd + (package + (name "go-github-com-templexxx-xorsimd") + (version "0.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/templexxx/xorsimd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01227dcf5mjc2v9f3shvqvbx3vxz89la7imjnjfmas61fcjwdlj5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/templexxx/xorsimd")) + (propagated-inputs (list go-github-com-templexxx-cpu)) + (home-page "https://github.com/templexxx/xorsimd") + (synopsis "XOR in pure Golang") + (description + "This package provides XOR bitwise code engine.") + (license license:expat))) + (define-public go-github-com-thejerf-suture (package (name "go-github-com-thejerf-suture") @@ -7701,6 +14570,506 @@ supported by the time package @end itemize") (license license:expat))) +(define-public go-github-com-tomwright-dasel-v2 + (package + (name "go-github-com-tomwright-dasel-v2") + (version "2.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TomWright/dasel") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qh32gq0x0lc4j4w326skxw4nblf2v71ychd8dk6h3ra5d22bbmy")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:embed-files #~(list ".*\\.xml") + #:import-path "github.com/tomwright/dasel/v2")) + (propagated-inputs + (list go-github-com-alecthomas-chroma-v2 + go-github-com-clbanning-mxj-v2 + go-github-com-pelletier-go-toml-v2 + go-github-com-spf13-cobra + go-golang-org-x-net + go-golang-org-x-text + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/tomwright/dasel") + (synopsis "Tool to work with JSON, TOML, YAML, XML and CSV files") + (description + "Dasel (short for data-selector) allows you to query and modify data +structures using selector strings. It's similar to @code{jq}/@code{yq}, but +supports JSON, YAML, TOML, XML and CSV with zero runtime dependencies.") + (license license:expat))) + +(define-public go-github-com-twpayne-go-shell + (package + (name "go-github-com-twpayne-go-shell") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-shell") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rnwdlhiakcigmz55fhn0wib6vi064cqxfq512mi880j9yqx4114")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/twpayne/go-shell")) + (native-inputs + (list go-github-com-alecthomas-assert-v2)) + (home-page "https://github.com/twpayne/go-shell") + (synopsis "Shell across multiple platforms") + (description + "Package @code{shell} returns a user's shell across multiple platforms.") + (license license:expat))) + +(define-public go-github-com-twpayne-go-vfs-v5 + (package + (name "go-github-com-twpayne-go-vfs-v5") + (version "5.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-vfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "152hbb6ww2f2ac2bf1d446vw8z8m22n1rsa7gvlzfa060vj9hjgx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/twpayne/go-vfs/v5")) + (native-inputs + (list go-github-com-alecthomas-assert-v2)) + (home-page "https://github.com/twpayne/go-vfs/") + (synopsis "Abstraction of the @code{os} and @code{ioutil} Go packages") + (description + "Package @code{vfs} provides an abstraction of the @code{os} and +@code{ioutil} packages that is easy to test.") + (license license:expat))) + +;; XXX: For chezmoi 2.30.1, remove it when updated. +(define-public go-github-com-twpayne-go-vfs-v4 + (hidden-package (package (inherit go-github-com-twpayne-go-vfs-v5) + (name "go-github-com-twpayne-go-vfs-v4") + (version "4.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-vfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hbrm6b0ca116h8mc8nkq04nba685wmp52pz5980ivvi86ji9b1y")))) + (arguments + (list + #:import-path "github.com/twpayne/go-vfs/v4"))))) + +;; XXX: For chezmoi 1.8.10, remove it when updated. +(define-public go-github-com-twpayne-go-vfs-1.0.1 + (hidden-package (package (inherit go-github-com-twpayne-go-vfs-v5) + (name "go-github-com-twpayne-go-vfs") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-vfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1if2wfdwl3h8v8kgrgywkwcjafcz7hynq8ikr52s11qf2n0w3gny")))) + (arguments + (list + #:import-path "github.com/twpayne/go-vfs"))))) + +(define-public go-github-com-twpayne-go-xdg-v3 + (package + (name "go-github-com-twpayne-go-xdg-v3") + (version "3.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-xdg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j8q7yzixs6jlaad0lpa8hs6b240gm2cmy0yxgnprrbpa0y2r7ln")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/twpayne/go-xdg/v3")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-twpayne-go-vfs-1.0.1)) + (home-page "https://github.com/twpayne/go-xdg/") + (synopsis "Functions related to freedesktop.org") + (description + "Package @code{xdg} provides functions related to +@uref{freedesktop.org}.") + (license license:expat))) + +(define-public go-github-com-twpayne-go-xdg-v6 + (package + (inherit go-github-com-twpayne-go-xdg-v3) + (name "go-github-com-twpayne-go-xdg-v6") + (version "6.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twpayne/go-xdg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ihpljay4waw3qss40bwd230wwpq3vm25qiy3y5yfhmybk8wr6jx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/twpayne/go-xdg/v6")) + (native-inputs + (list go-github-com-alecthomas-assert-v2)) + (propagated-inputs + (list go-github-com-twpayne-go-vfs-v5)))) + +(define-public go-github-com-txthinking-runnergroup + (package + (name "go-github-com-txthinking-runnergroup") + (version "0.0.0-20241229123329-7b873ad00768") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/txthinking/runnergroup") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0l0accx6c880smkcma0qca3c67kx8p1bc4q2zq54iv8yjy1b2h4w")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/txthinking/runnergroup")) + (home-page "https://github.com/txthinking/runnergroup") + (synopsis "Golang standard @code{sync.WaitGroup} alternative") + (description + "This package implements a similar functionality like standard +@code{sync.WaitGroup}}, the difference is if one task stops, all will be +stopped.") + (license license:expat))) + +(define-public go-github-com-urfave-cli + (package + (name "go-github-com-urfave-cli") + (version "1.22.16") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "022abbjwr3g2vbyfbdc1hg09d753hfba21b69n2nkrx168ag5ahd")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/urfave/cli")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-burntsushi-toml + go-github-com-go-md2man + go-gopkg-in-yaml-v2)) + (home-page "https://github.com/urfave/cli") + (synopsis "Simple, fast, and fun package for building command line apps in Go") + (description + "@command{cli} is a simple, fast, and fun package for building command +line apps in Go. The goal is to enable developers to write fast and +distributable command line applications in an expressive way.") + (license license:expat))) + +(define-public go-github-com-urfave-cli-v2 + (package + (inherit go-github-com-urfave-cli) + (name "go-github-com-urfave-cli-v2") + (version "2.27.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03237hi2jqvms9cif4varyap3j1dhzcf1mr809dm7ncvzk7gxg83")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/urfave/cli/v2/cmd/urfave-cli-genflags + (delete-file-recursively "cmd"))))) + (arguments + (list #:import-path "github.com/urfave/cli/v2")) + (propagated-inputs + (list go-github-com-burntsushi-toml + go-github-com-go-md2man + go-github-com-xrash-smetrics + go-gopkg-in-yaml-v3)))) + +(define-public go-github-com-valyala-bytebufferpool + (package + (name "go-github-com-valyala-bytebufferpool") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/valyala/bytebufferpool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/valyala/bytebufferpool")) + (home-page "https://github.com/valyala/bytebufferpool") + (synopsis "Anti-memory-waste byte buffer pool for Golang") + (description + "@code{bytebufferpool} implements a pool of byte buffers with +anti-fragmentation protection.") + (license license:expat))) + +(define-public go-github-com-valyala-fasttemplate + (package + (name "go-github-com-valyala-fasttemplate") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/valyala/fasttemplate") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12hywkz2mfvxzfpgabc53bm4jkxxmcssrr0k4wxzzrnv0v7mj6bj")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/valyala/fasttemplate")) + (propagated-inputs + (list go-github-com-valyala-bytebufferpool)) + (home-page "https://github.com/valyala/fasttemplate") + (synopsis "Template engine for Golang") + (description + "Package fasttemplate implements simple and fast template library.") + (license license:expat))) + +(define-public go-github-com-vburenin-ifacemaker + (package + (name "go-github-com-vburenin-ifacemaker") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vburenin/ifacemaker") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00031373i4xqrsaf7yv93czfmcf5qzn94mmqwamyjd6gpq37p1hl")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/vburenin/ifacemaker")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-jessevdk-go-flags + go-golang-org-x-tools)) + (home-page "https://github.com/vburenin/ifacemaker") + (synopsis "Generate interfaces from structure methods in Golang") + (description + "This is a development helper program that generates a Golang interface +by inspecting the structure methods of an existing @code{.go} file. The +primary use case is to generate interfaces for gomock, so that gomock can +generate mocks from those interfaces.") + (license license:asl2.0))) + +(define-public go-github-com-viant-toolbox + (package + (name "go-github-com-viant-toolbox") + (version "0.37.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/viant/toolbox") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m49nar5cwx3wqym20awh7yw4fw2bdw21m4h71bx4g688gv1kri4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/viant/toolbox" + #:test-flags #~(list "-skip" "TestCase_To|Test_NewReplayService") + #:test-subdirs #~(list "bridge/..." + "cred/..." + "data/..." + "format/..." + "sampler/..." + "secret/..." + "ssh/..." + "test/..." + "unsafe/..." + "url/..."))) + (native-inputs + (list go-github-com-stretchr-testify)) + ;; XXX: No go.mod to list dependencies, see + ;; <https://github.com/viant/toolbox/pull/51>. + (propagated-inputs + (list ;go-cloud-google-com-go-storage + ;go-github-com-aws-aws-sdk-go-aws + ;go-github-com-aws-aws-sdk-go-aws-credentials + ;go-github-com-aws-aws-sdk-go-aws-session + ;go-github-com-aws-aws-sdk-go-service-kms + ;go-github-com-aws-aws-sdk-go-service-s3 + ;go-github-com-aws-aws-sdk-go-service-s3-s3manager + ;go-github-com-aws-aws-sdk-go-service-ssm + go-github-com-go-errors-errors + go-github-com-lunixbochs-vtclean + go-github-com-pkg-errors + go-github-com-viant-xunsafe + go-golang-org-x-crypto + go-golang-org-x-oauth2 + ;go-google-golang-org-api-cloudkms-v1 + ;go-google-golang-org-api-option + go-gopkg-in-yaml-v2)) + (home-page "https://github.com/viant/toolbox") + (synopsis "Utility library for Golang") + (description + "This package provides set of utilities/abstractions developed as part of +datastore connectivity and testing (viant/dsc, viant/dsunit).") + (license license:asl2.0))) + +(define-public go-github-com-viant-toolbox-bootstrap + (hidden-package + (package + (inherit go-github-com-viant-toolbox) + (arguments + (list #:tests? #f + #:import-path "github.com/viant/toolbox" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (propagated-inputs + (list go-github-com-go-errors-errors + go-github-com-pkg-errors + go-gopkg-in-yaml-v2))))) + +(define-public go-github-com-viant-xreflect + (package + (name "go-github-com-viant-xreflect") + (version "0.7.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/viant/xreflect") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1r5y3cbs8z9frgfqrq2yv77z43fv36s7jrk49prpbfsskgpk8rh2")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; to break import cycle + #:import-path "github.com/viant/xreflect")) + (propagated-inputs + (list go-golang-org-x-mod)) + (home-page "https://github.com/viant/xreflect") + (synopsis "Golang reflection extension") + (description + "This package provides a reflection extension.") + (license license:unlicense))) + +(define-public go-github-com-viant-xunsafe + (package + (name "go-github-com-viant-xunsafe") + (version "0.9.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/viant/xunsafe") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ddf9grf7rczik9rzwmz10xagn65sn1n7mhkp7app0d3nc3xdlgs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/viant/xunsafe")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-viant-xreflect)) + (home-page "https://github.com/viant/xunsafe") + (synopsis "Faster Golang reflection") + (description + "This package provides a implementation reflection that greatly improved +performance, that is between 25 to 50x time faster than native one.") + (license license:asl2.0))) + +(define-public go-github-com-vito-midterm + (package + (name "go-github-com-vito-midterm") + (version "0.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vito/midterm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bvgw84750xfpm89hrab7pzfv1d5dy94igiqwzk5ivy4yca90ipw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/vito/midterm")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-charmbracelet-bubbletea + go-github-com-creack-pty + go-github-com-muesli-termenv + go-github-com-sebdah-goldie-v2 + go-golang-org-x-term)) + (home-page "https://github.com/vito/midterm") + (synopsis "In-memory terminal emulator") + (description + "This package implements an in-memory terminal emulator, designed to be +used as a component within a larger application for displaying logs, running +interactive shells, or rendering terminal output.") + (license license:expat))) + (define-public go-github-com-vitrun-qart (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") (revision "0")) @@ -7752,6 +15121,113 @@ encoded values to create the picture in a code with no inherent errors.") weighted moving averages}.") (license license:expat))) +(define-public go-github-com-vmihailenco-msgpack-v4 + (package + (name "go-github-com-vmihailenco-msgpack-v4") + (version "4.3.13") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vmihailenco/msgpack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08jdq8wh6i1f2avl46l5ndfrvhfl4l276hz4y1xq6agwbwrvycdy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/vmihailenco/msgpack/v4")) + (native-inputs + (list go-gopkg-in-check-v1)) + (propagated-inputs + (list go-github-com-vmihailenco-tagparser)) + (home-page "https://github.com/vmihailenco/msgpack") + (synopsis "MessagePack encoding for Golang") + (description + "This package provides implementation of MessagePack encoding for Go +programming language.") + (license license:bsd-2))) + +(define-public go-github-com-vmihailenco-msgpack-v5 + (package + (inherit go-github-com-vmihailenco-msgpack-v4) + (name "go-github-com-vmihailenco-msgpack-v5") + (version "5.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vmihailenco/msgpack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vkyyywvip0vwjmnmnmkl9hz345k54nigj2mq8fbbjx96xpgghvz")))) + (arguments + (list + #:import-path "github.com/vmihailenco/msgpack/v5")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-vmihailenco-tagparser + go-google-golang-org-appengine)))) + +(define-public go-github-com-vmihailenco-tagparser + (package + (name "go-github-com-vmihailenco-tagparser") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vmihailenco/tagparser") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13arliaz3b4bja9jj7cr5ax4zvxaxm484fwrn0q6d6jjm1l35m1k")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/vmihailenco/tagparser")) + (home-page "https://github.com/vmihailenco/tagparser") + (synopsis "Tag parser for Golang") + (description + "This package is a simple Golang implementation of tag parser.") + (license license:bsd-2))) + +(define-public go-github-com-warpfork-go-fsx + (package + (name "go-github-com-warpfork-go-fsx") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/warpfork/go-fsx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yhh42vp12hnkhlfimcab4a2df2apprnlg3ll75yr2pd0b001p5b")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/warpfork/go-fsx")) + (home-page "https://github.com/warpfork/go-fsx") + (synopsis "Extended filesystem interface for Golang") + (description + "This package, @code{fsx}, takes the style of the io/fs package, and +extends it with more features: +@itemize +@item fsx provides the ability to write files (using OpenFile, which is much +like the os package feature you're already familiar with) +@item fsx provides the ability to create directories +@item fsx provides the ability to delete files and directories +@item fsx provides features for reading symlinks, and creating them +@end itemize") + ;; This library is multiply-licensed under either of Apache 2.0 or MIT or + ;; BSD-3-Clause terms. + (license (list license:expat license:asl2.0 license:bsd-3)))) + (define-public go-github-com-whyrusleeping-base32 (package (name "go-github-com-whyrusleeping-base32") @@ -7937,6 +15413,116 @@ edges and self-loops are not permitted. @end itemize") (license license:asl2.0))) +(define-public go-github-com-xaionaro-go-unsafetools + (package + (name "go-github-com-xaionaro-go-unsafetools") + (version "0.0.0-20241024014258-a46e1ce3763e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xaionaro-go/unsafetools") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "153qlgq5sjg3gsw5v6an0mck8v5pmxf5mnys41ykp97yqp53mgcp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xaionaro-go/unsafetools")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/xaionaro-go/unsafetools") + (synopsis "Access to private/unexported fields of a structure") + (description + "This package provides function @code{FieldByName} to access to any field +(including private/unexported) of a structure.") + (license license:cc0))) + +(define-public go-github-com-xaionaro-go-bytesextra + (package + (name "go-github-com-xaionaro-go-bytesextra") + (version "0.0.0-20220103144954-846e454ddea9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xaionaro-go/bytesextra") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zggis1mdrfnashngg5hc6a6r6glcxzgj87ali7qdi02bnrl8s9i")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xaionaro-go/bytesextra")) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/xaionaro-go/bytesextra") + (synopsis "Golang library for bytes I/O") + (description + "This packae provides @code{io.ReadWriteSeeker} implementation for +@code{[]byte}.") + (license license:cc0))) + +(define-public go-github-com-xaionaro-gosrc + (let ((commit "3fdf8476a735bd7ddd90579862e2e548787b17b6") + (revision "0")) + (package + (name "go-github-com-xaionaro-gosrc") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xaionaro-go/gosrc") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j0y0r0nj39537x7yk9yfc3k6dqbw14b65ykjnbmsxkhpjjpxf3v")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xaionaro-go/gosrc")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-xaionaro-go-unsafetools + go-github-com-fatih-structtag)) + (home-page "https://github.com/xaionaro-go/gosrc") + (synopsis "Parse Go packages to handy structures") + (description + "This package just simplifies working with @code{go/*} packages to parse +a source code. Initially the package was written to simplify code +generation.") + (license license:cc0)))) + +(define-public go-github-com-xdg-go-stringprep + (package + (name "go-github-com-xdg-go-stringprep") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xdg-go/stringprep") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xvaf2xiy34ra4xz75d6kylr29jv00dnyk14mh8kmq5692n8lqvb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xdg-go/stringprep")) + (propagated-inputs + (list go-golang-org-x-text)) + (home-page "https://github.com/xdg-go/stringprep") + (synopsis "Go implementation of RFC-3454 stringprep and RFC-4013 SASLprep") + (description + "Package stringprep provides data tables and algorithms for RFC-3454, +including errata. It also provides a profile for SASLprep as defined in +RFC-4013.") + (license license:asl2.0))) + (define-public go-github-com-xhit-go-str2duration-v2 (package (name "go-github-com-xhit-go-str2duration-v2") @@ -7987,6 +15573,193 @@ similar string with weeks or days too.") "This package provides a simple ASCII tree composing tool.") (license license:expat))) +(define-public go-github-com-xo-terminfo + (package + (name "go-github-com-xo-terminfo") + (version "0.0.0-20220910002029-abceb7e1c41e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xo/terminfo") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n3b37z76rz3l74mhrvviz66xa8dqwpvc2gb6cyzql5smbcs9y3a")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/xo/terminfo")) + (native-inputs + (list go-golang-org-x-exp)) + (home-page "https://github.com/xo/terminfo") + (synopsis "Read the terminfo database in Go") + (description + "The terminfo package implements terminfo database reading for Go.") + (license license:expat))) + +(define-public go-github-com-xrash-smetrics + (package + (name "go-github-com-xrash-smetrics") + (version "0.0.0-20240521201337-686a1a2994c1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xrash/smetrics") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "057wgbz16n416zp23j5iv2lsd0nidbd92r4f1h8s3c1svkkqvk0a")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xrash/smetrics")) + (home-page "https://github.com/xrash/smetrics") + (synopsis "String metrics library") + (description + "Package smetrics provides a bunch of algorithms for calculating the +distance between strings. There are implementations for calculating the +popular Levenshtein distance (aka Edit Distance or Wagner-Fischer), as well as +the Jaro distance, the Jaro-Winkler distance, and more.") + (license license:expat))) + +(define-public go-github-com-xtgo-uuid + (package + (name "go-github-com-xtgo-uuid") + (version "0.0.0-20140804021211-a0b114877d4c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtgo/uuid") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10pmay90is5x8cv5ckcajw3s7g2rpk4ix6kl4qhq8qx05x2ivlrw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xtgo/uuid")) + (home-page "https://github.com/xtgo/uuid") + (synopsis "Go UUID parsing and generation") + (description + "Package uuid can be used to generate and parse universally unique +identifiers, a standardized format in the form of a 128 bit number.") + (license license:bsd-3))) + +(define-public go-github-com-xuanwo-go-locale + (package + (name "go-github-com-xuanwo-go-locale") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Xuanwo/go-locale") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09d68ay4kcic82xjdl9b3zi5nq0srxanprk5p32n5yxqirb0pbxd")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Xuanwo/go-locale")) + (propagated-inputs + (list go-golang-org-x-sys + go-golang-org-x-text)) + (home-page "https://github.com/Xuanwo/go-locale") + (synopsis "Locale detection in Golang") + (description + "This package provides a functionality for cross-platform locale +detection.") + (license license:asl2.0))) + +;; XXX: The latest release v0.1.1 was in 2014, master branch has more changes +;; since that time, use the latest commit. +(define-public go-github-com-yosuke-furukawa-json5 + (let ((commit "cf7bb3f354ffe5d5ad4c9b714895eab7e0498b5f") + (revision "0")) + (package + (name "go-github-com-yosuke-furukawa-json5") + (version (git-version "0.1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yosuke-furukawa/json5") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05h9ipfjr2ww8b89zq1sm1q9wfasjnmzwlxa241wppqajn3rvr7s")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/yosuke-furukawa/json5")) + (home-page "https://github.com/yosuke-furukawa/json5") + (synopsis "JSON5 implemented in Golang") + (description + "This package provides an implementation of +@url{https://github.com/yosuke-furukawa/json5, JSON5}.") + (license license:bsd-3)))) + +(define-public go-github-com-yudai-gojsondiff + (package + (name "go-github-com-yudai-gojsondiff") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yudai/gojsondiff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qnymi0027mb8kxm24mmd22bvjrdkc56c7f4q3lbdf93x1vxbbc2")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/yudai/gojsondiff" + #:test-subdirs #~(list "formatter/..."))) + (native-inputs + (list go-github-com-onsi-ginkgo)) + (propagated-inputs + (list go-github-com-sergi-go-diff + go-github-com-yudai-golcs)) + (home-page "https://github.com/yudai/gojsondiff") + (synopsis "JSON Diff and Patch for Golang") + (description + "This package implements a \"diff\" algorithm that compares two JSON +objects and generates deltas that describe the differences between them. The +deltas can be applied to a JSON object to \"patch\" them.") + (license license:expat))) + +(define-public go-github-com-yudai-golcs + (package + (name "go-github-com-yudai-golcs") + (version "0.0.0-20170316035057-ecda9a501e82") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yudai/golcs") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mx6wc5fz05yhvg03vvps93bc5mw4vnng98fhmixd47385qb29pq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/yudai/golcs")) + (home-page "https://github.com/yudai/golcs") + (synopsis "Calculate @acronym{LCS, longest common sequence} in Golang") + (description + "This package provides functions to calculate @acronym{LCS, longest +common sequence} values from two arbitrary arrays.") + (license license:expat))) + (define-public go-github-com-yuin-gopher-lua (package (name "go-github-com-yuin-gopher-lua") @@ -8029,6 +15802,97 @@ provides Go APIs that allow you to easily embed a scripting language to your Go host programs.") (license license:expat))) +(define-public go-github-com-zclconf-go-cty + (package + (name "go-github-com-zclconf-go-cty") + (version "1.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zclconf/go-cty") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rvvs9rplvh9gv90lsvwgw203ysz47qksw1xz3whhdvhn7ns8s8f")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/zclconf/go-cty")) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-apparentlymart-go-textseg-v15 + go-github-com-vmihailenco-msgpack-v5 + go-golang-org-x-text)) + (home-page "https://github.com/zclconf/go-cty") + (synopsis "Type system for dynamic values in Go applications") + (description + "@code{cty} (pronounced \"see-tie\") is a dynamic type system for +applications written in Go that need to represent user-supplied values without +losing type information. The primary intended use is for implementing +configuration languages, but other uses may be possible too.") + (license license:expat))) + +(define-public go-github-com-zclconf-go-cty-debug + (package + (name "go-github-com-zclconf-go-cty-debug") + (version "0.0.0-20240509010212-0d6042c53940") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zclconf/go-cty-debug") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0izkqnciir10zamr1ca32bmyir1d5hfyxh84dj2q39bw1sj3fs7j")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/zclconf/go-cty-debug")) + (propagated-inputs + (list go-github-com-google-go-cmp + go-github-com-zclconf-go-cty)) + (home-page "https://github.com/zclconf/go-cty-debug") + (synopsis "Debugging and inspection utilities for cty") + (description + "This package implements a functionality for debugging and inspection +utilities for cty Golang module.") + (license license:expat))) + +(define-public go-go-abhg-dev-komplete + (package + (name "go-go-abhg-dev-komplete") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abhinav/komplete") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "060ns34mcf3a39vqairv52lkxiknrv6ghpyy0prliswfhw0hwy67")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "go.abhg.dev/komplete")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-alecthomas-kong + go-github-com-buildkite-shellwords)) + (home-page "https://go.abhg.dev/komplete") + (synopsis "Shell completion support for Kong CLI parser") + (description + "This package provides a command-line completion engine for the +@url{https://github.com/alecthomas/kong, Kong CLI parser}.") + (license license:bsd-3))) + (define-public go-go-etcd-io-bbolt (package (name "go-go-etcd-io-bbolt") @@ -8063,6 +15927,73 @@ for projects that don't require a full database server such as Postgres or MySQL.") (license license:expat))) +(define-public go-go-mongodb-org-mongo-driver + (package + (name "go-go-mongodb-org-mongo-driver") + (version "1.16.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mongodb/mongo-go-driver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "160hwrk8y8h3nl9sh5v6pxnlyw1ywbssjgzb72lj0x68akgl8gff")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mongodb.org/mongo-driver" + #:test-flags + #~(list "-skip" + (string-join + ;; Some tests require running database and available network + ;; connection. + (list "TestAggregate" + "TestPollSRVRecords" + "TestPollSRVRecordsServiceName" + "TestPollingSRVRecordsLoadBalanced" + "TestPollingSRVRecordsSpec" + "TestServerHeartbeatOffTimeout" + "TestServerHeartbeatTimeout" + "TestTimeCodec" + "TestTopologyConstructionLogging" + "TestURIOptionsSpec") + "|")) + #:test-subdirs + #~(list "bson/..." "event/..." "internal/..." "tag/..." "x/...") + #:phases + #~(modify-phases %standard-phases + (delete 'build) ; no go files in project's root + (add-after 'unpack 'remove-examples-and-benchmarks + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "benchmark" + "examples" + "cmd/godriver-benchmark")))))))) + (native-inputs + (list go-github-com-aws-aws-lambda-go)) + (propagated-inputs + (list go-github-com-davecgh-go-spew + go-github-com-golang-snappy + go-github-com-google-go-cmp + go-github-com-klauspost-compress + go-github-com-montanaflynn-stats + go-github-com-xdg-go-scram + go-github-com-xdg-go-stringprep + go-github-com-youmark-pkcs8 + go-golang-org-x-crypto + go-golang-org-x-sync)) + (home-page "https://go.mongodb.org/mongo-driver") + (synopsis "MongoDB Go Driver") + (description + "This package provides a driver for @code{Mongo} data base.") + (license license:asl2.0))) + (define-public go-go-senan-xyz-flagconf (package (name "go-go-senan-xyz-flagconf") @@ -8143,7 +16074,7 @@ CPU quota.") (define-public go-go-uber-org-dig (package (name "go-go-uber-org-dig") - (version "1.17.1") + (version "1.18.0") (source (origin (method git-fetch) @@ -8152,7 +16083,7 @@ CPU quota.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "020dak2r0yykk6fkfwad2wbz73pjbbdkdamn0ir7xf2irxsmjakm")))) + (base32 "1hc56szkalhsxfnpw5iphhm1vhlq2za5049vcwi4zlcy64mjx8v9")))) (build-system go-build-system) (arguments (list @@ -8169,7 +16100,7 @@ object dependencies graph during the process startup.") (define-public go-go-uber-org-fx (package (name "go-go-uber-org-fx") - (version "1.21.0") + (version "1.23.0") (source (origin (method git-fetch) @@ -8178,11 +16109,25 @@ object dependencies graph during the process startup.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16pbqmkij02zw6xa4660k905y0r0rc50vyqhg41i2411r68jrdnn")))) + (base32 "03m26d2k9gwcdjjmwajz1fnihdjvb46l6c5ws07r8l8skcz1jx16")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - go.uber.org/fx/tools + (delete-file-recursively "tools"))))) (build-system go-build-system) (arguments (list - #:import-path "go.uber.org/fx")) + #:import-path "go.uber.org/fx" + #:test-flags + #~(list "-skip" (string-join + ;; Tests require networking set up. + (list "TestNopLoggerOptionString" + "TestRun" + "TestDeepStack") + "|")))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -8198,10 +16143,40 @@ object dependencies graph during the process startup.") applications out of reusable, composable modules.") (license license:expat))) +(define-public go-go-uber-org-fx-tools + (package + (name "go-go-uber-org-fx-tools") + (version "0.0.0-20241011173146-861011200d8a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uber-go/fx") + (commit (go-version->git-ref version + #:subdir "tools")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y9zavn5dmb5v2g2krc1apznp1fwc2zb70hlgxw4xcz2ifdwx7wz")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "go.uber.org/fx/tools" + #:unpack-path "go.uber.org/fx")) + (propagated-inputs (list go-golang-org-x-tools)) + (home-page "https://go.uber.org/fx") + (synopsis "Verify FX events") + (description + "This Package implements a Go analysis pass that verifies that an +@code{fxevent.Logger} implementation handles all known fxevent types. As a +special case for no-op or fake fxevent.Loggers, it ignores implementations +that handle none of the event types.") + (license license:expat))) + (define-public go-go-uber-org-multierr (package (name "go-go-uber-org-multierr") - (version "1.6.0") + (version "1.11.0") (source (origin (method git-fetch) @@ -8210,7 +16185,7 @@ applications out of reusable, composable modules.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "162941s8f6a9x2w04qm4qa3zz0zylwag9149hywrj9ibp2nzcsqz")))) + (base32 "1s6skad93nbsq4b0sy5dsgacrdh2kzg0p8wjlhvff49vasqsi3qx")))) (build-system go-build-system) (arguments '(#:import-path "go.uber.org/multierr")) @@ -8227,7 +16202,7 @@ applications out of reusable, composable modules.") (define-public go-go-uber-org-zap (package (name "go-go-uber-org-zap") - (version "1.24.0") + (version "1.27.0") (source (origin (method git-fetch) @@ -8236,32 +16211,40 @@ applications out of reusable, composable modules.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0lzbbs87fvixzbyv4wpl3s70vm2m0jz2jgdvrviiksc2al451qgs")))) + (base32 "1h3ml2wqmdxwqv0xdfqvf7l4wma5yd0hdfsa6189mmbhkhzn8v3m")))) (build-system go-build-system) (arguments (list #:import-path "go.uber.org/zap" + #:test-flags + #~(list "-skip" (string-join + ;; Unexpected stack trace annotation. + (list "TestAddStackSkip" + ;; Expected to find package name and file name in + ;; output. + "TestLoggerAddCaller" + "TestSugarAddCaller") + "|")) #:phases #~(modify-phases %standard-phases - ;; Remove test files requiring to download all dependencies for the - ;; current Go module and reports their module paths and locations on - ;; disk. - (add-after 'unpack 'remove-test-files - (lambda* (#:key import-path #:allow-other-keys) - (delete-file - (string-append "src/" import-path - "/stacktrace_ext_test.go"))))))) + (add-after 'unpack 'remove-examples-and-benchmarks + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "benchmarks" + ;; Remove test files requiring to download all + ;; dependencies for the current Go module and + ;; reports their module paths and locations on + ;; disk. + "stacktrace_ext_test.go" + ;; Not packed yet google.golang.org/grpc. + "zapgrpc/internal/test/grpc_test.go")))))))) (native-inputs (list go-github-com-stretchr-testify - go-go-uber-org-goleak - go-golang-org-x-lint - go-honnef-co-go-tools)) + go-go-uber-org-goleak)) (propagated-inputs - (list go-github-com-benbjohnson-clock - go-github-com-pkg-errors - go-go-uber-org-atomic - go-go-uber-org-multierr - go-gopkg-in-yaml-v2)) + (list go-go-uber-org-multierr + go-gopkg-in-yaml-v3)) (home-page "https://pkg.go.dev/go.uber.org/zap") (synopsis "Logging library for Go") (description @@ -8269,6 +16252,40 @@ applications out of reusable, composable modules.") Go.") (license license:expat))) +(define-public go-google-golang-org-appengine + (package + (name "go-google-golang-org-appengine") + (version "1.6.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/appengine") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17pbiximrd340wdx3pm1jkpsgvss80pax7hif906xglh7mj9zqx2")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - google.golang.org/appengine/v2 + (delete-file-recursively "v2"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "google.golang.org/appengine")) + (propagated-inputs + (list go-github-com-golang-protobuf + go-golang-org-x-text + go-google-golang-org-protobuf)) + (home-page "https://google.golang.org/appengine") + (synopsis "Go App Engine packages") + (description + "Package appengine provides basic functionality for Google App Engine.") + (license license:asl2.0))) + (define-public go-gopkg-in-alecthomas-kingpin-v2 (package (inherit go-github-com-alecthomas-kingpin) @@ -8277,6 +16294,88 @@ Go.") (list #:import-path "gopkg.in/alecthomas/kingpin.v2")))) +(define-public go-gopkg-in-inconshreveable-log15-v1 + (package + (name "go-gopkg-in-inconshreveable-log15-v1") + (version "1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inconshreveable/log15") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hz7vnzn4cbiqra443mhmp63ifzq15xsfnyc9jmxh2p1ngwxp2n2")))) + (build-system go-build-system) + (arguments + (list + #:test-flags #~(list "-skip" "TestFailoverHandler") + #:import-path "gopkg.in/inconshreveable/log15.v1")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://pkg.go.dev/github.com/inconshreveable/log15") + (synopsis "Structured, composable logging for Golang") + (description + "This package provides a toolkit for logging that is both human and +machine readable. It is modeled after the Go standard library's @code{io} and +@code{net/http} packages and is an alternative to the standard library's +@code{log} package.") + (license license:asl2.0))) + +(define-public go-gopkg-in-inconshreveable-log15-v2 + (package + (inherit go-gopkg-in-inconshreveable-log15-v1) + (name "go-gopkg-in-inconshreveable-log15-v2") + (version "2.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inconshreveable/log15") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "117ivm1asxw2hlwb3zf72q553ywjk00bsn21bpwi99q784ghr4wd")))) + (arguments + (list + #:import-path "gopkg.in/inconshreveable/log15.v2" + #:test-flags #~(list "-skip" "TestCallerStackHandler") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-import-path + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* (find-files "." "\\.go$") + (("github.com/inconshreveable/log15") import-path)))))))) + (propagated-inputs + (list go-github-com-go-stack-stack + go-github-com-mattn-go-colorable + go-golang-org-x-term)))) + +(define-public go-gopkg-in-inconshreveable-log15-v3 + (package + (inherit go-gopkg-in-inconshreveable-log15-v2) + (name "go-gopkg-in-inconshreveable-log15-v3") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inconshreveable/log15") + (commit (string-append "v" version "-testing.5")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14b03w7mlsac0n5ig5qc0iggii6ig9mvbiv6656r1h19vh4kmx8x")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-gopkg-in-inconshreveable-log15-v2) + ((#:import-path _) "gopkg.in/inconshreveable/log15.v3"))) + (propagated-inputs + (list go-github-com-go-stack-stack + go-github-com-mattn-go-colorable + go-golang-org-x-term)))) + (define-public go-gopkg-in-ini-v1 (package (name "go-gopkg-in-ini-v1") @@ -8337,6 +16436,57 @@ Go.") (package-arguments go-github-com-op-go-logging) ((#:import-path _) "gopkg.in/op/go-logging.v1"))))) +(define-public go-gopkg-in-vmihailenco-msgpack-v2 + (package + (name "go-gopkg-in-vmihailenco-msgpack-v2") + (version "2.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vmihailenco/msgpack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08rcdnshc252nmlxkswx8xgiwr2ry7cq806gcw1836b00hwlwmmz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/vmihailenco/msgpack.v2" + #:test-flags #~(list "-skip" "TestTypes"))) + (native-inputs + (list go-gopkg-in-check-v1)) + (home-page "https://msgpack.uptrace.dev/") + (synopsis "MessagePack encoding for Golang") + (description + "This package provides implementation of MessagePack encoding for Go +programming language.") + (license license:bsd-2))) + +(define-public go-gopkg-in-warnings-v0 + (package + (name "go-gopkg-in-warnings-v0") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-warnings/warnings") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kzj50jn708cingn7a13c2wdlzs6qv89dr2h4zj8d09647vlnd81")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/warnings.v0")) + (home-page "https://gopkg.in/warnings.v0") + (synopsis "Error handling with non-fatal errors") + (description + "Package warnings implements error handling with non-fatal +errors (warnings).") + (license license:bsd-2))) + (define-public go-gopkg-in-yaml-v2 (package (name "go-gopkg-in-yaml-v2") @@ -8374,10 +16524,113 @@ Go.") values.") (license license:asl2.0))) -(define-public go-k8s-io-klog +(define-public go-gopkg-in-yaml-v3 (package - (name "go-k8s-io-klog") - (version "1.0.0") + (name "go-gopkg-in-yaml-v3") + (version "3.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01b0wjb7yzv8wzzz2iim8mjpkwjnykcanrwiq06pkl89lr6gv8hn")) + (patches (search-patches "go-gopkg-in-yaml-v3-32bit.patch")))) + (build-system go-build-system) + (arguments + (list + #:tests? (not (target-ppc32?)) ; Test killed with quit: ran too long (11m0s). + #:import-path "gopkg.in/yaml.v3")) + (native-inputs + (list go-gopkg-in-check-v1)) + (home-page "https://gopkg.in/yaml.v3") + (synopsis "YAML reader and writer for the Go language") + (description + "This package provides a Go library for encode and decode YAML values. +The yaml package supports most of YAML 1.2, but preserves some behavior from +1.1 for backwards compatibility.") + (license license:asl2.0))) + +(define-public go-howett-net-plist + (package + (name "go-howett-net-plist") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DHowett/go-plist") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gcrxkmdj87xq01458asgxvvijrkih74ydbzfmir1p16xr9z0x39")))) + (build-system go-build-system) + (arguments + (list + #:import-path "howett.net/plist" + ;; cmd requires gopkg.in/yaml.v1 + #:test-subdirs #~(list "internal/..." "."))) + (propagated-inputs + (list go-github-com-jessevdk-go-flags + go-gopkg-in-check-v1)) + (home-page "https://github.com/DHowett/go-plist") + (synopsis "Apple property list transcoder") + (description + "This list transcoder supports encoding/decoding property lists (Apple +XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go types.") + (license license:giftware))) + +(define-public go-k8s-io-gengo-v2 + (package + (name "go-k8s-io-gengo-v2") + (version "2.0.0-20240911193312-2b36238f13e9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes/gengo") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ffwigrg92ivyb5r6g0alb4z8iydp9lkdviz3vm62gr89yw28yc7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "k8s.io/gengo/v2" + #:unpack-path "k8s.io/gengo" + #:test-flags + ;; XXX: Figure out why these tests fail. + #~(list "-skip" (string-join + (list "TestSnippetWriter" + "TestFindPackages" + "TestAlreadyLoaded" + "TestLoadPackagesInternal" + "TestLoadPackagesTo" + "TestUserRequestedPackages" + "TestAddOnePkgToUniverse" + "TestStructParse/generic" + "TestJSON") + "|")))) + (native-inputs + (list go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-spf13-pflag + go-golang-org-x-tools + go-k8s-io-klog-v2)) + (home-page "https://github.com/kubernetes/gengo") + (synopsis "Framework for building simple code generators") + (description + "This package implements a functionality for generating things based on +go files. This mechanism was first used in Kubernetes code-generator and is +split out here for ease of reuse and maintainability.") + (license license:asl2.0))) + +(define-public go-k8s-io-klog-v2 + (package + (name "go-k8s-io-klog-v2") + (version "2.130.1") (source (origin (method git-fetch) @@ -8386,19 +16639,26 @@ values.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1cgannfmldcrcksb2wqdn2b5qabqyxl9r25w9y4qbljw24hhnlvn")))) + (base32 "12q9jhxfpq75sgmdxgcz85znbgdi04ic9zy3rm0c47n24clz6z73")))) (build-system go-build-system) (arguments (list - #:import-path "k8s.io/klog" + #:import-path "k8s.io/klog/v2" + #:test-flags + #~(list "-skip" + (string-join + (list "TestDestinationsWithDifferentFlags/with_log_file_only" + "TestDestinationsWithDifferentFlags/everything_disabled" + "TestDestinationsWithDifferentFlags/with_log_dir_only" + "TestDestinationsWithDifferentFlags/with_log_dir_only_and_one_output" + "TestDestinationsWithDifferentFlags/with_log_file_and_log_dir") + "|")) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests + (add-after 'unpack 'remove-examples (lambda* (#:key tests? import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "\\_test.go$") - ;; Disable test requiring write access to creat test files. - (("TestRollover") "OffTestRollover")))))))) + (delete-file-recursively "examples"))))))) (propagated-inputs (list go-github-com-go-logr-logr)) (home-page "https://github.com/kubernetes/klog") @@ -8412,103 +16672,188 @@ also provides V-style logging controlled by the @code{-v} and @code{https://github.com/golang/glog}.") (license license:asl2.0))) -(define-public go-k8s-io-klog-v2 +(define-public go-k8s-io-utils (package - (inherit go-k8s-io-klog) - (name "go-k8s-io-klog-v2") - (version "2.130.1") + (name "go-k8s-io-utils") + (version "0.0.0-20241210054802-24370beab758") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/kubernetes/klog") + (url "https://github.com/kubernetes/utils") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "158rsq780hrzv6zb7lycjg8b2lfd00nvmx3mn4pi9byjam2y7nds")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; XXX: all of them fail with various reasons + #:import-path "k8s.io/utils" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (propagated-inputs + (list go-github-com-davecgh-go-spew + go-k8s-io-klog-v2)) + (home-page "https://github.com/kubernetes/utils") + (synopsis "Utility libraries for Golang") + (description + "This package provides a set of libraries that implementing low-level, +kubernetes-independent packages supplementing the +@url{https://pkg.go.dev/std#stdlib,Go standard libs}.") + (license license:asl2.0))) + +(define-public go-modernc-org-fileutil + (package + (name "go-modernc-org-fileutil") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/fileutil") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12q9jhxfpq75sgmdxgcz85znbgdi04ic9zy3rm0c47n24clz6z73")))) + (base32 "10q5xbik9yk9jw2ziq1fw0hpjfbv5h3qm7rlxlkwj0qxyyb7b9bi")))) (build-system go-build-system) (arguments (list - #:import-path "k8s.io/klog/v2")))) + #:import-path "modernc.org/fileutil")) + (propagated-inputs + (list go-modernc-org-mathutil)) + (home-page "https://gitlab.com/cznic/fileutil") + (synopsis "File utility functions") + (description "Package fileutil collects some file utility functions.") + (license license:bsd-3))) -(define-public go-go-mongodb-org-mongo-driver +(define-public go-modernc-org-lexer (package - (name "go-go-mongodb-org-mongo-driver") - (version "1.16.1") + (name "go-modernc-org-lexer") + (version "1.0.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/mongodb/mongo-go-driver") + (url "https://gitlab.com/cznic/lexer") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "160hwrk8y8h3nl9sh5v6pxnlyw1ywbssjgzb72lj0x68akgl8gff")) - (snippet - #~(begin (use-modules (guix build utils)) - (delete-file-recursively "vendor"))))) + (base32 "00ahagg81vbm8k9an5l8gn8plr7d53955v54mv0g811hfqxacja2")))) (build-system go-build-system) (arguments (list - #:import-path "go.mongodb.org/mongo-driver" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'remove-examples-and-benchmarks - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (for-each delete-file-recursively - (list "benchmark" - "examples" - "cmd/godriver-benchmark"))))) - (add-before 'check 'disable-failing-tests - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - (substitute* (find-files "." "\\_test.go$") - ;; Some tests require running database and available network connection. - (("TestAggregate") "OffTestAggregate") - (("TestPollSRVRecords") "OffTestPollSRVRecords") - (("TestPollSRVRecordsServiceName") - "OffTestPollSRVRecordsServiceName") - (("TestPollingSRVRecordsLoadBalanced") - "OffTestPollingSRVRecordsLoadBalanced") - (("TestPollingSRVRecordsSpec") - "OffTestPollingSRVRecordsSpec") - (("TestServerHeartbeatOffTimeout") - "OffTestServerHeartbeatTimeout") - (("TestServerHeartbeatTimeout") - "OffTestServerHeartbeatTimeout") - (("TestTimeCodec") "OffTestTimeCodec") - (("TestTopologyConstructionLogging") - "OffTestTopologyConstructionLogging") - (("TestURIOptionsSpec") "OffTestURIOptionsSpec"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (for-each - (lambda (package) - (invoke "go" "test" (string-append "./" package "/..."))) - (list "bson" "event" "internal" "tag" "x"))))))))) - (native-inputs - (list go-github-com-aws-aws-lambda-go)) + #:import-path "modernc.org/lexer")) (propagated-inputs - (list go-github-com-davecgh-go-spew - go-github-com-golang-snappy - go-github-com-google-go-cmp - go-github-com-klauspost-compress - go-github-com-montanaflynn-stats - go-github-com-xdg-go-scram - go-github-com-xdg-go-stringprep - go-github-com-youmark-pkcs8 - go-golang-org-x-crypto - go-golang-org-x-sync)) - (home-page "https://go.mongodb.org/mongo-driver") - (synopsis "MongoDB Go Driver") + (list go-golang-org-x-exp + go-modernc-org-fileutil)) + (home-page "https://gitlab.com/cznic/lexer") + (synopsis "Run time generator of action less scanners") (description - "This package provides a driver for @code{Mongo} data base.") - (license license:asl2.0))) + "Package lexer provides generating actionless scanners (lexeme +recognizers) at run time.") + (license license:bsd-3))) + +(define-public go-modernc-org-memory + (package + (name "go-modernc-org-memory") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/memory") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066pzk0i1jxahialzp97ra0k0f191y1756sgppiw50zkpnpwzjxr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/memory")) + (propagated-inputs + (list go-modernc-org-mathutil)) + (home-page "https://gitlab.com/cznic/memory") + (synopsis "Memory allocator implementation") + (description "Package memory implements a memory allocator.") + (license license:bsd-3))) + +(define-public go-modernc-org-opt + (package + (name "go-modernc-org-opt") + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/opt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02jih8lgcyrm2v0vagdmq298rvhqkwi4pswg4nwlksdiayw356p5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/opt")) + (home-page "https://gitlab.com/cznic/opt") + (synopsis "Command-line flag parsing") + (description "Package opt implements command-line flag parsing.") + (license license:bsd-3))) + +(define-public go-modernc-org-sortutil + (package + (name "go-modernc-org-sortutil") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/sortutil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01s9vil8lvaz526x6q9f12h6vpc3jc8zvpag7knz1bdx9b15yljc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/sortutil")) + (native-inputs + (list go-modernc-org-mathutil)) + (home-page "https://gitlab.com/cznic/sortutil") + (synopsis "Sort utility library") + (description + "Package sortutil provides utilities supplementing the standard +@code{sort} package.") + (license license:bsd-3))) + +(define-public go-modernc-org-strutil + (package + (name "go-modernc-org-strutil") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cznic/strutil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rk76c1n189hzg3kfab8pfvssa1h9v0vxk5jxy8pk32rqic0hdim")))) + (build-system go-build-system) + (arguments + (list + #:import-path "modernc.org/strutil" + ;; Cannot determine import path using GOPATH. + #:test-flags #~(list "-skip" "TestImportPath"))) + (native-inputs + (list go-modernc-org-mathutil)) + (home-page "https://gitlab.com/cznic/strutil") + (synopsis "Strings utility library for Golang") + (description + "Package strutil collects utils supplemental to the standard +@code{strings} package.") + (license license:bsd-3))) (define-public go-mvdan-cc-editorconfig (package @@ -8536,6 +16881,141 @@ 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-mvdan-cc-gofumpt + (package + (name "go-mvdan-cc-gofumpt") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mvdan/gofumpt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sz58av4jg0q26y1s4pznnvrzp1gi8brz9zw8aa46pzdmjw394wq")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:build-flags + ;; Gofumpt formats Go files, and therefore modifies them. To help the + ;; developers diagnose issues, it replaces any occurrence of a + ;; `//gofumpt:diagnose` comment with some debugging information which + ;; includes the module version. + #~(list (format #f "-ldflags=-X ~s" + (string-append "main.version=" #$version " (GNU Guix)"))) + #:import-path "mvdan.cc/gofumpt" + #:skip-build? #t + #:test-flags #~(list "-skip" "TestScript/diagnose") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-fallback-version + ;; In the event gofumpt was built without module support, it falls + ;; back to a string "(devel)". Since our build system does not yet + ;; support modules, we'll inject our version string instead, since + ;; this is more helpful. + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "internal/version/version.go" + (("^const fallbackVersion.+") + (format #f "const fallbackVersion = ~s~%" + (string-append #$version " (GNU Guix)")))))))))) + (native-inputs + (list go-github-com-go-quicktest-qt)) + (propagated-inputs + (list go-github-com-google-go-cmp + go-github-com-rogpeppe-go-internal + go-golang-org-x-mod + go-golang-org-x-sync + go-golang-org-x-sys + go-golang-org-x-tools)) + (home-page "https://mvdan.cc/gofumpt/") + (synopsis "Formats Go files with a stricter ruleset than gofmt") + (description + "Enforce a stricter format than @code{gofmt}, while being backwards +compatible. That is, @code{gofumpt} is happy with a subset of the formats +that @code{gofmt} is happy with.") + (license license:bsd-3))) + +(define-public go-mvdan-cc-sh-v3 + (package + (name "go-mvdan-cc-sh-v3") + (version "3.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mvdan/sh") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ryqrhdjvj0ll88fk6dh63a5hjl0rpww3x8kmzqfnf5r83jdz3sh")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:skip-build? #t ; we need just lib here + #:import-path "mvdan.cc/sh/v3" + #:test-flags + #~(list "-skip" (string-join + ;; XXX: Check why these tests fail. + (list "TestRunnerRun/#279" + "TestRunnerRun/#281" + "TestRunnerRun/#282" + "TestRunnerRun/#289" + "TestRunnerRun/#960" + "TestRunnerRun/#989" + "TestRunnerRun/#990" + "TestRunnerRun/#991" + "TestScript/flags") + "|")))) + (native-inputs + (list go-github-com-go-quicktest-qt + go-github-com-google-go-cmp)) + (propagated-inputs + (list go-github-com-creack-pty + go-github-com-google-renameio-v2 + go-github-com-muesli-cancelreader + go-github-com-rogpeppe-go-internal + go-golang-org-x-sync + go-golang-org-x-sys + go-golang-org-x-term + go-mvdan-cc-editorconfig)) + (home-page "https://mvdan.cc/sh") + (synopsis "Shell formatter with bash support") + (description + "This package provides a Golang library implementing a shell parser, +formatter, and interpreter with bash support.") + (license license:bsd-3))) + +(define-public go-nullprogram-com-x-optparse + (package + (name "go-nullprogram-com-x-optparse") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/skeeto/optparse-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yzpzlhmxdm8gd8ikh9c91qmshjp1jg49l0qsslmm432wk19zym9")))) + (build-system go-build-system) + (arguments + (list + #:import-path "nullprogram.com/x/optparse")) + (home-page "https://nullprogram.com/x/optparse/") + (synopsis "Traditional long option parser for Go") + (description + "Package optparse parses command line arguments very similarly to GNU +@code{getopt_long()}. It supports long options and optional arguments, but +does not permute arguments. It is intended as a replacement for Go's flag +package.") + ;; License type does latterly says it' "UNLICENSE". + (license license:unlicense))) + (define-public go-rsc-io-binaryregexp (package (name "go-rsc-io-binaryregexp") @@ -8562,6 +17042,96 @@ 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-sigs-k8s-io-json + (package + (name "go-sigs-k8s-io-json") + (version "0.0.0-20241014173422-cfa47c3a1cc8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes-sigs/json") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zdb3sq333ns8m5azv4fqqy62r0vrhssxl0przicm4v1nmrxj4jh")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:import-path "sigs.k8s.io/json")) + (home-page "https://github.com/kubernetes-sigs/json") + (synopsis "JSON decoder with enchansed features") + (description + "This package provides case-sensitive, integer-preserving JSON +unmarshaling functions based on @code{encoding/json} @code{Unmarshal()}.") + (license license:asl2.0))) + +(define-public go-sigs-k8s-io-structured-merge-diff-v4 + (package + (name "go-sigs-k8s-io-structured-merge-diff-v4") + (version "4.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes-sigs/structured-merge-diff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xgi3r2xvwvxy6jc6rd5rrnib4y9b4kgpqphm4lkhgaayy3njwv3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "sigs.k8s.io/structured-merge-diff/v4" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) ; no go files in project's root + (propagated-inputs + (list go-github-com-google-go-cmp + go-github-com-google-gofuzz + go-github-com-json-iterator-go + go-sigs-k8s-io-yaml)) + (home-page "https://github.com/kubernetes-sigs/structured-merge-diff") + (synopsis "Structured Merge and Diff") + (description + "This package provides a code which implements the Kubernetes \"apply\" +operation.") + (license license:asl2.0))) + +(define-public go-sigs-k8s-io-yaml + (package + (name "go-sigs-k8s-io-yaml") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes-sigs/yaml") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yjnmpwmvlb6md3djn6qx1ag4ld7gjz7jfyz1ldml88zyb9crpqx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "sigs.k8s.io/yaml")) + (native-inputs + (list go-github-com-google-go-cmp + go-gopkg-in-check-v1)) + (home-page "https://sigs.k8s.io/yaml") + (synopsis "YAML marshaling and unmarshaling support for Go") + (description + "This package provides a Go library that first converts YAML to JSON +using @code{go-yaml} and then uses @code{json.Marshal} and +@code{json.Unmarshal} to convert to or from the struct. This means that it +effectively reuses the JSON struct tags as well as the custom JSON methods +@code{MarshalJSON} and @code{UnmarshalJSON} unlike @code{go-yaml}. + +kubernetes-sigs/yaml is a permanent fork of +@url{https://github.com/ghodss/yaml,ghodss/yaml}.") + (license (list license:expat license:bsd-3)))) + (define-public go-suah-dev-protect (package (name "go-suah-dev-protect") @@ -8710,7 +17280,7 @@ helpful utility functions, and makes testing fairly easy.") (define-public go-zgo-at-zstd (package (name "go-zgo-at-zstd") - (version "0.0.0-20240922235538-9a93b98b4725") + (version "0.0.0-20241125224656-49fafbb06ca9") (source (origin (method git-fetch) @@ -8719,21 +17289,12 @@ helpful utility functions, and makes testing fairly easy.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "06nqiv1pkqnnqa3v6rlf0qfxgfd63vi4vv36acq54dxswxhcasaz")))) + (base32 "1hwvv685vv003j4ry6b791fmz5fz0ff57pq64s9s57zqxaxn8jrv")))) (build-system go-build-system) (arguments (list #:import-path "zgo.at/zstd" - #: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" - "-skip" "TestExists" - "./...")))))))) + #:test-flags #~(list "-skip" "TestExists/4|TestDiffMatch/3"))) (home-page "https://github.com/arp242/zstd") (synopsis "Extensions to Go's standard library") (description @@ -8756,6 +17317,17 @@ library.") #:import-path "github.com/yuin/gopher-lua/cmd/glua" #:unpack-path "github.com/yuin/gopher-lua")))) +(define-public go-asmfmt + (package + (inherit go-github-com-klauspost-asmfmt) + (name "go-asmfmp") + (arguments + (list + #:tests? #f + #:install-source? #f + #:import-path "github.com/klauspost/asmfmt/cmd/asmfmt" + #:unpack-path "github.com/klauspost/asmfmt")))) + (define-public go-chroma (package (inherit go-github-com-alecthomas-chroma-v2) @@ -8775,6 +17347,32 @@ library.") " This package provides an command line interface (CLI) tool.")))) +(define-public go-csv2table + (package/inherit go-github-com-olekukonko-tablewriter + (name "go-csv2table") + (arguments + (list #:install-source? #f + #:import-path "github.com/olekukonko/tablewriter/csv2table" + #:unpack-path "github.com/olekukonko/tablewriter")) + (description + (string-append (package-description go-github-com-olekukonko-tablewriter) + "\nThis package provides a command line interface (CLI) tool.")))) + +(define-public go-fxlint + (package + (inherit go-go-uber-org-fx-tools) + (name "go-fxlint") + (arguments + (list + #:tests? #f + #:install-source? #f + #:import-path "go.uber.org/fx/tools/cmd/fxlint" + #:unpack-path "go.uber.org/fx")) + (description + (string-append (package-description go-go-uber-org-fx-tools) + " This package provides a command line interface (CLI) +linter that verifies correct usage of Fx.")))) + (define-public go-hclogvet (package (inherit go-github-com-hashicorp-go-hclog) @@ -8784,8 +17382,6 @@ tool.")))) #:import-path "github.com/hashicorp/go-hclog/hclogvet" #:unpack-path "github.com/hashicorp/go-hclog" #:install-source? #f)) - (propagated-inputs - (list go-golang-org-x-tools)) (description "@code{hclogvet} is a @code{go vet} tool for checking that the Trace/Debug/Info/Warn/Error methods on @code{hclog.Logger} are used @@ -8801,6 +17397,50 @@ correctly."))) (string-append (package-description go-zgo-at-jfmt) " This package provides a command line interface (CLI) tool.")))) +(define-public go-jsonnet + (package + (name "go-jsonnet") + (version "0.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/go-jsonnet") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qfr6yvhj33rhx1icxh99bbpngh5kwq1x7r39315y53bw216vbrz")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/google/go-jsonnet/cmd/jsonnet" + #:unpack-path "github.com/google/go-jsonnet")) + (native-inputs + (list go-github-com-fatih-color + go-github-com-sergi-go-diff + go-gopkg-in-yaml-v2 + go-sigs-k8s-io-yaml)) + (home-page "https://github.com/google/go-jsonnet") + (synopsis "Go implementation of Jsonnet") + (description + "This package provides an implementation of the @url{http://jsonnet.org/, +Jsonnet} data templating language in Go. It is a +feature-complete,production-ready implementation, compatible with the original +Jsonnet C++implementation.") + (license license:asl2.0))) + +(define-public go-ifacemaker + (package/inherit go-github-com-vburenin-ifacemaker + (name "go-ifacemaker") + (arguments + (list #:install-source? #f + #:tests? #f + #:import-path "github.com/vburenin/ifacemaker")) + (description + (string-append (package-description go-github-com-vburenin-ifacemaker) + " This package provides a command line interface (CLI) tool.")))) + (define-public go-msgio (package (inherit go-github-com-libp2p-go-msgio) @@ -8854,6 +17494,46 @@ go-github-com-tklauser-numcpus source."))) "This package provides a CLI build from the go-github-com-orisano-pixelmatch source."))) +(define-public go-porter2 + (package + (inherit go-github-com-surgebase-porter2) + (name "go-porter2") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-surgebase-porter2) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:unpack-path _) "github.com/surgebase/porter2") + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (replace 'build + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,cmd))) + (list "github.com/surgebase/porter2/cmd/compare" + "github.com/surgebase/porter2/cmd/suffixfsm" + "github.com/surgebase/porter2/cmd/switchvsmap")))) + (replace 'install + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,cmd))) + (list "github.com/surgebase/porter2/cmd/compare" + "github.com/surgebase/porter2/cmd/suffixfsm" + "github.com/surgebase/porter2/cmd/switchvsmap")))))))) + (description + (string-append (package-description go-github-com-mattn-go-sixel) + " This package provides an command line interface (CLI) +tools: +@itemize +@item @code{compare} +@item @code{suffixfsm} is a finite state machine generator for the porter2 +@item @code{switchvsmap} +@end itemize")))) + (define-public go-sentences (package (inherit go-github-com-neurosnap-sentences) @@ -8868,6 +17548,44 @@ go-github-com-orisano-pixelmatch source."))) " This package provides an command line interface (CLI) tool.")))) +(define-public go-sixel + (package + (inherit go-github-com-mattn-go-sixel) + (name "go-sixel") + (arguments + (list + #:tests? #f ; tested in the library + #:install-source? #f + #:unpack-path "github.com/mattn/go-sixel" + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,cmd))) + (list "github.com/mattn/go-sixel/cmd/goscat" + "github.com/mattn/go-sixel/cmd/gosd" + "github.com/mattn/go-sixel/cmd/gosgif" + "github.com/mattn/go-sixel/cmd/gosl" + "github.com/mattn/go-sixel/cmd/gosr")))) + (replace 'install + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,cmd))) + (list "github.com/mattn/go-sixel/cmd/goscat" + "github.com/mattn/go-sixel/cmd/gosd" + "github.com/mattn/go-sixel/cmd/gosgif" + "github.com/mattn/go-sixel/cmd/gosl" + "github.com/mattn/go-sixel/cmd/gosr"))))))) + (description + (string-append (package-description go-github-com-mattn-go-sixel) + " This package provides an command line interface (CLI) +tools.")))) + (define-public go-tengo (package (inherit go-github-com-d5-tengo-v2) @@ -8882,6 +17600,38 @@ tool.")))) "\nThis package provides an command line interface (CLI) tool.")))) +(define-public go-toml + (package + (inherit go-github-com-pelletier-go-toml-v2) + (name "go-toml") + (arguments + (list + #:tests? #f ; tested in the library + #:install-source? #f + #:unpack-path "github.com/pelletier/go-toml" + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,cmd))) + (list "github.com/pelletier/go-toml/cmd/tomljson" + "github.com/pelletier/go-toml/cmd/tomll")))) + (replace 'install + (lambda arguments + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,cmd))) + (list "github.com/pelletier/go-toml/cmd/tomljson" + "github.com/pelletier/go-toml/cmd/tomll"))))))) + (description + (string-append (package-description go-github-com-pelletier-go-toml-v2) + "\nThis package provides command line interface (CLI) +tools.")))) + (define-public go-tomlv (package (inherit go-github-com-burntsushi-toml) @@ -8907,12 +17657,92 @@ tool.")))) #:import-path "github.com/oklog/ulid/v2/cmd/ulid" #:unpack-path "github.com/oklog/ulid/v2")) (native-inputs - (list go-github-com-pborman-getopt)) + (list go-github-com-pborman-getopt-v2)) (description (string-append (package-description go-github-com-oklog-ulid) " This package provides an command line interface (CLI) tool.")))) +(define-public gofumpt + (package + (inherit go-mvdan-cc-gofumpt) + (name "gofumpt") + (arguments + (substitute-keyword-arguments + (package-arguments go-mvdan-cc-gofumpt) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:skip-build? _ #t) #f))) + (native-inputs (package-propagated-inputs go-mvdan-cc-gofumpt)) + (propagated-inputs '()) + (inputs '()))) + +(define-public gopls + (package + (name "gopls") + ;; XXX: Starting from 0.14.0 gppls needs golang.org/x/telemetry, which + ;; needs to be discussed if it may be included in Guix. + (version "0.17.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/tools") + (commit (go-version->git-ref version #:subdir "gopls")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qksn79nc94fig5bia0l8h7fzm1zbn9rvya25hwf0f18v8a0id9l")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:install-source? #f + #:import-path "golang.org/x/tools/gopls" + #:unpack-path "golang.org/x/tools" + ;; XXX: No tests in project's root, limit to some of subdris, try to + ;; enable more. + #:test-subdirs + #~(list "internal/protocol/..." + "internal/util/..." + "internal/vulncheck/...") + #:phases + #~(modify-phases %standard-phases + (add-before 'unpack 'override-tools + (lambda _ + ;; XXX: Write a procedure deleting all but current module source + ;; to cover case with monorepo. + (delete-file-recursively "src/golang.org/x/tools")))))) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-jba-templatecheck + go-golang-org-x-mod + go-golang-org-x-sync + go-golang-org-x-telemetry + go-golang-org-x-text + go-golang-org-x-vuln + go-gopkg-in-yaml-v3 + go-honnef-co-go-tools + go-mvdan-cc-gofumpt + go-mvdan-cc-xurls-v2)) + (home-page "https://golang.org/x/tools/gopls") + (synopsis "Official language server for the Go language") + (description + "Pronounced ``Go please'', this is the official Go language server +developed by the Go team. It provides IDE features to any LSP-compatible +editor.") + (license license:bsd-3))) + +(define-public misspell + (package + (inherit go-github-com-client9-misspell) + (name "misspell") + (arguments + (list + #:install-source? #t + #:tests? #f + #:import-path "github.com/client9/misspell/cmd/misspell" + #:unpack-path "github.com/client9/misspell")))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b1ea9e5a28..6a8a288314 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -288,6 +288,23 @@ in the style of communicating sequential processes (@dfn{CSP}).") (strip-keyword-arguments '(#:tests? #:system) (package-arguments go-1.4)) ((#:phases phases) `(modify-phases ,phases + ;; Time bomb in TLS tests: "Most of the test certificates + ;; (e.g. testRSACertificate, testRSACertificateIssuer, + ;; testRSA2048CertificateIssuer) have a not after of Jan 1 + ;; 00:00:00 2025 GMT." + ;; https://github.com/golang/go/issues/71077 + ;; https://github.com/golang/go/issues/71103 + ;; https://github.com/golang/go/issues/71104 + (add-after 'unpack 'skip-crypto-tls-tests + (lambda _ + (substitute* (list "src/crypto/tls/handshake_client_test.go" + "src/crypto/tls/handshake_server_test.go") + (("TestVerifyConnection.*" all) + (string-append all "\n t.Skip(\"golang.org/issue/71077\")\n")) + (("TestResumptionKeepsOCSPAndSCT.*" all) + (string-append all "\n t.Skip(\"golang.org/issue/71077\")\n")) + (("TestCrossVersionResume.*" all) + (string-append all "\n t.Skip(\"golang.org/issue/71077\")\n"))))) (add-after 'unpack 'remove-unused-sourcecode-generators (lambda _ ;; Prevent perl from inclusion in closure through unused files @@ -518,6 +535,25 @@ in the style of communicating sequential processes (@dfn{CSP}).") (setenv "GOROOT_FINAL" (string-append output "/lib/go")) (setenv "GOGC" "400") (setenv "GOCACHE" "/tmp/go-cache")))) + + ;; Time bomb in TLS tests: "Most of the test certificates + ;; (e.g. testRSACertificate, testRSACertificateIssuer, + ;; testRSA2048CertificateIssuer) have a not after of Jan 1 + ;; 00:00:00 2025 GMT." + ;; https://github.com/golang/go/issues/71077 + ;; https://github.com/golang/go/issues/71103 + ;; https://github.com/golang/go/issues/71104 + (add-after 'unpack 'skip-crypto-tls-tests + (lambda _ + (substitute* (list "src/crypto/tls/handshake_client_test.go" + "src/crypto/tls/handshake_server_test.go") + (("TestVerifyConnection.*" all) + (string-append all "\n t.Skip(\"golang.org/issue/71077\")\n")) + (("TestResumptionKeepsOCSPAndSCT.*" all) + (string-append all "\n t.Skip(\"golang.org/issue/71077\")\n")) + (("TestCrossVersionResume.*" all) + (string-append all "\n t.Skip(\"golang.org/issue/71077\")\n"))))) + (add-after 'unpack 'patch-source (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((net-base (assoc-ref inputs "net-base")) @@ -822,7 +858,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.20) (name "go") - (version "1.21.5") + (version "1.21.13") (source (origin (method git-fetch) (uri (git-reference @@ -831,7 +867,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (file-name (git-file-name name version)) (sha256 (base32 - "0f11kya6rpqfldpw82g0yiknz657i655d3c0yh3qy6f8xa8x7zn2")))) + "0x4qdib1d3gzgz620aysi1rrg682g93710dar4ga32b0j0w5kbhj")))) (arguments (substitute-keyword-arguments (package-arguments go-1.20) ;; Source patching phases are broken up into discrete steps to allow @@ -956,7 +992,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.21) (name "go") - (version "1.22.7") + (version "1.22.11") (source (origin (method git-fetch) @@ -965,7 +1001,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (commit (string-append "go" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0m1idhhifhpjf6n56pca4wg6cyripdzmyl0jswdiy0kiqvs3whqb")))) + (base32 "1gdiyifsp65wlnfqfmnbv6n1rh23jbr13l79xwla3gavm67scx02")))) (arguments (substitute-keyword-arguments (package-arguments go-1.21) ((#:phases phases) @@ -992,7 +1028,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.22) (name "go") - (version "1.23.2") + (version "1.23.5") (source (origin (method git-fetch) @@ -1001,7 +1037,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (commit (string-append "go" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0v8j43yqkhp5i5649nbxsq7lc9bjjn39gqqvlnz0d9c47qz9h7y7")))))) + (base32 "0iffjgsmh4ilc1r30zbidqvxz2dd8k0sml5rzzk1k4wkab0cjw0i")))))) ;; ;; Default Golang version used in guix/build-system/go.scm to build packages. @@ -1082,66 +1118,6 @@ network traffic so that it is not identified and subsequently blocked by network filtering devices.") (license license:bsd-2)))) -(define-public go-github-com-agext-levenshtein - (package - (name "go-github-com-agext-levenshtein") - (version "1.2.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/agext/levenshtein") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0a26c8pp9h5w66bhd9vb6lpvmhp30mz46pnh3a8vrjx50givb2lw")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/agext/levenshtein")) - (home-page "https://github.com/agext/levenshtein") - (synopsis "Calculating the Levenshtein distance between two strings in Go") - (description - "Package levenshtein implements distance and similarity metrics for -strings, based on the Levenshtein measure.") - (license license:asl2.0))) - -(define-public go-github-com-apparentlymart-go-textseg-v13 - (package - (name "go-github-com-apparentlymart-go-textseg-v13") - (version "13.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/apparentlymart/go-textseg") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0gdgi0d52rq1xsdn9icc8lghn0f2q927cifmrlfxflf7bf21vism")))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/apparentlymart/go-textseg/v13" - #:import-path "github.com/apparentlymart/go-textseg/v13/textseg")) - (native-inputs - (list ruby)) - (home-page "https://github.com/apparentlymart/go-textseg") - (synopsis "Go implementation of Unicode Text Segmentation") - (description - "This package provides an implementation of the Unicode Text Segmentation -specification for Go. Specifically, it currently includes only the grapheme -cluster segmentation algorithm.") - ;; Project is released under Expat terms. Some parts use Unicode and - ;; ASL2.0 licenses. - (license (list license:expat license:unicode license:asl2.0)))) - -(define-public go-github-com-apparentlymart-go-textseg-autoversion - (package - (inherit go-github-com-apparentlymart-go-textseg-v13) - (name "go-github-com-apparentlymart-go-textseg-autoversion") - (arguments - '(#:unpack-path "github.com/apparentlymart/go-textseg/autoversion" - #:import-path "github.com/apparentlymart/go-textseg/autoversion/textseg")))) - (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") @@ -1260,368 +1236,6 @@ form that bypasses network filtering, allowing the application to work on networks where it would otherwise be blocked or heavily throttled.") (license license:expat))) -(define-public go-github-com-hanwen-go-fuse-v2 - (let ((commit "915cf5413cdef5370ae3f953f8eb4cd9ac176d5c") - (revision "0")) - (package - (name "go-github-com-hanwen-go-fuse-v2") - (version (git-version "2.2.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hanwen/go-fuse") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ik0yvs9m40vxccpb0rpxc22fyqmcgyysc7w0yl9kn3jyr6qa1d5")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/hanwen/go-fuse/v2")) - (native-inputs (list - go-golang-org-x-sys - go-golang-org-x-sync - go-github-com-kylelemons-godebug)) - (home-page "https://github.com/hanwen/go-fuse") - (synopsis "Go bindings for FUSE filesystems") - (description - "This is a repository containing Go bindings for writing FUSE file systems.") - (license license:bsd-3)))) - -(define-public go-github-com-jacobsa-reqtrace - (let ((commit "245c9e0234cb2ad542483a336324e982f1a22934") - (revision "0")) - (package - (name "go-github-com-jacobsa-reqtrace") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jacobsa/reqtrace") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0zfyijig10896v42rvxka1n4wn6lijqz40y2281187l7mq8vv5jn")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jacobsa/reqtrace")) - (inputs (list - go-golang-org-x-net)) - (home-page "https://github.com/jacobsa/reqtrace") - (synopsis "Simple request tracing framework") - (description - "Package reqtrace contains a very simple request tracing framework.") - (license license:asl2.0)))) - -(define-public go-github-com-jcmturner-gofork - (package - (name "go-github-com-jcmturner-gofork") - (version "1.7.6") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jcmturner/gofork") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0w1j6b671121r6md5w7hnh2d0sa332pw5q49yihw23wdfinknyin")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jcmturner/gofork")) - (home-page "https://github.com/jcmturner/gofork") - (synopsis "Modified Go standard library packages") - (description - "This repository contains modified Go standard library packages for use as work -arounds until issues are addressed in the official distribution.") - (license license:bsd-3))) - -(define-public go-github-com-jcmturner-rpc - (package - (name "go-github-com-jcmturner-rpc") - (version "2.0.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jcmturner/rpc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1nm4j2nwcszghldw39rwdx2hr56i1lybfpv33y4gd67w6qcqbpsi")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jcmturner/rpc" - ;; Source-only package. - #:tests? #f - #:phases - (modify-phases %standard-phases - ;; Source-only package. - (delete 'build)))) - (propagated-inputs - (list go-golang-org-x-net go-github-com-stretchr-testify)) - (home-page "https://github.com/jcmturner/rpc") - (synopsis "Remote Procedure Call libraries") - (description - "This package provides a partial Go implementation of the Remote Call -Procedure libraries, presented in -@@url{http://pubs.opengroup.org/onlinepubs/9629399/,CDE 1.1: Remote Procedure -Call}.") - (license license:asl2.0))) - -(define-public go-github-com-jcmturner-rpc-v2-ndr - (package - (inherit go-github-com-jcmturner-rpc) - (name "go-github-com-jcmturner-rpc-v2-ndr") - (arguments - `(#:import-path "github.com/jcmturner/rpc/v2/ndr" - #:unpack-path "github.com/jcmturner/rpc")))) - -(define-public go-github-com-jcmturner-rpc-v2-mstypes - (package - (inherit go-github-com-jcmturner-rpc) - (name "go-github-com-jcmturner-rpc-v2-mstypes") - (arguments - `(#:import-path "github.com/jcmturner/rpc/v2/mstypes" - #:unpack-path "github.com/jcmturner/rpc")))) - -(define-public go-github-com-kataras-golog - (package - (name "go-github-com-kataras-golog") - (version "0.1.7") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/kataras/golog") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/kataras/golog")) - (propagated-inputs - (list go-github-com-kataras-pio)) - (home-page "https://github.com/kataras/golog") - (synopsis "Logging foundation for Go applications") - (description "GoLog is a level-based logger written in Go.") - (license license:bsd-3))) - -(define-public go-github-com-kataras-pio - (package - (name "go-github-com-kataras-pio") - (version "0.0.10") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/kataras/pio") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/kataras/pio")) - (home-page "https://github.com/kataras/pio") - (synopsis "Pill for Input/Output") - (description "PIO is a low-level package that provides a way to centralize -different output targets. Supports colors and text decoration to all popular -terminals.") - (license license:bsd-3))) - -(define-public go-github-com-kortschak-utter - (package - (name "go-github-com-kortschak-utter") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kortschak/utter") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "13lg8gzvgjnljf1lz8qsfz3qcmbvrsxp3ip7mp2kscfz07r69dyw")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/kortschak/utter")) - (home-page "https://github.com/kortschak/utter") - (synopsis "Deep pretty printer") - (description - "This package implements a deep pretty printer for Go data structures to -aid data snapshotting.") - (license license:isc))) - -(define-public go-github-com-leonelquinteros-gotext - (package - (name "go-github-com-leonelquinteros-gotext") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/leonelquinteros/gotext") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "15zjc7s1p29izagc84andzhnxw17763rax31jqvf9r5fzvlm0ccn")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/leonelquinteros/gotext")) - (propagated-inputs (list go-golang-org-x-tools go-golang-org-x-text)) - (home-page "https://github.com/leonelquinteros/gotext") - (synopsis "GNU gettext utilities in Go") - (description "This package implements GNU gettext utilities in Go. It features: -@itemize -@item Implements GNU gettext support in native Go. -@item Complete support for PO files including: -@item Support for MO files. -@item Thread-safe: This package is safe for concurrent use across multiple -goroutines. -@item It works with UTF-8 encoding as it's the default for Go language. -@item Unit tests available. -@item Language codes are automatically simplified from the form en_UK to en if -the first isn't available. -@item Ready to use inside Go templates. -@item Objects are serializable to []byte to store them in cache. -@item Support for Go Modules. -@end itemize") - (license license:expat))) - -(define-public go-github-com-pkg-xattr - (package - (name "go-github-com-pkg-xattr") - (version "0.4.9") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pkg/xattr") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qg4zh0d8m4adaiicsd0cpw0w6g8sk01f4jz7jyxgirh1wfcsqyz")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/pkg/xattr")) - (native-inputs (list go-golang-org-x-sys)) - (home-page "https://github.com/pkg/xattr") - (synopsis "Support for extended file system attributes") - (description - "Package xattr provides support for extended attributes on Linux, Darwin and -FreeBSD. Extended attributes are name:value pairs permanently associated with -files or directories. They are similar to the environment strings associated with -a process. An attribute may be defined or undefined. If defined, its value may -be empty or non-empty. You can find more details here: -@@url{https://en.wikipedia.org/wiki/Extended_file_attributes, -https://en.wikipedia.org/wiki/Extended_file_attributes} -.") - (license license:bsd-2))) - -(define-public go-github-com-schachmat-ingo - (package - (name "go-github-com-schachmat-ingo") - (version "0.0.0-20170403011506-a4bdc0729a3f") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/schachmat/ingo") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1gw0kddy7jh3467imsqni86cf9yq7k6vpfc0ywkbwj0zsjsdgd49")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/schachmat/ingo")) - (home-page "https://github.com/schachmat/ingo") - (synopsis "Go library to persist flags in a INI-like configuration file") - (description - "Ingo is a Go library helping you to persist flags in a INI-like -configuration file.") - (license license:isc))) - -(define-public go-github-com-savsgio-gotils - (let ((commit "52f3993e8d6d2629f18e7b7383b7f54a3d3f1d1f") - (revision "0")) - (package - (name "go-github-com-savsgio-gotils") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/savsgio/gotils") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qr7i62h53frcig26vj027r2hn9zxsjzd7113wvbxy7qpprjjbjb")))) - (build-system go-build-system) - (native-inputs - (list go-github-com-google-uuid - go-github-com-valyala-bytebufferpool)) - (arguments - '(#:import-path "github.com/savsgio/gotils" - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'build) - `(,@arguments #:import-path ,directory))) - (list - "github.com/savsgio/gotils/bytes" - "github.com/savsgio/gotils/encoding/base64" - "github.com/savsgio/gotils/math" - "github.com/savsgio/gotils/nocopy" - "github.com/savsgio/gotils/strconv" - "github.com/savsgio/gotils/strings" - "github.com/savsgio/gotils/sync" - "github.com/savsgio/gotils/time" - "github.com/savsgio/gotils/uuid")))) - (replace 'check - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'check) - `(,@arguments #:import-path ,directory))) - (list - "github.com/savsgio/gotils/bytes" - "github.com/savsgio/gotils/encoding/base64" - "github.com/savsgio/gotils/math" - "github.com/savsgio/gotils/nocopy" - "github.com/savsgio/gotils/strconv" - "github.com/savsgio/gotils/strings" - "github.com/savsgio/gotils/sync" - "github.com/savsgio/gotils/time" - "github.com/savsgio/gotils/uuid")))) - (replace 'install - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'install) - `(,@arguments #:import-path ,directory))) - (list - "github.com/savsgio/gotils/bytes" - "github.com/savsgio/gotils/encoding/base64" - "github.com/savsgio/gotils/math" - "github.com/savsgio/gotils/nocopy" - "github.com/savsgio/gotils/strconv" - "github.com/savsgio/gotils/strings" - "github.com/savsgio/gotils/sync" - "github.com/savsgio/gotils/time" - "github.com/savsgio/gotils/uuid"))))))) - (home-page "https://github.com/savsgio/gotils") - (synopsis "Golang utilities") - (description - "Golang utilities to make your life easier with zero allocations.") - (license license:asl2.0)))) - (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "0")) @@ -1690,61 +1304,6 @@ configuration file.") (sha256 (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))))) -(define-public go-github-com-dpotapov-go-spnego - (let ((commit "298b63a544303a239753d04314aada5bdbad7e4a") - (revision "0")) - (package - (name "go-github-com-dpotapov-go-spnego") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/dpotapov/go-spnego") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0d3b0kazm0jskfml0pkhjn2v49m8dvqj4zymm49ldgvkhl9hcf6w")))) - (build-system go-build-system) - (arguments `(#:import-path "github.com/dpotapov/go-spnego")) - (propagated-inputs (list go-github-com-stretchr-testify - go-github-com-jcmturner-gokrb5-v8 - go-golang-org-x-net)) - (home-page "https://github.com/dpotapov/go-spnego") - (synopsis "Simple golang library for retry mechanism") - (description "This package is a simple Go library that provides retry -functionality for functions that may fail. It includes various customizable -retry strategies, such as fixed delay, backoff delay, and random delay.") - (license license:expat)))) - -(define-public go-howett-net-plist - (package - (name "go-howett-net-plist") - (version "1.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DHowett/go-plist") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1gcrxkmdj87xq01458asgxvvijrkih74ydbzfmir1p16xr9z0x39")))) - (build-system go-build-system) - (arguments - (list - #:import-path "howett.net/plist")) - (propagated-inputs - (list go-github-com-jessevdk-go-flags - go-gopkg-in-check-v1)) - (home-page "https://github.com/DHowett/go-plist") - (synopsis "Apple property list transcoder") - (description - "This list transcoder supports encoding/decoding property lists (Apple -XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go types.") - (license license:giftware))) - (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") @@ -1910,88 +1469,12 @@ protocol from the Pluggable Transports 2.0 specification.") (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) (build-system go-build-system) (arguments - `(#:unpack-path "github.com/OperatorFoundation/obfs4" - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'build) - `(,@arguments #:import-path ,directory))) - (list - "github.com/OperatorFoundation/obfs4/common/csrand" - "github.com/OperatorFoundation/obfs4/common/drbg" - "github.com/OperatorFoundation/obfs4/common/log" - "github.com/OperatorFoundation/obfs4/common/ntor" - "github.com/OperatorFoundation/obfs4/common/probdist" - "github.com/OperatorFoundation/obfs4/common/pt_extras" - "github.com/OperatorFoundation/obfs4/common/replayfilter" - "github.com/OperatorFoundation/obfs4/common/socks5" - "github.com/OperatorFoundation/obfs4/common/termmon" - "github.com/OperatorFoundation/obfs4/common/uniformdh" - "github.com/OperatorFoundation/obfs4/modes/pt_socks5" - "github.com/OperatorFoundation/obfs4/modes/stun_udp" - "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" - "github.com/OperatorFoundation/obfs4/modes/transparent_udp" - "github.com/OperatorFoundation/obfs4/obfs4proxy" - "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" - "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" - "github.com/OperatorFoundation/obfs4/transports")))) - (replace 'check - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'check) - `(,@arguments #:import-path ,directory))) - (list - "github.com/OperatorFoundation/obfs4/common/csrand" - "github.com/OperatorFoundation/obfs4/common/drbg" - "github.com/OperatorFoundation/obfs4/common/log" - "github.com/OperatorFoundation/obfs4/common/ntor" - "github.com/OperatorFoundation/obfs4/common/probdist" - "github.com/OperatorFoundation/obfs4/common/pt_extras" - "github.com/OperatorFoundation/obfs4/common/replayfilter" - "github.com/OperatorFoundation/obfs4/common/socks5" - "github.com/OperatorFoundation/obfs4/common/termmon" - "github.com/OperatorFoundation/obfs4/common/uniformdh" - ;; ERROR: Println arg dialFn is a func value, not called. - ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" - ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. - ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" - "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" - ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn - ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" - ;; ERROR: Println call has possible formatting directive %s. - ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" - "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" - "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" - "github.com/OperatorFoundation/obfs4/transports")))) - (replace 'install - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'install) - `(,@arguments #:import-path ,directory))) - (list - "github.com/OperatorFoundation/obfs4/common/csrand" - "github.com/OperatorFoundation/obfs4/common/drbg" - "github.com/OperatorFoundation/obfs4/common/log" - "github.com/OperatorFoundation/obfs4/common/ntor" - "github.com/OperatorFoundation/obfs4/common/probdist" - "github.com/OperatorFoundation/obfs4/common/pt_extras" - "github.com/OperatorFoundation/obfs4/common/replayfilter" - "github.com/OperatorFoundation/obfs4/common/socks5" - "github.com/OperatorFoundation/obfs4/common/termmon" - "github.com/OperatorFoundation/obfs4/common/uniformdh" - "github.com/OperatorFoundation/obfs4/modes/pt_socks5" - "github.com/OperatorFoundation/obfs4/modes/stun_udp" - "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" - "github.com/OperatorFoundation/obfs4/modes/transparent_udp" - "github.com/OperatorFoundation/obfs4/obfs4proxy" - "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" - "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" - "github.com/OperatorFoundation/obfs4/transports"))))))) + (list + #:skip-build? #t + #:import-path "github.com/OperatorFoundation/obfs4" + #:test-subdirs #~(list "common/..." + "proxy_dialers/..." + "transports/obfs4/..."))) (propagated-inputs (list go-github-com-dchest-siphash go-github-com-operatorfoundation-ed25519 @@ -2014,30 +1497,29 @@ obfuscated via the Elligator 2 mapping. (license license:bsd-2))) (define-public go-github-com-willscott-goturn - (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") - (revision "0")) (package (name "go-github-com-willscott-goturn") - (version (git-version "0.0.0" revision commit)) + (version "0.0.0-20170802220503-19f41278d0c9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/willscott/goturn") - (commit commit))) + (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) (build-system go-build-system) (arguments - `(#:import-path "github.com/willscott/goturn")) + `(#:tests? #f ; tests are broken on a newer go, starting from 1.17. + #:import-path "github.com/willscott/goturn")) (home-page "https://github.com/willscott/goturn") (synopsis "Go TURN dialer") (description "GoTURN is a library providing a Go interface compatible with the golang proxy package which connects through a TURN relay. It provides parsing and encoding support for STUN and TURN protocols.") - (license license:bsd-3)))) + (license license:bsd-3))) (define-public go-github-com-flopp-go-findfont (package @@ -2062,35 +1544,6 @@ parsing and encoding support for STUN and TURN protocols.") TrueType font files in your system's user and system font directories.") (license license:expat))) -(define-public go-github-com-phpdave11-gofpdi - (package - (name "go-github-com-phpdave11-gofpdi") - (version "1.0.13") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/phpdave11/gofpdi") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "01r8a3k2d48fxmhyvix0ry2dc1z5xankd14yxlm496a26vfnc9nq")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/phpdave11/gofpdi" - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-source - (lambda _ - (substitute* (find-files "." "writer\\.go$") - (("%s-%s") "%d-%s"))))))) - (propagated-inputs (list go-github-com-pkg-errors)) - (home-page "https://github.com/phpdave11/gofpdi") - (synopsis "PDF document importer") - (description - "gofpdi allows you to import an existing PDF into a new PDF.") - (license license:expat))) - (define-public go-github-com-signintech-gopdf (package (name "go-github-com-signintech-gopdf") @@ -2124,29 +1577,25 @@ TrueType font files in your system's user and system font directories.") (package (name "go-github-com-wraparound-wrap") (version "0.3.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Wraparound/wrap") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0scf7v83p40r9k7k5v41rwiy9yyanfv3jm6jxs9bspxpywgjrk77")) - (patches (search-patches - "go-github-com-wraparound-wrap-free-fonts.patch")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Wraparound/wrap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0scf7v83p40r9k7k5v41rwiy9yyanfv3jm6jxs9bspxpywgjrk77")) + (patches (search-patches + "go-github-com-wraparound-wrap-free-fonts.patch")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/Wraparound/wrap/" - #:tests? #f ; no tests + #:install-source? #f + #:import-path "github.com/Wraparound/wrap/cmd/wrap" + #:unpack-path "github.com/Wraparound/wrap" #:phases #~(modify-phases %standard-phases - (replace 'build - (lambda* (#:key import-path #:allow-other-keys) - (invoke "go" "install" "-v" "-x" - "-ldflags=-s -w" - (string-append import-path "cmd/wrap")))) (add-after 'install 'wrap-fonts (lambda* (#:key inputs outputs #:allow-other-keys) (for-each @@ -2158,46 +1607,26 @@ TrueType font files in your system's user and system font directories.") (map cdr inputs)))))) (find-files (string-append (assoc-ref outputs "out") "/bin")))))))) - (propagated-inputs (list go-github-com-spf13-cobra - go-github-com-signintech-gopdf - go-github-com-flopp-go-findfont)) - (inputs (list font-liberation font-gnu-freefont)) + (native-inputs + (list go-github-com-spf13-cobra + go-github-com-signintech-gopdf + go-github-com-flopp-go-findfont)) + (inputs + (list font-liberation + font-gnu-freefont)) (home-page "https://github.com/Wraparound/wrap") (synopsis "Format Fountain screenplays") (description - "Wrap is a command line tool that is able to convert Fountain files into a -correctly formatted screen- or stageplay as an HTML or a PDF. It supports + "Wrap is a command line tool that is able to convert Fountain files into +a correctly formatted screen- or stageplay as an HTML or a PDF. It supports standard Fountain, but also has some custom syntax extensions such as translated keywords and acts.") (license license:gpl3))) -(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib - (package - (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib") - (version "1.5.0") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1kmdpxrbnxnpsi7dkgk85z005vjyj74b3wxxqrf68wg3svy69620")))) - (build-system go-build-system) - (arguments - `(#:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib")) - (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib") - (synopsis "Go pluggable transports library") - (description "GoPtLib is a library for writing Tor pluggable transports in -Go.") - (license license:cc0))) - -(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird +(define-public lyrebird (package - (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird") - (version "0.3.0") + (name "lyrebird") + (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -2206,104 +1635,35 @@ Go.") (file-name (git-file-name name version)) (sha256 (base32 - "1bmljd81vc8b4kzmpgmx1n1vvjn5y1s2w01hjxwplmnchv9dndkl")))) + "1qk7npkj0a3a28rp38whl1jwjr0z0hdcsq5bgm8bl1fk9g6cqbnp")))) (build-system go-build-system) (arguments - `(#:unpack-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird" - #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/cmd/lyrebird" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'substitutions - (lambda _ - (with-directory-excursion - "src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird" - (for-each - (lambda (file) - (substitute* file - (("edwards25519-extra.git") "edwards25519-extra"))) - (list "common/ntor/ntor_test.go" - "internal/x25519ell2/x25519ell2.go")) - (substitute* "internal/x25519ell2/x25519ell2.go" - (("gitlab.com/yawning/obfs4.git") - "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird")))))))) + (list + #:install-source? #f + #:unpack-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird" + #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/cmd/lyrebird")) (propagated-inputs (list go-filippo-io-edwards25519 go-github-com-dchest-siphash go-github-com-refraction-networking-utls go-gitlab-com-yawning-edwards25519-extra go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2 go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel go-golang-org-x-crypto - go-golang-org-x-net - go-golang-org-x-text)) + go-golang-org-x-net)) (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird") (synopsis "Look-like nothing obfuscation protocol") (description "This is a look-like nothing obfuscation protocol that incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol.") (license (list license:bsd-2 license:bsd-3)))) -(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel - (let ((commit "e64b1b3562f3ab50d06141ecd513a21ec74fe8c6") - (revision "0")) - (package - (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0nvd0qp1mdy7w32arnkhghxm5k2g6gy33cxlarxc6vdm4yh6v5nv")))) - (build-system go-build-system) - (arguments - `(#:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel")) - (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel") - (synopsis "Go WebTunnel Pluggable Transport") - (description "WebTunnel is a Go Pluggable Transport that attempts to imitate -web browsing activities based on HTTP Upgrade (HTTPT).") - (license license:bsd-2)))) - -(define-public go-github-com-keybase-go-ps - (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") - (revision "0")) - (package - (name "go-github-com-keybase-go-ps") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/keybase/go-ps") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/keybase/go-ps" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (substitute* (find-files "." "test\\.go") - (("/bin/sleep" command) - (string-append - (assoc-ref (or native-inputs inputs) "coreutils") - command))) - (substitute* "src/github.com/keybase/go-ps/process_openbsd.go" - (("^// \\+build ignore") ""))))))) - (native-inputs - (list coreutils go-github-com-stretchr-testify)) - (home-page "https://github.com/keybase/go-ps") - (synopsis "Process list library for Go") - (description "Go-Ps is a library for Go that implements OS-specific APIs -to list and manipulate processes in a safe way.") - (license license:expat)))) +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird + ;; This is a final command, no need for a full name of the go.mod module path + ;; style. The same is suggested in project's README and Makefile. + (deprecated-package + "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird" + lyrebird)) (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") @@ -2360,29 +1720,6 @@ management interface. It can be used to monitor and control an OpenVPN process running with its management port enabled.") (license license:expat)))) -(define-public go-github-com-dchest-siphash - (package - (name "go-github-com-dchest-siphash") - (version "1.2.1") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/dchest/siphash") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/dchest/siphash")) - (home-page "https://github.com/dchest/siphash") - (synopsis "Go library for pseudorandom functions") - (description "SipHash is a family of pseudorandom functions (PRFs) optimized -for speed on short messages.") - (license license:cc0))) - (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") @@ -2406,482 +1743,24 @@ for speed on short messages.") "fmt.Print(helpText + \"\\n\")")))))) (build-system go-build-system) (arguments - `(#:import-path "github.com/rakyll/statik")) + (list + #:import-path "github.com/rakyll/statik" + #:test-flags + #~(list "-skip" + (string-join + (list + "TestOpen/Files_should_retain_their_original_file*" + "TestOpen/Images_should_successfully_unpack" + "TestOpen/'index.html'_files_should_be_returned*" + "TestOpen/listed_all_sub_directories_in_deep_directory" + "TestOpen/Paths_containing_dots_should_be_properly_sanitized") + "|")))) (home-page "https://github.com/rakyll/statik/") (synopsis "Embed files into a Go executable") (description "Statik allows you to embed a directory of static files into your Go binary to be later served from an http.FileSystem.") (license license:asl2.0))) -(define-public go-github-com-alsm-ioprogress - (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5") - (revision "0")) - (package - (name "go-github-com-alsm-ioprogress") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alsm/ioprogress") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/alsm/ioprogress")) - (synopsis "Textual progress bars in Go") - (description "@code{ioprogress} is a Go library with implementations of -@code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use -case for these are for command-line applications but alternate progress bar -writers can be supplied for alternate environments.") - (home-page "https://github.com/alsm/ioprogress") - (license license:expat)))) - -(define-public go-github-com-miolini-datacounter - (package - (name "go-github-com-miolini-datacounter") - (version "1.0.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/miolini/datacounter") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0s1hxqy6666qd524rdp1dr3778davc8gx9brg9lkcjvr5l05s9wa")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/miolini/datacounter")) - (home-page "https://github.com/miolini/datacounter") - (synopsis "Counters for Go readers and writers") - (description - "The datacounter package provides counters for Go readers and writers.") - (license license:expat))) - -(define-public go-github-com-aki237-nscjar - (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06") - (revision "0")) - (package - (name "go-github-com-aki237-nscjar") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/aki237/nscjar") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/aki237/nscjar")) - (synopsis "Handle Netscape / Mozilla cookies") - (description "@code{nscjar} is a Go library used to parse and output -Netscape/Mozilla's old-style cookie files. It also implements a simple cookie -jar struct to manage the cookies added to the cookie jar.") - (home-page "https://github.com/aki237/nscjar") - (license license:expat)))) - -(define-public go-github-com-gizak-termui - (package - (name "go-github-com-gizak-termui") - (version "3.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gizak/termui") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1v3k8l5p95kb1v297ra5mw9sxdd59y82y6ibjzya5ma2pry6k5cn")))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/gizak/termui" - #:import-path "github.com/gizak/termui/v3")) - (propagated-inputs - (list go-github-com-mattn-go-runewidth - go-github-com-mitchellh-go-wordwrap go-github.com-nsf-termbox-go)) - (home-page "https://github.com/gizak/termui") - (synopsis "Terminal dashboard widget Go library") - (description - "The termui Go library draws customizable dashboard widgets in a text -terminal. It includes several common widgets: lists, trees, tables and tabs, -but also more complex items such as (stacked) bar and pie charts, scatter plots, -gauges, and even images and a canvas for drawing `high resolution' braille dots. - -You can also easily create new custom widgets. Widgets can be coloured and -styled and positioned absolutely or relatively. They respond to keyboard, -mouse, and terminal resizing events.") - (license license:expat))) - -(define-public go-github-com-golangplus-fmt - (package - (name "go-github-com-golangplus-fmt") - (version "1.0.0") - (home-page "https://github.com/golangplus/fmt") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7")))) - (build-system go-build-system) - (arguments - '(#:tests? #f ; failing with new Golang compiler. - #:import-path "github.com/golangplus/fmt")) - (synopsis "Additions to Go's standard @code{fmt} package") - (description "This package provides additions to Go's stdlib @code{fmt}.") - (license license:bsd-3))) - -(define-public go-github-com-mitchellh-go-wordwrap - (package - (name "go-github-com-mitchellh-go-wordwrap") - (version "1.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mitchellh/go-wordwrap") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "12imq66hgj8q9ii2xqdy8apc0icphh6yimjb0div1pvl3s9gn83y")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/mitchellh/go-wordwrap")) - (propagated-inputs - (list go-gopkg-in-yaml-v2)) - (home-page "https://github.com/mitchellh/go-wordwrap") - (synopsis "Go library for word-wrapping strings") - (description - "This Go library automatically wraps words onto multiple lines. It's -primary goal is to format command-line output, but of course word wrapping is a -generally useful thing to do.") - (license license:expat))) - -(define-public go-github-com-motemen-go-colorine - (let ((commit "45d19169413a019e4e2be69629dde5c7d92f8706") - (revision "0")) - (package - (name "go-github-com-motemen-go-colorine") - (version (git-version "0.0.0" revision commit)) - (home-page "https://github.com/motemen/go-colorine") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/motemen/go-colorine")) - (propagated-inputs - `(("github.com/daviddengcn/go-colortext" ,go-github-com-daviddengcn-go-colortext))) - (synopsis "Simple colorized console logger for golang") - (description - "This package provides simple colorized console logger for golang.") - (license license:expat)))) - -(define-public go-github-com-daviddengcn-go-colortext - (package - (name "go-github-com-daviddengcn-go-colortext") - (version "1.0.0") - (home-page "https://github.com/daviddengcn/go-colortext") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0j5ldwg3a768d3nniiglghr9axj4p87k7f7asqxa1a688xvcms48")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/daviddengcn/go-colortext")) - (native-inputs - (list go-github-com-golangplus-testing)) - (synopsis "Change the color of console text and background") - (description - "This is a package to change the color of the text and background in the -console, working both under Windows and other systems. - -Under Windows, the console APIs are used. Otherwise, ANSI texts are output.") - ;; dual-licensed - (license (list license:bsd-3 license:expat)))) - -(define-public go-github-com-leodido-go-urn - (package - (name "go-github-com-leodido-go-urn") - (version "1.4.0") - (home-page "https://github.com/leodido/go-urn") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0bn9dj6y299jdh8szfim32yxj9zip38cqgv965dj23cixgr7baxb")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/leodido/go-urn")) - (native-inputs - (list go-github-com-stretchr-testify)) - (synopsis "Parser for uniform resource names as seen on RFC 2141") - (description - "This package implements a parser for uniform resource names (URN) as -specified by @uref{https://tools.ietf.org/html/rfc2141, IETF RFC 2141}.") - (license license:expat))) - -(define-public go-github-com-jessevdk-go-flags - (package - (name "go-github-com-jessevdk-go-flags") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jessevdk/go-flags") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13ixw1yx4bvcj66lkc8zgwf9j7gkvj686g991gycdsafvdvca0lj")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jessevdk/go-flags" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda _ - ;; SOURCE_DATE_EPOCH messes with the date on the man page test. - (substitute* "src/github.com/jessevdk/go-flags/help_test.go" - (("TestMan") "DisabledTestMan"))))))) - (propagated-inputs - (list go-golang-org-x-sys)) - (synopsis "Go library for parsing command line arguments") - (description - "The @code{flags} package provides a command line option parser. The -functionality is similar to the go builtin @code{flag} package, but -@code{flags} provides more options and uses reflection to provide a succinct -way of specifying command line options.") - (home-page "https://github.com/jessevdk/go-flags") - (license license:bsd-3))) - -(define-public go-github-com-go-playground-universal-translator - (package - (name "go-github-com-go-playground-universal-translator") - (version "0.18.1") - (home-page "https://github.com/go-playground/universal-translator") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lgz9wrkcfx6q3x6i9fprr8rfwnk0c6x61jgzacgikbmzsl7dw6v")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/go-playground/universal-translator")) - (propagated-inputs - (list go-github-com-go-playground-locales)) - (synopsis "Translator using Unicode CLDR data and pluralization rules") - (description - "This package offers an Internalization Translator for Go using -@uref{http://cldr.unicode.org/, Unicode CLDR Project} data and pluralization -rules. Its currently implemented features include - -@itemize -@item Rules generated from the CLDR data, v30.0.3 -@item Contains Cardinal, Ordinal and Range Plural Rules -@item Contains Month, Weekday and Timezone translations built in -@item Contains Date & Time formatting functions -@item Contains Number, Currency, Accounting and Percent formatting functions -@item Supports the \"Gregorian\" calendar only -@item Support loading translations from files -@item Exporting translations to file(s), mainly for getting them -professionally translated -@end itemize") - (license license:expat))) - -(define-public go-gopkg-in-go-playground-validator-v9 - (package - (name "go-gopkg-in-go-playground-validator-v9") - (version "9.31.0") - (home-page "https://gopkg.in/go-playground/validator.v9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-playground/validator") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1f8c77s8kx9rip2jarv27x5s4xkcmanh4ndyhbcwvrhncs5rq061")))) - (build-system go-build-system) - (arguments - '(#:import-path "gopkg.in/go-playground/validator.v9")) - (native-inputs - (list go-gopkg-in-go-playground-assert-v1)) - (propagated-inputs - (list go-github-com-go-playground-universal-translator - go-github-com-leodido-go-urn)) - (synopsis "Validator for structs and individual fields based on tags") - (description - "This package implements value validations for structs and individual -fields based on tags. It has the following unique features: - -@itemize -@item Cross Field and Cross Struct validations by using validation tags or -custom validators -@item Slice, Array and Map diving, which allows any or all levels of a -multidimensional field to be validated -@item Ability to dive into both map keys and values for validation -@item Handles type interface by determining it's underlying type prior to validation -@item Handles custom field types such as sql driver -@uref{https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29, -Valuer} -@item Alias validation tags, which allows for mapping of several validations -to a single tag for easier defining of validations on structs -@item Extraction of custom defined Field Name e.g. can specify to extract the -JSON name while validating and have it available in the resulting FieldError -@item Customizable i18n aware error messages. -@item Default validator for the @uref{https://github.com/gin-gonic/gin, gin} -web framework -@end itemize") - (license license:expat))) - -(define-public go-github-com-go-playground-validator-v10 - (package - (inherit go-gopkg-in-go-playground-validator-v9) - (name "go-github-com-go-playground-validator-v10") - (version "10.22.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-playground/validator") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0zff0qpqfzwa4xazppiq7jvpncnmx52m23qi4ih754b7rzhbk0iz")))) - (arguments - (list - #:import-path "github.com/go-playground/validator/v10")) - (propagated-inputs - (modify-inputs (package-propagated-inputs - go-gopkg-in-go-playground-validator-v9) - (append go-github-com-gabriel-vasile-mimetype - go-golang-org-x-crypto - go-golang-org-x-text))) - (native-inputs - (list go-github-com-go-playground-assert-v2)))) - -(define-public go-github-com-nathan-osman-go-sunrise - (let ((commit "c8f9f1eb869135f07378e7e3c5ec7a005f806c73") - (revision "0")) - (package - (name "go-github-com-nathan-osman-go-sunrise") - (version (git-version "1.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nathan-osman/go-sunrise") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "017zwzx05r5spxcs07dp6bnh7waknzsd819k7aqd8kr819v3x9in")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/nathan-osman/go-sunrise")) - (home-page "https://github.com/nathan-osman/go-sunrise") - (synopsis "Calculate sunrise and sunset times in Go") - (description - "This package provides a Go library for calculating sunrise and -sunset times from geographical coordinates and a date.") - (license license:expat)))) - -(define-public go-github-com-hebcal-gematriya - (let ((commit "fe3043f73e415eb82727701d10f2fb40f87675e9") - (revision "0")) - (package - (name "go-github-com-hebcal-gematriya") - (version (git-version "1.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hebcal/gematriya") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0xmnb2i80dy380yv8c4pd04bbyqgbc7c40p8hz1vqj2lhbm6jabf")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/hebcal/gematriya")) - (home-page "https://github.com/hebcal/gematriya") - (synopsis "Print numbers as Hebrew letters in Go") - (description - "This package provides a Go library for printing numbers as -Hebrew letters.") - (license license:bsd-2)))) - -(define-public go-github-com-hebcal-hebcal-go - (let ((commit "d42e881860cfc9e8249fc79f268091c3c4d36b0d") - (revision "0")) - (package - (name "go-github-com-hebcal-hebcal-go") - (version (git-version "0.9.11" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hebcal/hebcal-go") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1m9akb8pwxchpaci05gambshrzw626gsrfhl25f36vjl7mq5292n")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/hebcal/hebcal-go" - ;; Source-only package - #:tests? #f - #:phases - #~(modify-phases %standard-phases - ;; Source-only package - (delete 'build)))) - (native-inputs - (list go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-hebcal-gematriya - go-github-com-nathan-osman-go-sunrise)) - (home-page "https://github.com/hebcal/hebcal-go") - (synopsis "Go library for the Hebcal perpetual Jewish calendar") - (description - "This package provides a library for conversion between Hebrew -and Gregorian dates, and generation of lists of Jewish holidays for -a given year. Shabbat and holiday candle lighting and havdalah times -are approximated based on location. - -Torah readings, Daf Yomi, and counting of the Omer can also be -specified. Algorithms are included to calculate yahrzeits, birthdays, -and anniversaries.") - (license license:gpl2+)))) - (define-public go-gopkg.in-tomb.v2 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c") (revision "0")) @@ -2942,217 +1821,6 @@ termination.") "t.Fatalf(`Killf(\"BO%%s"))))))) (home-page "https://gopkg.in/tomb.v1"))) -(define-public go-github-com-jtolds-gls - (package - (name "go-github-com-jtolds-gls") - (version "4.20") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jtolds/gls") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/jtolds/gls" - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (unless - ;; The tests fail when run with gccgo. - (false-if-exception (search-input-file inputs "/bin/gccgo")) - (apply (assoc-ref %standard-phases 'check) args))))))) - (synopsis "@code{gls} provides Goroutine local storage") - (description - "The @code{gls} package provides a way to store a retrieve values -per-goroutine.") - (home-page "https://github.com/jtolds/gls") - (license license:expat))) - -(define-public go-github-com-saracen-walker - (package - (name "go-github-com-saracen-walker") - (version "0.1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/saracen/walker") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1rq1lrp99lx7k1ysbfznn4c1iagnxdhb4lnnklsadnnzi3gvygqz")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/saracen/walker")) - (inputs - (list go-golang-org-x-sync)) - (home-page "https://github.com/saracen/walker") - (synopsis "Faster, parallel version of Go's filepath.Walk") - (license license:expat) - (description "The @code{walker} function is a faster, parallel version, of -@code{filepath.Walk}"))) - -(define-public go-github-com-tdewolff-hasher - (package - (name "go-github-com-tdewolff-hasher") - (version "0.0.0-20210521220142-bc97f602bca2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tdewolff/hasher") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "12dmxpmdy2z7c2z7qv2mv2aq4hyvjncb6fzr0ymg3y5bfjvl4dcw")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/tdewolff/hasher")) - (native-inputs - (list go-github-com-cespare-mph - go-github-com-dgryski-go-mph)) - (home-page "https://github.com/tdewolff/hasher") - (synopsis "Go known-keys fast-lookup map generator") - (description - "Hasher is a tool to automate the creation of methods and tables for a -@code{string} to @code{uint32} mapper.") - (license license:bsd-3))) - -(define-public go-github-com-tj-docopt - (package - (name "go-github-com-tj-docopt") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tj/docopt") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/tj/docopt")) - (synopsis "Go implementation of docopt") - (description - "This library allows the user to define a command-line interface from a -program's help message rather than specifying it programmatically with -command-line parsers.") - (home-page "https://github.com/tj/docopt") - (license license:expat))) - -(define-public gopls - (package - (name "gopls") - ;; XXX: Starting from 0.14.0 gppls needs golang.org/x/telemetry, which - ;; needs to be discussed if it may be included in Guix. - (version "0.16.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://go.googlesource.com/tools") - (commit (go-version->git-ref version #:subdir "gopls")))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1l6mkh4v0f602spw3zdmkxqizk32zvgpfy461sinqwhlag8v8v3a")))) - (build-system go-build-system) - (arguments - (list - #:install-source? #f - #:import-path "golang.org/x/tools/gopls" - #:unpack-path "golang.org/x/tools" - #:phases - #~(modify-phases %standard-phases - (add-before 'unpack 'override-tools - (lambda _ - ;; XXX: Write a procedure deleting all but current module source - ;; to cover case with monorepo. - (delete-file-recursively "src/golang.org/x/tools")))))) - (native-inputs - (list go-github-com-google-go-cmp - go-github-com-jba-templatecheck - go-golang-org-x-mod - go-golang-org-x-sync - go-golang-org-x-telemetry - go-golang-org-x-text - go-golang-org-x-vuln - go-gopkg-in-yaml-v3 - go-honnef-co-go-tools - go-mvdan-cc-gofumpt - go-mvdan-cc-xurls-v2)) - (home-page "https://golang.org/x/tools/gopls") - (synopsis "Official language server for the Go language") - (description - "Pronounced ``Go please'', this is the official Go language server -developed by the Go team. It provides IDE features to any LSP-compatible -editor.") - (license license:bsd-3))) - -(define-public go-github-com-tevino-abool - (let ((commit - "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12") - (revision "0")) - (package - (name "go-github-com-tevino-abool") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tevino/abool") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/tevino/abool")) - (home-page "https://github.com/tevino/abool") - (synopsis "Atomic boolean library for Go code") - (description "This package is atomic boolean library for Go code, -optimized for performance yet simple to use.") - (license license:expat)))) - -(define-public gron - (package - (name "gron") - (version "0.7.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tomnomnom/gron") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1sj34b6yv0qigy3aq7qmwf8bqxp1a8qh9p10lzkpw58s1c0iyh36")))) - (build-system go-build-system) - (arguments - (list - #:install-source? #f - #:import-path "github.com/tomnomnom/gron")) - (native-inputs - (list go-github-com-fatih-color - go-github-com-mattn-go-colorable - go-github-com-nwidger-jsoncolor - go-github-com-pkg-errors)) - (home-page "https://github.com/tomnomnom/gron") - (synopsis "Transform JSON to make it easier to grep") - (description - "This package transforms JSON into discrete assignments to make it easier -to use line-based tools such as grep to search for what you want and see the -absolute \"path\" to it.") - (license license:expat))) - (define-public go-github-com-google-cadvisor (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd") (revision "0")) @@ -3171,7 +1839,8 @@ absolute \"path\" to it.") "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/google/cadvisor")) + '(#:import-path "github.com/google/cadvisor" + #:test-subdirs '("."))) (home-page "https://github.com/google/cadvisor") (synopsis "Analyze resource usage of running containers") (description "The package provides @code{cadvisor}, which provides @@ -3179,553 +1848,6 @@ information about the resource usage and performance characteristics of running containers.") (license license:asl2.0)))) -(define-public go-github-com-spf13-afero - (package - (name "go-github-com-spf13-afero") - (version "1.2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spf13/afero") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/spf13/afero")) - (propagated-inputs (list go-github-com-pkg-sftp go-golang-org-x-text)) - (home-page "https://github.com/spf13/afero") - (synopsis "File system abstraction for Go") - (description - "This package provides a file system abstraction for Go.") - (license license:asl2.0))) - -(define-public go-github-com-spf13-cast - (package - (name "go-github-com-spf13-cast") - (version "1.3.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spf13/cast") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0lb84788glr0qzrq2ifi36rgvp96qrgywvxrr3ggq5hrbr38hgn1")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/spf13/cast")) - (native-inputs - (list go-github-com-stretchr-testify)) - (home-page "https://github.com/spf13/cast") - (synopsis "Safe and easy casting from one type to another in Go") - (description "Safe and easy casting from one type to another in Go") - (license license:expat))) - -(define-public go-github-com-spf13-jwalterweatherman - (package - (name "go-github-com-spf13-jwalterweatherman") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spf13/jwalterweatherman") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/spf13/jwalterweatherman")) - (native-inputs - (list go-github-com-stretchr-testify)) - (home-page "https://github.com/spf13/jwalterweatherman") - (synopsis "Go logging library") - (description "Go logging library") - (license license:expat))) - -(define-public go-github-com-spf13-pflag - (package - (name "go-github-com-spf13-pflag") - (version "1.0.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spf13/pflag") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31")) - (snippet - #~(begin - (use-modules (guix build utils)) - ;; Fix compatibility with go-1.19+ - ;; https://github.com/spf13/pflag/issues/368 - (substitute* "flag_test.go" - (("fmt\\.Println") "fmt.Print") - (("\\+ got\\)") "+ got + \"\\n\")") - (("\\+ defaultOutput\\)") "+ defaultOutput + \"\\n\")")))))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/spf13/pflag")) - (home-page "https://github.com/spf13/pflag") - (synopsis "Replacement for Go's @code{flag} package") - (description - "Pflag is library to replace Go's @code{flag} package. It implements -POSIX/GNU-style command-line options with double hyphens. It is is compatible -with the -@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html, -GNU extensions} to the POSIX recommendations for command-line options.") - (license license:bsd-3))) - -(define-public go-github-com-spf13-viper - (package - (name "go-github-com-spf13-viper") - ;; Refreshing to a newer version requires long chain of missing packages. - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spf13/viper") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "099n2g7fg6r8hqyszqw2axr775qyhyvwhsykvgw0f0s16ql48h5c")))) - (build-system go-build-system) - (arguments - (list - #:tests? #f - #:import-path "github.com/spf13/viper")) - (propagated-inputs - (list go-github-com-fsnotify-fsnotify - go-github-com-hashicorp-hcl - go-github-com-magiconair-properties - go-github-com-mitchellh-mapstructure - go-github-com-pelletier-go-toml - go-github-com-spf13-afero - go-github-com-spf13-cast - go-github-com-spf13-jwalterweatherman - go-github-com-spf13-pflag - go-github-com-subosito-gotenv - go-gopkg-in-ini-v1 - go-gopkg-in-yaml-v2)) - (native-inputs - (list go-github-com-stretchr-testify)) - (home-page "https://github.com/spf13/viper") - (synopsis "Go configuration with fangs") - (description - "Viper is a complete configuration solution for Go applications including -12-Factor apps. It is designed to work within an application, and can handle -all types of configuration needs and formats.") - (license license:expat))) - -(define-public go-github-com-nxadm-tail - (package - (name "go-github-com-nxadm-tail") - (version "1.4.8") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nxadm/tail") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1j2gi485fhwdpmyzn42wk62103fclwbfywg42p275z1qv2bsz1rc")))) - (build-system go-build-system) - (arguments (list #:import-path "github.com/nxadm/tail")) - (propagated-inputs (list go-gopkg-in-tomb-v1 - go-github-com-fsnotify-fsnotify)) - (home-page "https://github.com/nxadm/tail") - (synopsis "Go implementation of the functionality of @command{tail -f}") - (description - "This package provides a Go library for reading from continuously -updating files, like @command{tail -f}.") - (license license:expat))) - -(define-public go-github-com-magiconair-properties - (package - (name "go-github-com-magiconair-properties") - (version "1.8.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magiconair/properties") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0xy5nq7mwhrdcwjlgh4arjn6w5mjla0kni3cvl3z5vxcrnfrn3ax")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/magiconair/properties")) - (home-page "https://github.com/magiconair/properties") - (synopsis "Java properties scanner for Go") - (description "Java properties scanner for Go") - (license license:bsd-2))) - -(define-public go-github-com-sirupsen-logrus - (package - (name "go-github-com-sirupsen-logrus") - (version "1.9.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sirupsen/logrus") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jz7nyq88i9fwfpp7krl046q62kjn6lb9j4r932bxnpypl1hwc49")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/sirupsen/logrus" - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (unless - ;; The tests fail when run with gccgo. - (false-if-exception (search-input-file inputs "/bin/gccgo")) - (apply (assoc-ref %standard-phases 'check) args))))))) - (propagated-inputs - (list go-github-com-davecgh-go-spew go-github-com-pmezard-go-difflib - go-github-com-stretchr-testify go-golang-org-x-crypto - go-golang-org-x-sys)) - (home-page "https://github.com/sirupsen/logrus") - (synopsis "Structured, pluggable logging for Go") - (description "Logrus is a structured logger for Go, completely API -compatible with the standard library logger.") - (license license:expat))) - -(define-public go-github-com-rifflock-lfshook - (package - (name "go-github-com-rifflock-lfshook") - (version "2.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rifflock/lfshook") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/rifflock/lfshook")) - (propagated-inputs - (list go-github-com-sirupsen-logrus)) - (home-page "https://github.com/rifflock/lfshook") - (synopsis "Local File System hook for Logrus logger") - (description "This package provides a hook for Logrus to write directly to -a file on the file system. The log levels are dynamic at instantiation of the -hook, so it is capable of logging at some or all levels.") - (license license:expat))) - -(define-public go-github-com-kardianos-osext - (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14") - (revision "1")) - (package - (name "go-github-com-kardianos-osext") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kardianos/osext") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/kardianos/osext" - ;; The tests are flaky: - ;; <https://github.com/kardianos/osext/issues/21> - #:tests? #f)) - (synopsis "Find the running executable") - (description "Osext provides a method for finding the current executable -file that is running. This can be used for upgrading the current executable or -finding resources located relative to the executable file.") - (home-page "https://github.com/kardianos/osext") - (license license:bsd-3)))) - -(define-public go-github-com-ayufan-golang-kardianos-service - (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3") - (revision "0")) - (package - (name "go-github-com-ayufan-golang-kardianos-service") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/ayufan/golang-kardianos-service") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5")))) - (build-system go-build-system) - (native-inputs - (list go-github-com-kardianos-osext)) - (arguments - '(#:tests? #f ;FIXME tests fail: Service is not running. - #:import-path "github.com/ayufan/golang-kardianos-service")) - (home-page "https://github.com/ayufan/golang-kardianos-service") - (synopsis "Go interface to a variety of service supervisors") - (description "This package provides @code{service}, a Go module that can -run programs as a service using a variety of supervisors, including systemd, -SysVinit, and more.") - (license license:zlib)))) - -(define-public go-github-com-dgryski-go-metro - (package - (name "go-github-com-dgryski-go-metro") - (version "0.0.0-20211217172704-adc40b04c140") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dgryski/go-metro") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "16y5vc5qf7aipi8basqza8l939hlmp7wqsv4y6gsqac3sp9ziqyj")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/dgryski/go-metro")) - (home-page "https://github.com/dgryski/go-metro") - (synopsis "Go translation of MetroHash") - (description - "This package provides a Go translation of the -@url{https://github.com/jandrewrogers/MetroHash, reference C++ code for -MetroHash}, a high quality, high performance hash algorithm.") - (license license:expat))) - -(define-public go-github-com-dgryski-go-mph - (package - (name "go-github-com-dgryski-go-mph") - (version "0.0.0-20211217222804-81a8625fb7ed") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dgryski/go-mph") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10q8l4jdzqf54bnnxka2jk6qzayri3ijv51knn1n0iimfric8w9g")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/dgryski/go-mph")) - (propagated-inputs - (list go-github-com-dgryski-go-metro)) - (home-page "https://github.com/dgryski/go-mph") - (synopsis "Go minimal perfect hash function") - (description - "This package implements a hash/displace minimal perfect hash function.") - (license license:expat))) - -(define-public go-github-com-docker-distribution - (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329") - (revision "0")) - (package - (name "go-github-com-docker-distribution") - (version (git-version "0.0.0" revision commit)) - (source - ;; FIXME: This bundles many things, see - ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>. - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/docker/distribution") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6")))) - (build-system go-build-system) - (native-inputs - (list go-golang-org-x-sys go-github-com-sirupsen-logrus - go-golang-org-x-crypto)) - (arguments - '(#:import-path "github.com/docker/distribution")) - (home-page - "https://github.com/docker/distribution") - (synopsis "This package is a Docker toolset to pack, ship, store, and -deliver content") - (description "Docker Distribution is a Docker toolset to pack, ship, -store, and deliver content. It contains Docker Registry 2.0 and libraries -to interact with distribution components.") - (license license:asl2.0)))) - -(define-public go-github-com-docker-go-connections - (package - (name "go-github-com-docker-go-connections") - (version "0.5.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/docker/go-connections") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0svfa9g4xvbn87l5kiww1jkijmci9g5821wjp81xz1rfp13cqrk8")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/docker/go-connections")) - (home-page "https://github.com/docker/go-connections") - (synopsis "Networking library for Go") - (description - "This package provides a library to work with network connections in the -Go language. In particular it provides tools to deal with network address -translation (NAT), proxies, sockets, and transport layer security (TLS).") - (license license:asl2.0))) - -(define-public go-github-com-docker-go-units - (package - (name "go-github-com-docker-go-units") - (version "0.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/docker/go-units") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0k8gja8ql4pqg5rzmqvka42vjfs6rzablak87whcnqba6qxpimvz")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/docker/go-units")) - (home-page "https://github.com/docker/go-units") - (synopsis "Parse and print size and time units in human-readable format") - (description - "@code{go-units} is a library to transform human friendly measurements into -machine friendly values.") - (license license:asl2.0))) - -(define-public go-github-com-docker-machine - (let ((commit "7b7a141da84480342357c51838be142bf183b095") - (revision "0")) - (package - (name "go-github-com-docker-machine") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/docker/machine") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/docker/machine")) - (home-page "https://github.com/docker/machine") - (synopsis "Machine management for a container-centric world") - (description - "@dfn{Machine} lets you create Docker hosts on your computer, on -hosting providers, and inside your data center. It creates servers, installs -Docker on them, then configures the Docker client to talk to them.") - (license license:asl2.0)))) - -(define-public go-github-com-gorhill-cronexpr - (let ((commit "f0984319b44273e83de132089ae42b1810f4933b") - (revision "0")) - (package - (name "go-github-com-gorhill-cronexpr") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gorhill/cronexpr") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/gorhill/cronexpr")) - (home-page "https://github.com/gorhill/cronexpr") - (synopsis "Cron expression parser in the Go language") - (description - "This package provides a cron expression parser in the Go language. -Given a cron expression and a time stamp, you can get the next time stamp -which satisfies the cron expression.") - (license (list license:gpl3+ - license:asl2.0))))) - -(define-public go-gopkg-in-yaml-v3 - (package - (name "go-gopkg-in-yaml-v3") - (version "3.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gopkg.in/yaml.v3") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "01b0wjb7yzv8wzzz2iim8mjpkwjnykcanrwiq06pkl89lr6gv8hn")) - (patches (search-patches "go-gopkg-in-yaml-v3-32bit.patch")))) - (build-system go-build-system) - (arguments - `(#:tests? ,(not (target-ppc32?)) ; Test killed with quit: ran too long (11m0s). - #:import-path "gopkg.in/yaml.v3")) - (native-inputs - (list go-gopkg-in-check-v1)) - (home-page "https://gopkg.in/yaml.v3") - (synopsis "YAML reader and writer for the Go language") - (description - "This package provides a Go library for encode and decode YAML values. -The yaml package supports most of YAML 1.2, but preserves some behavior from -1.1 for backwards compatibility.") - (license license:asl2.0))) - -(define-public go-github-com-matrix-org-gomatrix - (package - (name "go-github-com-matrix-org-gomatrix") - (version "0.0.0-20220926102614-ceba4d9f7530") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/matrix-org/gomatrix") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vq29bdswvffxsmwvi20wnk73xk92dva0fdr2k3zshr4z10ypm2x")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/matrix-org/gomatrix")) - (home-page "https://github.com/matrix-org/gomatrix") - (synopsis "Golang Matrix client") - (description "This package provides a Golang Matrix client.") - (license license:asl2.0))) - (define-public go-github-com-aarzilli-golua (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d") (revision "0")) @@ -3864,74 +1986,6 @@ Looks for an identical word on a list of words, if none is found, look for a similar word.") (license license:expat)))) -(define-public misspell - (package - (name "misspell") - (version "0.3.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/client9/misspell") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/client9/misspell" - #:phases (modify-phases %standard-phases - (replace 'build - (lambda arguments - (apply (assoc-ref %standard-phases - 'build) - `(,@arguments #:import-path - "github.com/client9/misspell/cmd/misspell"))))))) - (propagated-inputs (list go-github-com-gobwas-glob)) - (home-page "https://github.com/client9/misspell") - (synopsis "Correct commonly misspelled English words in source files") - (description - "misspell assists with correcting commonly misspelled English words in -source files. A neutral variety of English is used by default, but a US or UK -locale can be selected.") - (license license:expat))) - -(define-public go-github-com-cli-safeexec - (package - (name "go-github-com-cli-safeexec") - (version "1.0.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cli/safeexec") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0j6hspjx9kyxn98nbisawx6wvbi1d6rpzr6p2rzhllm673wibwr3")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/cli/safeexec")) - (home-page "https://github.com/cli/safeexec") - (synopsis "Safe implementation of Go's exec.Command") - (description "This package provides a Go module that provides a stabler -alternative to @@code{exec.LookPath()}.") - (license license:bsd-2))) - -(define-public go-github-com-client9-misspell - (package - (inherit misspell) - (name "go-github-com-client9-misspell") - (arguments - `(#:import-path "github.com/client9/misspell" - #:tests? #f - #:install-source? #t - #:phases (modify-phases %standard-phases - (delete 'build)))) - (propagated-inputs (package-inputs misspell)) - (native-inputs '()) - (inputs '()))) - (define-public go-github-com-stevedonovan-luar (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead") (revision "0")) @@ -3973,68 +2027,6 @@ methods can be called and usual operations such as indexing or arithmetic can be performed.") (license license:expat)))) -(define-public go-github-com-michiwend-golang-pretty - (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4") - (revision "0")) - (package - (name "go-github-com-michiwend-golang-pretty") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/michiwend/golang-pretty") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4")))) - (build-system go-build-system) - (native-inputs - (list go-github-com-kr-text)) - (arguments - `(#:tests? #f ; Upstream tests seem to be broken. - #:import-path "github.com/michiwend/golang-pretty")) - (home-page "https://github.com/michiwend/golang-pretty") - (synopsis "Pretty printing for Go values") - (description "Package @code{pretty} provides pretty-printing for Go -values. This is useful during debugging, to avoid wrapping long output lines -in the terminal. - -It provides a function, @code{Formatter}, that can be used with any function -that accepts a format string. It also provides convenience wrappers for -functions in packages @code{fmt} and @code{log}.") - (license license:expat)))) - -(define-public go-github-com-michiwend-gomusicbrainz - (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d") - (revision "0")) - (package - (name "go-github-com-michiwend-gomusicbrainz") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/michiwend/gomusicbrainz") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn")))) - (build-system go-build-system) - (native-inputs - (list go-github-com-michiwend-golang-pretty go-github-com-kr-text)) - (arguments - `(#:import-path "github.com/michiwend/gomusicbrainz")) - (home-page "https://github.com/michiwend/gomusicbrainz") - (synopsis "MusicBrainz WS2 client library for Golang") - (description "Currently GoMusicBrainz provides methods to perform search -and lookup requests. Browse requests are not supported yet.") - (license license:expat)))) - (define-public go-github-com-wtolson-go-taglib (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777") (revision "0")) @@ -4075,388 +2067,10 @@ and lookup requests. Browse requests are not supported yet.") (description "Go wrapper for taglib") (license license:unlicense)))) -(define-public go-github-com-gogo-protobuf - (package - (name "go-github-com-gogo-protobuf") - (version "1.3.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gogo/protobuf") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/gogo/protobuf" - ; Source-only package - #:tests? #f - #:phases - (modify-phases %standard-phases - (delete 'build)))) - (synopsis "Protocol Buffers for Go with Gadgets") - (description "Gogoprotobuf is a fork of golang/protobuf with extra code -generation features. This code generation is used to achieve: -@itemize -@item fast marshalling and unmarshalling -@item more canonical Go structures -@item goprotobuf compatibility -@item less typing by optionally generating extra helper code -@item peace of mind by optionally generating test and benchmark code -@item other serialization formats -@end itemize") - (home-page "https://github.com/gogo/protobuf") - (license license:bsd-3))) - -(define-public go-github-com-btcsuite-btclog - (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a") - (revision "0")) - (package - (name "go-github-com-btcsuite-btclog") - (version (git-version "0.0.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/btcsuite/btclog") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/btcsuite/btclog")) - (home-page "https://github.com/btcsuite/btclog") - (synopsis "Subsystem aware logger for Go") - (description "Package @command{btclog} defines a logger interface and -provides a default implementation of a subsystem-aware leveled logger -implementing the same interface.") - (license license:isc)))) - -(define-public go-github-com-mr-tron-base58 - (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312") - (revision "0")) - (package - (name "go-github-com-mr-tron-base58") - (version (git-version "1.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mr-tron/base58") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa")))) - (build-system go-build-system) - (arguments - `(#:unpack-path "github.com/mr-tron/base58" - #:import-path "github.com/mr-tron/base58/base58")) - (home-page "https://github.com/mr-tron/base58") - (synopsis "Fast implementation of base58 encoding on Golang") - (description "Fast implementation of base58 encoding on Golang. A -trivial @command{big.Int} encoding benchmark results in 6 times faster -encoding and 8 times faster decoding.") - (license license:expat)))) - -(define-public go-github-com-spaolacci-murmur3 - (package - (name "go-github-com-spaolacci-murmur3") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spaolacci/murmur3") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/spaolacci/murmur3")) - (home-page "https://github.com/spaolacci/murmur3") - (synopsis "Native MurmurHash3 Go implementation") - (description "Native Go implementation of Austin Appleby's third MurmurHash -revision (aka MurmurHash3). - -Reference algorithm has been slightly hacked as to support the streaming mode -required by Go's standard Hash interface.") - (license license:bsd-3))) - -(define-public go-github-com-twmb-murmur3 - (package - (name "go-github-com-twmb-murmur3") - (version "1.1.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/twmb/murmur3") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "00riapwkyf23l5wyis47mbr8rwr4yrjw491jfc30wpzs111c1gyy")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/twmb/murmur3")) - (home-page "https://github.com/twmb/murmur3") - (synopsis "Native MurmurHash3 Go implementation") - (description "Native Go implementation of Austin Appleby's third -MurmurHash revision (aka MurmurHash3). - -Reference algorithm has been slightly hacked as to support the streaming mode -required by Go's standard Hash interface.") - (license license:bsd-3))) - -(define-public go-github-com-libp2p-go-libp2p-protocol - (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b") - (revision "0")) - (package - (name "go-github-com-libp2p-go-libp2p-protocol") - (version (git-version "1.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libp2p/go-libp2p-protocol") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld")))) - (build-system go-build-system) - (arguments - '(#:import-path - "github.com/libp2p/go-libp2p-protocol")) - (home-page "https://github.com/libp2p/go-libp2p-protocol") - (synopsis "Type for protocol strings in Golang") - (description "Just a type for protocol strings. Nothing more.") - (license license:expat)))) - -(define-public go-github-com-mitchellh-go-homedir - (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4") - (revision "0")) - (package - (name "go-github-com-mitchellh-go-homedir") - (version (git-version "1.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mitchellh/go-homedir") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq")))) - (build-system go-build-system) - (arguments - (quote (#:import-path "github.com/mitchellh/go-homedir" - ;; TODO: Tests fail because it tries to access home. - #:tests? #f))) - (home-page "https://github.com/mitchellh/go-homedir") - (synopsis "Go library for detecting and expanding the user's home directory without cgo") - (description "This is a Go library for detecting the user's home -directory without the use of @command{cgo}, so the library can be used in -cross-compilation environments. - -Usage is simple, just call homedir.Dir() to get the home directory for a user, -and homedir.Expand() to expand the @command{~} in a path to the home -directory. - -Why not just use @command{os/user}? The built-in @command{os/user} package -requires cgo on Darwin systems. This means that any Go code that uses that -package cannot cross compile. But 99% of the time the use for -@command{os/user} is just to retrieve the home directory, which we can do for -the current user without cgo. This library does that, enabling -cross-compilation.") - (license license:expat)))) - -(define-public go-github-com-mitchellh-mapstructure - (package - (name "go-github-com-mitchellh-mapstructure") - (version "1.5.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mitchellh/mapstructure") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10f2v143lkip8h46shd99k5yavfqpgqmd7a6y42v7szc0lcn3mff")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/mitchellh/mapstructure")) - (home-page "https://github.com/mitchellh/mapstructure") - (synopsis "Go library for decoding generic map values") - (description "Go library for decoding generic map values") - (license license:expat))) - -(define-public go-github-com-mitchellh-reflectwalk - (package - (name "go-github-com-mitchellh-reflectwalk") - (version "1.0.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mitchellh/reflectwalk") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pa6a3nhzwv5s5yqcmsmsfhdp5ggxsg2wa86f3akawxrhrkjarnx")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/mitchellh/reflectwalk")) - (home-page "https://github.com/mitchellh/reflectwalk/") - (synopsis "Walk a value in Go using reflection") - (description "reflectwalk is a Go library for \"walking\" a value in Go -using reflection, in the same way a directory tree can be \"walked\" on the -file system. Walking a complex structure can allow you to do manipulations on -unknown structures such as those decoded from JSON.") - (license license:expat))) - -(define-public go-github-com-mitchellh-copystructure - (package - (name "go-github-com-mitchellh-copystructure") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mitchellh/copystructure") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/mitchellh/copystructure")) - (native-inputs - (list go-github-com-mitchellh-reflectwalk)) - (home-page "https://github.com/mitchellh/copystructure") - (synopsis "Go library for decoding deep copying values") - (description "@code{copystructure} is a Go library for deep copying values -in Go. - -This allows you to copy Go values that may contain reference values such as -maps, slices, or pointers, and copy their data as well instead of just their -references.") - (license license:expat))) - -(define-public go-github-com-whyrusleeping-tar-utils - (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc") - (revision "0")) - (package - (name "go-github-com-whyrusleeping-tar-utils") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/whyrusleeping/tar-utils") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s")))) - (build-system go-build-system) - (arguments - '(#:import-path - "github.com/whyrusleeping/tar-utils")) - (home-page "https://github.com/whyrusleeping/tar-utils") - (synopsis "Tar utilities extracted from go-ipfs codebase") - (description "Tar utilities extracted from @command{go-ipfs} codebase.") - (license license:expat)))) - -(define-public go-github-com-sabhiram-go-gitignore - (let ((commit "525f6e181f062064d83887ed2530e3b1ba0bc95a") - (revision "1")) - (package - (name "go-github-com-sabhiram-go-gitignore") - (version (git-version "1.0.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sabhiram/go-gitignore") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "197giv3snczvbihzvkja5pq53yw5fc516rnjm71hni8gawb8jmh3")))) - (build-system go-build-system) - (arguments - '(#:import-path - "github.com/sabhiram/go-gitignore")) - (native-inputs - (list go-github-com-stretchr-testify)) - (home-page "https://github.com/sabhiram/go-gitignore") - (synopsis "Gitignore parser for Go") - (description "A @command{.gitignore} parser for Go.") - (license license:expat)))) - -(define-public go-github-com-urfave-cli - (package - (name "go-github-com-urfave-cli") - (version "1.22.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/urfave/cli") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc")) - (patches (search-patches "go-github-com-urfave-cli-fix-tests.patch")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/urfave/cli")) - (propagated-inputs - (list go-github-com-go-md2man)) - (home-page "https://github.com/urfave/cli") - (synopsis "Simple, fast, and fun package for building command line apps in Go") - (description "@command{cli} is a simple, fast, and fun package for -building command line apps in Go. The goal is to enable developers to write -fast and distributable command line applications in an expressive way.") - (license license:expat))) - -(define-public go-github-com-urfave-cli-v2 - (package - (inherit go-github-com-urfave-cli) - (name "go-github-com-urfave-cli-v2") - (version "2.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/urfave/cli") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08pvn7gyfznni72xrxfh2x6xxa8ykr7l1ka278js8g8qkh71bj8l")) - ;; XXX: Remove patch when updating. - (patches - (search-patches "go-github-com-urfave-cli-v2-fix-tests.patch")))) - (arguments - '(#:import-path "github.com/urfave/cli/v2")))) - (define-public go-github-com-go-md2man (package (name "go-github-com-go-md2man") - (version "2.0.0") + (version "2.0.5") (source (origin (method git-fetch) @@ -4465,964 +2079,20 @@ fast and distributable command line applications in an expressive way.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv")) - (modules '((guix build utils))) - (snippet '(begin - (delete-file-recursively "vendor") - #t)))) + (base32 "0gqlkv1pv8cpvcj8g77d1hzy5bnp5a3k3xs02iahlr3a65m4azsi")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/cpuguy83/go-md2man")) + (list + #:import-path "github.com/cpuguy83/go-md2man")) (propagated-inputs (list go-github-com-russross-blackfriday-v2)) (home-page "https://github.com/cpuguy83/go-md2man") (synopsis "Convert markdown into roff") - (description "Go-md2man is a Go program that converts markdown to roff for -the purpose of building man pages.") - (license license:expat))) - -(define-public go-github-com-git-lfs-go-netrc - (let ((commit "f0c862dd687a9d9a7e15b3cd7cb3fd3e81cdd5ef") - (revision "0")) - (package - (name "go-github-com-git-lfs-go-netrc") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/git-lfs/go-netrc") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0xvnjyg54gm3m3qszkfp12id0jmpg3583nqvv2llza1nr18w1sqi")))) - (build-system go-build-system) - (arguments `(#:import-path "github.com/git-lfs/go-netrc/netrc" - #:unpack-path "github.com/git-lfs/go-netrc")) - (home-page "https://github.com/git-lfs/go-netrc") - (synopsis "Netrc file parser for Go") - (description "This package is for reading and writing netrc files. This -package can parse netrc files, make changes to them, and then serialize them -back to netrc format, while preserving any whitespace that was present in the -source file.") - (license license:expat)))) - -(define-public go-github-com-russross-blackfriday - (package - (name "go-github-com-russross-blackfriday") - (version "1.6.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/russross/blackfriday") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "036028ynpq52z9snmd2b1kjzyvv6n9sg71k651ndznggnw19aamp")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/russross/blackfriday")) - (propagated-inputs - (list go-github-com-shurcool-sanitized-anchor-name)) - (native-inputs - (list go-github-com-pmezard-go-difflib)) - (home-page "https://github.com/russross/blackfriday") - (synopsis "Markdown processor in Go") - (description "Blackfriday is a Markdown processor in Go.") - (license license:bsd-2))) - -(define-public go-github-com-russross-blackfriday-v2 - (package - (inherit go-github-com-russross-blackfriday) - (name "go-github-com-russross-blackfriday-v2") - (version "2.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/russross/blackfriday") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0d1rg1drrfmabilqjjayklsz5d0n3hkf979sr3wsrw92bfbkivs7")))) - (arguments - (list #:import-path "github.com/russross/blackfriday/v2")))) - -(define-public go-github-com-rubyist-tracerx - (let ((commit "787959303086f44a8c361240dfac53d3e9d53ed2") - (revision "0")) - (package - (name "go-github-com-rubyist-tracerx") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rubyist/tracerx") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xj5213r00zjhb7d2l6wlwv62g6mss50jwjpf7g8fk8djv3l29zz")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/rubyist/tracerx")) - (home-page "https://github.com/rubyist/tracerx/") - (synopsis "Output tracing information in your Go app") - (description "This package is a simple tracing application that logs -messages depending on environment variables. It is very much inspired by git's -GIT_TRACE mechanism.") - (license license:expat)))) - -(define-public go-github-com-shurcool-sanitized-anchor-name - (package - (name "go-github-com-shurcool-sanitized-anchor-name") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/shurcooL/sanitized_anchor_name") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/shurcooL/sanitized_anchor_name")) - (home-page "https://github.com/shurcooL/sanitized_anchor_name") - (synopsis "Create sanitized anchor names") - (description "This package provides a Go program for creating sanitized -anchor names.") - (license license:expat))) - -(define-public go-github-com-pmezard-go-difflib - (package - (name "go-github-com-pmezard-go-difflib") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pmezard/go-difflib") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/pmezard/go-difflib/difflib" - #:unpack-path "github.com/pmezard/go-difflib/")) - (home-page "https://github.com/pmezard/go-difflib") - (synopsis "Go diff implementation") - (description "This package provides unified and context-aware diffs in Go.") - (license license:bsd-3))) - -(define-public go-github-com-whyrusleeping-progmeter - (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04") - (revision "0")) - (package - (name "go-github-com-whyrusleeping-progmeter") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/whyrusleeping/progmeter") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb")))) - (build-system go-build-system) - (arguments - '(#:import-path - "github.com/whyrusleeping/progmeter")) - (home-page "https://github.com/whyrusleeping/progmeter") - (synopsis "Progress meter for Go") - (description "Progress meter for Go.") - (license license:expat)))) - -(define-public go-github-com-whyrusleeping-stump - (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5") - (revision "0")) - (package - (name "go-github-com-whyrusleeping-stump") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/whyrusleeping/stump") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/whyrusleeping/stump")) - (home-page "https://github.com/whyrusleeping/stump") - (synopsis "Very basic logging package for Go") - (description "A simple log library, for when you don't really care to -have super fancy logs.") - (license license:expat)))) - -(define-public go-github-com-kr-fs - (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba") - (revision "0")) - (package - (name "go-github-com-kr-fs") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kr/fs") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/kr/fs")) - (home-page "https://github.com/kr/fs") - (synopsis "File-system-related functions for Go") - (description - "The fs package provides file-system-related Go functions.") - (license license:bsd-3)))) - -(define-public go-github-com-kylelemons-godebug - (package - (name "go-github-com-kylelemons-godebug") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kylelemons/godebug") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/kylelemons/godebug/diff" - #:unpack-path "github.com/kylelemons/godebug")) - (home-page "https://github.com/kylelemons/godebug") - (synopsis "Pretty printer for Go values") - (description - "This package will pretty print a compact representation of a Go data -structure. It can also produce a much more verbose, one-item-per-line -representation suitable for computing diffs.") - (license license:asl2.0))) - -;; TODO: Merge with go-github-com-kylelemons-godebug and provide both module; -;; for go-team. -(define-public go-github-com-kylelemons-godebug-pretty - (package - (inherit go-github-com-kylelemons-godebug) - (name "go-github-com-kylelemons-godebug-pretty") - (arguments - '(#:import-path "github.com/kylelemons/godebug/pretty" - #:unpack-path "github.com/kylelemons/godebug")))) - -(define-public go-github-com-kr-text - (package - (name "go-github-com-kr-text") - (version "0.2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kr/text") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0hf58ypz6rxsw6nx3i856whir9lvy4sdx946wbw1nfaf2rdmr9vx")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/kr/text")) - (propagated-inputs (list go-github-com-creack-pty)) - (synopsis "Text formatting in Go") - (description "This package provides a text formatting functions in Go.") - (home-page "https://github.com/kr/text") - (license license:expat))) - -(define-public go-github-com-go-sql-driver-mysql - (package - (name "go-github-com-go-sql-driver-mysql") - (version "1.8.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-sql-driver/mysql") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0ihdqg411gkv454fwx8w5nbndgkm5dz5phfliksxgmhggyxxm7sn")))) - (build-system go-build-system) - (arguments - '(#:tests? #f ;; tests require a network connection - #:import-path "github.com/go-sql-driver/mysql")) - (propagated-inputs - (list go-filippo-io-edwards25519)) - (home-page "https://github.com/go-sql-driver/mysql") - (synopsis "MySQL driver for golang") - (description - "This is a pure Go implementation of the MySQL API, compatible with -golang's database/sql package.") - (license license:mpl2.0))) - -(define-public go-github-com-lucasb-eyer-go-colorful - (package - (name "go-github-com-lucasb-eyer-go-colorful") - (version "1.2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lucasb-eyer/go-colorful") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "08c3fkf27r16izjjd4w94xd1z7w1r4mdalbl53ms2ka2j465s3qs")))) - (build-system go-build-system) - (propagated-inputs (list go-golang-org-x-image)) - (arguments - (list #:import-path "github.com/lucasb-eyer/go-colorful")) - (home-page "https://github.com/lucasb-eyer/go-colorful") - (synopsis "Library for playing with colors in Go") - (description - "The colorful package provides a library for using colors in Go. -It stores colors in RGB and provides methods for converting these to -various color spaces.") - (license license:expat))) - -(define-public go-github-com-gdamore-encoding - (package - (name "go-github-com-gdamore-encoding") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gdamore/encoding") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/gdamore/encoding")) - (inputs - (list go-golang-org-x-text)) - (home-page "https://github.com/gdamore/encoding") - (synopsis "Provide encodings missing from Go") - (description "This package provides useful encodings not included in the -standard @code{Text} package, including some for dealing with I/O streams from -non-UTF-friendly sources.") - (license license:expat))) - -(define-public go-github-com-cention-sany-utf7 - (package - (name "go-github-com-cention-sany-utf7") - (version "0.0.0-20170124080048-26cad61bd60a") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cention-sany/utf7") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jy15ryfcln1iwchrksqyrnyfy41gisymm4f9sr1d73ja029bznm")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/cention-sany/utf7")) - (propagated-inputs (list go-golang-org-x-text)) - (home-page "https://github.com/cention-sany/utf7") - (synopsis "UTF-7 for Go") - (description - "The utf7 package provides support for the obsolete UTF-7 text -encoding in Go.") - (license license:bsd-3))) - -(define-public go-github-com-cespare-mph - (package - (name "go-github-com-cespare-mph") - (version "0.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cespare/mph") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mvd6bkvf3i3555kqkkr3k9jd4c25scjq4xad35sxpny8f72nbg1")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/cespare/mph")) - (home-page "https://github.com/cespare/mph") - (synopsis "Minimal perfect hashing in Go") - (description - "@code{mph} is a Go package that implements a minimal perfect hash table -over strings.") - (license license:expat))) - -(define-public go-github-com-gdamore-tcell - (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e") - (version "1.1.2") - (revision "1")) - (package - (name "go-github-com-gdamore-tcell") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gdamore/tcell") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/gdamore/tcell")) - (inputs - (list go-github-com-mattn-go-runewidth - go-github-com-lucasb-eyer-go-colorful - go-golang-org-x-text - go-github-com-gdamore-encoding)) - (home-page "https://github.com/gdamore/tcell") - (synopsis "Provide a cell-based view for text terminals") - (description "This package includes a full parser and expander for -terminfo capability strings to avoid hard-coding escape strings for -formatting. It also favors portability, and includes support for all POSIX -systems.") - (license license:asl2.0)))) - -(define-public go-github-com-gdamore-tcell-v2 - (package - (inherit go-github-com-gdamore-tcell) - (name "go-github-com-gdamore-tcell") - (version "2.7.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gdamore/tcell") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05b22sgyf8lnwjddxlfvlj7i8b67gnidhbnz86vvx8fddggpa5nd")))) - (arguments - (list #:import-path "github.com/gdamore/tcell/v2" - #:phases - #~(modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda _ - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (for-each make-file-writable - (find-files #$output "\\.gz$"))))))) - (propagated-inputs - (modify-inputs (package-inputs go-github-com-gdamore-tcell) - (prepend go-golang-org-x-term go-golang-org-x-sys))))) - -(define-public go-github-com-delthas-tcell-v2 - ;; TODO This variant allows upgrading senpai, and looks to be unnecessary in - ;; the next release of senpai - (hidden-package - (package - (inherit go-github-com-gdamore-tcell) - (name "go-github-com-delthas-tcell") - (version "2.4.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/delthas/tcell") - (commit "837a7d7"))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05zr73q38dawl7hr6g7v4pkyv6mqr0zp2l9qsgn7xmf1p9q4bn7j")))) - (propagated-inputs (modify-inputs (package-inputs - go-github-com-gdamore-tcell) - (prepend go-golang-org-x-term go-golang-org-x-sys)))))) - -(define-public go-git-sr-ht-rockorager-tcell-term - (package - (name "go-git-sr-ht-rockorager-tcell-term") - (version "0.9.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~rockorager/tcell-term") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "177ladvpiiw7sb0hsjjv9p2yv5wpqpw6nqardkm8mqqlj0swa9xx")))) - (build-system go-build-system) - (arguments - (list #:import-path "git.sr.ht/~rockorager/tcell-term")) - (propagated-inputs - (list go-golang-org-x-sys - go-golang-org-x-term - go-gopkg-in-check-v1 - go-github-com-mattn-go-runewidth - go-github-com-davecgh-go-spew - go-github-com-stretchr-testify - go-github-com-gdamore-tcell-v2 - go-github-com-creack-pty)) - (home-page "https://git.sr.ht/~rockorager/tcell-term") - (synopsis "Terminal widget for @code{tcell}") - (description - "This package provides a virtual terminal widget for the @code{tcell} -Go library.") - (license license:expat))) - -(define-public go-github-com-rivo-tview - (package - (name "go-github-com-rivo-tview") - (version "0.0.0-20220703182358-a13d901d3386") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rivo/tview") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0gf1m3ndbc3kgxpv0ryq9a1ahijg6m896sc9k7dvwfjd8vy0q0yd")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/rivo/tview")) - (propagated-inputs (list go-golang-org-x-term - go-golang-org-x-sys - go-github-com-rivo-uniseg - go-github-com-mattn-go-runewidth - go-github-com-lucasb-eyer-go-colorful - go-github-com-gdamore-tcell-v2)) - (home-page "https://github.com/rivo/tview") - (synopsis "Rich Interactive Widgets for Terminal UIs") - (description - "The tview package implements rich widgets for terminal based user -interfaces. The widgets provided with this package are useful for data -exploration and data entry.") - (license license:expat))) - -(define-public go-github-com-xo-terminfo - (package - (name "go-github-com-xo-terminfo") - (version "0.0.0-20210125001918-ca9a967f8778") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xo/terminfo") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05gdcvcbwcrcwxznhvs1q1xh4irz2d10v2mz179pydjh30kjc0j5")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/xo/terminfo")) - (home-page "https://github.com/xo/terminfo") - (synopsis "Read the terminfo database in Go") - (description - "The terminfo package implements terminfo database reading for Go.") - (license license:expat))) - -(define-public go-github-com-burntsushi-locker - (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a") - (revision "0")) - (package - (name "go-github-com-burntsushi-locker") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/BurntSushi/locker") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/BurntSushi/locker")) - (home-page "https://github.com/BurntSushi/locker") - (synopsis "Manage named ReadWrite mutexes in Go") - (description "Golang package for conveniently using named read/write -locks. These appear to be especially useful for synchronizing access to -session based information in web applications. - -The common use case is to use the package level functions, which use a package -level set of locks (safe to use from multiple goroutines -simultaneously). However, you may also create a new separate set of locks -test. - -All locks are implemented with read-write mutexes. To use them like a regular -mutex, simply ignore the RLock/RUnlock functions.") - (license license:unlicense)))) - -(define-public go-github-com-cheekybits-genny - (package - (name "go-github-com-cheekybits-genny") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cheekybits/genny") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/cheekybits/genny")) - (propagated-inputs - (list go-golang-org-x-tools)) - (native-inputs - (list go-github-com-stretchr-testify)) - (synopsis "Generics for Go") - (description "This package provides @code{genny}, a Go language -implementation of generics.") - (home-page "https://github.com/cheekybits/genny/") - (license license:expat))) - -(define-public go-github-com-lunixbochs-vtclean - (package - (name "go-github-com-lunixbochs-vtclean") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lunixbochs/vtclean") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jqn33l1kzy4dk66zbvxz7rlgkgg34s9mhc8z0lrz0i88466zhd8")))) - (build-system go-build-system) - (arguments (list #:import-path "github.com/lunixbochs/vtclean")) - (home-page "https://github.com/lunixbochs/vtclean") - (synopsis "Filter out terminal escape sequences") - (description - "The @code{vtclean} provides the @command{vtclean} command and a library -designed to clean up raw terminal output by stripping escape sequences, -optionally preserving color.") - (license license:expat))) - -;; XXX: This repository has been archived by the owner on Dec 1, 2021. It is -;; now read-only. -(define-public go-github-com-pkg-errors - (package - (name "go-github-com-pkg-errors") - (version "0.9.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pkg/errors") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq")))) - (build-system go-build-system) - (arguments - (list - ;; Tests fail with a newer version of Golang (1.21) due to some API - ;; changes in how the module path is calculated which is not reflected - ;; in tests. - #:tests? #f - #:import-path "github.com/pkg/errors")) - (synopsis "Go error handling primitives") - (description "This package provides @code{error}, which offers simple -error handling primitives in Go.") - (home-page "https://github.com/pkg/errors") - (license license:bsd-2))) - -(define-public go-github-com-maruel-panicparse - (package - (name "go-github-com-maruel-panicparse") - (version "1.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/maruel/panicparse") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/maruel/panicparse")) - (synopsis "Toolkit for parsing Go stack traces") - (description "This package provides a toolkit for parsing Go language panic -stack traces. It simplifies the traces to make salient information more visible -and aid debugging.") - (home-page "https://github.com/maruel/panicparse") - (license license:asl2.0))) - -(define-public go-github-com-robfig-cron - (package - (name "go-github-com-robfig-cron") - (version "3.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/robfig/cron") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1agzbw2dfk2d1mpmddr85s5vh6ygm8kqrvfg87i9d2wqnlsnliqm")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/robfig/cron")) - (home-page "https://godoc.org/github.com/robfig/cron") - (synopsis "Cron library for Go") - (description "This package provides a cron library for Go. It implements -a cron spec parser and job runner.") - (license license:expat))) - -(define-public go-github-com-ddevault-go-libvterm - (let ((commit "b7d861da381071e5d3701e428528d1bfe276e78f") - (revision "0")) - (package - (name "go-github-com-ddevault-go-libvterm") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ddevault/go-libvterm") - (commit commit))) - (sha256 - (base32 - "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6")) - (file-name (git-file-name name version)))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/ddevault/go-libvterm")) - (propagated-inputs - (list go-github-com-mattn-go-pointer)) - (home-page "https://github.com/ddevault/go-libvterm") - (synopsis "Go binding to libvterm") - (description - "This is a fork of another go-libvterm library for use with aerc.") - (license license:expat)))) - -(define (go-gotest-tools-source version sha256-base32-hash) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gotestyourself/gotest.tools") - (commit (string-append "v" version)))) - (file-name (git-file-name "go-gotest-tools" version)) - (sha256 - (base32 sha256-base32-hash)))) - -;; Note that version 3.0.0 is incompatible to 2.3.0. -;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>. -(define (go-gotest-tools-package suffix) - (package - (name (string-append "go-gotest-tools-" - (string-replace-substring suffix "/" "-"))) - (version "2.3.0") - (source - (go-gotest-tools-source version - "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i")) - (build-system go-build-system) - (arguments - `(#:import-path ,(string-append "gotest.tools/" suffix) - #:unpack-path "gotest.tools")) - (synopsis "@code{gotest-tools} part") - (description "This package provides a part of @code{gotest-tools}.") - (home-page "https://github.com/gotestyourself/gotest.tools") - (license license:asl2.0))) - -(define-public go-gotest-tools-internal-format - (package (inherit (go-gotest-tools-package "internal/format")) - (native-inputs - (list go-github-com-pkg-errors go-github-com-google-go-cmp)) - (synopsis "Formats messages for use with gotest-tools") - (description "This package provides a way to format messages for use -with gotest-tools."))) - -(define-public go-gotest-tools-internal-difflib - (package (inherit (go-gotest-tools-package "internal/difflib")) - (synopsis "Differences for use with gotest-tools") - (description "This package computes differences for use -with gotest-tools."))) - -(define-public go-gotest-tools-internal-source - (package (inherit (go-gotest-tools-package "internal/source")) - (arguments - (substitute-keyword-arguments - (package-arguments (go-gotest-tools-package "internal/source")) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (replace 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (unless - ;; failed to parse source file: : open : no such file or directory - (false-if-exception (search-input-file inputs "/bin/gccgo")) - (apply (assoc-ref %standard-phases 'check) args)))))))) - (native-inputs - (list go-github-com-pkg-errors go-github-com-google-go-cmp)) - (synopsis "Source code AST formatters for gotest-tools") - (description "This package provides source code AST formatters for -gotest-tools."))) - -(define-public go-gotest-tools-assert - (package (inherit (go-gotest-tools-package "assert")) - (name "go-gotest-tools-assert") - (arguments - `(#:tests? #f ; Test failure concerning message formatting (FIXME) - #:import-path "gotest.tools/assert" - #:unpack-path "gotest.tools")) - (propagated-inputs - (list go-github-com-google-go-cmp - go-github-com-pkg-errors - go-github-com-spf13-pflag - go-golang-org-x-tools)) - (synopsis "Compare values and fail a test when a comparison fails") - (description "This package provides a way to compare values and fail a -test when a comparison fails.") - (home-page "https://github.com/gotestyourself/gotest.tools") - (license license:asl2.0))) - -(define-public gotestsum - (package - (name "gotestsum") - (version "0.4.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gotestyourself/gotestsum") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0")))) - (build-system go-build-system) - (arguments - '(#:import-path "gotest.tools/gotestsum")) - (native-inputs - (list go-github-com-fatih-color - go-golang-org-x-sync - go-github-com-pkg-errors - go-github-com-sirupsen-logrus - go-github-com-spf13-pflag - go-github-com-jonboulle-clockwork - go-golang-org-x-crypto - go-gotest-tools-assert - go-github-com-google-go-cmp - ;; TODO: This would be better as a propagated-input of - ;; go-gotest-tools-assert, but that does not work for - ;; some reason. - go-gotest-tools-internal-format - go-gotest-tools-internal-difflib - go-gotest-tools-internal-source - go-github-com-google-go-cmp)) - (synopsis "Go test runner with output optimized for humans") - (description "This package provides a @code{go test} runner with output -optimized for humans, JUnit XML for CI integration, and a summary of the -test results.") - (home-page "https://github.com/gotestyourself/gotestsum") - (license license:asl2.0))) - -(define-public go-github-com-macronut-go-tproxy - (package - (name "go-github-com-macronut-go-tproxy") - (version "0.0.0-20190726054950-ef7efd7f24ed") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/FutureProtocolLab/go-tproxy") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0jibsg0xhsn0h1jq4g9qd4nr58w43y8majlwfri9ffk2cbfrwqdr")) - (modules '((guix build utils))) - (snippet '(delete-file-recursively "example")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/macronut/go-tproxy")) - (home-page "https://github.com/FutureProtocolLab/go-tproxy") - (synopsis "Linux Transparent Proxy library") (description - "Golang TProxy provides an easy to use wrapper for the Linux Transparent -Proxy functionality.") + "Go-md2man is a Go program that converts markdown to roff for the purpose +of building man pages.") (license license:expat))) -(define-public go-github-com-bits-and-blooms-bitset - (package - (name "go-github-com-bits-and-blooms-bitset") - (version "1.11.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bits-and-blooms/bitset") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ialciixmr98p10rh61rnnkxpqi1j9hycbkv9rnjl0vnmsnpy0cy")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/bits-and-blooms/bitset")) - (synopsis "Bitsets in Go") - (description "This package provides a Go implementation of bitsets, which -are a mapping between non-negative integers and boolean values focused on -efficient space usage.") - (home-page "https://github.com/bits-and-blooms/bitset") - (license license:bsd-3))) - -(define-public go-github-com-bits-and-blooms-bloom-v3 - (package - (name "go-github-com-bits-and-blooms-bloom-v3") - (version "3.7.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bits-and-blooms/bloom") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "022pyzjp862ysl30aj105i2xmapn400ambjh8h1dcyjy9c0f8agn")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/bits-and-blooms/bloom")) - (propagated-inputs - (list go-github-com-twmb-murmur3 go-github-com-bits-and-blooms-bitset)) - (synopsis "Bloom filters in Go") - (description "This package provides a Go implementation of bloom filters, -based on murmurhash.") - (home-page "https://github.com/bits-and-blooms/bitset") - (license license:bsd-2))) - (define-public go-golang-org-rainycape-unidecode (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c") (revision "1")) @@ -5448,33 +2118,6 @@ based on murmurhash.") characters with their ASCII approximations.") (license license:asl2.0)))) -(define-public go-github-com-golang-freetype - (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4") - (revision "1")) - (package - (name "go-github-com-golang-freetype") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/golang/freetype") - (commit commit))) - (file-name (string-append "go-github-com-golang-freetype-" - version "-checkout")) - (sha256 - (base32 - "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/golang/freetype")) - (propagated-inputs - (list go-golang-org-x-image)) - (home-page "https://github.com/golang/freetype") - (synopsis "Freetype font rasterizer in the Go programming language") - (description "The Freetype font rasterizer in the Go programming language.") - (license (list license:freetype - license:gpl2+))))) - (define-public go-github-com-fogleman-gg (package (name "go-github-com-fogleman-gg") @@ -5499,710 +2142,6 @@ characters with their ASCII approximations.") (description "@code{gg} is a library for rendering 2D graphics in pure Go.") (license license:expat))) -(define-public go-github-com-gedex-inflector - (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325") - (revision "1")) - (package - (name "go-github-com-gedex-inflector") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gedex/inflector") - (commit commit))) - (file-name (string-append "go-github-com-gedex-inflector-" - version "-checkout")) - (sha256 - (base32 - "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/gedex/inflector")) - (home-page "https://github.com/gedex/inflector") - (synopsis "Go library that pluralizes and singularizes English nouns") - (description "Go library that pluralizes and singularizes English nouns.") - (license license:bsd-2)))) - -(define-public go-github-com-surge-glog - (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985") - (revision "1")) - (package - (name "go-github-com-surge-glog") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/surge/glog") - (commit commit))) - (file-name (string-append "go-github-com-surge-glog-" - version "-checkout")) - (sha256 - (base32 - "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/surge/glog")) - (home-page "https://github.com/surge/glog") - (synopsis "Leveled execution logs for Go") - (description "Leveled execution logs for Go.") - (license license:asl2.0)))) - -(define-public go-github-com-surgebase-porter2 - (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a") - (revision "1")) - (package - (name "go-github-com-surgebase-porter2") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/surgebase/porter2") - (commit commit))) - (file-name (string-append "go-github-com-surgebase-porter2-" - version "-checkout")) - (sha256 - (base32 - "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/surgebase/porter2")) - (native-inputs - (list go-github-com-stretchr-testify go-github-com-surge-glog)) - (home-page "https://github.com/surgebase/porter2") - (synopsis "Go library implementing english Porter2 stemmer") - (description "Porter2 implements the -@url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english -Porter2 stemmer}. It is written completely using finite state machines to do -suffix comparison, rather than the string-based or tree-based approaches.") - (license license:asl2.0)))) - -(define-public go-github-com-masterminds-goutils - (package - (name "go-github-com-masterminds-goutils") - (version "1.1.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Masterminds/goutils") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "09m4mbcdlv9ng3xcrmjlxi0niavby52y9nl2jhjnbx1xxpjw0jrh")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/Masterminds/goutils")) - (home-page "https://github.com/Masterminds/goutils/") - (synopsis "Utility functions to manipulate strings") - (description "GoUtils provides utility functions to manipulate strings in -various ways. It is a Go implementation of some string manipulation libraries -of Java Apache Commons.") - (license license:asl2.0))) - -(define-public go-github-com-huandu-xstrings - (package - (name "go-github-com-huandu-xstrings") - (version "1.3.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/huandu/xstrings") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pwar6rc0fqb6pll38a44s81g5kb65vbg71jg5lx8caphjnikq5r")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/huandu/xstrings")) - (home-page "https://github.com/huandu/xstrings/") - (synopsis "Collection of string functions") - (description "Go package xstrings is a collection of string functions, -which are widely used in other languages but absent in Go package strings.") - (license license:expat))) - -(define-public go-github-com-imdario-mergo - (package - (name "go-github-com-imdario-mergo") - (version "0.3.10") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/imdario/mergo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "09h765p8yby9r8s0a3hv5kl8n2i382mda76wmvk48w1cc1w9s92p")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/imdario/mergo")) - (native-inputs - (list go-gopkg-in-yaml-v2)) - (home-page "https://github.com/imdario/mergo/") - (synopsis "Helper to merge structs and maps in Golang") - (description "Helper to merge structs and maps in Golang. Useful for -configuration default values, avoiding messy if-statements. - -Mergo merges same-type structs and maps by setting default values in -zero-value fields. Mergo won't merge unexported (private) fields. It will do -recursively any exported one. It also won't merge structs inside -maps (because they are not addressable using Go reflection).") - (license license:bsd-3))) - -(define-public go-dario-cat-mergo - (package - (inherit go-github-com-imdario-mergo) - (name "go-dario-cat-mergo") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/imdario/mergo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "037k2bd97vnbyhn2sczxk0j6ijmv06n1282f76i3ky73s3qmqnlf")))) - (build-system go-build-system) - (arguments - `(#:unpack-path "dario.cat/mergo" - #:import-path "dario.cat/mergo")) - (native-inputs - (list go-gopkg-in-yaml-v3)))) - -(define-public go-github-com-bmatcuk-doublestar - (package - (name "go-github-com-bmatcuk-doublestar") - (version "1.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bmatcuk/doublestar") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0bk5bixl6rqa8znxghyp6zndbccx9kdyrymjahgyp6qsrp7rk144")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/bmatcuk/doublestar" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-incompatible-test - ;; This test fails with Go 1.16. - (lambda _ - (substitute* "src/github.com/bmatcuk/doublestar/doublestar_test.go" - (("\\{\"a\\[\", \"a\", false, nil, false\\},.*") - ""))))))) - (home-page "https://github.com/bmatcuk/doublestar/") - (synopsis "Path pattern matching and globbing supporting doublestar") - (description "@code{doublestar} is a Go implementation of path pattern -matching and globbing with support for \"doublestar\" patterns.") - (license license:expat))) - -;; For chezmoi-1.8.11 -(define-public go-github-com-bmatcuk-doublestar-v2 - (package - (inherit go-github-com-bmatcuk-doublestar) - (name "go-github-com-bmatcuk-doublestar-v2") - (version "2.0.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bmatcuk/doublestar") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09ma8a9rhs8dg527vjhdf3lsb6lajaq193m6ksssm2k3qajhpi94")))) - (arguments - (list - #:tests? #f ; tests have more broken parts - #:unpack-path "github.com/bmatcuk/doublestar/v2" - #:import-path "github.com/bmatcuk/doublestar/v2")))) - -(define-public go-github-com-bmatcuk-doublestar-v3 - (package - (inherit go-github-com-bmatcuk-doublestar) - (name "go-github-com-bmatcuk-doublestar-v3") - (version "3.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bmatcuk/doublestar") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "011h07mlmscbxxjr3h30fjjb4dw3gb245nzczaq520r112xlidhj")))) - (arguments - (list - #:tests? #f ; tests have more broken parts - #:import-path "github.com/bmatcuk/doublestar/v3")))) - -(define-public go-github-com-bmatcuk-doublestar-v4 - (package - (inherit go-github-com-bmatcuk-doublestar) - (name "go-github-com-bmatcuk-doublestar-v4") - (version "4.6.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bmatcuk/doublestar") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "12rf4a9isgg2nh927gikgbmyaynaqp4kjahgscb4qnr04m3vpr41")))) - (arguments - (list - #:import-path "github.com/bmatcuk/doublestar/v4")))) - -(define-public go-github-com-olekukonko-tablewriter - (package - (name "go-github-com-olekukonko-tablewriter") - (version "0.0.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/olekukonko/tablewriter") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02r0n2b9yh3x8xyf48k17dxlwj234hlgjycylbjxi6qg08hfmz2x")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/olekukonko/tablewriter")) - (propagated-inputs - (list go-github-com-mattn-go-runewidth)) - (home-page "https://github.com/olekukonko/tablewriter/") - (synopsis "Generate ASCII table") - (description "This package generates ASCII tables. Features: -@itemize -@item automatic Padding -@item support Multiple Lines -@item supports Alignment -@item support Custom Separators -@item automatic Alignment of numbers and percentage -@item write directly to http , file etc via @code{io.Writer} -@item read directly from CSV file -@item optional row line via @code{SetRowLine} -@item normalise table header -@item make CSV Headers optional -@item enable or disable table border -@item set custom footer support -@item optional identical cells merging -@item set custom caption -@item optional reflowing of paragrpahs in multi-line cells -@end itemize\n") - (license license:expat))) - -(define-public go-github-com-olekukonko-ts - (let ((commit "78ecb04241c0121483589a30b0814836a746187d") - (revision "0")) - (package - (name "go-github-com-olekukonko-ts") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/olekukonko/ts") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0k88n5rvs5k5zalbfa7c71jkjb8dhpk83s425z728qn6aq49c978")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/olekukonko/ts" - #:tests? #f)) ; inappropriate ioctl for device. - (home-page "https://github.com/olekukonko/ts/") - (synopsis "Simple Go application to get the size of the terminal") - (description "This package provides a simple Go application to get the -size of the terminal.") - (license license:expat)))) - -(define-public go-github-com-charmbracelet-glamour - (package - (name "go-github-com-charmbracelet-glamour") - (version "0.7.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/charmbracelet/glamour") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "073kyx94r9f0hpjv5c3x9pfdd3dbpyqcy7jhx4yxz0ps25j1a41p")))) - (build-system go-build-system) - (arguments - (list - #:embed-files #~(list ".*\\.xml") - #:import-path "github.com/charmbracelet/glamour" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-tests - (lambda _ - ;; Some tests fail due to different number of '^[0m' symbols at - ;; the beginning and the end of paragraphs. To fix that we - ;; re-generate 'readme.test' so the test output will match the - ;; 'readme.test' contents. - (chmod "src/github.com/charmbracelet/glamour/testdata/readme.test" - #o644) - (substitute* "src/github.com/charmbracelet/glamour/glamour_test.go" - ((" generate = false") - " generate = true"))))))) - (propagated-inputs - (list go-github-com-alecthomas-chroma-v2 - go-github-com-microcosm-cc-bluemonday - go-github-com-muesli-reflow - go-github-com-muesli-termenv - go-github-com-olekukonko-tablewriter - go-github-com-yuin-goldmark - go-github-com-yuin-goldmark-emoji)) - (home-page "https://github.com/charmbracelet/glamour/") - (synopsis "Write handsome command-line tools with glamour") - (description "@code{glamour} lets you render markdown documents and -templates on ANSI compatible terminals. You can create your own stylesheet or -use one of our glamorous default themes.") - (license license:expat))) - -(define-public go-github-com-charmbracelet-harmonica - (package - (name "go-github-com-charmbracelet-harmonica") - (version "0.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/charmbracelet/harmonica") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1aasg0c0xxhwav4ivm1mqmsqab6lk407xky8c19pb85r1hdbq0n7")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/charmbracelet/harmonica" - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'remove-examples - (lambda* (#:key import-path #:allow-other-keys) - (delete-file-recursively - (string-append "src/" import-path "/examples"))))))) - (home-page "https://github.com/charmbracelet/harmonica") - (synopsis "Simple, physics-based animation library") - (description - "A simple, efficient spring animation library for smooth, natural motion.") - (license license:expat))) - -(define-public go-github-com-coreos-go-semver - (package - (name "go-github-com-coreos-go-semver") - (version "0.3.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/coreos/go-semver") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vs04yykv1bwgvbyvi1m7ps83w06wzplw4giw8jac2iidx0x74v5")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/coreos/go-semver")) - (propagated-inputs (list go-gopkg-in-yaml-v2)) - (home-page "https://github.com/coreos/go-semver/") - (synopsis "Semantic versioning library") - (description "@code{go-semver} is a semantic versioning library for Go. -It lets you parse and compare two semantic version strings.") - (license license:asl2.0))) - -(define-public go-github-com-emirpasic-gods - (package - (name "go-github-com-emirpasic-gods") - (version "1.12.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emirpasic/gods") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0i5qqq7ajvw3mikr95zl9rsnfsjanzwpqqs6kzzplsfgsifybar1")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/emirpasic/gods" - ; Source-only package - #:tests? #f - #:phases - (modify-phases %standard-phases - (delete 'build)))) - (home-page "https://github.com/emirpasic/gods/") - (synopsis "Implementation of various data structures and algorithms in Go") - (description "This package provides implementation of various data -structures and algorithms in Go.") - (license license:bsd-2))) - -(define-public go-gopkg-in-warnings - (package - (name "go-gopkg-in-warnings") - (version "0.1.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-warnings/warnings") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kzj50jn708cingn7a13c2wdlzs6qv89dr2h4zj8d09647vlnd81")))) - (build-system go-build-system) - (arguments - `(#:import-path "gopkg.in/warnings.v0")) - (home-page "https://gopkg.in/warnings.v0") - (synopsis "Error handling with non-fatal errors") - (description "Package warnings implements error handling with non-fatal -errors (warnings).") - (license license:bsd-2))) - -(define-public go-github-com-go-git-gcfg - (package - (name "go-github-com-go-git-gcfg") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-git/gcfg") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lb14z4j35pwz2b2rbykkpsq515spwbndb00gwn2xlrzn949xb83")))) - (arguments - `(#:import-path "github.com/go-git/gcfg")) - (native-inputs - (list go-gopkg-in-warnings go-github-com-pkg-errors)) - (build-system go-build-system) - (home-page "https://github.com/go-git/gcfg/") - (synopsis "Gcfg reads INI-style configuration files into Go structs") - (description "Gcfg reads INI-style configuration files into Go structs.") - (license license:bsd-3))) - -(define-public go-github-com-jba-templatecheck - (package - (name "go-github-com-jba-templatecheck") - (version "0.6.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jba/templatecheck") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "12iwkidz4p6wdl65jfddqxls80mv879k2rpb42dj7y4dja5advlc")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/jba/templatecheck")) - (propagated-inputs (list go-github-com-google-safehtml)) - (home-page "https://github.com/jba/templatecheck") - (synopsis "Checks Go templates for problems") - (description - "Package templatecheck checks Go templates for problems. It can detect -many errors that are normally caught only during execution. Use templatecheck -in tests to find template errors early, and along template execution paths -that might only rarely be reached.") - (license license:expat))) - -(define-public go-github-com-jbenet-go-context - (let ((commit "d14ea06fba99483203c19d92cfcd13ebe73135f4") - (revision "1")) - (package - (name "go-github-com-jbenet-go-context") - (version (git-version "0.0.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jbenet/go-context") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/jbenet/go-context" - ; Source-only package - #:tests? #f - #:phases - (modify-phases %standard-phases - (delete 'build)))) - (home-page "https://github.com/jbenet/go-context/") - (synopsis "@code{jbenet's} context extensions") - (description "This package provides @code{jbenet's} context -extensions.") - (license license:expat)))) - -(define-public go-github-com-juju-ansiterm - (package - (name "go-github-com-juju-ansiterm") - (version "0.0.0-20210929141451-8b71cc96ebdc") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/juju/ansiterm") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05mk7mlvg11dd6b0j0wlq547ghbmx2ywwrlbcb4kddpg7qaqp1va")))) - (build-system go-build-system) - (arguments (list #:import-path "github.com/juju/ansiterm")) - (propagated-inputs - (list go-gopkg-in-check-v1 - go-github-com-mattn-go-isatty - go-github-com-mattn-go-colorable - go-github-com-lunixbochs-vtclean)) - (home-page "https://github.com/juju/ansiterm") - (synopsis "Writer to output ANSI escape codes for color and styles") - (description - "The ansiterm package provides a writer to output the ANSI escape codes -for color and styles.") - (license license:lgpl3))) - -(define-public go-github-com-kevinburke-ssh-config - (package - (name "go-github-com-kevinburke-ssh-config") - (version "1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kevinburke/ssh_config") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05jvz5r58a057zxvic9dyr9v2wilha8l6366npwkqgxmnmk9sh5f")))) - (arguments - `(#:import-path "github.com/kevinburke/ssh_config")) - (build-system go-build-system) - (home-page "https://github.com/kevinburke/ssh_config/") - (synopsis "Parser for @file{ssh_config} files") - (description "This is a Go parser for @file{ssh_config} files. -Importantly, this parser attempts to preserve comments in a given file, so you -can manipulate a @file{ssh_config} file from a program.") - (license license:expat))) - -(define-public go-github-com-alcortesm-tgz - (let ((commit "9c5fe88206d7765837fed3732a42ef88fc51f1a1") - (revision "1")) - (package - (name "go-github-com-alcortesm-tgz") - (version (git-version "0.0.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alcortesm/tgz") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04dcwnz2c2i4wbq2vx3g2wrdgqpncr2r1h6p1k08rdwk4bq1h8c5")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "tgz_test.go" - ;; Fix format error - (("t.Fatalf\\(\"%s: unexpected error extracting: %s\", err\\)") - "t.Fatalf(\"%s: unexpected error extracting: %s\", com, err)")) - #t)))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/alcortesm/tgz" - #:phases - (modify-phases %standard-phases - ;; Files are test fixtures, not generated. - (delete 'reset-gzip-timestamps)))) - (home-page "https://github.com/alcortesm/tgz/") - (synopsis "Go library to extract tgz files to temporal directories") - (description "This package provides a Go library to extract tgz files to -temporal directories.") - (license license:expat)))) - -(define-public go-github-com-pkg-diff - (package - (name "go-github-com-pkg-diff") - (version "0.0.0-20210226163009-20ebb0f2a09e") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pkg/diff") - (commit "20ebb0f2a09e612109b224b32f79370409108bcc"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1g3dzgwhz4fx3ddpsv7fsa4r1v5clsp2lbw2qrkdk9y1vc5gi8yi")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/pkg/diff")) - (home-page "https://github.com/pkg/diff/") - (synopsis "Create and print diffs") - (description - "This package provides a Go library to create and print diffs.") - (license license:bsd-3))) - -(define-public go-github-com-twpayne-go-shell - (package - (name "go-github-com-twpayne-go-shell") - (version "0.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/twpayne/go-shell") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1hv0ggy3935iddjnmpp9vl0kqjknxpnbmm9w7xr3gds7fpbxz6yp")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/twpayne/go-shell")) - (home-page "https://github.com/twpayne/go-shell/") - (synopsis "Shell across multiple platforms") - (description - "Package @code{shell} returns a user's shell across multiple platforms.") - (license license:expat))) - -(define-public go-github-com-twpayne-go-vfs - (package - (name "go-github-com-twpayne-go-vfs") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/twpayne/go-vfs") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "19dm3gi45znwaqbzxhwcgkiz8059bwa3ank80hc6qhdl579bpjnz")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/twpayne/go-vfs")) - (native-inputs - (list go-github-com-bmatcuk-doublestar - go-github-com-stretchr-testify)) - (home-page "https://github.com/twpayne/go-vfs/") - (synopsis "Abstraction of the @code{os} and @code{ioutil} Go packages") - (description "Package @code{vfs} provides an abstraction of the @code{os} -and @code{ioutil} packages that is easy to test.") - (license license:expat))) - (define-public go-github-com-twpayne-go-vfsafero (package (name "go-github-com-twpayne-go-vfsafero") @@ -6220,7 +2159,7 @@ and @code{ioutil} packages that is easy to test.") (arguments `(#:import-path "github.com/twpayne/go-vfsafero")) (native-inputs - (list go-github-com-twpayne-go-vfs go-github-com-spf13-afero)) + (list go-github-com-twpayne-go-vfs-1.0.1 go-github-com-spf13-afero-1.1.2)) (home-page "https://github.com/twpayne/go-vfsafero/") (synopsis "Compatibility later between @code{go-vfs} and @code{afero}") (description @@ -6228,163 +2167,6 @@ and @code{ioutil} packages that is easy to test.") @code{go-github-com-twpayne-go-vfs} and @code{go-github-com-spf13-afero}.") (license license:expat))) -(define-public go-github-com-twpayne-go-xdg-v3 - (package - (name "go-github-com-twpayne-go-xdg-v3") - (version "3.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/twpayne/go-xdg") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0j8q7yzixs6jlaad0lpa8hs6b240gm2cmy0yxgnprrbpa0y2r7ln")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/twpayne/go-xdg/v3")) - (native-inputs - (list go-github-com-stretchr-testify go-github-com-twpayne-go-vfs)) - (home-page "https://github.com/twpayne/go-xdg/") - (synopsis "Functions related to freedesktop.org") - (description "Package @code{xdg} provides functions related to -@uref{freedesktop.org}.") - (license license:expat))) - -(define-public go-github-com-xdg-go-stringprep - (package - (name "go-github-com-xdg-go-stringprep") - (version "1.0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xdg-go/stringprep") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1df0l5n3c520y9filzz83j42wa5c056jcygmfwhjyf1pq8f6jkv9")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/xdg-go/stringprep")) - (propagated-inputs - (list go-golang-org-x-text)) - (home-page "https://github.com/xdg-go/stringprep") - (synopsis "Go implementation of RFC-3454 stringprep and RFC-4013 SASLprep") - (description - "Package stringprep provides data tables and algorithms for RFC-3454, -including errata. It also provides a profile for SASLprep as defined in -RFC-4013.") - (license license:asl2.0))) - -(define-public go-github-com-xdg-go-pbkdf2 - (package - (name "go-github-com-xdg-go-pbkdf2") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xdg-go/pbkdf2") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1nipijy5xkdnfyhkp5ryrjzm14si1i2v2xyfmblf84binwkbr8jh")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/xdg-go/pbkdf2")) - (home-page "https://github.com/xdg-go/pbkdf2") - (synopsis "Go implementation of PBKDF2") - (description - "Package pbkdf2 implements password-based key derivation using the PBKDF2 -algorithm described in @url{https://rfc-editor.org/rfc/rfc2898.html,RFC 2898} -and @url{https://rfc-editor.org/rfc/rfc8018.html,RFC 8018}.") - (license license:asl2.0))) - -(define-public go-github-com-xdg-go-scram - (package - (name "go-github-com-xdg-go-scram") - (version "1.0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xdg-go/scram") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1jyv4qgc1dgh3v96pazmgljpp9ij25k8hwn0v4fck18g16i0nccm")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/xdg-go/scram")) - (propagated-inputs - (list go-github-com-xdg-go-stringprep - go-github-com-xdg-go-pbkdf2)) - (home-page "https://github.com/xdg-go/scram") - (synopsis "Go implementation of RFC-5802") - (description - "Package scram provides client and server implementations of the -@acronym{Salted Challenge Response Authentication Mechanism, SCRAM} described in -RFC-5802 and RFC-7677.") - (license license:asl2.0))) - -(define-public go-github-com-godbus-dbus - (package - (name "go-github-com-godbus-dbus") - (version "0.0.0-20190726142602-4481cbc300e2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/godbus/dbus") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0h0cl1r136g0kxbw3i7ggb9mhavpi1yr7d7312iwhkxm93dxkphg")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/godbus/dbus" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - (substitute* (find-files "." "\\_test.go$") - ;; Disable tests which require a system D-Bus instance. - (("TestSystemBus") "OffTestSystemBus") - (("TestConnectSystemBus") "OffTestConnectSystemBus"))))) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "dbus-run-session" "--" "go" "test" "./...")))))))) - (native-inputs - (list dbus)) ;dbus-launch - (home-page "https://github.com/godbus/dbus/") - (synopsis "Native Go client bindings for the D-Bus") - (description "@code{dbus} is a library that implements native Go client -bindings for the D-Bus message bus system.") - (license license:bsd-2))) - -(define-public go-github-com-godbus-dbus-v5 - (package - (inherit go-github-com-godbus-dbus) - (name "go-github-com-godbus-dbus-v5") - (version "5.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/godbus/dbus") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1kayd4x7idrhi06ahh5kqkgwzgh9icvv71mjar2d0jl486dfs8r5")))) - (arguments - (substitute-keyword-arguments - (package-arguments go-github-com-godbus-dbus) - ((#:import-path _ "github.com/godbus/dbus") - "github.com/godbus/dbus/v5"))))) - (define-public go-github-com-delthas-go-libnp (let ((commit "0e45ece1f878f202fee2c74801e287804668f677")) (package @@ -6409,28 +2191,6 @@ extracting information about the music/image/video that is Now Playing on the system.") (license license:expat)))) -(define-public go-github-com-delthas-go-localeinfo - (package - (name "go-github-com-delthas-go-localeinfo") - (version "0.0.0-20240607105203-b2e834fc307d") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/delthas/go-localeinfo") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0817lhic77sz9lxizy2rchwssp0vzl7qxbsfghcddg6ssy1n0zhj")))) - (build-system go-build-system) - (arguments `(#:tests? #f ; FIXME: tests assume certain locale - #:import-path "github.com/delthas/go-localeinfo")) - (home-page "https://github.com/delthas/go-localeinfo") - (synopsis "Library for extracting locale information") - (description "@code{go-localeinfo} extracts monetary/numeric/time -formatting information, rather than the current locale name.") - (license license:expat))) - (define-public go-github-com-zalando-go-keyring (package (name "go-github-com-zalando-go-keyring") @@ -6474,120 +2234,6 @@ formatting information, rather than the current locale name.") deleting secrets from the system keyring.") (license license:expat))) -(define-public go-github-com-zclconf-go-cty - (package - (name "go-github-com-zclconf-go-cty") - (version "1.10.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zclconf/go-cty") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0f9a6vy45gcx5pg5bnfs63manaqw80h7xzvmj3b80af38304zr71")))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/zclconf/go-cty" - #:import-path "github.com/zclconf/go-cty/cty")) - (native-inputs - (list go-github-com-google-go-cmp)) - (propagated-inputs - (list go-golang-org-x-text - go-github-com-vmihailenco-msgpack-v4 - go-github-com-apparentlymart-go-textseg-v13)) - (home-page "https://github.com/zclconf/go-cty") - (synopsis "Type system for dynamic values in Go applications") - (description - "@code{cty} (pronounced \"see-tie\") is a dynamic type system for -applications written in Go that need to represent user-supplied values without -losing type information. The primary intended use is for implementing -configuration languages, but other uses may be possible too.") - (license license:expat))) - -(define-public go-gopkg-in-errgo-fmt-errors - (package - (name "go-gopkg-in-errgo-fmt-errors") - (version "2.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-errgo/errgo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2")))) - (build-system go-build-system) - (arguments - `(#:import-path "gopkg.in/errgo.v2" - #:tests? #f - ;; Source-only package - #:phases - (modify-phases %standard-phases - (delete 'build)))) - (home-page "https://godoc.org/gopkg.in/errgo.v2") - (synopsis "Functions that use the fmt package to format error messages") - (description "This package is the same as @code{gopkg.in/errgo.v2/errors} -except that it adds convenience functions that use the fmt package to format -error messages.") - (license license:bsd-3))) - -(define-public go-github-com-gologme-log - ;; this is the same as v1.2.0, only the LICENSE file changed - (let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55")) - (package - (name "go-github-com-gologme-log") - (version "1.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gologme/log") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0z3gs5ngv2jszp42ypp3ai0pn410v3b2m674g73ma7vsbn2yjk1n")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/gologme/log")) - (home-page "https://github.com/gologme/log/") - (synopsis - "Fork of the golang built in log package to add support for levels") - (description "This package is a drop in replacement for the built-in Go -log package. All the functionality of the built-in package still exists and -is unchanged. This package contains a series of small enhancements and -additions.") - (license license:bsd-3)))) - -(define-public go-github-com-kardianos-minwinsvc - (package - (name "go-github-com-kardianos-minwinsvc") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kardianos/minwinsvc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0z941cxymkjcsj3p5l3g4wm2da3smz7iyqk2wbs5y8lmxd4kfzd8")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/kardianos/minwinsvc")) - (home-page "https://github.com/kardianos/minwinsvc/") - ;; some packages (Yggdrasil) need it to compile - ;; it's a tiny package and it's easier to bundle it than to patch it out - (synopsis "Minimal windows only service stub for Go") - (description "Go programs designed to run from most *nix style operating -systems can import this package to enable running programs as services without -modifying them.") - (license license:zlib))) - (define-public go-github-com-akosmarton-papipes (let ((commit "3c63b4919c769c9c2b2d07e69a98abb0eb47fe64") (revision "0")) @@ -6659,535 +2305,6 @@ sinks and sources.") or capture raw audio.") (license license:expat)))) -(define-public go-github-com-pborman-getopt - (package - (name "go-github-com-pborman-getopt") - (version "2.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pborman/getopt") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0sacv6g8cxfibxd3gnfjnzp7fynrnc4s2aaz5wbxivqqhvflc22l")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/pborman/getopt")) - (home-page "https://github.com/pborman/getopt") - (synopsis "Getopt style option parsing for Go") - (description - "This package provides traditional getopt processing for implementing -programs that use traditional command lines.") - (license license:bsd-3))) - -(define-public go-git-sr-ht-adnano-go-gemini - (package - (name "go-git-sr-ht-adnano-go-gemini") - (version "0.2.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~adnano/go-gemini") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mv4x4cfwyhh77wfb3r221bhr84x4nmjpgysnvvjgmbnnafsgfns")))) - (build-system go-build-system) - (arguments - (list #:import-path "git.sr.ht/~adnano/go-gemini")) - (propagated-inputs - (list go-golang-org-x-net go-golang-org-x-text)) - (home-page "https://git.sr.ht/~adnano/go-gemini") - (synopsis "Gemini protocol in Go") - (description - "The @code{gemini} package implements the Gemini protocol in Go. It -provides an API similar to that of NET/HTTP to facilitate the development of -Gemini clients and servers.") - (license license:expat))) - -(define-public gofumpt - (package - (name "gofumpt") - (version "0.4.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mvdan/gofumpt") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "13ahi8q1a9h4dj6a7xp95c79d5svz5p37b6z91aswbq043qd417k")) - (modules '((guix build utils))) - (snippet `(let ((fixed-version (string-append ,version - " (GNU Guix)"))) - ;; Gofumpt formats Go files, and therefore modifies - ;; them. To help the developers diagnose issues, it - ;; replaces any occurrence of a `//gofumpt:diagnose` - ;; comment with some debugging information which - ;; includes the module version. In the event gofumpt - ;; was built without module support, it falls back - ;; to a string "(devel)". Since our build system - ;; does not yet support modules, we'll inject our - ;; version string instead, since this is more - ;; helpful. - (substitute* "internal/version/version.go" - (("^const fallbackVersion.+") - (format #f "const fallbackVersion = \"~a\"~%" - fixed-version))) - ;; These tests rely on `//gofumpt:diagnose` comments - ;; being replaced with fixed information injected - ;; from the test scripts, but this requires a binary - ;; compiled as a Go module. Since we can't do this - ;; yet, modify the test scripts with the version - ;; string we're injecting. - (delete-file "testdata/script/diagnose.txtar") - (substitute* (find-files "testdata/script/" - "\\.txtar$") - (("v0.0.0-20220727155840-8dda8068d9f3") - fixed-version) - (("(devel)") - fixed-version) - (("v0.3.2-0.20220627183521-8dda8068d9f3") - fixed-version)))))) - (build-system go-build-system) - (arguments - `(#:import-path "mvdan.cc/gofumpt")) - (native-inputs (list go-gopkg-in-errgo-fmt-errors)) - (propagated-inputs (list go-github-com-pkg-diff - go-github-com-kr-text - go-github-com-kr-pretty - go-golang-org-x-tools - go-golang-org-x-sys - go-golang-org-x-sync - go-golang-org-x-mod - go-github-com-rogpeppe-go-internal - go-github-com-google-go-cmp - go-github-com-frankban-quicktest)) - (home-page "https://mvdan.cc/gofumpt/") - (synopsis "Formats Go files with a stricter ruleset than gofmt") - (description - "Enforce a stricter format than @code{gofmt}, while being backwards compatible. -That is, @code{gofumpt} is happy with a subset of the formats that -@code{gofmt} is happy with.") - (license license:bsd-3))) - -(define-public go-mvdan-cc-gofumpt - (package - (inherit gofumpt) - (name "go-mvdan-cc-gofumpt") - (arguments - `(#:import-path "mvdan.cc/gofumpt" - #:tests? #f - #:install-source? #t - #:phases (modify-phases %standard-phases - (delete 'build)))) - (propagated-inputs (package-inputs gofumpt)) - (native-inputs '()) - (inputs '()))) - -(define-public unparam - (package - (name "unparam") - (version "0.0.0-20240528143540-8a5130ca722f") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mvdan/unparam") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qrwszcmb5slbzkq3acw57b896z22zwkv6cf6ldxwlc6p179g009")))) - (build-system go-build-system) - (arguments - `(;; FIXME: <...>-go-1.21.5/lib/go/src/runtime/cgo/cgo.go:33:8: could not - ;; import C (no metadata for C) - ;; <...>-go-1.21.5/lib/go/src/net/cgo_linux.go:12:8: could not import C - ;; (no metadata for C) - #:tests? #f - #:import-path "mvdan.cc/unparam")) - (inputs (list go-github-com-pkg-diff go-golang-org-x-tools - go-github-com-rogpeppe-go-internal)) - (home-page "https://mvdan.cc/unparam/") - (synopsis "Find unused parameters in Go") - (description "Reports unused function parameters and results in Go code.") - (license license:bsd-3))) - -(define-public go-mvdan-cc-unparam - (package - (inherit unparam) - (name "go-mvdan-cc-unparam") - (arguments - `(#:import-path "github.com/mvdan/unparam" - #:tests? #f - #:install-source? #t - #:phases (modify-phases %standard-phases - (delete 'build)))) - (propagated-inputs (package-inputs unparam)) - (native-inputs '()) - (inputs '()))) - -(define-public go-github-com-davecgh-go-xdr - (package - (name "go-github-com-davecgh-go-xdr") - (version "0.0.0-20161123171359-e6a2ba005892") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/davecgh/go-xdr") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vifrz4iil4r7k8sz5iqlfbh80ysgs5abp2simgyhsbrkxrrsrrd")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/davecgh/go-xdr/xdr2" - #:unpack-path "github.com/davecgh/go-xdr")) - (home-page "https://github.com/davecgh/go-xdr") - (synopsis "Pure Go implementation of the XDR standard") - (description "@code{go-xdr} implements the data representation portion of -the External Data Representation (XDR) standard protocol as specified in RFC -4506 (obsoletes RFC 1832 and RFC 1014) in pure Go.") - (license license:isc))) - -(define-public go-gopkg-in-djherbis-times-v1 - (package - (name "go-gopkg-in-djherbis-times-v1") - (version "1.5.0") - (home-page "https://gopkg.in/djherbis/times.v1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xvl3rgjif5yf62p16yk05kxrsmzhz1kkqisvw4k02svzq10qbfy")) - (modules '((guix build utils))) - (snippet '(delete-file-recursively "example")))) - (build-system go-build-system) - (arguments - '(#:import-path "gopkg.in/djherbis/times.v1")) - (synopsis "Go library for getting file times") - (description - "Provides a platform-independent way to get atime, mtime, ctime and btime for files.") - (license license:expat))) - -(define-public go-github-com-valyala-bytebufferpool - (package - (name "go-github-com-valyala-bytebufferpool") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/valyala/bytebufferpool") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/valyala/bytebufferpool")) - (home-page "https://github.com/valyala/bytebufferpool") - (synopsis "Anti-memory-waste byte buffer pool for Golang") - (description - "@code{bytebufferpool} implements a pool of byte buffers with -anti-fragmentation protection.") - (license license:expat))) - -(define-public go-github-com-valyala-tcplisten - (package - (name "go-github-com-valyala-tcplisten") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/valyala/tcplisten") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1fv5hxmq1jwrjn1rdjvbmjrrkb601zcdh01qhx6d8l7ss6n05zb8")))) - (build-system go-build-system) - (arguments - ;; NOTE: (Sharlatan-20211218T165504+0000): Tests failing: - ;; - ;; tcplisten_test.go:56: cannot create listener 0 using Config - ;; &tcplisten.Config{ReusePort:false, DeferAccept:false, FastOpen:false, - ;; Backlog:32}: lookup ip6-localhost on [::1]:53: read udp - ;; [::1]:33932->[::1]:53: read: connection refused - ;; - '(#:tests? #f - #:import-path "github.com/valyala/tcplisten")) - (home-page "https://github.com/valyala/tcplisten") - (synopsis "Customizable TCP net.Listener for Go") - (description - "@code{tcplisten} provides customizable TCP net.Listener with various -performance-related options.") - (license license:expat))) - -(define-public go-github-com-vmihailenco-msgpack-v4 - (package - (name "go-github-com-vmihailenco-msgpack-v4") - (version "4.3.12") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vmihailenco/msgpack") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0aiavk7b5fn050bbc0naldk2bsl60f8wil5i6a1cfp3lxxnvmvng")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/vmihailenco/msgpack/v4")) - (native-inputs - (list go-gopkg-in-check-v1)) - (propagated-inputs - (list go-github-com-vmihailenco-tagparser)) - (home-page "https://github.com/vmihailenco/msgpack") - (synopsis "MessagePack encoding for Golang") - (description - "This package provides implementation of MessagePack encoding for Go -programming language.") - (license license:bsd-2))) - -(define-public go-github-com-vmihailenco-tagparser - (package - (name "go-github-com-vmihailenco-tagparser") - (version "2.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vmihailenco/tagparser") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13arliaz3b4bja9jj7cr5ax4zvxaxm484fwrn0q6d6jjm1l35m1k")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/vmihailenco/tagparser")) - (home-page "https://github.com/vmihailenco/tagparser") - (synopsis "Tag parser for Golang") - (description "This package is a simple Golang implementation of tag -parser.") - (license license:bsd-2))) - -(define-public go-github-com-rivo-uniseg - (package - (name "go-github-com-rivo-uniseg") - (version "0.4.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rivo/uniseg") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0nlcqyvq4vhq3hqhk84h6fp0jbqkjj88kcpcl853yr7sh4sisdxc")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/rivo/uniseg")) - (home-page "https://github.com/rivo/uniseg") - (synopsis "Unicode Text Segmentation for Go") - (description - "This package implements Unicode Text Segmentation according to -@url{https://unicode.org/reports/tr29/, Unicode Standard Annex #29}.") - (license license:expat))) - -(define-public go-github-com-charmbracelet-bubbletea - (package - (name "go-github-com-charmbracelet-bubbletea") - (version "1.2.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/charmbracelet/bubbletea") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0ggkl29qixgin5av1mbnwfbb31kmwpczh8pgpjsx9z277fs55mph")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/charmbracelet/bubbletea" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'remove-examples - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (for-each delete-file-recursively - '("examples" "tutorials"))))) - (add-before 'check 'fix-tests - (lambda _ - ;; XXX: The package requires - ;; "go-github-com-charmbracelet-x-ansi" version 0.4.5; with the - ;; newer version of "ansi", some "bubbletea" screen tests fail - ;; as "ansi" 0.5.2 handles escape sequences a little bit - ;; differently. - (substitute* "src/github.com/charmbracelet/bubbletea/screen_test.go" - (("x1b\\[0K") - "x1b[K") - (("x1b\\[2;0H") - "x1b[2;H"))))))) - (propagated-inputs - (list go-github-com-charmbracelet-lipgloss - go-github-com-charmbracelet-x-ansi - go-github-com-charmbracelet-x-term - go-github-com-containerd-console - go-github-com-lucasb-eyer-go-colorful - go-github-com-mattn-go-isatty - go-github-com-mattn-go-isatty - go-github-com-mattn-go-runewidth - go-github-com-muesli-ansi - go-github-com-muesli-cancelreader - go-github-com-muesli-reflow - go-github-com-muesli-termenv - go-golang-org-x-crypto - go-golang-org-x-sync - go-golang-org-x-sys - go-golang-org-x-term)) - (home-page "https://github.com/charmbracelet/bubbletea") - (synopsis "Powerful little TUI framework") - (description - "Bubble Tea is a Go framework based on The Elm Architecture. It is -well-suited for simple and complex terminal applications, either inline, -full-window, or a mix of both.") - (license license:asl2.0))) - -(define-public go-github-com-containerd-console - (package - (name "go-github-com-containerd-console") - (version "1.0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/containerd/console") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pgx0y8x23jwc2f9jfk5hd5aslqk599nj6c7dj5846xvnkz2x7p2")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/containerd/console")) - (propagated-inputs - `(("golang.org/x/sys" ,go-golang-org-x-sys))) - (home-page "https://github.com/containerd/console") - (synopsis "Console package for Go") - (description - "This is Golang package for dealing with consoles. It has few -dependencies and a simple API.") - (license license:asl2.0))) - -(define-public go-github-com-mtibben-percent - (package - (name "go-github-com-mtibben-percent") - (version "0.2.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mtibben/percent") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1iqivw8pigj259rj5yifibbvic70f9hb7k24a4sa967s4fj6agb6")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/mtibben/percent" - #:phases %standard-phases)) - (synopsis "Package percent escapes strings using percent-encoding") - (description - "Package percent escapes strings using percent-encoding.") - (home-page "https://github.com/mtibben/percent") - (license license:expat))) - -(define-public aws-vault - (package - (name "aws-vault") - (version "7.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/99designs/aws-vault") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1dqg6d2k8r80ww70afghf823z0pijha1i0a0c0c6918yb322zkj2")))) - (build-system go-build-system) - (arguments - (list - #:install-source? #f - #:import-path "github.com/99designs/aws-vault" - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'patch-version - (lambda _ - (substitute* "src/github.com/99designs/aws-vault/main.go" - (("var Version = \"dev\"") - (string-append "var Version = \"v" #$version "\""))))) - (add-after 'build 'contrib - (lambda* (#:key import-path #:allow-other-keys) - (let* ((zsh-site-dir - (string-append #$output "/share/zsh/site-functions")) - (bash-completion-dir - (string-append #$output "/share/bash-completion/completions")) - (fish-completion-dir - (string-append #$output "/share/fish/completions"))) - (for-each mkdir-p (list bash-completion-dir - fish-completion-dir - zsh-site-dir)) - (with-directory-excursion - (string-append "src/" import-path "/contrib/completions") - (copy-file "zsh/aws-vault.zsh" - (string-append zsh-site-dir "/_aws-vault")) - (copy-file "bash/aws-vault.bash" - (string-append bash-completion-dir "/aws-vault")) - (copy-file "fish/aws-vault.fish" - (string-append fish-completion-dir "/aws-vault.fish"))))))))) - (native-inputs - (list go-github-com-99designs-keyring - go-github-com-alecthomas-kingpin-v2 - go-github-com-aws-aws-sdk-go-v2 - go-github-com-aws-aws-sdk-go-v2-config - go-github-com-aws-aws-sdk-go-v2-credentials - go-github-com-aws-aws-sdk-go-v2-service-iam - go-github-com-aws-aws-sdk-go-v2-service-sso - go-github-com-aws-aws-sdk-go-v2-service-ssooidc - go-github-com-aws-aws-sdk-go-v2-service-sts - go-github-com-google-go-cmp - go-github-com-mattn-go-isatty - go-github-com-mattn-go-tty - go-github-com-skratchdot-open-golang - go-golang-org-x-term - go-gopkg-in-ini-v1)) - (home-page "https://github.com/99designs/aws-vault") - (synopsis "Vault for securely storing and accessing AWS credentials") - (description - "AWS Vault is a tool to securely store and access @acronym{Amazon Web -Services,AWS} credentials. - -AWS Vault stores IAM credentials in your operating system's secure keystore and -then generates temporary credentials from those to expose to your shell and -applications. It's designed to be complementary to the AWS CLI tools, and is -aware of your profiles and configuration in ~/.aws/config.") - (license license:expat))) - (define-public go-github-com-gsterjov-go-libsecret (package (name "go-github-com-gsterjov-go-libsecret") @@ -7214,402 +2331,6 @@ aware of your profiles and configuration in ~/.aws/config.") @code{Secret Service} DBus interface.") (license license:expat))) -(define-public go-github-com-mtibben-androiddnsfix - (let ((commit "ff02804463540c36e3a148dcf4b009d003cf2a31") - (revision "0")) - (package - (name "go-github-com-mtibben-androiddnsfix") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mtibben/androiddnsfix") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1pcbjs793kd0yg3dcp79agfxm7xm3sldx2r7v66ipzpcq0j2npi2")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/mtibben/androiddnsfix" - #:phases %standard-phases)) - (synopsis "Work around lack of @file{/etc/resolv.conf} on Android") - (description - "This package allows Go applications to work around lack of -@file{/etc/resolv.conf} on Android, as described in -@url{https://github.com/golang/go/issues/8877}.") - (home-page "https://github.com/mtibben/androiddnsfix") - (license license:expat)))) - -(define-public go-github-com-androiddnsfix - (deprecated-package "go-github-com-androiddnsfix" go-github-com-mtibben-androiddnsfix)) - -(define-public go-gopkg-in-ini - (package - (name "go-gopkg-in-ini") - (version "1.62.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gopkg.in/ini.v1") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1dm9ydqyflasp5li22kb0w73s6kp2swii8naqfhnz64v171gmm5v")))) - (build-system go-build-system) - (native-inputs - (list go-github-com-smartystreets-goconvey)) - (arguments - '(#:import-path "gopkg.in/ini.v1" - #:phases %standard-phases)) - (synopsis "INI file read and write functionality in Go") - (description - "This package provides INI file read and write functionality in Go.") - (home-page "https://gopkg.in/ini.v1") - (license license:asl2.0))) - -;;; XXX: Since commit bfb61065f05a6eac0cf63b16db43d0c3e864c658, the -;;; canonical name of the ini package is `go-github-com-go-ini-ini`, -;;; not `go-gopkg-in-ini`. -(define-public go-github-com-go-ini-ini - (package - (inherit go-gopkg-in-ini) - (name "go-github-com-go-ini-ini") - (version "1.67.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-ini/ini") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1vpzkjmrwp7bqqsijp61293kk2vn6lcck56j8m5y6ks6cf21lpap")))) - (arguments - (list #:import-path "github.com/go-ini/ini")) - (propagated-inputs (list go-github-com-stretchr-testify)))) - -(define-public go-github-com-skratchdot-open-golang - (let ((commit "79abb63cd66e41cb1473e26d11ebdcd68b04c8e5") - (revision "0")) - (package - (name "go-github-com-skratchdot-open-golang") - (version "1.42.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/skratchdot/open-golang") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0jc13jn8cj7p14n79zhav2nwga6kf9rqs01ic5k7j7agwzzly3ww")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/skratchdot/open-golang" - #:phases (modify-phases %standard-phases - (delete 'build) - (delete 'check)))) - (synopsis "Open a file, directory, or URI using the default application") - (description - "Open a file, directory, or URI using the OS's default application for -that object type. Optionally, you can specify an application to use. On -GNU/Linux, this is a proxy for the @command{xdg-open} command.") - (home-page "https://github.com/skratchdot/open-golang") - (license license:expat)))) - -(define-public go-github-com-dreamacro-go-shadowsocks2 - (package - (name "go-github-com-dreamacro-go-shadowsocks2") - (version "0.1.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Dreamacro/go-shadowsocks2") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0sjr3r77fav6q0ii6dnp4px9gaz7cq861a0yxppvb6a58420bx3h")))) - (build-system go-build-system) - (arguments '(#:import-path "github.com/Dreamacro/go-shadowsocks2")) - (propagated-inputs (list go-golang-org-x-crypto)) - (home-page "https://github.com/Dreamacro/go-shadowsocks2") - (synopsis "Shadowsocks implementation in Go") - (description - "This package is @code{shadowsocks} implementation in Go - -Features: -@itemize -@item SOCKS5 proxy -@item Support for Netfilter TCP redirect (IPv6 should work but not tested) -@item UDP tunneling (e.g. relay DNS packets) -@item TCP tunneling (e.g. benchmark with iperf3) -@end itemize") - (license license:asl2.0))) - -(define-public go-sigs-k8s-io-yaml - (package - (name "go-sigs-k8s-io-yaml") - (version "1.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kubernetes-sigs/yaml") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qxs0ppqwqrfqs4aywyn1h28xh1qlj5ds4drmygaz1plrxj02dqn")))) - (build-system go-build-system) - (arguments '(#:import-path "sigs.k8s.io/yaml")) - (propagated-inputs (list go-gopkg-in-yaml-v2 go-github-com-davecgh-go-spew)) - (home-page "https://sigs.k8s.io/yaml") - (synopsis "YAML marshaling and unmarshaling support for Go") - (description - "This package provides a Go library that first converts YAML to JSON -using @code{go-yaml} and then uses @code{json.Marshal} and -@code{json.Unmarshal} to convert to or from the struct. This means that it -effectively reuses the JSON struct tags as well as the custom JSON methods -@code{MarshalJSON} and @code{UnmarshalJSON} unlike @code{go-yaml}. - -kubernetes-sigs/yaml is a permanent fork of -@url{https://github.com/ghodss/yaml,ghodss/yaml}.") - (license (list license:expat license:bsd-3)))) - -(define-public go-github-com-google-go-jsonnet - (package - (name "go-github-com-google-go-jsonnet") - (version "0.18.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/google/go-jsonnet") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1dghqygag123zkgh2vrnq82cdag5z0p03v3489pwhs06r5g27wm3")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/google/go-jsonnet/cmd/jsonnet" - #:unpack-path "github.com/google/go-jsonnet")) - (propagated-inputs (list go-sigs-k8s-io-yaml go-gopkg-in-yaml-v2 - go-github-com-sergi-go-diff - go-github-com-fatih-color)) - (home-page "https://github.com/google/go-jsonnet") - (synopsis "Go implementation of Jsonnet") - (description - "This package provides an implementation of the @url{http://jsonnet.org/, -Jsonnet} data templating language in Go. It is a feature-complete, -production-ready implementation, compatible with the original Jsonnet C++ -implementation.") - (license license:asl2.0))) - -;; XXX: This repository has been archived by the owner on Dec 29, 2022. It is -;; now read-only. It's only used by kiln, consider to remove it when it does -;; no longer require it. -(define-public go-github-com-google-shlex - (package - (name "go-github-com-google-shlex") - (version "0.0.0-20191202100458-e7afc7fbc510") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/google/shlex") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "14z8hqyik910wk2qwnzgz8mjsmiamxa0pj55ahbv0jx6j3dgvzfm")))) - (build-system go-build-system) - (arguments (list #:import-path "github.com/google/shlex")) - (home-page "https://github.com/google/shlex") - (synopsis "Simple lexer for Go") - (description - "@code{shlex} implements a simple lexer which splits input into tokens -using shell-style rules for quoting and commenting.") - (license license:asl2.0))) - -(define-public go-github-com-peterbourgon-diskv - (package - (name "go-github-com-peterbourgon-diskv") - (version "3.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/peterbourgon/diskv") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0pdy8f7bkm65gx4vknwcvfa619hknflqxkdlvmf427k2mzm91gmh")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/peterbourgon/diskv")) - (propagated-inputs (list go-github-com-google-btree)) - (home-page "https://github.com/peterbourgon/diskv") - (synopsis "Disk-backed key-value store") - (description - "Diskv (disk-vee) is a simple, persistent key-value store written in the Go -language. It starts with a simple API for storing arbitrary data on a filesystem by -key, and builds several layers of performance-enhancing abstraction on top. The end -result is a conceptually simple, but highly performant, disk-backed storage system.") - (license license:expat))) - -(define-public go-github-com-disintegration-imaging - (package - (name "go-github-com-disintegration-imaging") - (version "1.6.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/disintegration/imaging") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1sl201nmk601h0aii4234sycn4v2b0rjxf8yhrnik4yjzd68q9x5")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/disintegration/imaging")) - (inputs (list go-golang-org-x-image)) - (home-page "https://github.com/disintegration/imaging") - (synopsis "Simple image processing for Go") - (description "This package provides basic image processing functions -(resize, rotate, crop, brightness/contrast adjustments, etc.).") - (license license:expat))) - -(define notmuch-fixtures - (origin - (method url-fetch) - (uri "http://notmuchmail.org/releases/test-databases/database-v1.tar.xz") - (sha256 - (base32 - "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2")))) - -(define-public go-github-com-zenhack-go-notmuch - (package - (name "go-github-com-zenhack-go-notmuch") - (version "0.0.0-20211022191430-4d57e8ad2a8b") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zenhack/go.notmuch") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1j2s5smjf7pp7i72dw12sm9iz961y3cy8nkm7hmrg53f6wna57h9")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/zenhack/go.notmuch" - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-notmuch-path - (lambda* (#:key inputs import-path - #:allow-other-keys) - (substitute* (find-files (string-append "src/" - import-path) "\\.go$") - (("// #cgo LDFLAGS:.*$") - (string-append "// #cgo LDFLAGS: -lnotmuch " - "-L" - #$(this-package-input "notmuch") - "/lib\n" - "// #cgo CFLAGS: " - "-I" - #$(this-package-input "notmuch") - "/include\n"))))) - (add-before 'check 'unpack-test-fixtures - (lambda* (#:key inputs import-path - #:allow-other-keys) - (invoke "tar" "xf" - #+notmuch-fixtures "-C" - (string-append "src/" import-path - "/fixtures"))))))) - (inputs (list notmuch)) - (home-page "https://github.com/zenhack/go.notmuch") - (synopsis "Go bindings to libnotmuch") - (description - "The notmuch package provides a Go language binding to the notmuch -email library.") - (license license:gpl3+))) - -(define-public go-github-com-riywo-loginshell - (package - (name "go-github-com-riywo-loginshell") - (version "0.0.0-20200815045211-7d26008be1ab") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/riywo/loginshell") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "138yvis6lipw9x02jyiz7472bxi20206bcfikcar54i3xsww9q4i")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/riywo/loginshell" - ;; Tests try to get the current user's login shell; the build - ;; user doesn't have one. - #:tests? #f)) - (home-page "https://github.com/riywo/loginshell") - (synopsis "Get the user's login shell in Go") - (description - "The loginshell package provides a Go library to get the login shell -of the current user.") - (license license:expat))) - -(define-public go-github-com-ssgelm-cookiejarparser - (package - (name "go-github-com-ssgelm-cookiejarparser") - (version "1.0.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ssgelm/cookiejarparser") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0fnm53br0cg3iwzniil0lh9w4xd6xpzfypwfpdiammfqavlqgcw4")))) - (build-system go-build-system) - (arguments - (list - #:embed-files #~(list "children" "nodes" "text") - #:import-path "github.com/ssgelm/cookiejarparser")) - (propagated-inputs (list go-golang-org-x-net)) - (home-page "https://github.com/ssgelm/cookiejarparser") - (synopsis "Parse a curl cookiejar with Go") - (description - "This package is a Go library that parses a curl (netscape) cookiejar -file into a Go http.CookieJar.") - (license license:expat))) - -(define-public go-github-com-ssor-bom - (package - (name "go-github-com-ssor-bom") - (version "0.0.0-20170718123548-6386211fdfcf") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ssor/bom") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "09g5496ifwqxqclh2iw58plcwcz0sczlnxwqxzwmnl4shdl371ld")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/ssor/bom")) - (home-page "https://github.com/ssor/bom") - (synopsis "Cleaning BOMs in Go") - (description - "The bom package provides small tools for cleaning BOMs from a byte -array or reader.") - (license license:expat))) - ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm index 677b2b49ae..2799b5097d 100644 --- a/gnu/packages/high-availability.scm +++ b/gnu/packages/high-availability.scm @@ -215,6 +215,21 @@ applications.") (sha256 (base32 "0r1d0l3mmb90956wl97vqlb3cdhax7jkqa95hvx9b380g93a08py")))) (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/nats-io/nats-server" + ;; The test logic is taken from project's GitHub Actions workflow file + ;; <.github/workflows/tests.yaml>. + #:test-flags + #~(list "-count=1" "-vet=off" "-failfast" + "-skip" (string-join + (list "TestHTTPHost" + "TestSysLogger" + "TestLogMaxArchives") + "|") ) + #:test-subdirs + #~(list "conf/..." "internal/..." "logger/..." "test/..."))) (inputs (list go-github-com-klauspost-compress go-github-com-minio-highwayhash @@ -226,10 +241,6 @@ applications.") go-golang-org-x-crypto go-golang-org-x-sys go-golang-org-x-time)) - (arguments - (list - #:import-path "github.com/nats-io/nats-server" - #:install-source? #f)) (home-page "https://github.com/nats-io/nats-server") (synopsis "High performance message broker") (description diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 904f275d35..477caafd4e 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -81,8 +81,8 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gtk) #:use-module (gnu packages graphics) #:use-module (gnu packages image) @@ -576,7 +576,7 @@ It supports JPEG, PNG and GIF formats.") (define-public pixterm (package (name "pixterm") - (version "1.3.1") + (version "1.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -585,14 +585,14 @@ It supports JPEG, PNG and GIF formats.") (file-name (git-file-name name version)) (sha256 (base32 - "0fm6c0mjz6zillqjirnjjf7mkrax1gyfcv6777i07ms3bnv0pcii")))) + "08x0pwnl3cyq5f29fxj379p9klzxl85p8jq2595xdz3mhb3pkgsg")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/eliukblau/pixterm/cmd/pixterm" + '(#:install-source? #f + #:import-path "github.com/eliukblau/pixterm/cmd/pixterm" #:unpack-path "github.com/eliukblau/pixterm")) (inputs (list go-github-com-disintegration-imaging go-github-com-lucasb-eyer-go-colorful - go-golang-org-x-crypto go-golang-org-x-image go-golang-org-x-term)) (home-page "https://github.com/eliukblau/pixterm") diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index 349517e878..43923a90ac 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -43,6 +43,56 @@ #:use-module (gnu packages shells) #:use-module (gnu packages specifications)) +(define-public go-github-com-ceramicnetwork-go-dag-jose + (package + (name "go-github-com-ceramicnetwork-go-dag-jose") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ceramicnetwork/go-dag-jose") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g34dwlnq07zg176bdhp2hcg1hg5l55s0a6hk4kiq37vm01w68j7")) + (snippet + #~(begin (use-modules (guix build utils)) + ;; Delete git submodule. + (delete-file-recursively ".ipld"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ceramicnetwork/go-dag-jose" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Workaround for go-build-system's lack of Go modules + ;; support. + (delete 'build) + (replace 'check + (lambda* (#:key tests? import-path #: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 + go-github-com-frankban-quicktest + go-github-com-warpfork-go-testmark)) + (propagated-inputs + (list go-github-com-go-jose-go-jose-v4 + go-github-com-ipfs-go-cid + go-github-com-ipld-go-ipld-prime + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-multihash + go-golang-org-x-crypto + go-pgregory-net-rapid)) + (home-page "https://github.com/ceramicnetwork/go-dag-jose") + (synopsis "Implementation of the IPLD dag-jose codec") + (description + "This is an implementation of the IPLD +@@url{https://ipld.io/specs/codecs/dag-jose/spec/,dag-jose codec}.") + (license license:expat))) + (define-public go-github-com-ipfs-bbloom (package (name "go-github-com-ipfs-bbloom") @@ -123,6 +173,35 @@ by a @acronym{Content Identifiers,CID}. The CID contains the multihash corresponding to the block.") (license license:expat))) +(define-public go-github-com-ipfs-go-ds-flatfs + (package + (name "go-github-com-ipfs-go-ds-flatfs") + (version "0.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ds-flatfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mrgl6kslq4d4zfpdyxvqxz8brhm8wphvnp916pippn7z63sayj3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-ds-flatfs")) + (propagated-inputs + (list go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-log + go-github-com-jbenet-goprocess)) + (home-page "https://github.com/ipfs/go-ds-flatfs") + (synopsis "Datastore implementation using sharded directories and flat files to store data") + (description + "Package flatfs is a Datastore implementation that stores all objects in +a two-level directory structure in the local file system, regardless of the +hierarchy of the keys.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipfs-blockstore (package (name "go-github-com-ipfs-go-ipfs-blockstore") @@ -316,7 +395,30 @@ keys used by @code{go-ipfs} (Kubo).") (build-system go-build-system) (arguments (list - #:import-path "github.com/ipfs/go-datastore")) + #:import-path "github.com/ipfs/go-datastore" + #:test-subdirs + #~(list "autobatch/..." + "delayed/..." + "examples/..." + "failstore/..." + ;; "fuzz/..." ; introduces cycle, for CLI + "keytransform/..." + "mount/..." + "namespace/..." + "query/..." + "retrystore/..." + "scoped/..." + "sync/..." + "test/..." + "trace/..." + ".") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "examples")))))))) (native-inputs (list go-gopkg-in-check-v1)) (propagated-inputs @@ -707,8 +809,9 @@ code prior to it getting merged into @code{go-cid}.") (build-system go-build-system) (arguments (list - #:unpack-path "github.com/ipld/go-ipld-prime/" - #:import-path "github.com/ipld/go-ipld-prime/" + #:import-path "github.com/ipld/go-ipld-prime" + ;; XXX: More input requires to cover all shipped go packages. + #:test-subdirs #~(list ".") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'copy-ipld-specfs @@ -823,7 +926,7 @@ their levels to be controlled individually.") (define-public go-github-com-libp2p-go-libp2p (package (name "go-github-com-libp2p-go-libp2p") - (version "0.36.3") + (version "0.36.5") (source (origin (method git-fetch) @@ -832,12 +935,35 @@ their levels to be controlled individually.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bpjqrb2zdp86va7ms36lpci1l6lgkx85rc3q13fmzks38mqqw8s")))) + (base32 "0fmalwb0g0nykd1v22nm5gmif9mvapshsja8w1ihlm8ahbqq9vb2")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separatly: + ;; + ;; - github.com/libp2p/go-libp2p/scripts/test_analysis + ;; - github.com/libp2p/go-libp2p/test-plans/m/v2 + (for-each delete-file-recursively + (list "scripts/test_analysis" "test-plans")))))) (build-system go-build-system) (arguments (list #:embed-files #~(list "sorted-network-list.bin") - #:import-path "github.com/libp2p/go-libp2p")) + #:import-path "github.com/libp2p/go-libp2p" + ;; XXX: Check how to enable the most of the tests, see GitHub Actions + ;; workflow files of the project. + #:test-subdirs #~(list "core/..." ".") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-libp2p-go-libp2p-testing + go-github-com-stretchr-testify + go-go-uber-org-mock + go-go-uber-org-goleak)) (propagated-inputs (list go-github-com-benbjohnson-clock go-github-com-davidlazar-go-crypto @@ -887,10 +1013,8 @@ their levels to be controlled individually.") go-github-com-quic-go-quic-go go-github-com-quic-go-webtransport-go go-github-com-raulk-go-watchdog - go-github-com-stretchr-testify go-go-uber-org-fx - go-go-uber-org-goleak - go-go-uber-org-mock + go-go-uber-org-zap go-golang-org-x-crypto go-golang-org-x-exp go-golang-org-x-sync @@ -905,6 +1029,31 @@ their levels to be controlled individually.") @url{https://github.com/libp2p/specs,libp2p}.") (license license:expat))) +(define-public go-github-com-libp2p-go-libp2p-testing + (package + (name "go-github-com-libp2p-go-libp2p-testing") + (version "0.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-testing") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08n17mqskdj5il6lws53wk1zsf9d8c55f58bap1rjngf2d669p39")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t ; to break cycle with go-github-com-libp2p-go-libp2p + #:tests? #f + #:import-path "github.com/libp2p/go-libp2p-testing")) + (home-page "https://github.com/libp2p/go-libp2p-testing") + (synopsis "Test toolbox for go-libp2p modules") + (description + "This package provides a testing toolbox for go-libp2p modules.") + (license (list license:expat license:asl2.0)))) + (define-public go-github-com-whyrusleeping-cbor-gen (package (name "go-github-com-whyrusleeping-cbor-gen") @@ -936,7 +1085,7 @@ types.") (define-public kubo (package (name "kubo") - (version "0.30.0") + (version "0.31.0") (source (origin (method url-fetch/tarbomb) @@ -944,7 +1093,7 @@ types.") "https://dist.ipfs.io/kubo/v" version "/kubo-source.tar.gz")) (sha256 - (base32 "0kwbwbrlvgcb8lcg85gpab6czyrnq7r9139i5gp827231zfbcqzq")) + (base32 "0271rh54xbwikbllzsjnkjlj29cb2xy5lnhia47qlf2ymvl48kvf")) (file-name (string-append name "-" version "-source")) (modules '((guix build utils))) (snippet '(for-each delete-file-recursively @@ -956,6 +1105,7 @@ types.") "vendor/github.com/beorn7" "vendor/github.com/blang" "vendor/github.com/cenkalti" + "vendor/github.com/ceramicnetwork" "vendor/github.com/cespare" "vendor/github.com/cheggaaa" "vendor/github.com/containerd" @@ -1058,6 +1208,7 @@ types.") (build-system go-build-system) (arguments (list + #:go go-1.22 #:embed-files #~(list "sorted-network-list.bin") #:unpack-path "github.com/ipfs/kubo" #:import-path "github.com/ipfs/kubo/cmd/ipfs" @@ -1086,7 +1237,7 @@ types.") go-github-com-benbjohnson-clock go-github-com-blang-semver-v4 go-github-com-cenkalti-backoff-v4 - ;;go-github-com-ceramicnetwork-go-dag-jose + go-github-com-ceramicnetwork-go-dag-jose go-github-com-cheggaaa-pb go-github-com-coreos-go-systemd-v22 go-github-com-dustin-go-humanize @@ -1201,7 +1352,6 @@ types.") go-golang-org-x-oauth2 ; github.com/ipfs/boxo go-golang-org-x-term ; github.com/ipfs/go-ipfs-cmds go-golang-org-x-xerrors ; github.com/whyrusleeping/cbor-gen - go-gopkg-in-square-go-jose-v2 ; github.com/ceramicnetwork/go-dag-jose )) (native-inputs (append (if (%current-target-system) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 77a53e4805..5873b4db2e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -141,7 +141,6 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages golang) - #:use-module (gnu packages golang-build) #:use-module (gnu packages gperf) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) @@ -9539,47 +9538,6 @@ nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or management tools in userspace.") (license license:gpl2))) -(define-public go-github-com-vishvananda-netlink - (package - (name "go-github-com-vishvananda-netlink") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vishvananda/netlink") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1vhl30p1gx636a088ls4h6a0l8jjyfvz79fr5w0qzdrg4qg9h08h")))) - (build-system go-build-system) - (arguments - (list - ;; The tests are unsupported on all architectures except x86_64-linux: - ;; cannot use 0xabcdef99 (untyped int constant 2882400153) as int value - ;; in struct literal (overflows) - #:tests? (and (not (%current-target-system)) (target-x86-64?)) - #:import-path "github.com/vishvananda/netlink" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - (substitute* (find-files "." "\\_test.go$") - ;; Disable tests requiring root access. - (("TestNetNsIdByFd") "OffTestNetNsIdByFd") - (("TestNetNsIdByPid") "OffTestNetNsIdByPid")))))))) - (propagated-inputs - (list go-golang-org-x-sys go-github-com-vishvananda-netns)) - (home-page "https://github.com/vishvananda/netlink") - (synopsis "Simple netlink library for Go") - (description - "The netlink package provides a simple netlink library for Go. Netlink -is the interface a user-space program in Linux uses to communicate with the -kernel. It can be used to add and remove interfaces, set IP addresses and -routes, and configure IPsec.") - (license license:asl2.0))) - (define-public libinih (package (name "libinih") diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 7dd30f9a6e..a1b74f1585 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -54,6 +54,9 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) ;libnotify #:use-module (gnu packages golang) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages image) #:use-module (gnu packages mail) #:use-module (gnu packages ncurses) @@ -62,6 +65,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages prometheus) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-web) @@ -521,27 +525,92 @@ Metrics can be exposed through a standalone web server, or through Twisted, WSGI and the node exporter textfile collector.") (license license:asl2.0))) -(define-public go-github-com-prometheus-node-exporter - (package - (name "go-github-com-prometheus-node-exporter") - (version "0.18.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/prometheus/node_exporter") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0s3sp1gj86p7npxl38hkgs6ymd3wjjmc5hydyg1b5wh0x3yvpx07")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/prometheus/node_exporter")) - (synopsis "Prometheus exporter for hardware and OS metrics") - (description "Prometheus exporter for metrics exposed by *NIX kernels, +(define-public prometheus-node-exporter + ;; The latest release is failing to build, use the latest commit from the + ;; master branch. + (let ((commit "b8aac7c92e2d7f3dea56b2d4802d4ef3ee29c3cc") + (revision "0")) + (package + (name "prometheus-node-exporter") + (version (git-version "1.8.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/node_exporter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0n2s2z168xzp6i0ihaqvvs8zinp1iqld45c6lj89x7wjv8m741j3")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:build-flags + #~(list (string-append + "-ldflags=" + "-X github.com/prometheus/common/version.Version=" #$version + " -X github.com/prometheus/common/version.Revision=" #$revision + " -X github.com/prometheus/common/version.Branch=master" + " -X github.com/prometheus/common/version.BuildUser=guix" + " -X github.com/prometheus/common/version.BuildDate=n/a")) + #:embed-files #~(list "landing_page.css" "landing_page.html") + #:import-path "github.com/prometheus/node_exporter" + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (invoke "./ttar" "-C" "collector/fixtures" + "-x" "-f" "collector/fixtures/sys.ttar") + (invoke "./ttar" "-C" "collector/fixtures" + "-x" "-f" "collector/fixtures/udev.ttar")))) + (add-after 'check 'post-check + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file-recursively + (list "collector/fixtures/sys" + "collector/fixtures/sys.ttar" + "collector/fixtures/udev" + "collector/fixtures/udev.ttar")))))))) + (propagated-inputs + (list go-github-com-alecthomas-kingpin-v2 + go-github-com-beevik-ntp + go-github-com-coreos-go-systemd-v22 + go-github-com-dennwc-btrfs + go-github-com-ema-qdisc + go-github-com-go-kit-log + go-github-com-godbus-dbus-v5 + go-github-com-hashicorp-go-envparse + go-github-com-hodgesds-perf-utils + go-github-com-josharian-native + go-github-com-jsimonetti-rtnetlink + go-github-com-mattn-go-xmlrpc + go-github-com-mdlayher-ethtool + go-github-com-mdlayher-netlink + go-github-com-mdlayher-wifi + go-github-com-jsimonetti-rtnetlink-v2 + go-github-com-opencontainers-selinux + go-github-com-prometheus-client-golang + go-github-com-prometheus-client-model + go-github-com-prometheus-common + go-github-com-prometheus-community-go-runit + go-github-com-prometheus-exporter-toolkit + go-github-com-prometheus-procfs-next + go-github-com-safchain-ethtool + go-golang-org-x-exp + go-golang-org-x-sys + go-howett-net-plist)) + (home-page "https://github.com/prometheus/node_exporter") + (synopsis "Prometheus exporter for hardware and OS metrics") + (description + "Prometheus exporter for metrics exposed by *NIX kernels, written in Go with pluggable metric collectors.") - (home-page "https://github.com/prometheus/node_exporter") - (license license:asl2.0))) + (license license:asl2.0)))) + +(define-public go-github-com-prometheus-node-exporter + (deprecated-package "go-github-com-prometheus-node-exporter" + prometheus-node-exporter)) (define-public temper-exporter (let ((commit "a87bbab19c05609d62d9e4c7941178700c1ef84d") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index f50d4c81b2..970a502b59 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1952,41 +1952,6 @@ manage, and delete Internet resources from Gandi.net such as domain names, virtual machines, and certificates.") (license license:gpl3+))) -(define-public go-github-com-vishvananda-netns - (package - (name "go-github-com-vishvananda-netns") - (version "0.0.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vishvananda/netns") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0rci8c211m57nya9il81fz6459pia3dj5i4b16fp34vjrkcxliml")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/vishvananda/netns" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - (substitute* (find-files "." "\\_test.go$") - ;; Disable tests requiring root access. - (("TestGetNewSetDelete") "OffTestGetNewSetDelete") - (("TestThreaded") "OffTestThreaded")))))))) - (propagated-inputs - (list go-golang-org-x-sys)) - (home-page "https://github.com/vishvananda/netns") - (synopsis "Simple network namespace handling for Go") - (description - "The netns package provides a simple interface for handling network -namespaces in Go.") - (license license:asl2.0))) - (define-public go-sctp ;; docker-libnetwork-cmd-proxy requires this exact commit. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. @@ -4790,7 +4755,7 @@ IPv6 Internet connectivity - it also works over IPv4.") (define-public nebula (package (name "nebula") - (version "1.9.3") + (version "1.9.5") (source (origin (method git-fetch) (uri (git-reference @@ -4799,7 +4764,7 @@ IPv6 Internet connectivity - it also works over IPv4.") (file-name (git-file-name name version)) (sha256 (base32 - "08zzbx2v713zd9p7i4kd1bvcw47xb0092p5apba1x5wg6fpxw5zr")) + "1slknnrdnf5a2ask11ql3gwnnl6c5359bp8rd712aq30lxa2d4r0")) ;; Remove windows-related binary blobs and files (snippet #~(begin @@ -4811,6 +4776,8 @@ IPv6 Internet connectivity - it also works over IPv4.") (list #:import-path "github.com/slackhq/nebula" #:install-source? #f + ;; XXX: Pack missing packages for cmd/nebula-service + #:test-subdirs #~(list ".") #:phases #~(modify-phases %standard-phases (replace 'build @@ -4837,29 +4804,32 @@ IPv6 Internet connectivity - it also works over IPv4.") (list go-dario-cat-mergo go-github-com-anmitsu-go-shlex go-github-com-armon-go-radix - go-github-com-cespare-xxhash-v2 go-github-com-cyberdelia-go-metrics-graphite go-github-com-flynn-noise + go-github-com-gaissmai-bart go-github-com-gogo-protobuf go-github-com-google-gopacket + go-github-com-kardianos-service go-github-com-miekg-dns go-github-com-nbrownus-go-metrics-prometheus go-github-com-prometheus-client-golang - go-github-com-prometheus-client-model - go-github-com-prometheus-procfs go-github-com-rcrowley-go-metrics go-github-com-sirupsen-logrus go-github-com-skip2-go-qrcode go-github-com-songgao-water go-github-com-stretchr-testify + go-github-com-vishvananda-netlink go-golang-org-x-crypto + go-golang-org-x-exp go-golang-org-x-net + go-golang-org-x-sync go-golang-org-x-sys go-golang-org-x-term + go-golang-zx2c4-com-wireguard go-google-golang-org-protobuf go-gopkg-in-yaml-v2 - go-github-com-vishvananda-netlink - go-github-com-vishvananda-netns)) + ;go-gvisor-dev-gvisor ; for nebula-service, not packed yet + )) (home-page "https://github.com/slackhq/nebula") (synopsis "Scalable, peer-to-peer overlay networking tool") (description diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 0f7a1517c5..0a3711bbb9 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -96,6 +96,7 @@ #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages golang-web) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages kerberos) @@ -128,6 +129,83 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages xml)) +(define-public aws-vault + (package + (name "aws-vault") + (version "7.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/99designs/aws-vault") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dqg6d2k8r80ww70afghf823z0pijha1i0a0c0c6918yb322zkj2")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/99designs/aws-vault" + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'patch-version + (lambda _ + (substitute* "src/github.com/99designs/aws-vault/main.go" + (("var Version = \"dev\"") + (string-append "var Version = \"v" #$version "\""))))) + (add-after 'build 'contrib + (lambda* (#:key import-path #:allow-other-keys) + (let* ((zsh-site-dir + (string-append #$output "/share/zsh/site-functions")) + (bash-completion-dir + (string-append #$output "/share/bash-completion/completions")) + (fish-completion-dir + (string-append #$output "/share/fish/completions"))) + (for-each mkdir-p (list bash-completion-dir + fish-completion-dir + zsh-site-dir)) + (with-directory-excursion + (string-append "src/" import-path "/contrib/completions") + (copy-file "zsh/aws-vault.zsh" + (string-append zsh-site-dir "/_aws-vault")) + (copy-file "bash/aws-vault.bash" + (string-append bash-completion-dir "/aws-vault")) + (copy-file "fish/aws-vault.fish" + (string-append fish-completion-dir "/aws-vault.fish")))))) + ;; aws-vault: error: add: mkdir /homeless-shelter: permission + ;; denied. + (add-before 'check 'set-home + (lambda _ + (setenv "HOME" "/tmp")))))) + (native-inputs + (list go-github-com-99designs-keyring + go-github-com-alecthomas-kingpin-v2 + go-github-com-aws-aws-sdk-go-v2 + go-github-com-aws-aws-sdk-go-v2-config + go-github-com-aws-aws-sdk-go-v2-credentials + go-github-com-aws-aws-sdk-go-v2-service-iam + go-github-com-aws-aws-sdk-go-v2-service-sso + go-github-com-aws-aws-sdk-go-v2-service-ssooidc + go-github-com-aws-aws-sdk-go-v2-service-sts + go-github-com-google-go-cmp + go-github-com-mattn-go-isatty + go-github-com-mattn-go-tty + go-github-com-skratchdot-open-golang + go-golang-org-x-term + go-gopkg-in-ini-v1)) + (home-page "https://github.com/99designs/aws-vault") + (synopsis "Vault for securely storing and accessing AWS credentials") + (description + "AWS Vault is a tool to securely store and access @acronym{Amazon Web +Services,AWS} credentials. + +AWS Vault stores IAM credentials in your operating system's secure keystore and +then generates temporary credentials from those to expose to your shell and +applications. It's designed to be complementary to the AWS CLI tools, and is +aware of your profiles and configuration in ~/.aws/config.") + (license license:expat))) + (define-public pwgen (package (name "pwgen") diff --git a/gnu/packages/patches/exercism-disable-self-update.patch b/gnu/packages/patches/exercism-disable-self-update.patch index a96cbfbc55..0827e5102b 100644 --- a/gnu/packages/patches/exercism-disable-self-update.patch +++ b/gnu/packages/patches/exercism-disable-self-update.patch @@ -1,21 +1,23 @@ -From bc22f7d43c12c5f79c71b0319666e71f29d61322 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@kadziolka.net> -Date: Mon, 25 May 2020 18:53:04 +0200 +From a0e422b11a65d63bd435c96bee3cd08f06bb8ec8 Mon Sep 17 00:00:00 2001 +From: Sharlatan Hellseher <sharlatanus@gmail.com> +Date: Mon, 23 Dec 2024 01:59:10 +0000 Subject: [PATCH] Disable self-update. +For exercism cli V3.5.4. + Based on a Fedora patch by Elliott Sales de Andrade. --- cli/cli.go | 44 +------------------------------------------- 1 file changed, 1 insertion(+), 43 deletions(-) diff --git a/cli/cli.go b/cli/cli.go -index 4312eb0..5f62297 100644 +index fe113ec..3baa4b0 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -10,13 +10,10 @@ import ( "io" - "io/ioutil" "net/http" + "os" - "runtime" "strings" "time" @@ -75,5 +77,4 @@ index 4312eb0..5f62297 100644 func (c *CLI) fetchLatestRelease() error { -- -2.26.2 - +2.46.0 diff --git a/gnu/packages/patches/go-github-com-urfave-cli-fix-tests.patch b/gnu/packages/patches/go-github-com-urfave-cli-fix-tests.patch deleted file mode 100644 index 7408d4ec16..0000000000 --- a/gnu/packages/patches/go-github-com-urfave-cli-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -Backported from upstream PR: https://github.com/urfave/cli/pull/1299 ---- -diff --git a/app_test.go b/app_test.go -index 33024ff..6b3aaa3 100644 ---- a/app_test.go -+++ b/app_test.go -@@ -513,18 +513,18 @@ func TestApp_RunAsSubcommandParseFlags(t *testing.T) { - func TestApp_RunAsSubCommandIncorrectUsage(t *testing.T) { - a := App{ - Flags: []Flag{ -- StringFlag{Name: "--foo"}, -+ StringFlag{Name: "foo"}, - }, - Writer: bytes.NewBufferString(""), - } - - set := flag.NewFlagSet("", flag.ContinueOnError) -- _ = set.Parse([]string{"", "---foo"}) -+ _ = set.Parse([]string{"", "-bar"}) - c := &Context{flagSet: set} - - err := a.RunAsSubcommand(c) - -- expect(t, err, errors.New("bad flag syntax: ---foo")) -+ expect(t, err.Error(), "flag provided but not defined: -bar") - } - - func TestApp_CommandWithFlagBeforeTerminator(t *testing.T) { diff --git a/gnu/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch b/gnu/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch deleted file mode 100644 index 87ccc2b655..0000000000 --- a/gnu/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch +++ /dev/null @@ -1,37 +0,0 @@ -From upstream PR: https://github.com/urfave/cli/pull/1299 - -From: William Wilson <william.wilson@canonical.com> -Date: Tue, 31 Aug 2021 14:19:17 -0500 -Subject: Make test case compatible with Go 1.17 - -As of Go 1.17, the go flag package will panic if given a syntactically invalid -flag. This causes TestApp_RunAsSubCommandIncorrectUsage to panic and therefore -fail. See https://golang.org/doc/go1.17#flag for more information. - ---- -diff --git a/app_test.go b/app_test.go -index 7c38f6048..76e211d68 100644 ---- a/app_test.go -+++ b/app_test.go -@@ -476,18 +476,18 @@ func TestApp_RunAsSubCommandIncorrectUsage(t *testing.T) { - a := App{ - Name: "cmd", - Flags: []Flag{ -- &StringFlag{Name: "--foo"}, -+ &StringFlag{Name: "foo"}, - }, - Writer: bytes.NewBufferString(""), - } - - set := flag.NewFlagSet("", flag.ContinueOnError) -- _ = set.Parse([]string{"", "---foo"}) -+ _ = set.Parse([]string{"", "-bar"}) - c := &Context{flagSet: set} - - err := a.RunAsSubcommand(c) - -- expect(t, err, errors.New("bad flag syntax: ---foo")) -+ expect(t, err.Error(), "flag provided but not defined: -bar") - } - - func TestApp_CommandWithFlagBeforeTerminator(t *testing.T) { diff --git a/gnu/packages/prometheus.scm b/gnu/packages/prometheus.scm index c498c27030..e582673a0d 100644 --- a/gnu/packages/prometheus.scm +++ b/gnu/packages/prometheus.scm @@ -34,6 +34,7 @@ #:use-module (gnu packages) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz)) @@ -129,7 +130,7 @@ registry.") (define-public go-github-com-prometheus-client-golang (package (name "go-github-com-prometheus-client-golang") - (version "1.19.1") + (version "1.20.5") (source (origin (method git-fetch) @@ -138,15 +139,27 @@ registry.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0mx5q221pbkx081ycf1lp8sxz513220ya8qczkkvab943cwlcarv")))) + (base32 "1q3n22p5ic22xzha6mffh0m0jzbxrkyjrcmnxsnanl61jwb4rkpw")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - dagger + ;; - .bingo - fake module + (delete-file-recursively "dagger") + (delete-file-recursively ".bingo"))))) (build-system go-build-system) (arguments (list + #:skip-build? #t ;; XXX: Check if the most of the tests may be enabled: ;; api/prometheus/v1/api_test.go:1063:23: cannot use 1634644800304 ;; (untyped int constant) as int value in map literal (overflows) #:tests? (target-64bit?) #:import-path "github.com/prometheus/client_golang" + ;; Assertion fails in one test. + #:test-flags #~(list "-skip" "TestHandler") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'remove-examples-and-tutorials @@ -155,19 +168,14 @@ registry.") (for-each delete-file-recursively (list "api/prometheus/v1/example_test.go" "examples" - "tutorial"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules support. - (delete 'build) - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + "tutorials")))))))) (propagated-inputs (list go-github-com-beorn7-perks go-github-com-cespare-xxhash-v2 - go-github-com-davecgh-go-spew + go-github-com-google-go-cmp go-github-com-json-iterator-go + go-github-com-klauspost-compress + go-github-com-kylelemons-godebug go-github-com-prometheus-client-model go-github-com-prometheus-common go-github-com-prometheus-procfs @@ -213,7 +221,7 @@ Prometheus metrics.") (define-public go-github-com-prometheus-common (package (name "go-github-com-prometheus-common") - (version "0.55.0") + (version "0.61.0") (source (origin (method git-fetch) @@ -222,7 +230,7 @@ Prometheus metrics.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0bsbxil7qz8rhckhv0844nmn38g7i7347cjv5m6na47hbdpi0rqh")) + (base32 "0wng61rzvh27s2rlaadvjbffwgpn74p1wjrz6insl57k1pg3cmcn")) (modules '((guix build utils))) (snippet #~(begin @@ -289,16 +297,17 @@ metrics.") (define-public go-github-com-prometheus-common-assets (package (name "go-github-com-prometheus-common-assets") - (version "0.55.0") + (version "0.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/common") - (commit (string-append "v" version)))) + (commit (go-version->git-ref version + #:subdir "assets")))) (file-name (git-file-name name version)) (sha256 - (base32 "0bsbxil7qz8rhckhv0844nmn38g7i7347cjv5m6na47hbdpi0rqh")))) + (base32 "0r7sym4yaysbkc5anyypl57v9ay0a1flq00j85j7lcficl2scwrs")))) (build-system go-build-system) (arguments (list @@ -369,7 +378,7 @@ from the default AWS credential chain.") (define-public go-github-com-prometheus-community-pro-bing (package (name "go-github-com-prometheus-community-pro-bing") - (version "0.4.1") + (version "0.5.0") (source (origin (method git-fetch) @@ -378,15 +387,19 @@ from the default AWS credential chain.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1yz4cf1qrm1jrzw2yd5p08663hynk4ihlf5mi2fn6irnzh343a7b")))) + (base32 "19757nqz0cpq7ir2w5xgjxpblhmkpk0j7spfw4j68agavbx6hxpm")))) (build-system go-build-system) (arguments (list - ;; Tests requiring network setup. + ;; Tests requiring network setup, and root access. #:test-flags - #~(list "-skip" (string-append "TestNewPingerValid" - "|TestSetIPAddr" - "|TestSetResolveTimeout")) + #~(list "-skip" + (string-join + (list "TestNewPingerValid" + "TestSetIPAddr" + "TestSetInterfaceName" + "TestSetResolveTimeout") + "|")) #:import-path "github.com/prometheus-community/pro-bing")) (propagated-inputs (list go-github-com-google-uuid @@ -402,7 +415,7 @@ Protocol,ICMP} echo (ping) functionality.") (define-public go-github-com-prometheus-exporter-toolkit (package (name "go-github-com-prometheus-exporter-toolkit") - (version "0.11.0") + (version "0.13.2") (source (origin (method git-fetch) @@ -411,7 +424,7 @@ Protocol,ICMP} echo (ping) functionality.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1n46jw3b13g355iv8phxxnnci7a877y5dscc1rlj3rpz4vy6yfzx")))) + (base32 "05k4sfrc1zs96iprgnap0gd42vwfq47j6vg2bv83nckcv731gmiv")))) (build-system go-build-system) (arguments (list @@ -433,6 +446,7 @@ Protocol,ICMP} echo (ping) functionality.") (list go-github-com-alecthomas-kingpin-v2 go-github-com-coreos-go-systemd-v22 go-github-com-go-kit-log + go-github-com-mdlayher-vsock ; Imported for go-github-com-prometheus-common to break the cycle. go-github-com-prometheus-client-golang go-github-com-prometheus-common @@ -494,10 +508,30 @@ Protocol,ICMP} echo (ping) functionality.") kernel, and process metrics from the @file{/proc} pseudo file system.") (license license:asl2.0))) +;; To make it compatible with node_exporter, see +;; <https://github.com/prometheus/node_exporter/issues/3143>. +(define-public go-github-com-prometheus-procfs-next + (let ((commit "24ab3d8d880d820115eef19f7b0c2c38fffd6a25") + (revision "0")) + (hidden-package + (package + (inherit go-github-com-prometheus-procfs) + (name "go-github-com-prometheus-procfs") + (version (git-version "0.15.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/procfs") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fv3f83q5wigbpl6mdpk4k7bj8jabc81rap0ym95l7rpw93cdlim")))))))) + (define-public go-github-com-prometheus-statsd-exporter (package (name "go-github-com-prometheus-statsd-exporter") - (version "0.27.1") + (version "0.28.0") (source (origin (method git-fetch) @@ -506,7 +540,7 @@ kernel, and process metrics from the @file{/proc} pseudo file system.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0y8n02h46q22wkcm2yy62bzsi9hxrarmvjamfpn2sygqhbb1pv38")))) + (base32 "0h7ypmsx1j6x1p5wdj03i3jzwms7ab03asn2capl1gg6x07k57w7")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index dd0d3985c0..855ccf5da7 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -491,6 +491,7 @@ The plug-in is made to work with 1 or 2 channels (LADSPA plugin), (arguments `(#:import-path "github.com/noisetorch/NoiseTorch" #:install-source? #f + #:test-subdirs '(".") #:phases (modify-phases %standard-phases (add-after 'unpack 'copy-rnnoise-library diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index a24ecffb90..af99c08a6a 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -39,6 +39,10 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages hunspell) @@ -278,20 +282,21 @@ time to a logfile.") (define-public dstask (package (name "dstask") - (version "0.26") + (version "0.27") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/naggie/dstask") - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "10q0524gfc76k0v9cy0j60cbgmmwkpnkbvl6w0pn1j5y690514f5")))) + (base32 "01vdxm3y5fg4hqhq4k1lk0m7w70kkwlka5jhixv7a9lf1gqldskd")))) (build-system go-build-system) (arguments `(#:import-path "github.com/naggie/dstask" #:install-source? #f + #:test-subdirs '("pkg/..." ".") #:phases (modify-phases %standard-phases (replace 'build @@ -314,6 +319,18 @@ time to a logfile.") (install-file "dstask-import" bindir) (install-file ".dstask-bash-completions.sh" bash-completion) (install-file ".dstask-zsh-completions.sh" zsh-completion)))))))) + (native-inputs + (list go-github-com-burntsushi-toml + go-github-com-gofrs-uuid + go-github-com-mattn-go-isatty + go-github-com-mattn-go-runewidth + go-github-com-shurcool-githubv4 + go-github-com-sirupsen-logrus + go-github-com-stretchr-testify + go-golang-org-x-oauth2 + go-golang-org-x-sys + go-gopkg-in-yaml-v2 + go-mvdan-cc-xurls-v2)) (synopsis "CLI-based TODO manager with git-based sync + markdown notes per task") (description "dstask is a personal task tracker that uses git for synchronization. It offers a note command to attach a Markdown based note to diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 2760de4892..88e84ce647 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -990,34 +990,6 @@ minimalistic.") (home-page "https://www.uninformativ.de/git/xiate/file/README.html") (license license:expat)))) -(define-public go-github.com-nsf-termbox-go - (let ((commit "288510b9734e30e7966ec2f22b87c5f8e67345e3") - (revision "1")) - (package - (name "go-github.com-nsf-termbox-go") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nsf/termbox-go") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0hdyisfaf8yb55h3p03p4sbq19546mp9fy28f2kn659mycmhxqk4")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/nsf/termbox-go")) - (propagated-inputs - (list go-github-com-mattn-go-runewidth)) - (synopsis "@code{termbox} provides a minimal API for text-based user -interfaces") - (description - "Termbox is a library that provides a minimalistic API which allows the -programmer to write text-based user interfaces.") - (home-page "https://github.com/nsf/termbox-go") - (license license:expat)))) - (define-public go-github-com-junegunn-fzf (package (name "go-github-com-junegunn-fzf") diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 6091d1ea6d..229e69a2b3 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -1496,9 +1496,7 @@ of a Unix terminal to HTML code.") (define-public vale (package (name "vale") - ;; Newer versions requires <github.com/smacker/go-tree-sitter> which is - ;; quite a large project to pack. - (version "3.4.2") + (version "3.9.4") (source (origin (method git-fetch) @@ -1506,49 +1504,35 @@ of a Unix terminal to HTML code.") (url "https://github.com/errata-ai/vale") (commit (string-append "v" version)))) (sha256 - (base32 "15f8ggh7hpfmfpszl9qkdfz19kds6gg6x5dgcqy0v6jrcsdbgpgp")) - (file-name (git-file-name name version)) - (modules '((guix build utils))) - (snippet - #~(begin - ;; Module name has been changed upstream. - (substitute* (find-files "." "\\.go$") - (("github.com/antonmedv/expr") "github.com/expr-lang/expr")))))) + (base32 "009gyrn2mi7bg10v6mqrr6c6ii5l2vbhs7mvh7g4xxgqhaqzpbhp")) + (file-name (git-file-name name version)))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:install-source? #f #:embed-files #~(list ".*\\.gob") #:import-path "github.com/errata-ai/vale/cmd/vale" #:unpack-path "github.com/errata-ai/vale" + ;; Disable tests requring network access: Get + ;; "https://raw.githubusercontent.com/errata-ai/styles/master/library.json": + ;; dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp + ;; [::1]:52621->[::1]:53: read: connection refused. + #:test-flags + #~(list "-skip" (string-join + (list "TestLibrary" + "TestNoPkgFound" + "TestSymlinkFixture") + "|")) + #:test-subdirs + #~(list "../../...") ; test whole libary, starting from import-path #:phases #~(modify-phases %standard-phases - ;; Disable tests requring network access: Get - ;; "https://raw.githubusercontent.com/errata-ai/styles/master/library.json": - ;; dial tcp: lookup raw.githubusercontent.com on [::1]:53: - ;; read udp [::1]:52621->[::1]:53: read: connection refused. - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - (substitute* (find-files "." "\\_test.go$") - (("TestLibrary") "OffTestLibrary") - (("TestLocalComplete") "OffTestLocalComplete") - (("TestLocalDir") "OffTestLocalDir") - (("TestLocalOnlyStyles") "OffTestLocalOnlyStyles") - (("TestLocalZip") "OffTestLocalZip") - (("TestNoPkgFound") "OffTestNoPkgFound") - (("TestV3Pkg") "OffTestV3Pkg"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (replace 'check - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" unpack-path) - (setenv "HOME" "/tmp") - (invoke "go" "test" "-v" "./...")))))))) + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" "/tmp")))))) (native-inputs - (list go-github-com-masterminds-sprig-v3 - go-github-com-adrg-strutil + (list go-github-com-adrg-strutil go-github-com-adrg-xdg go-github-com-bmatcuk-doublestar-v4 go-github-com-d5-tengo-v2 @@ -1556,16 +1540,20 @@ of a Unix terminal to HTML code.") go-github-com-errata-ai-regexp2 go-github-com-expr-lang-expr go-github-com-gobwas-glob + go-github-com-jdkato-go-tree-sitter-julia go-github-com-jdkato-twine - go-github-com-karrick-godirwalk - go-github-com-mholt-archiver-v3 + go-github-com-masterminds-sprig-v3 go-github-com-mitchellh-mapstructure go-github-com-niklasfasching-go-org go-github-com-olekukonko-tablewriter go-github-com-otiai10-copy + go-github-com-pelletier-go-toml-v2 go-github-com-pterm-pterm go-github-com-remeh-sizedwaitgroup + go-github-com-smacker-go-tree-sitter go-github-com-spf13-pflag + go-github-com-stretchr-testify + go-github-com-tomwright-dasel-v2 go-github-com-yuin-goldmark go-golang-org-x-exp go-golang-org-x-net diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 2a94f53474..376fbe1504 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -49,7 +49,6 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages geo) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages libffi) #:use-module (gnu packages perl) @@ -696,7 +695,7 @@ choosing.") (list #:import-path "github.com/antonmedv/countdown")) (native-inputs - (list go-github.com-nsf-termbox-go)) + (list go-github-com-nsf-termbox-go)) (home-page "https://github.com/antonmedv/countdown") (synopsis "Counts to zero with a text user interface") (description diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm index 6d74a75f4b..13a1b41f72 100644 --- a/gnu/packages/tor-browsers.scm +++ b/gnu/packages/tor-browsers.scm @@ -216,7 +216,7 @@ Browser.") "16zyixbddwaiw1bzsai5crdg58kmacshsr0rp37m85qk0a8vryg3")))) (build-system mozilla-build-system) (inputs - (list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird + (list lyrebird firefox-locales tor-client alsa-lib @@ -956,7 +956,7 @@ Mullvad Browser.") (delete 'autoconfig-tor))))) (inputs (modify-inputs (package-inputs torbrowser) - (delete go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird))) + (delete lyrebird))) (propagated-inputs (modify-inputs (package-propagated-inputs torbrowser) (append ublock-origin/icecat))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 2a95bc79e1..0990689a92 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -59,6 +59,8 @@ ;;; Copyright © 2024 Javier Olaechea <pirata@gmail.com> ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu> +;;; Copyright © 2024 Herman Rimm <herman@rimm.ee> +;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -126,6 +128,7 @@ #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-vcs) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages groff) @@ -980,6 +983,125 @@ the date of the most recent commit that modified them @end itemize") (license license:gpl3+))) +(define-public git-spice + (package + (name "git-spice") + (version "0.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abhinav/git-spice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yvnd5a3ql905jrxh0sq9sdcfmyq38fsbqx0zbhxbd4rgs8hv5s3")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:import-path "go.abhg.dev/gs" + #:install-source? #f + #:test-flags + #~(list "-skip" + (string-join + ;; XXX: Tests failing with various reasons; requiring + ;; networking config or write access, or outbound access, check + ;; if some of them may be fixed. + (list "TestDeviceFlowAuthenticator" + "TestScript/auth_detect_forge" + "TestScript/auth_explicit_forge" + "TestScript/auth_insecure_storage" + "TestScript/auth_prompt_forge" + "TestScript/branch_split_reassign_submitted" + "TestScript/branch_submit_ambiguous_branch" + "TestScript/branch_submit_by_name" + "TestScript/branch_submit_config_no_publish" + "TestScript/branch_submit_create_update" + "TestScript/branch_submit_detect_existing" + "TestScript/branch_submit_detect_existing_conflict" + "TestScript/branch_submit_detect_existing_upstream_name" + "TestScript/branch_submit_force_push" + "TestScript/branch_submit_long_body" + "TestScript/branch_submit_many_upstream_names_taken" + "TestScript/branch_submit_multiple_commits" + "TestScript/branch_submit_multiple_pr_templates" + "TestScript/branch_submit_navigation_.*_out_multiple" + "TestScript/branch_submit_needs_restack" + "TestScript/branch_submit_no_editor" + "TestScript/branch_submit_no_publish" + "TestScript/branch_submit_pr_template" + "TestScript/branch_submit_pr_template_cache_invalidation" + "TestScript/branch_submit_pr_template_no_body" + "TestScript/branch_submit_pr_template_prompt" + "TestScript/branch_submit_recover_prepared" + "TestScript/branch_submit_remote_prompt" + "TestScript/branch_submit_rename" + "TestScript/branch_submit_rename_base" + "TestScript/branch_submit_update_pr_is_closed" + "TestScript/branch_submit_update_pr_is_merged" + "TestScript/branch_submit_upstream_name" + "TestScript/branch_submit_upstream_name_wrong_remote" + "TestScript/branch_submit_use_git_editor" + "TestScript/branch_submit_web" + "TestScript/branch_submit_web_opt_out" + "TestScript/downstack_submit" + "TestScript/issue369_branch_.*_case_insensitive" + "TestScript/issue369_branch_.*_remote_update" + "TestScript/issue398_repo_sync_many_merged" + "TestScript/repo_sync_after_merging_renamed_branch" + "TestScript/repo_sync_detached_head" + "TestScript/repo_sync_detect_externally_created_prs" + "TestScript/repo_sync_external_pr_head_mismatch" + "TestScript/repo_sync_manual_pull_merged_pr" + "TestScript/repo_sync_merged_pr" + "TestScript/repo_sync_remote_already_deleted" + "TestScript/repo_sync_restack" + "TestScript/repo_sync_trunk_dirty_tree" + "TestScript/repo_sync_trunk_no_prs" + "TestScript/repo_sync_unpushed_commits" + "TestScript/stack_submit" + "TestScript/stack_submit_update_leave_draft" + "TestScript/stack_submit_web" + "TestScript/upstack_submit_main") + "|")))) + (native-inputs + (list git-minimal ; for tests in testdata/scripts + go-github-com-alecthomas-kong + go-github-com-buildkite-shellwords + go-github-com-charmbracelet-bubbles + go-github-com-charmbracelet-bubbletea + go-github-com-charmbracelet-lipgloss + go-github-com-charmbracelet-log + go-github-com-cli-browser + go-github-com-creack-pty + go-github-com-dustin-go-humanize + go-github-com-mattn-go-isatty + go-github-com-rogpeppe-go-internal + go-github-com-sahilm-fuzzy + go-github-com-shurcool-githubv4 + go-github-com-stretchr-testify + go-github-com-tidwall-gjson + go-github-com-vito-midterm + go-github-com-xanzy-go-gitlab + go-github-com-zalando-go-keyring + go-go-abhg-dev-komplete + go-go-abhg-dev-requiredfield + go-go-abhg-dev-testing-stub + go-go-uber-org-mock + go-golang-org-x-oauth2 + go-gopkg-in-dnaeon-go-vcr-v4 + go-gopkg-in-yaml-v3 + go-pgregory-net-rapid)) + (home-page "https://go.abhg.dev/gs") + (synopsis "Manage stacks of Git branches") + (description + "git-spice (@code{gs}) is a command line tool for stacking Git branches, +a collection of branches expecting the trunk has a base branch. It manages +and navigates stacks of branches, conveniently modifies and rebases them also +provides an integration with GitHub and GitLab.") + (license license:gpl3))) + (define-public got (package (name "got") @@ -3812,7 +3934,7 @@ will reconstruct the object along its delta-base chain and return it.") (define-public git-lfs (package (name "git-lfs") - (version "3.4.0") + (version "3.6.0") (source (origin (method git-fetch) (uri (git-reference @@ -3821,13 +3943,14 @@ will reconstruct the object along its delta-base chain and return it.") (file-name (git-file-name name version)) (sha256 (base32 - "0ljjs8kyznp2ifkqdcd9q3550sknyx5qxx247icwkd9djjq7x74m")))) + "09ry2nq5bpdxk446dyhc0d6d85wy5x2i5ckwwg9r00a3zdp5v4ry")))) (build-system go-build-system) (arguments (list #:embed-files #~(list "children" "nodes" "text") #:import-path "github.com/git-lfs/git-lfs" #:install-source? #f + #:test-flags #~(list "-skip" "TestHistoryRewriterUpdatesRefs") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-/bin/sh @@ -3863,24 +3986,25 @@ will reconstruct the object along its delta-base chain and return it.") (list ronn-ng ruby-asciidoctor) '()))) (propagated-inputs - (list go-github-com-xeipuuv-gojsonschema - go-github-com-xeipuuv-gojsonreference - go-github-com-xeipuuv-gojsonpointer - go-golang-org-x-net - go-golang-org-x-sync - go-github-com-ssgelm-cookiejarparser - go-github-com-rubyist-tracerx - go-github-com-olekukonko-ts - go-github-com-leonelquinteros-gotext - go-github-com-git-lfs-wildmatch-v2 - go-github-com-git-lfs-pktline - go-github-com-git-lfs-go-netrc - go-github-com-git-lfs-gitobj-v2 + (list go-github-com-avast-retry-go go-github-com-dpotapov-go-spnego - go-github-com-avast-retry-go + go-github-com-git-lfs-gitobj-v2 + go-github-com-git-lfs-go-netrc + go-github-com-git-lfs-pktline + go-github-com-git-lfs-wildmatch-v2 + go-github-com-jmhodges-clock + go-github-com-leonelquinteros-gotext go-github-com-mattn-go-isatty + go-github-com-olekukonko-ts go-github-com-pkg-errors - go-github-com-spf13-cobra)) + go-github-com-rubyist-tracerx + go-github-com-spf13-cobra + go-github-com-ssgelm-cookiejarparser + go-github-com-stretchr-testify + go-github-com-xeipuuv-gojsonschema + go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-sys)) (home-page "https://git-lfs.github.com/") (synopsis "Git extension for versioning large files") (description @@ -4055,59 +4179,6 @@ of machine readable. This helps improve code quality and helps you spot defects faster.") (license license:expat))) -(define-public go-github-com-go-git-go-git-v5 - (package - (name "go-github-com-go-git-go-git-v5") - (version "5.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-git/go-git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1vkcmhh2qq8c38sjbnzf0wvg2rzr19wssaq177bsvrjwj1xz1qbs")))) - (build-system go-build-system) - (arguments - (list - #:tests? #f ;requires network connection - #:import-path "github.com/go-git/go-git/v5" - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'setup - (lambda* (#:key inputs #:allow-other-keys) - (let* ((git #$(this-package-native-input "git")) - (git-bin (string-append git "/bin")) - (git-exe (string-append git-bin "/git"))) - (setenv "GIT_DIST_PATH=" git) - (setenv "GIT_EXEC_PATH=" git-bin) - (setenv "HOME" (getcwd)) - (invoke git-exe "config" "--global" "user.email" "gha@example.com") - (invoke git-exe "config" "--global" "user.name" "GitHub Actions"))))))) - (propagated-inputs - (list go-github-com-alcortesm-tgz - go-github-com-emirpasic-gods - go-github-com-go-git-gcfg - go-github-com-go-git-go-billy-v5 - go-github-com-go-git-go-git-fixtures-v4 - go-github-com-imdario-mergo - go-github-com-jbenet-go-context - go-github-com-kevinburke-ssh-config - go-github-com-mitchellh-go-homedir - go-github-com-sergi-go-diff - go-github-com-xanzy-ssh-agent - go-golang-org-x-crypto - go-golang-org-x-net - go-golang-org-x-text - go-gopkg-in-check-v1 - go-gopkg-in-warnings)) - (native-inputs (list git)) - (home-page "https://github.com/go-git/") - (synopsis "Git implementation library") - (description "This package provides a Git implementation library.") - (license license:asl2.0))) - (define-public gita (let ((commit "e41b504dca90a25e9be27f296da7ce22e5782893") (revision "1")) @@ -4171,7 +4242,7 @@ If several repos are related, it helps to see their status together.") (define-public ghq (package (name "ghq") - (version "1.6.2") + (version "1.7.1") (home-page "https://github.com/x-motemen/ghq") (source (origin (method git-fetch) @@ -4181,7 +4252,7 @@ If several repos are related, it helps to see their status together.") (file-name (git-file-name name version)) (sha256 (base32 - "00rrm0gykmj60i0lnr4js6d4193c92zm3cimimb03xva4n9frvxw")))) + "0ai3klp3fm5r0idnml5pm55wcvkav3w0s11snlmr0ab1ki8m9sg5")))) (build-system go-build-system) (arguments (list @@ -4204,13 +4275,14 @@ If several repos are related, it helps to see their status together.") (native-inputs (list git-minimal)) (inputs - (list go-github-com-songmu-gitconfig - go-github-com-mattn-go-isatty + (list go-github-com-mattn-go-isatty go-github-com-motemen-go-colorine go-github-com-saracen-walker + go-github-com-songmu-gitconfig go-github-com-urfave-cli-v2 go-golang-org-x-net - go-golang-org-x-sync)) + go-golang-org-x-sync + go-golang-org-x-text)) (synopsis "Manage remote repository clones") (description "@code{ghq} provides a way to organize remote repository clones, like diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 29f29e0b53..b8819bb14d 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2290,6 +2290,7 @@ Open Container Initiative specification.") (package (name "umoci") (version "0.4.7") + ;; XXX: Source contain vendor, consider to pack all missing dependencies. (source (origin (method url-fetch) @@ -2303,6 +2304,7 @@ Open Container Initiative specification.") (arguments '(#:import-path "github.com/opencontainers/umoci" #:install-source? #f + #:test-subdirs '(".") #:phases (modify-phases %standard-phases (replace 'unpack diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index f8cb774a79..3056083c94 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -370,12 +370,6 @@ and its related documentation.") #$version)) #: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" "./..."))))) (add-after 'install 'install-manpage (lambda* (#:key import-path #:allow-other-keys) (let ((man1 (string-append #$output "/share/man/man1/")) @@ -402,8 +396,7 @@ and its related documentation.") go-golang-org-x-net go-golang-org-x-oauth2 go-golang-org-x-term - go-golang-org-x-text - go-mvdan-cc-xurls-v2)) + go-golang-org-x-text)) (home-page "https://miniflux.app/") (synopsis "Minimalist and opinionated feed reader") (description @@ -1961,7 +1954,7 @@ UTS#46.") (define-public esbuild (package (name "esbuild") - (version "0.14.0") + (version "0.24.0") (source (origin (method git-fetch) @@ -1970,43 +1963,28 @@ UTS#46.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w")) + (base32 "1j99m7rdql6iq3llrr8bm85hq34ssc8bmb6vhwr1ibgspjl0jd3k")) (modules '((guix build utils))) (snippet - '(begin - ;; Remove prebuilt binaries - (delete-file-recursively "npm") - #t)))) + #~(begin + ;; Remove prebuilt binaries + (delete-file-recursively "npm"))))) (build-system go-build-system) (arguments - `(#:import-path "github.com/evanw/esbuild/cmd/esbuild" - #:unpack-path "github.com/evanw/esbuild" - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (when tests? - ;; The "Go Race Detector" is only supported on 64-bit - ;; platforms, this variable disables it. - ;; TODO: Causes too many rebuilds, rewrite to limit to x86_64, - ;; aarch64 and ppc64le. - ,(if (target-riscv64?) - `(setenv "ESBUILD_RACE" "") - `(unless ,(target-64bit?) - (setenv "ESBUILD_RACE" ""))) - (with-directory-excursion (string-append "src/" unpack-path) - (invoke "make" "test-go"))) - #t))))) + (list + #:import-path "github.com/evanw/esbuild/cmd/esbuild" + #:unpack-path "github.com/evanw/esbuild" + #:test-flags #~(list #$(if (target-64bit?) "-race" "-short")) + ;; Test subdirectories are compiled from #:import-path. + #:test-subdirs #~(list "../../internal/..." "../../pkg/..." ))) (inputs - `(("golang.org/x/sys" ,go-golang-org-x-sys))) - (native-inputs - `(("github.com/kylelemons/godebug" ,go-github-com-kylelemons-godebug))) + (list go-golang-org-x-sys-for-esbuild)) (home-page "https://esbuild.github.io/") (synopsis "Bundler and minifier tool for JavaScript and TypeScript") (description - "The esbuild tool provides a unified bundler, transpiler and -minifier. It packages up JavaScript and TypeScript code, along with JSON -and other data, for distribution on the web.") + "The esbuild tool provides a unified bundler, transpiler and minifier. +It packages up JavaScript and TypeScript code, along with JSON and other data, +for distribution on the web.") (license license:expat))) (define-public tinyproxy @@ -5550,13 +5528,17 @@ you'd expect.") "0s7c8r6y5jv6wda2v3k47hawfdr9j3rwk717l6byvh5qsbbml0vd")))) (build-system go-build-system) (arguments - (list #:import-path "github.com/mikefarah/yq/v4" - #:phases - #~(modify-phases %standard-phases - (add-after 'install 'remove-binary - (lambda _ - (delete-file-recursively - (string-append #$output "/bin"))))))) + (list + #:skip-build? #t + #:import-path "github.com/mikefarah/yq/v4" + #:phases + #~(modify-phases %standard-phases + ;; Tests need this. + (add-after 'unpack 'fix-access-to-doc + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each make-file-writable + (find-files "./pkg/yqlib/doc" "\\.md")))))))) (propagated-inputs (list go-github-com-a8m-envsubst go-github-com-alecthomas-participle-v2 @@ -5591,14 +5573,12 @@ JSON, XML, properties, CSV and TSV.") (inherit go-github-com-mikefarah-yq-v4) (name "yq") (arguments - (list #:install-source? #f - #:import-path "github.com/mikefarah/yq/v4" - #:phases - #~(modify-phases %standard-phases - (add-after 'install 'rename-binary - (lambda _ - (rename-file (string-append #$output "/bin/v4") - (string-append #$output "/bin/yq"))))))) + (substitute-keyword-arguments + (package-arguments go-github-com-mikefarah-yq-v4) + ((#:install-source? _ #t) #f) + ((#:skip-build? _ #t) #f) + ((#:tests? _ #t) #f) + ((#:import-path _) "github.com/mikefarah/yq"))) (propagated-inputs '()) (inputs (package-propagated-inputs go-github-com-mikefarah-yq-v4)))) @@ -9011,7 +8991,7 @@ Anonip can also be uses as a Python module in your own Python application.") "0kckcwvqklavd855np9aq5js6mg84isrlwchr504yigwma0sm7hm")))) (build-system go-build-system) (propagated-inputs - (list go-github-com-robfig-cron go-golang-org-x-time)) + (list go-github-com-robfig-cron-v3 go-golang-org-x-time)) (arguments `(#:import-path "github.com/tsileo/poussetaches")) (home-page "https://github.com/tsileo/poussetaches") diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 5599644f3b..863177c59e 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -204,8 +204,10 @@ commit hash and its date rather than a proper release tag." (import-path "") (unpack-path "") (build-flags ''()) + (skip-build? #f) (tests? #t) (test-flags ''()) + (test-subdirs ''("...")) (parallel-build? #t) (parallel-tests? #t) (allow-go-reference? #f) @@ -238,8 +240,10 @@ commit hash and its date rather than a proper release tag." #:import-path #$import-path #:unpack-path #$unpack-path #:build-flags #$build-flags + #:skip-build? #$skip-build? #:tests? #$tests? #:test-flags #$test-flags + #:test-subdirs #$test-subdirs #:parallel-build? #$parallel-build? #:parallel-tests? #$parallel-tests? #:allow-go-reference? #$allow-go-reference? @@ -263,8 +267,10 @@ commit hash and its date rather than a proper release tag." (import-path "") (unpack-path "") (build-flags ''()) + (skip-build? #f) (tests? #f) ; nothing can be done (test-flags ''()) + (test-subdirs ''("...")) (allow-go-reference? #f) (system (%current-system)) (goarch (first (go-target target))) @@ -315,8 +321,10 @@ commit hash and its date rather than a proper release tag." #:import-path #$import-path #:unpack-path #$unpack-path #:build-flags #$build-flags + #:skip-build? #$skip-build? #:tests? #$tests? #:test-flags #$test-flags + #:test-subdirs #$test-subdirs #:make-dynamic-linker-cache? #f ;cross-compiling #:allow-go-reference? #$allow-go-reference? #:inputs %build-inputs)))) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index e53d8cb53c..70ff880db8 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -98,6 +98,10 @@ ;; * Remove module packages, only offering the full Git repos? This is ;; more idiomatic, I think, because Go downloads Git repos, not modules. ;; What are the trade-offs? +;; * Figurie out how to passthrough --verbosity option to "build" and "check" +;; procedures. +;; * Implement test-backend option, which would be similar to pyproject's +;; one, allowing to provide custom test runner. ;; ;; [0] `go build`: ;; https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies @@ -283,35 +287,71 @@ unpacking." (_ #f)) inputs)))) -(define* (build #:key import-path build-flags (parallel-build? #t) +(define* (build #:key + build-flags + skip-build? + import-path + (parallel-build? #t) + (verbosity 1) #:allow-other-keys) "Build the package named by IMPORT-PATH." - (let* ((njobs (if parallel-build? (parallel-job-count) 1))) + (let* ((njobs (if parallel-build? (parallel-job-count) 1)) + ;; Utilizing GOFLAGS for flexible build options passthrough, refer + ;; for more examples to online documentation of Golang + ;; <https://go.dev/src/cmd/go/testdata/script/goflags.txt>. + (goflags (string-join + (list + ;; Print the name of packages (pathes) as they are compiled. + "-v" + ;; Print each command as it is invoked. When enabled, it + ;; generates a lot of noisy logs which makes identifying + ;; build failures harder to determine. + (if (> verbosity 1) "-x" "")) + " "))) + (setenv "GOFLAGS" goflags) (setenv "GOMAXPROCS" (number->string njobs))) (with-throw-handler - #t + #t (lambda _ - (apply invoke "go" "install" - "-v" ; print the name of packages as they are compiled - "-x" ; print each command as it is invoked - ;; Respectively, strip the symbol table and debug - ;; information, and the DWARF symbol table. - "-ldflags=-s -w" - "-trimpath" - `(,@build-flags ,import-path))) + (if skip-build? + (begin + (format #t "Build is skipped, no go files in project's root.~%") + #t) + (apply invoke "go" "install" + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + "-ldflags=-s -w" + ;; Remove all file system paths from the resulting + ;; executable. Instead of absolute file system paths, the + ;; recorded file names will begin either a module + ;; path@version (when using modules), or a plain import path + ;; (when using the standard library, or GOPATH). + "-trimpath" + `(,@build-flags ,import-path)))) + (lambda (key . args) (display (string-append "Building '" import-path "' failed.\n" "Here are the results of `go env`:\n")) (invoke "go" "env")))) -(define* (check #:key tests? import-path test-flags (parallel-tests? #t) +(define* (check #:key + tests? + import-path + test-flags + test-subdirs + (parallel-tests? #t) #:allow-other-keys) "Run the tests for the package named by IMPORT-PATH." (when tests? (let* ((njobs (if parallel-tests? (parallel-job-count) 1))) (setenv "GOMAXPROCS" (number->string njobs))) - (apply invoke "go" "test" `(,import-path ,@test-flags))) + (apply invoke "go" "test" + `(,@(map (lambda (dir) + (format #f "~a~:[/~;~]~a" + import-path (string-null? dir) dir)) + test-subdirs) + ,@test-flags))) #t) (define* (install #:key install-source? outputs import-path unpack-path #:allow-other-keys) |