diff options
63 files changed, 7490 insertions, 2805 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 69a5d8065e..ab440ac4a7 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -85,7 +85,8 @@ ;; Geiser ;; This allows automatically setting the `geiser-guile-load-path' ;; variable when using various Guix checkouts (e.g., via git worktrees). - (geiser-repl-per-project-p . t))) + (geiser-repl-per-project-p . t) + (geiser-insert-actual-lambda . nil))) (c-mode . ((c-file-style . "gnu"))) (scheme-mode diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 83df9bdfc9..9b2ec85de2 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -50,7 +50,6 @@ #:use-module (gnu packages docker) #:use-module (gnu packages gcc) #:use-module (gnu packages gnupg) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages image) #:use-module (gnu packages java) diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm index d6b5cedb20..3a1b981207 100644 --- a/gnu/packages/authentication.scm +++ b/gnu/packages/authentication.scm @@ -23,6 +23,9 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages documentation) #:use-module (gnu packages gnupg) + #: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 pkg-config) #:use-module (gnu packages security-token) @@ -32,6 +35,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages)) @@ -122,7 +126,7 @@ PSKC (RFC6030) to manage secret key data.") (define-public oauth2l (package (name "oauth2l") - (version "1.3.0") + (version "1.3.2") (source (origin (method git-fetch) @@ -131,10 +135,40 @@ PSKC (RFC6030) to manage secret key data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0010870xdhf0aysrs2vhl3yxd4gh87qp7mjpyp7qy1n2rz55pgbc")))) + (base32 "1gm5pbgmz3p0zk5s4gvslp8ixhak3d35pfm7wrw5yk2rcdffr5li")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) (build-system go-build-system) (arguments - '(#:import-path "github.com/google/oauth2l")) + (list + #:install-source? #f + #:import-path "github.com/google/oauth2l" + #:test-flags + #~(list "-skip" + ;; Tests requiring network access. + (string-join + (list "Test2LOFlow/curl._2lo" + "Test3LOFlow/curl._3lo" + "Test3LOFlow/fetch._3lo_cached" + "Test3LOLoopbackFlow/curl._3lo_loopback" + "Test3LOLoopbackFlow/fetch._3lo_loopback_cached" + "TestCLI/info._invalid_token" + "TestSSOFlow/fetch._sso" + "TestSSOFlow/fetch._sso._old_interface" + "TestServiceAccountImpersonationFlow/fetch._sso.*" + "TestStsFlow/fetch._2lo._sts" + "TestStsFlow/fetch._sso._sts") + "|")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" "/tmp")))))) + (native-inputs + (list go-github-com-google-uuid + go-github-com-jessevdk-go-flags + go-golang-org-x-oauth2)) (home-page "https://github.com/google/oauth2l") (synopsis "Simple CLI for interacting with Google API authentication") (description diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 2705fda363..a119a13a6f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; Copyright © 2024 Alexis Simon <alexis.simon@runbox.com> ;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com> +;;; Copyright © 2025 nomike Postmann <nomike@nomike.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -97,7 +98,6 @@ #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-compression) @@ -6074,9 +6074,9 @@ databases.") '("cd-hit-dup" "cd-hit-lap" "read-linker"))))))) (inputs '()))) -(define-public clipper +(define-public clipper-peak (package - (name "clipper") + (name "clipper-peak") (version "2.0.1") (source (origin (method git-fetch) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 0092668ca7..657969b759 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -91,7 +91,6 @@ #:use-module (gnu packages gdb) #: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-xyz) @@ -414,9 +413,9 @@ source code editors and IDEs.") (native-inputs (list go-github-com-docopt-docopt-go go-github-com-go-ini-ini - go-github-com-go-md2man go-github-com-olekukonko-tablewriter - go-github-com-stretchr-testify)) + go-github-com-stretchr-testify + go-md2man)) (home-page "https://github.com/mrtazz/checkmake") (synopsis "Linter and analyzer for @file{Makefile}") (description diff --git a/gnu/packages/configuration-management.scm b/gnu/packages/configuration-management.scm index 94f0516f44..22e8d52bfd 100644 --- a/gnu/packages/configuration-management.scm +++ b/gnu/packages/configuration-management.scm @@ -24,7 +24,6 @@ #:use-module (guix build-system pyproject) #:use-module (guix gexp) #:use-module (guix git-download) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-vcs) @@ -40,7 +39,7 @@ (define-public chezmoi (package (name "chezmoi") - (version "1.8.10") + (version "2.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -49,64 +48,69 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0ildvlq7v8vnw74y4fgnv3hpq49bpl6zh1wmakfh46crwg7ffmjb")))) + "1kjjbns80pcd6wh51kmhpw8xlm57cqgq205qp2i2z78n82h3fijc")))) (build-system go-build-system) (arguments (list + #:install-source? #f #:import-path "github.com/twpayne/chezmoi" #:embed-files #~(list ".*\\.xml") - #:install-source? #f - #:phases - #~(modify-phases %standard-phases - ;; Remove test script which expect additional user's programs available - ;; in the PATH. The testdata directory is removed in the latest version - ;; (2.46.1) of the program. - (add-after 'unpack 'remove-failing-test-scripts - (lambda* (#:key import-path #:allow-other-keys) - (for-each (lambda (f) - (delete-file (string-append "src/" import-path "/testdata/scripts/" f))) - '("bitwarden.txt" - "cd.txt" - "cd_unix.txt" - "completion.txt" - "diff.txt" - "edit.txt" - "editconfig.txt" - "git.txt" - "gopass.txt" - "keepassxc.txt" - "lastpass.txt" - "onepassword.txt" - "pass.txt" - "runscriptdir_unix.txt" - "script_unix.txt" - "secretgeneric.txt" - "secretgopass.txt" - "secretkeepassxc.txt" - "secretlastpass.txt" - "secretonepassword.txt" - "secretpass.txt"))))))) + #:test-flags + #~(list "-skip" (string-join + (list "TestScript/autocommit" + "TestScript/autopush" + "TestScript/bitwarden" + "TestScript/builtingit" + "TestScript/cd_unix" + "TestScript/completion" + "TestScript/doctor_unix" + "TestScript/edit" + "TestScript/editconfig" + "TestScript/git" + "TestScript/gopass" + "TestScript/init" + "TestScript/issue1213" + "TestScript/keepassxc" + "TestScript/lastpass" + "TestScript/merge_unix" + "TestScript/modify_unix" + "TestScript/onepassword" + "TestScript/pass" + "TestScript/runscriptdir_unix" + "TestScript/script" + "TestScript/script_unix" + "TestScript/scriptonce_unix" + "TestScript/scriptorder_unix" + "TestScript/scriptsubdir_unix" + "TestScript/secret" + "TestScript/state_unix" + "TestScript/templatefuncs" + "TestScript/update" + "TestScript/vault") + "|")))) (native-inputs (list go-github-com-masterminds-sprig-v3 - go-github-com-bmatcuk-doublestar-v2 - go-github-com-charmbracelet-glamour + go-github-com-bmatcuk-doublestar-v4 + go-github-com-bradenhilton-mozillainstallhash + go-github-com-charmbracelet-glamour-0.3 go-github-com-coreos-go-semver go-github-com-go-git-go-git-v5 - go-github-com-google-go-github-v33 + go-github-com-google-go-github-v36 + go-github-com-google-gops go-github-com-google-renameio + go-github-com-mitchellh-mapstructure go-github-com-muesli-combinator go-github-com-pelletier-go-toml - go-github-com-pkg-diff go-github-com-rogpeppe-go-internal go-github-com-rs-zerolog go-github-com-sergi-go-diff + go-github-com-spf13-afero go-github-com-spf13-cobra go-github-com-spf13-viper go-github-com-stretchr-testify go-github-com-twpayne-go-shell - 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-twpayne-go-vfs-v3 + go-github-com-twpayne-go-xdg-v6 go-github-com-zalando-go-keyring go-go-etcd-io-bbolt go-go-uber-org-multierr diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 91203df4c2..be3e05f862 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -342,7 +342,7 @@ Layer-4 sockets.") (define-public cni-plugins (package (name "cni-plugins") - (version "1.6.1") + (version "1.7.1") (source (origin (method git-fetch) @@ -350,12 +350,13 @@ Layer-4 sockets.") (url "https://github.com/containernetworking/plugins") (commit (string-append "v" version)))) (sha256 - (base32 "164savm1iic5ax2xi4zgy9lm7wk8kjy22n4is463lj9rkbp4s6xn")) + (base32 "04acfjkc3z2yf85z0v1mlgj0fqy032dsklzik2g1cnz6ncw6jl2b")) (file-name (git-file-name name version)))) (build-system go-build-system) (arguments `(#:unpack-path "github.com/containernetworking/plugins" #:tests? #f ; XXX: see stat /var/run below + #:go ,go-1.24 #:phases (modify-phases %standard-phases (replace 'build (lambda _ @@ -364,7 +365,7 @@ Layer-4 sockets.") (invoke "./build_linux.sh")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) - ; only pkg/ns tests run without root + ;; Only pkg/ns tests run without root. (when tests? (with-directory-excursion "src/github.com/containernetworking/plugins/pkg/ns" @@ -489,8 +490,7 @@ Its main purpose is to support the key usage by @code{docker-init}: #~(list (string-append "CC=" #$(cc-for-target)) (string-append "PREFIX=" #$output) (string-append "HELPER_BINARIES_DIR=" #$output "/_guix") - (string-append "GOMD2MAN=" - #$go-github-com-go-md2man "/bin/go-md2man") + (string-append "GOMD2MAN=" #$go-md2man "/bin/go-md2man") (string-append "BUILDFLAGS=-trimpath")) #:tests? #f ; /sys/fs/cgroup not set up in guix sandbox #:test-target "test" @@ -575,7 +575,7 @@ Its main purpose is to support the key usage by @code{docker-init}: bats git-minimal/pinned go-1.22 - go-github-com-go-md2man + go-md2man gnu-gettext ; for envsubst mandoc pkg-config @@ -643,8 +643,7 @@ being rootless and not requiring any daemon to be running.") #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "PREFIX=" #$output) - (string-append "GOMD2MAN=" - #$go-github-com-go-md2man "/bin/go-md2man")) + (string-append "GOMD2MAN=" #$go-md2man "/bin/go-md2man")) #:tests? #f ; /sys/fs/cgroup not set up in guix sandbox #:test-target "test-unit" #:phases @@ -702,7 +701,7 @@ being rootless and not requiring any daemon to be running.") (native-inputs (list bats go-1.23 - go-github-com-go-md2man + go-md2man pkg-config)) (synopsis "Build @acronym{OCI, Open Container Initiative} images") (description diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index d49e747711..1e674bd14b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -22990,6 +22990,16 @@ simple method for converting between file types.") (base32 "1xz0cqg629vz7mawwxx650mgmvh3wzn25rnxy4sij5jrypipk1ay")))) (build-system r-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'patch-Calloc + (lambda _ + (substitute* "src/pip.c" + (("# include <R.h>") "# include <R.h>\n# include <R_ext/RS.h>") + (("Calloc") "R_Calloc") + (("Free") "R_Free"))))))) (propagated-inputs (list r-foreign r-lattice r-sp)) (home-page "https://r-forge.r-project.org/projects/maptools/") diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index d84f7a79f9..03c3a8767d 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net> ;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se> ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,8 +63,6 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) - #:use-module (gnu packages golang-crypto) - #:use-module (gnu packages golang-build) #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kerberos) @@ -101,7 +100,6 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) - #:use-module (guix build-system go) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix utils) @@ -1668,40 +1666,10 @@ SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt.") (home-page "https://github.com/besser82/libxcrypt") (license license:lgpl2.1))) -(define-public ssh-to-pgp - (package - (name "ssh-to-pgp") - (version "1.1.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Mic92/ssh-to-pgp") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xaj6pnk5y2flnxm57j9bpdpll9vhg1rbjj4v3a7hn1gginxpprx")))) - (build-system go-build-system) - (arguments - (list - #:install-source? #f - #:import-path "github.com/Mic92/ssh-to-pgp" - ;; failed: No secret key - #:test-flags #~(list "-skip" "TestCli"))) - (native-inputs - (list gnupg - go-github-com-protonmail-go-crypto - go-golang-org-x-crypto)) - (home-page "https://github.com/Mic92/ssh-to-pgp") - (synopsis "Convert SSH RSA keys to GPG keys") - (description "This package provides @code{ssh-to-pgp}: a Go command line -+utility to convert SSH RSA keys to GPG keys.") - (license license:expat))) - (define-public keychain (package (name "keychain") - (version "2.8.5") + (version "2.9.5") (source (origin (method git-fetch) (uri (git-reference @@ -1710,9 +1678,10 @@ SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt.") (file-name (git-file-name name version)) (sha256 (base32 - "1bkjlg0a2bbdjhwp37ci1rwikvrl4s3xlbf2jq2z4azc96dr83mj")))) + "1i698n0mp2wxk1yd8lhwq7i1dj5v01li1g9qi047aqc34r4079lq")))) (build-system gnu-build-system) (propagated-inputs (list procps)) + (native-inputs (list perl)) (arguments `(#:tests? #f ; No test suite #:phases (modify-phases %standard-phases diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index c3a10efece..acc35b9b3b 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -110,7 +110,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-check) #:use-module (gnu packages golang-web) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 5580b4eaf4..3e86564e18 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -520,7 +520,7 @@ server and embedded PowerPC, and S390 guests.") (package (inherit american-fuzzy-lop) (name "aflplusplus") - (version "4.31c") + (version "4.32c") (source (origin (method git-fetch) (uri (git-reference @@ -529,7 +529,7 @@ server and embedded PowerPC, and S390 guests.") (file-name (git-file-name name version)) (sha256 (base32 - "1k43np7vb2kiqj8cg5w4x0xjqr5jafi3pyx12d2i8wdi0sslywrv")))) + "1a92mbwk51pih5jb944wqhvmbpy0acpxgvdfbq3c4xw7gisgn5qn")))) (arguments (substitute-keyword-arguments (package-arguments american-fuzzy-lop) ((#:make-flags _ ''()) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 1c218fed43..11432f176e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -158,6 +158,7 @@ ;;; Copyright © 2025 Lee Thompson <lee.p.thomp@gmail.com> ;;; Copyright @ 2025 Amy Pillow <amypillow@lavache.com> ;;; Copyright © 2025 Kurome <hunt31999@gmail.org> +;;; Copyright © 2025 Anderson Torres <anderson.torres.8519@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -211,7 +212,6 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages games) #:use-module (gnu packages gawk) - #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) @@ -1429,8 +1429,8 @@ when typing parentheses directly or commenting out code line by line.") (define-public emacs-puni ;; No tagged release upstream - (let ((commit "72e091ef30e0c9299dbcd0bc4669ab9bb8fb6e47") - (revision "2")) + (let ((commit "f430f5b0a14c608176e3376058eb380ab0824621") + (revision "3")) (package (name "emacs-puni") (version (git-version "0" revision commit)) @@ -1442,7 +1442,7 @@ when typing parentheses directly or commenting out code line by line.") (file-name (git-file-name name version)) (sha256 (base32 - "1ns2r6nwakdnzjiq84qqzn85wwahc0k738awx9kxn9p0q2prpx5j")))) + "0kvxll2yx4lh5x04cigdizncp2kbva1iidz9fjnbi8qqfm6pq5qq")))) (build-system emacs-build-system) (propagated-inputs (list emacs-with-editor)) (home-page "https://github.com/AmaiKinono/puni") @@ -10436,6 +10436,29 @@ respective @code{*Help*} buffers.") completion of relevant keywords.") (license license:expat))) +(define-public emacs-dwim-shell-command + (package + (name "emacs-dwim-shell-command") + ;; This release is untagged, change commit below when updating. + (version "0.63.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xenodium/dwim-shell-command") + (commit "dd742977abaa25991a8b0b8beff1ae9e4bb39fd6"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b9nzla9gygljchdw04sr8c86h4sh52wqv644fzw5nmzvs9zkagj")))) + (build-system emacs-build-system) + (arguments (list #:tests? #f)) ;No tests. + (home-page "https://github.com/xenodium/dwim-shell-command") + (synopsis "Shell commands with @acronym{DWIM, do what I mean} behaviour") + (description + "This package provides @code{dwim-shell-command} as an opinionated, +@acronym{DWIM, do what I mean} alternative to @code{shell-command}.") + (license license:gpl3+))) + (define-public emacs-dvc (let ((revision "591") ;no tags or official releases (guix-revision "1")) @@ -35630,18 +35653,16 @@ support JSX syntax.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 - "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x")) - (patches - (list - (origin - (method url-fetch) - (uri (string-append - "https://github.com/gregsexton/origami.el" - "/commit/" patch ".patch")) - (sha256 - (base32 - "0yia4dhqjzdidxd77s2ggg6mmj05jbsnwc35myzzhzh1zbq8mrfy"))))))) + (base32 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x")) + (modules '((guix build utils))) + (snippet #~(substitute* (find-files "." "\\.el$") + (("\\(require 'cl\\)") + "(require 'cl-lib)") + (("(destructuring-bind|remove-if)" all) + (string-append "cl-" all)) + (("\\(face-attribute 'highlight :background\\)") "\ +(let ((color (face-attribute 'highlight :background))) + (and color (not (eq color 'unspecified)) color))"))))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-s)) @@ -42064,10 +42085,9 @@ and preferred services can easily be configured.") (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7")))) (build-system emacs-build-system) (arguments - `(#:tests? #t - #:test-command - '("emacs" "--no-init-file" "--batch" - "--eval=(require 'ecukes)" "--eval=(ecukes)"))) + (list #:test-command + #~(list "emacs" "--no-init-file" "--batch" + "--eval=(require 'ecukes)" "--eval=(ecukes)"))) (native-inputs (list emacs-ecukes emacs-espuds emacs-undercover openjdk9)) (propagated-inputs diff --git a/gnu/packages/fediverse.scm b/gnu/packages/fediverse.scm index ae4dbd523a..17398d54c7 100644 --- a/gnu/packages/fediverse.scm +++ b/gnu/packages/fediverse.scm @@ -205,7 +205,7 @@ seamlessly with your desktop environment.") (define-public snac2 (package (name "snac") - (version "2.75") + (version "2.77") (source (origin (method git-fetch) @@ -214,7 +214,7 @@ seamlessly with your desktop environment.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "11dnsc3ml0rmjqwf01mwiggf5xdg762k6dciis17frrx9grb8bn7")))) + (base32 "1mibrqjdv68lxgvhly46v6i04bv05bm06qp7qp1kjr3mph7wahs1")))) (build-system gnu-build-system) (inputs (list curl openssl)) (arguments diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 4b9ff74387..a89eed6dfb 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -80,7 +80,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-check) #:use-module (gnu packages golang-crypto) @@ -1172,7 +1171,7 @@ files mistakenly overwritten or destroyed just a few seconds ago.") (define-public disorderfs (package (name "disorderfs") - (version "0.5.11") + (version "0.6.0") (source (origin (method git-fetch) @@ -1182,7 +1181,7 @@ files mistakenly overwritten or destroyed just a few seconds ago.") (file-name (git-file-name name version)) (sha256 (base32 - "1pnrj0h8sgqwgsc18vz3fkqsp6vhigdbi75vdj0si1r6wgslnr7z")))) + "14x57qnqifx6hal1yb2bnrda9l12z19vhqlq850qax23z362q53q")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4ac82db29f..d7b55f9a82 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -3206,7 +3206,7 @@ in small sizes, the text looks crisper.") (define-public font-juliamono (package (name "font-juliamono") - (version "0.043") + (version "0.060") (source (origin (method url-fetch) @@ -3215,7 +3215,7 @@ in small sizes, the text looks crisper.") "v" version "/JuliaMono-ttf.tar.gz")) (sha256 (base32 - "0vb7n9yqgasnxzps13ckklay5bla6b0i79pzmfqvjms1r37079gh")))) + "10yc2rk6sksnad8l1rsc0i33103468qzw73w206x1y08hrb6kna6")))) (build-system font-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 3beebf1a75..55e2e9739e 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -19,8 +19,10 @@ ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> +;;; Copyright © 2023 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2024 Sören Tempel <soeren@soeren-tempel.net> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2024 Sou Bunnbu (宋文武) <iyzsong@gmail.com> ;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se> ;;; ;;; This file is part of GNU Guix. @@ -56,6 +58,7 @@ #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gperf) #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) @@ -87,6 +90,7 @@ #:use-module (guix build-system copy) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) @@ -1447,6 +1451,60 @@ applications should be.") (license license:lgpl2.1+) (home-page "https://scripts.sil.org/cms/scripts/page.php?cat_id=teckit"))) +;; NOTE: A warning from upstream: This program is currently not actively +;; maintained, it seems to work fine, but use at your own risk. +(define-public go-wrap + (package + (name "go-wrap") + (version "0.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; Original URL <https://github.com/Wraparound/wrap>, now + ;; redirects to this. + (url "https://github.com/eprovst/wrap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xk1zii8vqzfys48phpdnr8ign0xvrsfwzyk9m0is9i3rffm25wh")) + (patches (search-patches + "go-github-com-wraparound-wrap-free-fonts.patch")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/eprovst/wrap/cmd/wrap" + #:unpack-path "github.com/eprovst/wrap" + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'wrap-fonts + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each + (lambda (program) + (wrap-program program + `("XDG_DATA_DIRS" suffix + ,(map dirname + (search-path-as-list '("share/fonts") + (map cdr inputs)))))) + (find-files (string-append (assoc-ref outputs "out") + "/bin")))))))) + (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/eprovst/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 +standard Fountain, but also has some custom syntax extensions such as +translated keywords and acts.") + (license license:gpl3))) + (define-public graphite2 (package (name "graphite2") diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm index 8fe2d08a9d..010946b832 100644 --- a/gnu/packages/golang-build.scm +++ b/gnu/packages/golang-build.scm @@ -779,10 +779,12 @@ loading algorithms.") (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "golang.org/x/net" - #:phases - #~(modify-phases %standard-phases - (delete 'build)))) ; no go files in project's root + #:test-flags + ;; Golang does not support "-race" on ARM, one test fails with error: + ;; ThreadSanitizer: unsupported VMA range. + #~(list #$@(if (target-arm?) '("-skip" "TestRace") '())))) (propagated-inputs (list go-golang-org-x-crypto go-golang-org-x-sys @@ -866,6 +868,15 @@ cancellation for groups of goroutines working on subtasks of a common task (arguments (list #:skip-build? #t + #:test-flags + #~(list #$@(if (target-arm?) + '("-skip" (string-join + (list "TestParseOrigDstAddr/udp4" + "TestIoctlGetEthtoolDrvinfo" + "TestIoctlGetEthtoolTsInfo" + "TestRlimitAs") + "|")) + '())) #:import-path "golang.org/x/sys")) (home-page "https://go.googlesource.com/sys") (synopsis "Go support for low-level system interaction") @@ -1241,6 +1252,37 @@ the @url{https://vuln.go.dev,Go Vulnerability Database}.") values.") (license license:bsd-3))) +(define-public go-google-golang-org-genproto-googleapis-rpc + ;; No release or verion tags, use the latest commit. + (let ((commit "e70fdf4c4cb4151b7aa3579ce8a3fb662bafe335") + (revision "0")) + (package + (name "go-google-golang-org-genproto-googleapis-rpc") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/googleapis/go-genproto") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jf332yxgf1c6nj76b1p52907g786gynzd78g899m3vrfa45wswz")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "google.golang.org/genproto/googleapis/rpc" + #:unpack-path "google.golang.org/genproto")) + (propagated-inputs + (list go-google-golang-org-protobuf)) + (home-page "https://google.golang.org/genproto") + (synopsis "Common types for gRPC API") + (description + "This package provides a @code{rpc} Google's API gRPC type derived from +@code{google.golang.org/protobuf}.") + (license license:asl2.0)))) + (define-public go-google-golang-org-protobuf (package (name "go-google-golang-org-protobuf") diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm index aa83ae4766..51af496b64 100644 --- a/gnu/packages/golang-check.scm +++ b/gnu/packages/golang-check.scm @@ -49,7 +49,6 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-xyz)) @@ -149,6 +148,34 @@ value and call @code{t.Fatal()} if the assertion fails.") github.com/sergi/go-diff, mainly for diffing strings in tests.") (license license:expat))) +;; XXX: Not maintained project: This repository has been archived by the owner +;; on May 18, 2023. It is now read-only. Consider to remove when nothing +;; depends on it. +(define-public go-github-com-benbjohnson-clock + (package + (name "go-github-com-benbjohnson-clock") + (version "1.3.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/benbjohnson/clock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p7n09pywqra21l981fbkma9vzsyf31pbvw6xg5r4hp8h8scf955")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/benbjohnson/clock")) + (home-page "https://github.com/benbjohnson/clock") + (synopsis "Small library for mocking time in Go") + (description + "@code{clock} is a small library for mocking time in Go. It provides an +interface around the standard library's @code{time} package so that the +application can use the realtime clock while tests can use the mock clock.") + (license license:expat))) + (define-public go-github-com-bitfield-gotestdox (package (name "go-github-com-bitfield-gotestdox") @@ -316,6 +343,33 @@ 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-coder-quartz + (package + (name "go-github-com-coder-quartz") + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/coder/quartz") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08ghwy4i4h9shxchcly69pqprqqcs7pcvaprc7kjgghbvwbgr69k")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/coder/quartz")) + (home-page "https://github.com/coder/quartz") + (synopsis "Golang time testing library for writing deterministic unit tests") + (description + "Package quartz is a library for testing time related code. It exports +an interface Clock that mimics the standard library time package functions. +In production, an implementation that calls thru to the standard library is +used. In testing, a Mock clock is used to precisely control and intercept +time functions.") + (license license:cc0))) + (define-public go-github-com-corpix-uarand (package (name "go-github-com-corpix-uarand") @@ -341,6 +395,40 @@ test (using testing.TB's @code{TempDir}) and with a few helper methods.") strings which may be used in mock tests.") (license license:unlicense))) +(define-public go-github-com-data-dog-go-sqlmock + (package + (name "go-github-com-data-dog-go-sqlmock") + (version "1.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DATA-DOG/go-sqlmock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vpvdx9hwmx9gm27aq5r5219xpaxz0gy4q1iqskk4saz05bspn0f")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/DATA-DOG/go-sqlmock" + #: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"))))))) + (propagated-inputs + (list go-github-com-kisielk-sqlstruct)) + (home-page "https://github.com/DATA-DOG/go-sqlmock") + (synopsis "SQL driver mock for Golang") + (description + "Package sqlmock is a mock library implementing sql driver. Which has +one and only purpose - to simulate any sql driver behavior in tests, without +needing a real database connection. It helps to maintain correct +@acronym{TDD, Test Driven Development} workflow.") + (license license:bsd-3))) + (define-public go-github-com-davecgh-go-spew (package (name "go-github-com-davecgh-go-spew") @@ -404,6 +492,40 @@ style). test minimization algorithm.") (license license:bsd-2))) +(define-public go-github-com-dvyukov-go-fuzz + (package + (name "go-github-com-dvyukov-go-fuzz") + (version "0.0.0-20240924070022-e577bee5275c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dvyukov/go-fuzz") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07ckgxxphv0157g6gyganrinynvw43c3mvizagjbjm3q2blymfh3")) + (snippet + #~(begin (use-modules (guix build utils)) + (for-each delete-file-recursively + (list "go-fuzz/vendor" "test/vendor")))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f + #:import-path "github.com/dvyukov/go-fuzz")) + (home-page "https://github.com/dvyukov/go-fuzz") + (synopsis "Randomized testing for Golang") + (description + "Go-fuzz is a coverage-guided +@url{http://en.wikipedia.org/wiki/Fuzz_testing, fuzzing solution} for testing +of Go packages. Fuzzing is mainly applicable to packages that parse complex +inputs (both text and binary), and is especially useful for hardening of +systems that parse inputs from potentially malicious users (e.g. anything +accepted over a network).") + (license license:asl2.0))) + (define-public go-github-com-elgris-jsondiff (package (name "go-github-com-elgris-jsondiff") @@ -469,6 +591,33 @@ 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))) +(define-public go-github-com-filecoin-project-go-clock + (package + (name "go-github-com-filecoin-project-go-clock") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/filecoin-project/go-clock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rk2m07z42g9dxxda9a14caskc01pqfhpkcy5lf161lh8d8wf8g6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/filecoin-project/go-clock")) + (home-page "https://github.com/filecoin-project/go-clock") + (synopsis "Mocking time in Go") + (description + "Clock is a small library for mocking time in Go. It provides an +interface around the standard library's @url{https://pkg.go.dev/time, @code{ +time}} package so that the application can use the realtime clock while tests +can use the mock clock. This is a maintained fork of benbjohnson's +@url{https://github.com/benbjohnson/clock, clock} package.") + (license license:expat))) + ;; XXX: The project looks like abandoned, see ;; <https://github.com/frankban/quicktest/issues/172>, remove when nothing ;; depends on it. @@ -507,6 +656,30 @@ workloads. This kind of profiling is also known as wall-clock profiling.") tests.") (license license:expat))) +(define-public go-github-com-gdey-tbltest + (package + (name "go-github-com-gdey-tbltest") + (version "0.0.0-20180914212833-1865222d591f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdey/tbltest") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14mfhhqd0qm0m9nhk02vrj31bjnspa7b0ijbmy0j3bhbkh66xbcs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gdey/tbltest")) + (home-page "https://github.com/gdey/tbltest") + (synopsis "Table driven tests for Golang") + (description + "Package tbltest implements helper functions to help write table driven +tests.") + (license license:expat))) + (define-public go-github-com-go-playground-validator-v10 (package (name "go-github-com-go-playground-validator-v10") @@ -1776,7 +1949,10 @@ execution when a test fails.") "TestStackModeMultipleInvocationInheritance" "TestStackModeMultipleInvocationInheritance2" "TestStackModeMultipleInvocationInheritance3" - "TestWatcher") + "TestWatcher" + #$@(if (target-arm?) + '("TestInfiniteLoopWithTrailingFail") + '())) "|")))) (propagated-inputs (list go-github-com-jtolds-gls @@ -2354,7 +2530,7 @@ built-in @code{testing} package, but can be used in other contexts too.") (define-public go-gotest-tools-v3 (package (name "go-gotest-tools-v3") - (version "3.5.1") + (version "3.5.2") (source (origin (method git-fetch) @@ -2363,7 +2539,7 @@ built-in @code{testing} package, but can be used in other contexts too.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1r5mc6slab6fj2si9nripl7fdq097s694gsn1gsxg2wj7605m5v4")) + (base32 "00kv9j55sgidyya8n0m11sp8ianqy7iknyqhi1qr0ck9mq9bnj1s")) (modules '((guix build utils))) (snippet #~(begin @@ -2381,23 +2557,24 @@ built-in @code{testing} package, but can be used in other contexts too.") ;; 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.*" + (list "TestEqual_WithGoldenUpdate" + "TestMigrateFileReplacesTestingT" + "TestMigrateFileWithNamedCmpPackage" + "TestMigrateFileWithCommentsOnAssert" + "TestMigrateFileConvertNilToNilError" + "TestMigrateFileConvertAssertNew" + "TestMigrateFileWithExtraArgs" + "TestMigrate_AssertAlreadyImported" + "TestMigrate_AssertAlreadyImportedWithAlias" + "TestWaitOnSocketWithTimeout" "TestWaitOnSocketWithTimeout/connection_to_" - "TestIfCondition" - "TestIfCondition.*") + ;; poll_test.go:113: assertion failed: string + ;; "timeout hit after 10ms: first check never + ;; completed" does not contain "assertion failed: + ;; 3 (int) != 4 (int)" + #$@(if (target-arm?) + '("TestWaitOn_WithCompare") + '())) "|")))) (propagated-inputs (list go-github-com-google-go-cmp diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm index 27e3092112..5e2320f13b 100644 --- a/gnu/packages/golang-compression.scm +++ b/gnu/packages/golang-compression.scm @@ -29,9 +29,11 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages compression) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) - #:use-module (gnu packages golang-xyz)) + #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages pkg-config)) ;;; Commentary: ;;; @@ -65,6 +67,38 @@ the @code{c2go} tool at @url{https://github.com/andybalholm/c2go,https://github.com/andybalholm/c2go}.") (license license:expat))) +(define-public go-github-com-datadog-zstd + (package + (name "go-github-com-datadog-zstd") + (version "1.5.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DataDog/zstd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hri68jd5yh9kxy4bj2b4rfi7jz74zl20d4hk7rwcwykpgk90qid")))) + (build-system go-build-system) + (arguments + (list + ;; These flags need to be applied in the final application as well to + ;; build with system's libzstd, + #:build-flags #~(list "-tags" "external_libzstd") + #:test-flags #~(list "-tags" "external_libzstd") + #:import-path "github.com/DataDog/zstd")) + (native-inputs + (list pkg-config)) + (inputs + (list (list zstd "lib"))) + (home-page "https://github.com/DataDog/zstd") + (synopsis "Zstd Golang wrapper") + (description + "This package provides a Go wrapper to +@url{https://github.com/facebook/zstd, zstd} C library.") + (license license:bsd-3))) + (define-public go-github-com-dsnet-compress (package (name "go-github-com-dsnet-compress") @@ -168,7 +202,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.17.11") + (version "1.18.0") (source (origin (method git-fetch) @@ -177,10 +211,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 "1i8r1xiba62nng651p4razxg1kw1910sl4grm7axm2g4q8s3i298")))) + (base32 "1vpk98rkfc67pniqj7xvxm2b275xwzav8rnca06023py769rlkyy")))) (build-system go-build-system) (arguments (list + #:test-flags #~(list "-short" "-tags=nounsafe") #:import-path "github.com/klauspost/compress")) (home-page "https://github.com/klauspost/compress") (synopsis "Go compression library") diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm index 17567219e4..84b08cf414 100644 --- a/gnu/packages/golang-crypto.scm +++ b/gnu/packages/golang-crypto.scm @@ -19,11 +19,13 @@ ;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com> ;;; Copyright © 2023 Jack Hill <jackhill@jackhill.us> +;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com> +;;; Copyright © 2023 conses <contact@conses.eu> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> -;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> -;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> +;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Superfly Johnson <superfly.johnson@yahoo.com> +;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2025 Roman Scherer <roman@burningswell.com> ;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; @@ -58,6 +60,7 @@ #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages password-utils) + #:use-module (gnu packages security-token) #:use-module (gnu packages specifications)) ;;; Commentary: @@ -328,6 +331,83 @@ Go 1.20 @code{crypto/ecdh} standard package.") cryptographic standards that are not included in the Go standard library.") (license license:asl2.0)))) +;; XXX: Deprecated in upstream: This repository has been archived by the owner +;; on Nov 10, 2020. It is now read-only. +;; Consider to remove when nothing is depend on it. +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "0")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/apparentlymart/go-openvpn-mgmt")) + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (synopsis "Go client library for OpenVPN's management protocol") + (description + "Go-OpenVPN-Mgmt implements a client for the OpenVPN 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-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Examples are all broken. + (delete-file-recursively "modelgen/examples") + ;; Fix module path in test file. + (substitute* "go/huffman/huffman_test.go" + (("github.com/blanu/Dust/go/DustModel/huffman") + "github.com/blanu/Dust/go/huffman")))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/blanu/Dust")) + (propagated-inputs + (list go-github-com-operatorfoundation-ed25519 + go-github-com-op-go-logging + go-golang-org-x-crypto)) + (home-page "https://github.com/blanu/Dust") + (synopsis "Censorship-resistant internet transport protocol") + (description + "Dust is an Internet protocol designed to resist a number of attacks +currently in active use to censor Internet communication. While adherence to +the theoretical maxims of cryptographic security is observed where possible, +the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-bradenhilton-cityhash (package (name "go-github-com-bradenhilton-cityhash") @@ -893,6 +973,35 @@ and encrypting JSON Web Tokens (JWT). It relies only on the standard library.") (license license:expat))) +(define-public go-github-com-elithrar-simple-scrypt + (package + (name "go-github-com-elithrar-simple-scrypt") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elithrar/simple-scrypt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xkyw6gdy9cxj7l20cmd97axcsbf0jmcfw94c4gyy1hnd4drszzf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/elithrar/simple-scrypt")) + (propagated-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/elithrar/simple-scrypt") + (synopsis "Generating, comparing and inspecting password hashes library") + (description + "Package scrypt provides a convenience wrapper around Go's existing +@code{crypto/scrypt} package that makes it easier to securely derive strong +keys from weak inputs (i.e. user passwords). The package provides password +generation, constant-time comparison and parameter upgrading for scrypt +derived keys.") + (license license:expat))) + (define-public go-github-com-emersion-go-bcrypt (package (name "go-github-com-emersion-go-bcrypt") @@ -1152,6 +1261,32 @@ intended to (eventually) be 1:1 with the TPM 2.0 spec @end itemize") (license license:asl2.0))) +(define-public go-github-com-gsterjov-go-libsecret + (package + (name "go-github-com-gsterjov-go-libsecret") + (version "0.0.0-20161001094733-a6f4afe4910c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gsterjov/go-libsecret") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09zaiadnll83vs22ib89agg7anj0blw5fywvmckxllsgif6ak6v7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gsterjov/go-libsecret")) + (propagated-inputs + (list go-github-com-godbus-dbus)) + (home-page "https://github.com/gsterjov/go-libsecret") + (synopsis "Manage secrets via the @code{Secret Service} DBus API") + (description + "This native Go library manages secrets via the freedesktop.org +@code{Secret Service} DBus interface.") + (license license:expat))) + ;; It's not public for purpose, as it contains a lot of golang modules which ;; may be inherited from the single source, but the package itself does not ;; have to be installed directly or linked to other packages.. @@ -1184,45 +1319,58 @@ functions and functionality to test them. It aggregates various Golang libraries.") (license license:expat))) -;; TODO: Inherit from the go-github-com-gxed-hashland (define-public go-github-com-gxed-hashland-keccakpg - (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8") - (revision "0")) - (package - (name "go-github-com-gxed-hashland-keccakpg") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gxed/hashland") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386")))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/gxed/hashland" - #:import-path "github.com/gxed/hashland/keccakpg")) - (home-page "https://github.com/gxed/hashland") - (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go") - (description "Package @command{keccak} implements the Keccak (SHA-3) -hash algorithm. See http://keccak.noekeon.org.") - (license license:expat)))) + (package + (name "go-github-com-gxed-hashland-keccakpg") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gxed/hashland") + (commit (go-version->git-ref version + #:subdir "keccakpg")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b921dh9i6zw7y8jfzwvrmdbhnwid12a5z1zjawslfq2vvsajwmm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gxed/hashland/keccakpg" + #:unpack-path "github.com/gxed/hashland")) + (home-page "https://github.com/gxed/hashland") + (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go") + (description + "Package @command{keccak} implements the Keccak (SHA-3) hash algorithm. +See http://keccak.noekeon.org.") + (license license:expat))) (define-public go-github-com-gxed-hashland-murmur3 (package - (inherit go-github-com-gxed-hashland) (name "go-github-com-gxed-hashland-murmur3") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gxed/hashland") + (commit (go-version->git-ref version + #:subdir "murmur3")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b921dh9i6zw7y8jfzwvrmdbhnwid12a5z1zjawslfq2vvsajwmm")))) + (build-system go-build-system) (arguments (list #:import-path "github.com/gxed/hashland/murmur3" #:unpack-path "github.com/gxed/hashland")) + (home-page "https://github.com/gxed/hashland") (synopsis "Golang implementation of MurmurHash3 algorithm") (description "This package provides a native Go implementation of @url{https://en.wikipedia.org/wiki/MurmurHash, Austin Appleby's third -MurmurHash} revision (aka MurmurHash3)."))) +MurmurHash} revision (aka MurmurHash3).") + (license license:bsd-3))) (define-public go-github-com-jcmturner-aescts-v2 (package @@ -1429,6 +1577,40 @@ library's internal ChaCha20 package.") the Go standard library's TLS 1.3 implementation.") (license license:bsd-3))) +(define-public go-github-com-miekg-pkcs11 + (package + (name "go-github-com-miekg-pkcs11") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/miekg/pkcs11") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1w403kmqxf8w25aap4901nrm7wj0wf95lrwwv1nvdjnwi8jjgapz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/miekg/pkcs11" + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "SOFTHSM_LIB" (format #f "~a/lib/softhsm/libsofthsm2.so" + #$(this-package-native-input "softhsm")))))))) + (native-inputs + (list softhsm)) + (home-page "https://github.com/miekg/pkcs11") + (synopsis "PKCS #11 wrapper for Golang") + (description + "This package provides an implementation of the +@url{https://en.wikipedia.org/wiki/PKCS_11, PKCS#11} API. It wraps the +library closely, but uses Go idiom where it makes sense. It has been tested +with SoftHSM.") + (license license:bsd-3))) + (define-public go-github-com-minio-blake2b-simd (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4") (revision "0")) @@ -1460,10 +1642,37 @@ performance is obtained with AVX2 which gives roughly a 4X performance increase approaching hashing speeds of 1GB/sec on a single core.") (license license:asl2.0)))) +(define-public go-github-com-minio-crc64nvme + (package + (name "go-github-com-minio-crc64nvme") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/crc64nvme") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hk0v474ligna49qh4rvwnqxv7w6ka5grdlb7fczh4kzhx80x536")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/minio/crc64nvme")) + (propagated-inputs (list go-github-com-klauspost-cpuid-v2)) + (home-page "https://github.com/minio/crc64nvme") + (synopsis "CRC64 checksums using carryless-multiplication") + (description + "This package calculates CRC64 checksums using carryless-multiplication +accelerated with SIMD instructions for both ARM and x86. The code is based on +the @code{https://github.com/awesomized/crc64fast-nvme.git, crc64fast-nvme} +package in Rust.") + (license license:asl2.0))) + (define-public go-github-com-minio-highwayhash (package (name "go-github-com-minio-highwayhash") - (version "1.0.2") + (version "1.0.3") (source (origin (method git-fetch) @@ -1472,7 +1681,7 @@ increase approaching hashing speeds of 1GB/sec on a single core.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1inrix7720273ccynxcyi7xsgc55cskxrw7gwn08qkmdj9xdxqai")))) + (base32 "14g2x266h8sxs0yynmcl2r2mnhx55rfzgykw4hygm7i1vpfrikg4")))) (build-system go-build-system) (arguments '(#:import-path "github.com/minio/highwayhash")) @@ -1485,6 +1694,37 @@ HighwayHash is a fast hash function designed to defend hash-flooding attacks or to authenticate short-lived messages.") (license license:asl2.0))) +(define-public go-github-com-minio-md5-simd + (package + (name "go-github-com-minio-md5-simd") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/md5-simd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qj8ipifbdg3ppilyqj8zy68f72rmqy8flli1vch3fibrbw8vpd0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/minio/md5-simd")) + (propagated-inputs + (list go-github-com-klauspost-cpuid-v2)) + (home-page "https://github.com/minio/md5-simd") + (synopsis "Accelerate MD5 computations in pure Golang") + (description + "This is a SIMD accelerated MD5 package, allowing up to either 8 (AVX2) +or 16 (AVX512) independent MD5 sums to be calculated on a single CPU core. + +@code{md5-simd} integrates a similar mechanism as described in +@code{minio/sha256-simd} for making it easy for clients to take advantages of +the parallel nature of the MD5 calculation. This will result in reduced +overall CPU load.") + (license license:asl2.0))) + (define-public go-github-com-minio-sha256-simd (package (name "go-github-com-minio-sha256-simd") @@ -1591,7 +1831,7 @@ times faster decoding.") (define-public go-github-com-nats-io-jwt-v2 (package (name "go-github-com-nats-io-jwt-v2") - (version "2.5.3") + (version "2.7.3") (source (origin (method git-fetch) @@ -1600,7 +1840,7 @@ times faster decoding.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wcqbfyd3b4qdspmf72cpsbi0y2a4b1qd0cv3qvhh17d1h1a6zib")))) + (base32 "09gfzhahm6wfnkaqm5yam8vd9y50rnyjxcl6mw3a9y4far1vpmvb")))) (build-system go-build-system) (arguments (list #:import-path "github.com/nats-io/jwt/v2" @@ -1616,7 +1856,7 @@ JWT tokens. Nkeys use Ed25519 to provide authentication of JWT claims.") (define-public go-github-com-nats-io-nkeys (package (name "go-github-com-nats-io-nkeys") - (version "0.4.7") + (version "0.4.10") (source (origin (method git-fetch) @@ -1625,7 +1865,7 @@ JWT tokens. Nkeys use Ed25519 to provide authentication of JWT claims.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0779m4nn6n0ql23wnk50ybddslvb84mwx036gf7yw6ckmm4yybxs")))) + (base32 "1max0dsjj92gfzc9g0dsnmk24y72drfhzkra3c1xnjwnw6lwha5x")))) (build-system go-build-system) (arguments '(#:import-path "github.com/nats-io/nkeys")) @@ -1701,6 +1941,191 @@ non-cryptographic hash algorithm, working at speeds close to RAM limits.") algorithm.") (license license:bsd-3)))) +;; XXX: Deprecated in upstream: This repository has been archived by the owner +;; on May 1, 2024. It is now read-only. +;; Consider to remove when nothing is depend on it. +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + (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 + go-github-com-willscott-goturn + go-golang-org-x-crypto + go-golang-org-x-net + go-torproject-org-pluggable-transports-goptlib)) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "Network obfourscator to scramble network traffic") + (description + "Obfs4 is a look-like nothing obfuscation protocol that incorporates +ideas and concepts from Philipp Winter's ScrambleSuit protocol. + +The notable differences between ScrambleSuit and obfs4 are: +@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:bsd-2))) + +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f ; all tests fail with error: undefined: Args. + #:import-path "github.com/OperatorFoundation/shapeshifter-ipc")) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of the Pluggable Transports IPC protocol") + (description + "Shapeshifter-IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + +(define-public go-github-com-operatorfoundation-shapeshifter-ipc-v3 + (package + (inherit go-github-com-operatorfoundation-shapeshifter-ipc) + (name "go-github-com-operatorfoundation-shapeshifter-ipc-v3") + (version "3.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dvvls7v40krq26nzn2f1q55628i3zff4by1ib2wad9pyhb88rg0")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; all tests fail with error: undefined: Args. + #:import-path "github.com/OperatorFoundation/shapeshifter-ipc/v3" + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc")))) + +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + (list + ;; When parallel, tests fail with error: Failed to start listener:listen + ;; tcp 127.0.0.1:1235: bind: address already in use. + #:parallel-tests? #f + #:skip-build? #t + #:import-path "github.com/OperatorFoundation/shapeshifter-transports" + #:test-flags + #~(list "-skip" (string-join + (list + ;; Tests fail in "Optimizer" module. + "TestObfs4Transport_Dial" + "TestOptimizerObfs4Transport_Dial" + "TestOptimizerTransportFirstDial" + "TestOptimizerTransportRandomDial" + "TestOptimizerTransportRotateDial" + "TestOptimizerTransportTrackDial" + "TestOptimizerTransportMinimizeDialDurationDial" + ;; Tests fail in "Replicant" module. + "TestMarshalConfigs" + "TestMarshalConfigs" + "TestMarshalSilverRandomEnumeratedConfigs" + "TestFactoryMonotoneRandomEnumerated" + ;; Tests fail in "meeklite" module. + "TestMeeklite" + "TestFactoryMeeklite" + ;; Test fails in "meekserver/v2" module. + "TestMeekServerListen2" + ;; Test fails in "obfs4" module. + "TestObfs4" + "TestObfs4Factory" + ;; Tests fail in "shadow" module. + "TestShadow" + "TestShadowTransport") + "|")) + #:test-subdirs + #~(list + ;; All tests fail with error: invalid memory address or nil pointer + ;; dereference. + ;; "transports/Dust/..." + "transports/Optimizer/..." + "transports/Replicant/..." + "transports/meeklite/..." + ;; All tests fail with error: misplaced +build comment. + ;; "transports/meekserver/v3/..." + "transports/meekserver/v2/..." + "transports/obfs2/..." + "transports/obfs4/..." + "transports/shadow/..."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-aead-chacha20 + go-github-com-blanu-dust + go-github-com-deckarep-golang-set + go-github-com-kataras-golog + go-github-com-mufti1-interconv + go-github-com-opentracing-opentracing-go + go-github-com-operatorfoundation-monolith-go-1.0.4 + go-github-com-operatorfoundation-obfs4 + go-github-com-operatorfoundation-shapeshifter-ipc + go-github-com-shadowsocks-go-shadowsocks2 + go-golang-org-x-crypto + go-golang-org-x-net + go-torproject-org-pluggable-transports-goptlib)) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter-Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification. +Each transport implements a different method of shapeshifting network traffic. +The goal is for application traffic to be sent over the network in a shapeshifted +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-pion-randutil (package (name "go-github-com-pion-randutil") @@ -2490,6 +2915,42 @@ obfuscated via the Elligator 2 mapping purpose of improving obfs4proxy's meek_lite transport.") (license license:bsd-3))) +(define-public go-go-mau-fi-libsignal + (package + (name "go-go-mau-fi-libsignal") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; Original project: + ;; <https://github.com/RadicalApp/libsignal-protocol-go> + ;; The first fork: + ;; <https://github.com/crossle/libsignal-protocol-go> + ;; + ;; It is the second fork as seen in + ;; <https://pkg.go.dev/go.mau.fi/libsignal>. + (url "https://github.com/tulir/libsignal-protocol-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pd2kijza7dr5nbgfw176ca1r3rmgpx8h22gqjp557awxqhw9lzr")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "go.mau.fi/libsignal")) + (propagated-inputs + (list go-filippo-io-edwards25519 + go-golang-org-x-crypto + go-google-golang-org-protobuf)) + (home-page "https://go.mau.fi/libsignal") + (synopsis "Go implementation of the Signal protocol for WhatsApp") + (description + "Libsignal-protocol-go is a Go implementation of the Signal Client +Protocol.") + (license license:gpl3))) + (define-public go-lukechampine-com-blake3 (package (name "go-lukechampine-com-blake3") @@ -2635,6 +3096,36 @@ tools.")))) " This package provides an command line interface (CLI) tool.")))) +(define-public ssh-to-pgp + (package + (name "ssh-to-pgp") + (version "1.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Mic92/ssh-to-pgp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xaj6pnk5y2flnxm57j9bpdpll9vhg1rbjj4v3a7hn1gginxpprx")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/Mic92/ssh-to-pgp" + ;; failed: No secret key + #:test-flags #~(list "-skip" "TestCli"))) + (native-inputs + (list gnupg + go-github-com-protonmail-go-crypto + go-golang-org-x-crypto)) + (home-page "https://github.com/Mic92/ssh-to-pgp") + (synopsis "Convert SSH RSA keys to GPG keys") + (description "This package provides @code{ssh-to-pgp}: a Go command line ++utility to convert SSH RSA keys to GPG keys.") + (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/golang-maths.scm b/gnu/packages/golang-maths.scm index b14533c169..f8aa245b0b 100644 --- a/gnu/packages/golang-maths.scm +++ b/gnu/packages/golang-maths.scm @@ -21,6 +21,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system go) #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) @@ -299,7 +300,11 @@ format as binary16.") "mathext/..." "num/..." "optimize/..." - "spatial/..." + ;; Tests failing to compile on ARM systems with errors in + ;; goroutines. + #$@(if (target-x86-64?) + '("spatial/...") + '()) "stat/..." "uniti/..."))) (propagated-inputs diff --git a/gnu/packages/golang-vcs.scm b/gnu/packages/golang-vcs.scm index 2c2dcc2d11..b110d65412 100644 --- a/gnu/packages/golang-vcs.scm +++ b/gnu/packages/golang-vcs.scm @@ -41,6 +41,33 @@ ;;; Libraries: ;;; +(define-public go-github-com-git-lfs-pktline + (let ((commit "ca444d533ef1e474d0aab99cdbeed9b048d65241") + (revision "1")) + (package + (name "go-github-com-git-lfs-pktline") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/git-lfs/pktline") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mxp4c59g5b3y20ilf90b6cagbk2b473vsmdz159y4hssvi1ac7r")))) + (build-system go-build-system) + (arguments `(#:import-path "github.com/git-lfs/pktline")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/git-lfs/pktline") + (synopsis "Git pkt-line Go toolkit") + (description + "This package is a Go language toolkit for reading and writing files +using the Git pkt-line format used in various Git operations.") + (license license:expat)))) + (define-public go-github-com-go-git-gcfg (package (name "go-github-com-go-git-gcfg") diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 9bac874365..20ba7e663b 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -29,14 +29,17 @@ ;;; Copyright © 2023 Fries <fries1234@protonmail.com> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> +;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr> +;;; Copyright © 2023 conses <contact@conses.eu> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; 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 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> +;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> +;;; Copyright © 2025 André Batista <nandre@riseup.net> ;;; Copyright © 2025 Jussi Timperi <jussi.timperi@iki.fi> ;;; ;;; This file is part of GNU Guix. @@ -62,6 +65,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages crypto) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) @@ -70,6 +74,7 @@ #:use-module (gnu packages golang-xyz) #:use-module (gnu packages ipfs) #:use-module (gnu packages prometheus) + #:use-module (gnu packages specifications) #:use-module (gnu packages tls) #:use-module (gnu packages web)) @@ -90,6 +95,42 @@ ;;; Libraries: ;;; +(define-public go-0xacab-org-leap-lb + (package + (name "go-0xacab-org-leap-lb") + (version "0.0.0-20210225193050-570f848edccf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/lb.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "161bznz4srgvqr7q18z63chps52lvdfnldbf6cgm5sw1ly5vwjwi")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Module name has not been changed upstream. + (substitute* (find-files "." "\\.go$") + (("git.autistici.org/ale/lb") + "0xacab.org/leap/lb")))))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "0xacab.org/leap/lb")) + (propagated-inputs + (list go-github-com-golang-protobuf + go-google-golang-org-grpc)) + (home-page "https://0xacab.org/leap/lb") + (synopsis "Smart load balancing Golang library") + (description + "This package provides an implementation of smart load balancing of simple, +redirect-based (i.e. not directly reverse proxied) services. It's an +alternative fork of https://git.autistici.org/ale/lb.") + (license license:gpl3+))) + (define-public go-0xacab-org-leap-obfsvpn (package (name "go-0xacab-org-leap-obfsvpn") @@ -136,6 +177,38 @@ connections (although it can be used for other, more generic purposes).") (license license:bsd-2))) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + (list + #:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + (list go-github-com-operatorfoundation-obfs4 + go-github-com-operatorfoundation-shapeshifter-transports + go-golang-org-x-net)) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description + "Shapeshifter provides network protocol shapeshifting technology. The +purpose of this technology is to change the characteristics of network traffic +so that it is not identified and subsequently blocked by network filtering +devices.") + (license license:bsd-2)))) + (define-public go-cloud-google-com-go-compute-metadata (package (name "go-cloud-google-com-go-compute-metadata") @@ -162,6 +235,42 @@ connections API service accounts for Go.") (license license:asl2.0))) +(define-public go-code-gitea-io-sdk-gitea + (package + (name "go-code-gitea-io-sdk-gitea") + (version "0.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitea.com/gitea/go-sdk") + (commit (go-version->git-ref version + #:subdir "gitea")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15mxaxi1nf6b9qacizf7r55jjcnil7qsdh77qzk6b59qcps940np")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; XXX: Tests are broken + #:import-path "code.gitea.io/sdk/gitea" + #:unpack-path "code.gitea.io/sdk")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-42wim-httpsig + ;; go-github-com-davidmz-go-pageant ; for windows only + go-github-com-go-fed-httpsig + go-github-com-hashicorp-go-version + go-golang-org-x-crypto)) + (home-page "https://code.gitea.io/sdk") + (synopsis "Gitea Golang SDK client") + (description + "Package gitea implements a client for the Gitea API. The version +corresponds to the highest supported version of the gitea API, but +backwards-compatibility is mostly given.") + (license license:expat))) + (define-public go-git-sr-ht-adnano-go-gemini (package (name "go-git-sr-ht-adnano-go-gemini") @@ -255,6 +364,38 @@ Gemini clients and servers.") 2019.") (license license:expat))) +(define-public go-github-com-42wim-httpsig + (package + (name "go-github-com-42wim-httpsig") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/42wim/httpsig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r6q3g0ghccnvqsw7g3g18s710q8haq5vzpvhrb48vmbcj0pdyn8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/42wim/httpsig")) + (propagated-inputs (list go-golang-org-x-crypto)) + (home-page "https://github.com/42wim/httpsig") + (synopsis "Golang implementation of the HTTP Signatures RFC draft") + (description + "This package implements HTTP request and response signing and +verification. Supports the major MAC and asymmetric key signature algorithms. +It has several safety restrictions: One, none of the widely known +non-cryptographically safe algorithms are permitted; Two, the RSA SHA256 +algorithms must be available in the binary (and it should, barring export +restrictions); Finally, the library assumes either the Authorizationn or +Signature headers are to be set (but not both). + +It's an alternative fork of @url{https://github.com/go-fed/httpsig}.") + (license license:bsd-3))) + (define-public go-github-com-aki237-nscjar (package (name "go-github-com-aki237-nscjar") @@ -280,6 +421,35 @@ 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-akrylysov-algnhsa + (package + (name "go-github-com-akrylysov-algnhsa") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/akrylysov/algnhsa") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12a118j1f4jk5rr9wlyfvhshxylhc234pzwrqlbq9b3kcc7d74yj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/akrylysov/algnhsa")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-aws-aws-lambda-go)) + (home-page "https://github.com/akrylysov/algnhsa") + (synopsis "AWS Lambda Go @code{net/http} server adapter") + (description + "This package implements a functionality to run Go web applications on +AWS Lambda and API Gateway or ALB without changing the existing HTTP +handlers.") + (license license:asl2.0))) + (define-public go-github-com-alexliesenfeld-health (package (name "go-github-com-alexliesenfeld-health") @@ -319,6 +489,35 @@ required dependencies. The HTTP response contains the aggregated health result and details about the health status of each component.") (license license:expat))) +(define-public go-github-com-anacrolix-envpprof + (package + (name "go-github-com-anacrolix-envpprof") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/anacrolix/envpprof") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "121kk1fq1919f0gcnmaxsk6n8flspxa00pyfwl09dysyivwbpk67")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/anacrolix/envpprof")) + (propagated-inputs (list go-github-com-anacrolix-log)) + (home-page "https://github.com/anacrolix/envpprof") + (synopsis "Control HTTP mux via environment variable") + (description + "This package implements a functionality to configure Go's pprof features +and default HTTP mux using the environment variable @code{GOPPROF}. +@code{envpprof} has an @code{init} function that will run at process +initialization that checks the value of the @code{GOPPROF} environment +variable. The variable can contain a comma-separated list of values, for +example @code{GOPPROF=http,block}.") + (license license:expat))) + (define-public go-github-com-arceliar-ironwood (package (name "go-github-com-arceliar-ironwood") @@ -1291,14 +1490,18 @@ and RFC 5389).") #:import-path "github.com/cenkalti/backoff/v4")) (home-page "https://github.com/cenkalti/backoff") (synopsis "The exponential backoff algorithm in Go") - (description "This is a Go port of the exponential backoff algorithm from -@url{https://github.com/google/google-http-java-client/blob/da1aa993e90285ec18579f1553339b00e19b3ab5/google-http-client/src/main/java/com/google/api/client/util/ExponentialBackOff.java, -Google's HTTP Client Library for Java}. + (description + ;; URL https://raw.githubusercontent.com/googleapis/google-http-java-client + ;; Commit da1aa993e90285ec18579f1553339b00e19b3ab5 + ;; Dirrectory google-http-client/src/main/java/com/google/api/client/util + ;; File ExponentialBackOff.java + "This is a Go port of the exponential backoff algorithm from +Google's HTTP Client Library for Java. -@url{http://en.wikipedia.org/wiki/Exponential_backoff, Exponential backoff} is an -algorithm that uses feedback to multiplicatively decrease the rate of some process, -in order to gradually find an acceptable rate. The retries exponentially increase -and stop increasing when a certain threshold is met.") +@url{http://en.wikipedia.org/wiki/Exponential_backoff, Exponential backoff} is +an algorithm that uses feedback to multiplicatively decrease the rate of some +process, in order to gradually find an acceptable rate. The retries +exponentially increase and stop increasing when a certain threshold is met.") (license license:expat))) (define-public go-github-com-chris-ramon-douceur @@ -1752,6 +1955,91 @@ 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-digitalocean-godo + (package + (name "go-github-com-digitalocean-godo") + (version "1.138.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/digitalocean/godo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "083vhzb1hwzdmn5m14ygs949g2kabmafvpcxq2laylkylq1fd3rm")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "github.com/digitalocean/godo" + #:test-flags + #~(list "-skip" (string-join + ;; Tests requiring networking setup. + (list "TestRegistry_DeleteManifest" + "TestRegistry_DeleteTag" + "TestRegistry_ListManifests" + "TestRepository_ListTags") + "|")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-google-go-querystring + go-github-com-hashicorp-go-retryablehttp + go-golang-org-x-oauth2 + go-golang-org-x-time)) + (home-page "https://github.com/digitalocean/godo") + (synopsis "DigitalOcean Go API client") + (description + "Package godo is the @code{DigitalOcean} API v2 client for Go.") + (license (list license:expat license:bsd-3)))) + +(define-public go-github-com-dimfeld-httptreemux + (package + (name "go-github-com-dimfeld-httptreemux") + (version "4.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimfeld/httptreemux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hs22xfipld6xqc0yqih6llm0m0k64slw12vhrx51r2dz91mjjrz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dimfeld/httptreemux")) + (home-page "https://github.com/dimfeld/httptreemux") + (synopsis "Tree-based HTTP router for Go") + (description + "This package provides a re-implementation of +@url{https://github.com/julienschmidt/httprouter, Julien Schmidt's +httprouter}, in that it uses a patricia tree, but the logic is rather +different. Specifically, the routing rules are relaxed so that a single path +segment may be a wildcard in one route and a static token in another.") + (license license:expat))) + +(define-public go-github-com-dimfeld-httptreemux-v5 + (package + (inherit go-github-com-dimfeld-httptreemux) + (name "go-github-com-dimfeld-httptreemux-v5") + (version "5.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimfeld/httptreemux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02q700rrf9mr1bcc3nw0qh186lhv17rsmblajsgifj42n72h0llf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dimfeld/httptreemux/v5")))) + (define-public go-github-com-docker-go-connections (package (name "go-github-com-docker-go-connections") @@ -1815,6 +2103,31 @@ authentication through Negotiate mechanism (see @url{https://tools.ietf.org/html/rfc4559, RFC4559}).") (license license:expat))) +(define-public go-github-com-elazarl-go-bindata-assetfs + (package + (name "go-github-com-elazarl-go-bindata-assetfs") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elazarl/go-bindata-assetfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05j8gy417gcildmxa04m8ylriaakadr7zvwn2ggq56pdg7b63knc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/elazarl/go-bindata-assetfs")) + (home-page "https://github.com/elazarl/go-bindata-assetfs") + (synopsis "Serves embedded files with @code{net/http}") + (description + "assetfs allows packages to serve static content embedded with the +@url{https://github.com/go-bindata/go-bindata, go-bindata} tool with the +standard @code{net/http} package.") + (license license:bsd-2))) + (define-public go-github-com-elazarl-goproxy (package (name "go-github-com-elazarl-goproxy") @@ -2242,6 +2555,33 @@ documents, as well as for calculating & applying @url{https://tools.ietf.org/html/rfc7396,RFC7396 JSON merge patches}.") (license license:bsd-3))) +(define-public go-github-com-fasthttp-router + (package + (name "go-github-com-fasthttp-router") + (version "1.5.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fasthttp/router") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1szc2s0jbk6jivgfmgxy7iykwqd6b0033jnnr0l47vyxbw7q8zvg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/fasthttp/router")) + (propagated-inputs + (list go-github-com-savsgio-gotils + go-github-com-valyala-bytebufferpool + go-github-com-valyala-fasthttp)) + (home-page "https://github.com/fasthttp/router") + (synopsis "Router implementation for fasthttp") + (description + "Package router is a trie based high performance HTTP request router.") + (license license:bsd-3))) + (define-public go-github-com-felixge-httpsnoop (package (name "go-github-com-felixge-httpsnoop") @@ -2542,6 +2882,39 @@ Features: decompose request handling into many smaller layers.") (license license:expat))) +(define-public go-github-com-go-fed-httpsig + (package + (name "go-github-com-go-fed-httpsig") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-fed/httpsig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h2yk2ih8vrma8zrs1z8bd4r48hbqdwhgbqykrs4siyj9c80ykd2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-fed/httpsig" + ;; algorithms_test.go:153: "sha1": got true, want false + #:test-flags #~(list "-skip" "TestIsAvailable"))) + (propagated-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/go-fed/httpsig") + (synopsis "Golang implementation of the HTTP Signatures RFC draft") + (description + "This package implements HTTP request and response signing and verification. +Supports the major MAC and asymmetric key signature algorithms. It has +several safety restrictions: One, none of the widely known +non-cryptographically safe algorithms are permitted; Two, the RSA SHA256 +algorithms must be available in the binary (and it should, barring export +restrictions); Finally, the library assumes either the Authorizationn or +Signature headers are to be set (but not both).") + (license license:bsd-3))) + (define-public go-github-com-go-http-utils-headers (package (name "go-github-com-go-http-utils-headers") @@ -3366,12 +3739,12 @@ with caching and de-duplication that works across a set of peer processes.") GitHub API v3.") (license license:bsd-3))) -;; For chezmoi-1.8.10 -(define-public go-github-com-google-go-github-v33 +;; For chezmoi@2.1.0 +(define-public go-github-com-google-go-github-v36 (package (inherit go-github-com-google-go-github-v31) - (name "go-github-com-google-go-github-v33") - (version "33.0.0") + (name "go-github-com-google-go-github-v36") + (version "36.0.0") (source (origin (method git-fetch) @@ -3380,7 +3753,7 @@ GitHub API v3.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1nzwgvaa9k1ky3sfynib6nhalam9dx66h5lxff334m9kk3rf5nn0")) + (base32 "041a1rmi7pipimxiwjnsd0dngzb4djmcz8a8x4xv53d3373szaj6")) (modules '((guix build utils))) (snippet #~(begin @@ -3392,7 +3765,7 @@ GitHub API v3.") (arguments (substitute-keyword-arguments (package-arguments go-github-com-google-go-github-v31) - ((#:import-path _) "github.com/google/go-github/v33"))))) + ((#:import-path _) "github.com/google/go-github/v36"))))) (define-public go-github-com-google-go-github-v50 (package @@ -4453,6 +4826,29 @@ jsoniter and variable type declarations (if any). jsoniter interfaces gives router.") (license license:bsd-3))) +(define-public go-github-com-justinas-alice + (package + (name "go-github-com-justinas-alice") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/justinas/alice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19l88vi13rqyhjl100zd5z26ghy4iln74kqfd3hsmd2nydz7manz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/justinas/alice")) + (home-page "https://github.com/justinas/alice") + (synopsis "Middleware chaining for Golang") + (description + "Package alice provides a convenient way to chain HTTP handlers.") + (license license:expat))) + (define-public go-github-com-kolo-xmlrpc (package (name "go-github-com-kolo-xmlrpc") @@ -4793,13 +5189,29 @@ faster (and only does simple bandwidth metrics).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1c94sq43bl1kp04lllcfrfyiy5z3zcfz0s65sm1vgb2s40zrwpr7")))) + (base32 "1c94sq43bl1kp04lllcfrfyiy5z3zcfz0s65sm1vgb2s40zrwpr7")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Delete generated binary file. + (delete-file "sorted-network-list.bin"))))) (build-system go-build-system) (arguments (list - #:import-path "github.com/libp2p/go-libp2p-asn-util")) + #:import-path "github.com/libp2p/go-libp2p-asn-util" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'generate-sorted-network-list + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (setenv "ASN_IPV6_FILE" + (string-append + #$(this-package-native-input "specification-ip2asn-v6") + "/share/data/ip2asn-v6.tsv")) + (invoke "go" "run" "./generate/"))))))) (native-inputs - (list go-github-com-stretchr-testify)) + (list go-github-com-stretchr-testify + specification-ip2asn-v6)) (propagated-inputs (list go-golang-org-x-exp)) (home-page "https://github.com/libp2p/go-libp2p-asn-util") @@ -4942,7 +5354,7 @@ daemon as described in (define-public go-github-com-libp2p-go-yamux-v4 (package (name "go-github-com-libp2p-go-yamux-v4") - (version "4.0.1") + (version "4.0.2") (source (origin (method git-fetch) @@ -4951,11 +5363,18 @@ daemon as described in (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "13px8fcjjp02cricabbf3x410jkr8sb6r369nqq1zrgr7v90s22j")))) + (base32 "1jrj7pamcs8s6pd6c8dhkfv3a8cdjhb0kamcxa9cgv79n8rnyp86")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/libp2p/go-yamux/v4")) + #:import-path "github.com/libp2p/go-yamux/v4" + #:test-flags + ;; Test fails on ARM with error: [ERR] yamux: Failed to read stream data + ;; on stream 1: receive window exceeded (remain: 262144, recv: + ;; 33554432). + #~(list #$@(if (target-arm?) + '("-skip" "TestSendData_VeryLarge") + '())))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -4969,6 +5388,26 @@ such as TCP or Unix domain sockets, and provides stream-oriented multiplexing. It is inspired by SPDY but is not interoperable with it.") (license (list license:mpl2.0 license:bsd-3)))) +(define-public go-github-com-libp2p-go-yamux-v5 + (package + (inherit go-github-com-libp2p-go-yamux-v4) + (name "go-github-com-libp2p-go-yamux-v5") + (version "5.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-yamux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "019jj3qwzrbqcgwzri5iwi1vh2cn0ms6k8fx14jlmy856b25yl3y")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-libp2p-go-yamux-v4) + ((#:import-path _) "github.com/libp2p/go-yamux/v5"))))) + (define-public go-github-com-libp2p-zeroconf-v2 (package (name "go-github-com-libp2p-zeroconf-v2") @@ -5131,19 +5570,22 @@ clients that speak the Gemini protocol.") (arguments (list #:import-path "github.com/marten-seemann/tcp" - #: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$") - ;; couldn't initialize from a wrapped conn: unknown - ;; connection type - (("TestWrappedConn") "OffTestWrappedConn") - ;; Get "https://golang.org/robots.txt": dial tcp: lookup - ;; golang.org on [::1]:53: read udp [::1]:56806->[::1]:53: - ;; read: connection refused - (("TestInfo") "OffTestInfo")))))))) + #:test-flags + #~(list "-skip" + (string-join + ;; Test fails with error: couldn't initialize from a wrapped + ;; conn: unknown connection type. + (list "TestWrappedConn" + ;; Get "https://golang.org/robots.txt": dial tcp: lookup + ;; golang.org on [::1]:53: read udp + ;; [::1]:56806->[::1]:53: read: connection refused + "TestInfo" + ;; Test fails on ARM with error: raw-control tcp + ;; 127.0.0.1:49386: getsockopt: protocol not available. + #$@(if (target-arm?) + '("TestConcurrentReadWriteAndInfo") + '())) + "|")))) (native-inputs (list go-golang-org-x-net)) (propagated-inputs @@ -5187,6 +5629,66 @@ 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-ieproxy + (package + (name "go-github-com-mattn-go-ieproxy") + (version "0.0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-ieproxy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cqfjq106vdm9l9ddb4pps001wxwzabrq2q82f9dimszfq0my8av")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/go-ieproxy")) + (propagated-inputs + (list go-golang-org-x-net + go-golang-org-x-sys)) + (home-page "https://github.com/mattn/go-ieproxy") + (synopsis "Detect the proxy settings from Golang") + (description + "Package ieproxy is a utility to retrieve the proxy parameters.") + (license license:expat))) + +(define-public go-github-com-mattn-go-mastodon + (package + (name "go-github-com-mattn-go-mastodon") + (version "0.0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-mastodon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05hnh5359awm5x7qbaf8fvf772p2hc781alfqnp7ymr4rjfk3pql")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/mattn/go-mastodon/cmd/mstd + (delete-file-recursively "cmd"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/go-mastodon")) + (propagated-inputs + (list go-github-com-gorilla-websocket + go-github-com-tomnomnom-linkheader)) + (home-page "https://github.com/mattn/go-mastodon") + (synopsis "Mastodon client for golang") + (description + "Package mastodon provides functions and structs for accessing the +mastodon API.") + (license license:expat))) + (define-public go-github-com-mattn-go-xmlrpc (package (name "go-github-com-mattn-go-xmlrpc") @@ -5211,6 +5713,61 @@ via REST APIs.") language.") (license license:expat))) +(define-public go-github-com-mattn-godown + (package + (name "go-github-com-mattn-godown") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/godown") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f979h6z13nwwx42ahhqv3d4q2ywpg4l7v03qhnr9zaw319jjaln")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/godown")) + (propagated-inputs + (list go-github-com-mattn-go-runewidth + go-golang-org-x-net)) + (home-page "https://github.com/mattn/godown") + (synopsis "Convert HTML into Markdown") + (description + "This package provides a functionality to convert HTML into Markdown.") + (license license:expat))) + +(define-public go-github-com-mattn-goveralls + (package + (name "go-github-com-mattn-goveralls") + (version "0.0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/goveralls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16jszydip2abwc0fws3sz5yzyy87w8mbkhzm2wzb8ijpjhk1by79")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/goveralls" + ;; Test requires git. + #:test-flags #~(list "-skip" "TestShowArg/with_show"))) + (propagated-inputs + (list go-golang-org-x-mod + go-golang-org-x-tools)) + (home-page "https://github.com/mattn/goveralls") + (synopsis "Golang client for Coveralls.io") + (description + "This package provides a client for @url{http://coveralls.io/ +Coveralls.io} continuous code coverage tracking system.") + (license license:expat))) + (define-public go-github-com-mdlayher-ethtool (package (name "go-github-com-mdlayher-ethtool") @@ -5297,9 +5854,29 @@ types.") (list #:import-path "github.com/mdlayher/netlink" #:test-flags - ;; Test fails to start command "ip": exec: "ip": executable file not - ;; found in $PATH - #~(list "-skip" "TestIntegrationConnSetBuffersSyscallConn"))) + #~(list "-skip" + (string-join + ;; Test fails to start command "ip": exec: "ip": executable + ;; file not found in $PATH + (list "TestIntegrationConnSetBuffersSyscallConn" + #$@(if (target-arm?) + ;; Tests fail on ARM systems with error: failed to + ;; dial netlink: socket: protocol not supported. + '("TestIntegrationConn" + "TestIntegrationConnClosedConn" + "TestIntegrationConnConcurrentClosePreventsReceive" + "TestIntegrationConnConcurrentCloseUnblocksReceive" + "TestIntegrationConnConcurrentOneConn" + "TestIntegrationConnConcurrentSerializeExecute" + "TestIntegrationConnExecuteTimeout" + "TestIntegrationConnExplicitPID" + "TestIntegrationConnReceiveTimeout" + "TestIntegrationConnSendTimeout" + "TestIntegrationConnSetBPF" + "TestIntegrationConnSetBPFEmpty" + "TestIntegrationConnStrict") + '()) + "|"))))) (propagated-inputs (list go-github-com-google-go-cmp go-github-com-josharian-native @@ -5329,11 +5906,21 @@ sockets (AF_NETLINK).") (build-system go-build-system) (arguments (list + #:test-flags + #~(list + ;; One test fails on ARM with error: conn_linux_test.go:120: + ;; skipping, permission denied: failed to unshare network namespace: + ;; operation not permitted + #$@(if (target-arm?) + '("-skip" "TestLinuxBindToDevice") + '())) #:import-path "github.com/mdlayher/socket")) (native-inputs (list go-github-com-google-go-cmp)) (propagated-inputs - (list go-golang-org-x-net go-golang-org-x-sync go-golang-org-x-sys)) + (list go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-sys)) (home-page "https://github.com/mdlayher/socket") (synopsis "Low-level network connection type with async I/O and deadline support") (description @@ -5547,16 +6134,20 @@ presenting a small interface.") (arguments (list #:import-path "github.com/mikioh/tcp" - #: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$") - ;; Get "https://golang.org/robots.txt": dial tcp: lookup - ;; golang.org on [::1]:53: read udp [::1]:47181->[::1]:53: - ;; read: connection refused. - (("TestInfo") "OffTestInfo")))))))) + #:test-flags + #~(list "-skip" + (string-join + ;; Get "https://golang.org/robots.txt": dial tcp: lookup + ;; golang.org on [::1]:53: read udp [::1]:47181->[::1]:53: + ;; read: connection refused. + (list "TestInfo" + #$@(if (target-arm?) + ;; Test fails on ARM with error: raw-control tcp + ;; 127.0.0.1:58464: getsockopt: protocol not + ;; available. + '("TestConcurrentReadWriteAndInfo") + '())) + "|")))) (native-inputs (list go-golang-org-x-net)) (propagated-inputs @@ -5632,6 +6223,81 @@ options regarding connection information.") options.") (license license:bsd-2))) +(define-public go-github-com-minio-minio-go + (package + (name "go-github-com-minio-minio-go") + (version "3.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/minio-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fihvi30wrjd4xgksryz8r315w30x4gyqp1qs1gzaipyyksim8d2")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f + #:import-path "github.com/minio/minio-go")) + (home-page "https://github.com/minio/minio-go") + (synopsis "Minio Go Client SDK for Amazon S3 Compatible Cloud Storage") + (description + "The Minio Go Client SDK provides simple APIs to access any Amazon S3 +compatible object storage.") + (license license:asl2.0))) + +(define-public go-github-com-minio-minio-go-v7 + (package + (inherit go-github-com-minio-minio-go) + (name "go-github-com-minio-minio-go-v7") + (version "7.0.86") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/minio-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k9ab0nqdfgwf1h46wsv0i5d207pdyw7dc6ccdj8i7adfbxa1zwa")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/minio/minio-go/v7" + #:embed-files + #~(list + ;; golang.org/x/net/publicsuffix/table.go:63:12: pattern + ;; data/children: cannot embed irregular file data/children + "children" + ;; golang.org/x/net/publicsuffix/table.go:48:12: pattern data/nodes: + ;; cannot embed irregular file data/nodes + "nodes" + ;; golang.org/x/net/publicsuffix/table.go:33:12: pattern data/text: + ;; cannot embed irregular file data/text + "text") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key import-path #:allow-other-keys) + (substitute* (format #f + "src/~a/pkg/credentials/credentials.sample" + import-path) + (("/bin/cat") (which "cat")))))))) + (propagated-inputs + (list go-github-com-dustin-go-humanize + go-github-com-go-ini-ini + go-github-com-goccy-go-json + go-github-com-google-uuid + go-github-com-klauspost-compress + go-github-com-minio-crc64nvme + go-github-com-minio-md5-simd + go-github-com-rs-xid + go-golang-org-x-crypto + go-golang-org-x-net)))) + (define-public go-github-com-multiformats-go-multiaddr (package (name "go-github-com-multiformats-go-multiaddr") @@ -5777,6 +6443,41 @@ multistream-select protocol. The protocol is defined at 2616} HTTP/1.1 standard.") (license license:bsd-3))) +(define-public go-github-com-ncw-swift-v2 + (package + (name "go-github-com-ncw-swift-v2") + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ncw/swift") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "058mbdgm57rm24skscpl2lklqxs46sc4c3x5770xrd3yncry0rl8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ncw/swift/v2" + #:test-flags + #~(list "-skip" (string-join + ;; Tests requiring access with TOKEN to API endpoints. + (list "TestAuthenticate" + "TestCDNDisable" + "TestCDNEnable" + "TestCDNMeta" + "TestContainerCreate" + "TestContainerDelete" + "TestOnReAuth") + "|")))) + (home-page "https://github.com/ncw/swift") + (synopsis "Interface to various cloud storage APIs") + (description + "Package swift provides an easy to use interface to Swift / Openstack +Object Storage / Rackspace Cloud Files.") + (license license:expat))) + (define-public go-github-com-nrdcg-goinwx (package (name "go-github-com-nrdcg-goinwx") @@ -5861,7 +6562,7 @@ gzip the response body, for clients which support it.") (define-public go-github-com-opentracing-contrib-go-stdlib (package (name "go-github-com-opentracing-contrib-go-stdlib") - (version "1.0.0") + (version "1.1.0") (source (origin (method git-fetch) @@ -5870,20 +6571,12 @@ gzip the response body, for clients which support it.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ssnfhbpljxy2v3nsw9aqmh7xlky49dpfwj275aj0b576w46ys6m")))) + (base32 "18ws81a30igmff4pnqfvc2sv8hcy5gjb2saqz00mgz64y8nvjfx7")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/opentracing-contrib/go-stdlib" - #: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/opentracing-contrib/go-stdlib")) (propagated-inputs (list go-github-com-opentracing-opentracing-go)) (home-page "https://github.com/opentracing-contrib/go-stdlib") @@ -6052,10 +6745,37 @@ 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-peterbourgon-unixtransport + (package + (name "go-github-com-peterbourgon-unixtransport") + (version "0.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/peterbourgon/unixtransport") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c5j01bqwh8zy3n2mynh6irh30wfv6sdd1a34yhhg39l9xbpj51g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/peterbourgon/unixtransport")) + (propagated-inputs + (list go-github-com-miekg-dns + go-github-com-oklog-run + go-github-com-peterbourgon-ff-v3)) + (home-page "https://github.com/peterbourgon/unixtransport") + (synopsis "Support for Unix domain sockets in Go HTTP clients") + (description + "This package adds support for Unix domain sockets in Go HTTP clients.") + (license license:asl2.0))) + (define-public go-github-com-pion-datachannel (package (name "go-github-com-pion-datachannel") - (version "1.5.8") + (version "1.5.10") (source (origin (method git-fetch) @@ -6064,7 +6784,7 @@ original data and access it via a typed struct and a dynamic map.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0v2xwrzvflrh1s8x6p1dj9h0hmxsp30h8whbl5p544r30rvsbnp2")))) + (base32 "1197ix9z1qg9xf8bhcy0k4a3ppql0jv4l8szv21wwkwzpylba0jk")))) (build-system go-build-system) (arguments (list @@ -6270,10 +6990,34 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.") go-github-com-pion-turn-v3 go-golang-org-x-net)))) +(define-public go-github-com-pion-ice-v4 + (package + (inherit go-github-com-pion-ice-v3) + (name "go-github-com-pion-ice-v4") + (version "4.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/ice/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kcq14li99dpm927rqizmmnkx6jwp9zr4fvhhv42id9dmn8y6yqj")))) + (arguments + (list + #:tests? #f ;Tests require network access. + #:import-path "github.com/pion/ice/v4")) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-pion-ice-v3) + (replace "go-github-com-pion-dtls-v2" go-github-com-pion-dtls-v3) + (replace "go-github-com-pion-stun-v2" go-github-com-pion-stun-v3) + (replace "go-github-com-pion-turn-v3" go-github-com-pion-turn-v4))))) + (define-public go-github-com-pion-interceptor (package (name "go-github-com-pion-interceptor") - (version "0.1.30") + (version "0.1.37") (source (origin (method git-fetch) @@ -6282,7 +7026,7 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1b0mmrzb9m9xsskylambdcw3g9xfd1fdfagcw8k0l8886ckqjprr")))) + (base32 "0dl6z8ysssq8nnkrvbi1qnhib12mdwb8psqmmdhj43yffjwb0gg6")))) (build-system go-build-system) (arguments (list @@ -6389,7 +7133,7 @@ to @url{https://www.rfc-editor.org/rfc/rfc3550, RFC 3550}, (define-public go-github-com-pion-rtp (package (name "go-github-com-pion-rtp") - (version "1.8.6") + (version "1.8.11") (source (origin (method git-fetch) @@ -6398,7 +7142,7 @@ to @url{https://www.rfc-editor.org/rfc/rfc3550, RFC 3550}, (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vrdvswvvbqq83kbjlyblarbsn5v0sjcwrcv03nncd605cggnbkx")))) + (base32 "1a4fj31j7glhfsnxxwm8r72l6capz9mh8kfr340659ahgiijdkcg")))) (build-system go-build-system) (arguments (list @@ -6415,7 +7159,7 @@ packetizer and depacketizer.") (define-public go-github-com-pion-sctp (package (name "go-github-com-pion-sctp") - (version "1.8.19") + (version "1.8.36") (source (origin (method git-fetch) @@ -6424,7 +7168,7 @@ packetizer and depacketizer.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "19yzpyrlmk3gvpkpn5846rad9cc8ffxw9jqwnpr6szqax7k0l0zw")))) + (base32 "0j9ibj7mhrnh4vmcm6dh6l7q52jq0h6788gvgsfmhh7mxrlajgy3")))) (build-system go-build-system) (arguments (list @@ -6446,7 +7190,7 @@ Protocol,SCTP} as specified in (define-public go-github-com-pion-sdp-v3 (package (name "go-github-com-pion-sdp-v3") - (version "3.0.9") + (version "3.0.10") (source (origin (method git-fetch) @@ -6455,7 +7199,7 @@ Protocol,SCTP} as specified in (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "08d3glli1n45ayc26qwaxm7k5knrf99x5nwkllmmhf29g8kwc89n")))) + (base32 "0xpak20vwf3vmhi0lcj0xgy4snffsmyb6f2c6sq0w713drxqv2hb")))) (build-system go-build-system) (arguments (list @@ -6500,6 +7244,28 @@ Protocol,SCTP} as specified in "Package srtp implements Secure Real-time Transport Protocol.") (license license:expat))) +(define-public go-github-com-pion-srtp-v3 + (package + (inherit go-github-com-pion-srtp-v2) + (name "go-github-com-pion-srtp-v3") + (version "3.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/srtp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03343fsgrawfy9plsl7y5022ygjln3jvsn3im5xl1qwnc68rb1a2")))) + (arguments + (list + #:import-path "github.com/pion/srtp/v3")) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-pion-srtp-v2) + (replace "go-github-com-pion-transport-v2" + go-github-com-pion-transport-v3))))) + (define-public go-github-com-pion-stun (package (name "go-github-com-pion-stun") @@ -6647,21 +7413,22 @@ throughout the @url{https://github.com/pion, Pion} modules.") (define-public go-github-com-pion-transport-v3 (package - (inherit go-github-com-pion-transport) + (inherit go-github-com-pion-transport-v2) (name "go-github-com-pion-transport-v3") - (version "3.0.2") + (version "3.0.7") (source (origin - (inherit (package-source go-github-com-pion-transport)) + (method git-fetch) (uri (git-reference - (url "https://github.com/pion/transport/") + (url "https://github.com/pion/transport") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0j7ljkbyf2qd7daxg7d1rd6c92md64agi59b69g6jyqpz5jww998")))) + (base32 "05qv7packvz18dfw5bc616f7hy9ad9jz10yxckg29g60y43k5nkf")))) (arguments - (list - #:import-path "github.com/pion/transport/v3")))) + (substitute-keyword-arguments (package-arguments + go-github-com-pion-transport-v2) + ((#:import-path _) "github.com/pion/transport/v3"))))) (define-public go-github-com-pion-turn (package @@ -6679,8 +7446,20 @@ throughout the @url{https://github.com/pion, Pion} modules.") (build-system go-build-system) (arguments (list - #:tests? #f ;Tests require network access. - #:import-path "github.com/pion/turn")) + #:import-path "github.com/pion/turn" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests requiring networking setup. + (list "TestClientWithSTUN/SendBindingRequest" + "TestClientWithSTUN/SendBindingRequestTo_Parallel") + "|")) + #: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"))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -6761,6 +7540,31 @@ it like any library. The quickest way to get started is to look at the go-github-com-pion-transport-v3 go-golang-org-x-sys)))) +(define-public go-github-com-pion-turn-v4 + (package + (inherit go-github-com-pion-turn-v3) + (name "go-github-com-pion-turn-v4") + (version "4.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/turn/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yd0v6ijwl62qd2sz7imq9pd2grcrw4dhwnn4302m1k89pxr52wx")))) + (arguments + (substitute-keyword-arguments (package-arguments + go-github-com-pion-turn-v3) + ((#:import-path _) "github.com/pion/turn/v4"))) + (propagated-inputs + (list go-github-com-pion-logging + go-github-com-pion-randutil + go-github-com-pion-stun-v3 + go-github-com-pion-transport-v3 + go-golang-org-x-sys)))) + (define-public go-github-com-pion-webrtc-v3 (package (name "go-github-com-pion-webrtc-v3") @@ -6824,6 +7628,31 @@ STUN, TURN mDNS candidates @end itemize") (license license:expat))) +(define-public go-github-com-pion-webrtc-v4 + (package + (inherit go-github-com-pion-webrtc-v3) + (name "go-github-com-pion-webrtc-v4") + (version "4.0.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/webrtc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g7bka1x6cq4a85a73lwg8bmv9dqza0z54vdy2ny0hbypyj7xb23")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-pion-webrtc-v3) + ((#:import-path _) "github.com/pion/webrtc/v4"))) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-pion-webrtc-v3) + (replace "go-github-com-pion-dtls-v2" go-github-com-pion-dtls-v3) + (replace "go-github-com-pion-ice-v2" go-github-com-pion-ice-v4) + (replace "go-github-com-pion-srtp-v2" go-github-com-pion-srtp-v3))))) + (define-public go-github-com-pires-go-proxyproto (package (name "go-github-com-pires-go-proxyproto") @@ -7218,6 +8047,31 @@ library.") client IP from HTTP requests.") (license license:bsd-0))) +(define-public go-github-com-restic-chunker + (package + (name "go-github-com-restic-chunker") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/restic/chunker") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bp6471lsjzjg17r3q359sz7cybjxpf5xrpndf9xhqc0v9vfx7f5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/restic/chunker")) + (home-page "https://github.com/restic/chunker") + (synopsis "Implementation of Content Defined Chunking Golang") + (description + "Package chunker implements @acronym{Content Defined Chunking, +@url{https://restic.net/blog/2015-09-12/restic-foundation1-cdc/, CDC}} based +on a rolling Rabin Checksum.") + (license license:bsd-2))) + (define-public go-github-com-rs-cors (package (name "go-github-com-rs-cors") @@ -7296,6 +8150,36 @@ per host/process @end itemize") (license license:expat))) +(define-public go-github-com-sacloud-go-http + (package + (name "go-github-com-sacloud-go-http") + (version "0.1.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sacloud/go-http") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c7anxj00sam5q06jlqhi1z39p19p7nffd5q07j78pahcskgvpim")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sacloud/go-http")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-hashicorp-go-retryablehttp + go-go-uber-org-ratelimit)) + (home-page "https://github.com/sacloud/go-http") + (synopsis "HTTP client library for SAKURA cloud in Go") + (description + "This package provides a HTTP client functionality that can be used +across various @url{https://www.sakura.ad.jp/, Sakura Cloud} APIs (IaaS, +ObjectStorage, PHY, etc.).") + (license license:asl2.0))) + (define-public go-github-com-safchain-ethtool (package (name "go-github-com-safchain-ethtool") @@ -7322,7 +8206,11 @@ per host/process "TestMsglvlGet" "TestStats" "TestDriverName" - "TestBusInfo") + "TestBusInfo" + #$@(if (target-arm?) + ;; Inappropriate ioctl for device. + '("TestFeatures") + '())) "|")))) (propagated-inputs (list go-golang-org-x-sys)) @@ -7338,7 +8226,7 @@ information or even the peer of a VETH interface.") (define-public go-github-com-sherclockholmes-webpush-go (package (name "go-github-com-sherclockholmes-webpush-go") - (version "1.3.0") + (version "1.4.0") (source (origin (method git-fetch) @@ -7347,13 +8235,13 @@ information or even the peer of a VETH interface.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qv16zvkd1c7q81v2ai8pfz590fxdrk4lfbgyymln0q7jn5wlvki")))) + (base32 "0dzc2nlxd1lfwr97cqmr4fc792zbsb6yssr7yqxxamqck1y8gnqm")))) (build-system go-build-system) (arguments (list #:import-path "github.com/SherClockHolmes/webpush-go")) (propagated-inputs - (list go-github-com-golang-jwt-jwt go-golang-org-x-crypto)) + (list go-github-com-golang-jwt-jwt-v5 go-golang-org-x-crypto)) (home-page "https://github.com/SherClockHolmes/webpush-go") (synopsis "Web Push API Encryption with VAPID support") (description @@ -7580,6 +8468,59 @@ file into a Go http.CookieJar.") StatHat} account.") (license license:expat))) +(define-public go-github-com-swaggo-swag + (package + (name "go-github-com-swaggo-swag") + (version "1.16.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/swaggo/swag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a9dg8clgmpsfww5wv3jbdpm7lqza61iihviskwp5rd7wvp57862")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/swaggo/swag" + #:unpack-path "github.com/swaggo/swag" + #:embed-files + #~(list + ;; github.com/go-openapi/spec/embed.go:8:12: pattern schemas/*.json: + ;; cannot embed irregular file schemas/jsonschema-draft-04.json + "jsonschema-draft-04\\.json" + ;; github.com/go-openapi/spec/embed.go:8:27: pattern + ;; schemas/*/*.json: cannot embed irregular file + ;; schemas/v2/schema.json + "schema\\.json") + #:test-flags + #~(list "-skip" (string-append "TestParseGoList/enableGOMODULE" + "|TestParseDescriptionMarkdown")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (delete-file-recursively "example"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-openapi-spec + go-github-com-kylebanks-depth + go-github-com-urfave-cli-v2 + go-golang-org-x-text + go-golang-org-x-tools + go-sigs-k8s-io-yaml)) + (home-page "https://github.com/swaggo/swag") + (synopsis "Generate RESTful API documentation with Swagger 2.0 for Go") + (description + "Package swag converts Go annotations to Swagger Documentation 2.0 for +verity of Go web frameworks which may be integrated with an existing project +using Swagger UI.") + (license license:expat))) + (define-public go-github-com-tdewolff-minify-v2 (package (name "go-github-com-tdewolff-minify-v2") @@ -7753,6 +8694,29 @@ 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-tomnomnom-linkheader + (package + (name "go-github-com-tomnomnom-linkheader") + (version "0.0.0-20180905144013-02ca5825eb80") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tomnomnom/linkheader") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ghrv28vrvvrpyr4d4q817yby8g1j04mid8ql00sds1pvfv67d32")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tomnomnom/linkheader")) + (home-page "https://github.com/tomnomnom/linkheader") + (synopsis "Golang HTTP Link header parser") + (description + "Package linkheader provides functions for parsing HTTP Link headers.") + (license license:expat))) + (define-public go-github-com-tv42-httpunix (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22") (revision "0")) @@ -7862,6 +8826,49 @@ extract data from those paths.") encoding library for the MessagePack, CBOR, JSON and the Binc formats.") (license license:expat))) +(define-public go-github-com-urfave-negroni + (package + (name "go-github-com-urfave-negroni") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/negroni") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gp6j74adi1cn8fq5v3wzlzhwl4zg43n2746m4fzdcdimihk3ccp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/urfave/negroni")) + (home-page "https://github.com/urfave/negroni") + (synopsis "Idiomatic HTTP Middleware for Golang") + (description + "Package negroni is an idiomatic approach to web middleware in Go. It is +tiny,non-intrusive, and encourages use of @code{net/http} Handlers.") + (license license:expat))) + +(define-public go-github-com-urfave-negroni-v3 + (package + (inherit go-github-com-urfave-negroni) + (name "go-github-com-urfave-negroni-v3") + (version "3.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/negroni") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04fbp15jq23sp10kgrpgmbif3mvzs82m1wx2bbmgknh27yy8i95y")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/urfave/negroni/v3")))) + (define-public go-github-com-valyala-fasthttp (package (name "go-github-com-valyala-fasthttp") @@ -8149,6 +9156,32 @@ https://github.com/restic/restic project.") netmasks.") (license license:expat))) +(define-public go-github-com-willscott-goturn + (package + (name "go-github-com-willscott-goturn") + (version "0.0.0-20170802220503-19f41278d0c9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/willscott/goturn") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + (list + #: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))) + (define-public go-github-com-wlynxg-anet (package (name "go-github-com-wlynxg-anet") @@ -8488,6 +9521,54 @@ It is to used for inputs in other packages.") ;; which apply to the Application, with which you must still comply license:lgpl3))) +(define-public go-gitlab-com-gitlab-org-api-client-go + (package + (name "go-gitlab-com-gitlab-org-api-client-go") + (version "0.123.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/gitlab-org/api/client-go.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xrqyqvmaslfr9cj91519qi5f2sd3l2mvipxgjf13vd3v4fchacn")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "gitlab.com/gitlab-org/api/client-go" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests requir network access. + (list "TestGetMergeRequest" + "TestRepositoryFilesService_CreateFile" + "TestRepositoryFilesService_DeleteFile" + "TestRepositoryFilesService_GetFile" + "TestRepositoryFilesService_GetFileBlame" + "TestRepositoryFilesService_GetFileMetaData" + "TestRepositoryFilesService_GetRawFile" + "TestRepositoryFilesService_UpdateFile" + "TestRepositorySubmodulesService_UpdateSubmodule" + "TestUpdateRepositoryEnvironmentsEscapesURL") + "|")))) + (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://gitlab.com/gitlab-org/api/client-go") + (synopsis "GitLab client for Golang") + (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))) + (define-public go-gitlab-torproject-org-tpo-anti-censorship-geoip (package (name "go-gitlab-torproject-org-tpo-anti-censorship-geoip") @@ -8674,6 +9755,142 @@ library code browsing activities based on HTTP Upgrade (HTTPT).") (license license:bsd-2))) +(define-public go-go-mau-fi-whatsmeow + (package + (name "go-go-mau-fi-whatsmeow") + (version "0.0.0-20241215104421-68b0856cce22") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tulir/whatsmeow") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3h132g3w6ihc8jn587wvyha9xm3sinjlr0znqq7krvynz3z8id")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mau.fi/whatsmeow")) + (propagated-inputs + (list go-github-com-google-uuid + go-github-com-gorilla-websocket + go-github-com-rs-zerolog + go-go-mau-fi-libsignal + go-go-mau-fi-util + go-golang-org-x-crypto + go-golang-org-x-net + go-google-golang-org-protobuf)) + (home-page "https://go.mau.fi/whatsmeow") + (synopsis "Go library for the WhatsApp web multidevice API") + (description + "Package whatsmeow implements a client for interacting with the +@code{WhatsApp} web multidevice API. + +Features: +@itemize +@item sending messages to private chats and groups (both text and media) +@item receiving all messages +@item managing groups and receiving group change events +@item joining via invite messages, using and creating invite links +@item sending and receiving typing notifications +@item sending and receiving delivery and read receipts +@item reading and writing app state (contact list, chat pin/mute status, etc) +@item sending and handling retry receipts if message decryption fails +@item sending status messages (experimental, may not work for large contact +lists) +@end itemize") + (license license:mpl2.0))) + +(define-public go-go-opencensus-io + (package + (name "go-go-opencensus-io") + (version "0.24.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/census-instrumentation/opencensus-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1923j8v214fyk9qlw0lfva6ah8p7s8cfkrysiada5pp4jim4k4xi")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "go.opencensus.io" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests requiring networking. + (list "TestAgainstSpecs/Successful_GET_call_to_https.*" + "TestAgainstSpecs/Successfully_POST_call_to_https.*") + "|")) + #: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-github-com-golang-groupcache + go-github-com-golang-protobuf + go-github-com-google-go-cmp + go-github-com-stretchr-testify + go-golang-org-x-net + go-google-golang-org-grpc)) + (home-page "https://opencensus.io/") + (synopsis "Stats collection and distributed tracing framework") + (description + "Package opencensus contains Go support for @code{OpenCensus}.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp + (package + (name "go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp") + (version "0.59.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go-contrib") + (commit (go-version->git-ref version + #:subdir + "instrumentation/net/http/otelhttp")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17kyba5816983migninw6v2si2d28j32973c0x8i08fswrjz5dm0")))) + (build-system go-build-system) + (arguments + (list + #:import-path + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + #:unpack-path "go.opentelemetry.io/contrib" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (delete-file-recursively + "instrumentation/net/http/otelhttp/example"))))))) + (native-inputs + (list go-github-com-stretchr-testify + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-sdk-metric)) + (propagated-inputs + (list go-github-com-felixge-httpsnoop + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-metric + go-go-opentelemetry-io-otel-trace)) + (home-page "https://opentelemetry.io/") + (synopsis "Golang std @code{http.Handler} wrapper library") + (description + "Package otelhttp provides an http.Handler and functions that are +intended to be used to add tracing by wrapping existing handlers (with +Handler) and routes @code{WithRouteTag}.") + (license license:asl2.0))) + (define-public go-go-opentelemetry-io-otel (package (name "go-go-opentelemetry-io-otel") @@ -8804,6 +10021,18 @@ 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-metric + (package/inherit go-go-opentelemetry-io-otel + (name "go-go-opentelemetry-io-otel-metric") + (arguments + (list + #:import-path "go.opentelemetry.io/otel/metric" + #:unpack-path "go.opentelemetry.io/otel")) + (synopsis "OpenTelemetry Metric API") + (description + "Package metric provides an implementation of the metric part of the +OpenTelemetry API."))) + (define-public go-go-opentelemetry-io-otel-sdk (package (name "go-go-opentelemetry-io-otel-sdk") @@ -8977,6 +10206,46 @@ logging library. Instead, install one of the bridges listed in the metrics SDK.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-otel-trace + (package/inherit go-go-opentelemetry-io-otel + (name "go-go-opentelemetry-io-otel-trace") + (arguments + (list + #:import-path "go.opentelemetry.io/otel/trace" + #:unpack-path "go.opentelemetry.io/otel")) + (synopsis "OpenTelemetry Trace API") + (description + "Package trace provides an implementation of the tracing part of the +OpenTelemetry API."))) + +(define-public go-goji-io + (package + (name "go-goji-io") + (version "2.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/goji/goji") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sckb1gayxfrlm12kdp33vwqq4gs5irqswr7pm0skkdz66swsvcc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "goji.io")) + (home-page "https://goji.io") + (synopsis "HTTP request multiplexer for Golang") + (description + "Goji is a HTTP request multiplexer, similar to std +@code{net/http.ServeMux}. It compares incoming requests to a list of +registered Patterns, and dispatches to the @code{http.Handler} that +corresponds to the first matching Pattern. Goji also supports +Middleware (composable shared functionality applied to every request) and uses +the standard @code{context} package to store request-scoped values.") + (license license:expat))) + (define-public go-golang-org-x-oauth2 (package (name "go-golang-org-x-oauth2") @@ -9051,6 +10320,77 @@ metrics SDK.") (description "This package is a Go Implementation of WireGuard.") (license license:expat))) +(define-public go-google-golang-org-grpc + (package + (name "go-google-golang-org-grpc") + (version "1.69.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grpc/grpc-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bvwnhgg04zhzwb9pxsv3n0c96hci5mdnpdaxr4ggy2m28df2q6m")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - google.golang.org/grpc/cmd/protoc-gen-go-grpc + ;; - google.golang.org/grpc/examples + ;; - google.golang.org/grpc/gcp/observability + ;; - google.golang.org/grpc + ;; - google.golang.org/grpc/interop/observability + ;; - google.golang.org/grpc/interop/xds + ;; - google.golang.org/grpc/security/advancedtls/examples + ;; - google.golang.org/grpc/security/advancedtls + ;; - google.golang.org/grpc/stats/opencensus + ;; - google.golang.org/grpc/test/tools + (for-each delete-file-recursively + (list "cmd/protoc-gen-go-grpc" + "examples" + "gcp/observability" + "interop/observability" + "interop/xds" + "security/advancedtls/examples" + "security/advancedtls" + "stats/opencensus" + "test/tools")))))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:tests? #f ; TODO: full test suite needs more packages + #:import-path "google.golang.org/grpc")) + (propagated-inputs + (list go-github-com-cespare-xxhash-v2 + ;; go-github-com-cncf-xds-go + ;; go-github-com-envoyproxy-go-control-plane + ;; go-github-com-envoyproxy-go-control-plane-envoy + go-github-com-golang-glog + go-github-com-golang-protobuf + go-github-com-google-go-cmp + go-github-com-google-uuid + ;; go-go-opentelemetry-io-contrib-detectors-gcp + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-metric + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-sdk-metric + go-go-opentelemetry-io-otel-trace + go-golang-org-x-net + go-golang-org-x-oauth2 + go-golang-org-x-sync + go-golang-org-x-sys + go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-protobuf)) + (home-page "https://google.golang.org/grpc") + (synopsis "Golang implementation of gRPC - HTTP/2 based RPC") + (description + "Package grpc implements an RPC system called @code{gRPC}.") + (license license:asl2.0))) + (define-public go-gopkg-in-go-jose-go-jose-v2 (package (inherit go-github-com-go-jose-go-jose-v3) @@ -9094,6 +10434,40 @@ metrics SDK.") ((#:tests? _ #t) #f) ((#:import-path _) "gopkg.in/jcmturner/rpc.v2"))))) +(define-public go-k8s-io-cri-api + (package + (name "go-k8s-io-cri-api") + (version "0.32.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes/cri-api") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wzqf8860xp0k1y6csrksh37alzz3ksagwl3bv67r4x602l0zadv")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:import-path "k8s.io/cri-api")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-gogo-protobuf + go-google-golang-org-grpc)) + (home-page "https://github.com/kubernetes/cri-api") + (synopsis "Container Runtime Interface a plugin interface") + (description + "This package provides the definitions for the Container Runtime +Interface (CRI). CRI is a plugin interface which enables kubelet to use a +wide variety of container runtimes, without the need to recompile. CRI +consists of a protocol buffers and @code{gRPC} API. Read more about CRI API at +@@url{https://kubernetes.io/docs/concepts/architecture/cri/,kubernetes +docs}.") + (license license:asl2.0))) + (define-public go-k8s-io-kube-openapi (package (name "go-k8s-io-kube-openapi") @@ -9163,6 +10537,97 @@ but implement that subset with little to no assumption about the structure of the code or routes.") (license license:asl2.0))) +(define-public go-maunium-net-go-mautrix + (package + (name "go-maunium-net-go-mautrix") + (version "0.22.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mautrix/go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0msqbs3qc9ljckj41hgvp16p0sbfzm25wzldb68av9svimscwnmm")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:import-path "maunium.net/go/mautrix" + #:embed-files + #~(list + ;; golang.org/x/net/publicsuffix/table.go:63:12: pattern + ;; data/children: cannot embed irregular file data/children + "children" + ;; golang.org/x/net/publicsuffix/table.go:48:12: pattern data/nodes: + ;; cannot embed irregular file data/nodes + "nodes" + ;; golang.org/x/net/publicsuffix/table.go:33:12: pattern data/text: + ;; cannot embed irregular file data/text + "text") + #:test-flags + #~(list "-skip" (string-join + ;; Network access is required for the tets. + (list "TestClient_Version" + "TestResolveServerName/RM_Step_3B" + "TestResolveServerName/RM_Step_3C" + "TestResolveServerName/RM_Step_3C_MSC4040" + "TestResolveServerName/RM_Step_3D" + "TestResolveServerName/RM_Step_4" + "TestResolveServerName/RM_Step_4_MSC4040" + "TestResolveServerName/maunium") + "|")))) + ;; XXX: The final application needs a "libolm" package. + (native-inputs + (list olm)) + (propagated-inputs + (list go-filippo-io-edwards25519 + go-github-com-chzyer-readline + go-github-com-gorilla-mux + go-github-com-gorilla-websocket + go-github-com-lib-pq + go-github-com-mattn-go-sqlite3 + go-github-com-rs-xid + go-github-com-rs-zerolog + go-github-com-skip2-go-qrcode + go-github-com-stretchr-testify + go-github-com-tidwall-gjson + go-github-com-tidwall-sjson + go-github-com-yuin-goldmark + go-go-mau-fi-util + go-go-mau-fi-zeroconfig + go-golang-org-x-crypto + go-golang-org-x-exp + go-golang-org-x-net + go-golang-org-x-sync + go-gopkg-in-yaml-v3 + go-maunium-net-go-mauflag)) + (home-page "https://maunium.net/go/mautrix") + (synopsis "Golang Matrix framework") + (description + "Package mautrix implements the Matrix Client-Server API and originated +from @url{https://github.com/matrix-org/gomatrix}. + +Features: +@itemize +@item appservice support (Intent API like mautrix-python, room state storage, +etc) +@item end-to-end encryption support (incl. interactive SAS verification) +@item high-level module for building puppeting bridges +@item high-level module for building chat clients +@item wrapper functions for the Synapse admin API +@item structs for parsing event content +@item helpers for parsing and generating Matrix HTML +@item helpers for handling push rules +@end itemize") + (license (list + ;; This project + license:mpl2.0 + ;; Based on <https://github.com/matrix-org/gomatrix> project, no + ;; longer maintained since Feb 21, 2024. + license:asl2.0)))) + (define-public go-modernc-org-httpfs (package (name "go-modernc-org-httpfs") @@ -9214,7 +10679,7 @@ the code or routes.") (define-public go-mvdan-cc-xurls-v2 (package (name "go-mvdan-cc-xurls-v2") - (version "2.5.0") + (version "2.6.0") (source (origin (method git-fetch) @@ -9223,17 +10688,20 @@ the code or routes.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1516hwlxbnhdca56qy7sx9h2n5askq6ddqpqyp3f5rvmzdkxf4zn")))) + (base32 "1kk4mjizr23zjzsavs21krp13w52p3b8dcm4ahlrr6xkkfn8ry3i")))) (build-system go-build-system) (arguments (list + #:go go-1.22 #:import-path "mvdan.cc/xurls/v2" + #:build-flags #~(list (string-append "-ldflags=-X main.version=" + #$version)) #:test-flags #~(list "-skip" "TestScript/version"))) (propagated-inputs - (list go-github-com-rogpeppe-go-internal + (list go-github-com-rogpeppe-go-internal-1.14 go-golang-org-x-mod go-golang-org-x-sync)) - (home-page "https://mvdan.cc/xurls/v2/") + (home-page "https://github.com/mvdan/xurls") (synopsis "Extracts URLs from text") (description "Xurls extracts urls from plain text using regular expressions. It can @@ -9271,6 +10739,53 @@ protocol.") ;;; Executables: ;;; +(define-public lyrebird + (package + (name "lyrebird") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird") + (commit (string-append "lyrebird-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hhilnk72s0h3cm7zw89n3kiqwa32c0r1a1y5ygp432hmrxvr2b0")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:build-flags #~(list (string-append "-ldflags=" + "-X main.lyrebirdVersion=" + #$version " -s -w")) + #: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)) + (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-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-jose-util (package (name "go-jose-util") @@ -9424,21 +10939,33 @@ 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 swag + (package/inherit go-github-com-swaggo-swag + (name "swag") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-swaggo-swag) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "github.com/swaggo/swag") + "github.com/swaggo/swag/cmd/swag"))) + (native-inputs (package-propagated-inputs go-github-com-swaggo-swag)) + (propagated-inputs '()) + (inputs '()))) + (define-public xurls - (package - (inherit go-mvdan-cc-xurls-v2) + (package/inherit go-mvdan-cc-xurls-v2 (name "xurls") (arguments - (list - #:import-path "mvdan.cc/xurls/v2/cmd/xurls" - #:unpack-path "mvdan.cc/xurls/v2" - #:install-source? #f - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (delete-file "testdata/script/version.txtar"))))))))) + (substitute-keyword-arguments + (package-arguments go-mvdan-cc-xurls-v2) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "mvdan.cc/xurls/v2") "mvdan.cc/xurls/cmd/xurls") + ((#:unpack-path _ "") "mvdan.cc/xurls"))) + (native-inputs (package-propagated-inputs go-mvdan-cc-xurls-v2)) + (propagated-inputs '()) + (inputs '()))) ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index 6fefd59f6b..cdfaee1d62 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -39,23 +39,25 @@ ;;; Copyright © 2023 Fries <fries1234@protonmail.com> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> +;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com> ;;; Copyright © 2023 Nguyễn Gia Phong <mcsinyx@disroot.org> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Sergey Trofimov <sarg@sarg.org.ru> ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr> ;;; Copyright © 2023 Timo Wilken <guix@twilken.net> ;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu> +;;; Copyright © 2023 conses <contact@conses.eu> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 Brian Kubisiak <brian@kubisiak.com> ;;; Copyright © 2024 Herman Rimm <herman@rimm.ee> ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> ;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Luis Higino <luishenriquegh2701@gmail.com> +;;; Copyright © 2024 Roman Scherer <roman@burningswell.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 Roman Scherer <roman@burningswell.com> ;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in> ;;; Copyright © 2025 Jussi Timperi <jussi.timperi@iki.fi> ;;; Copyright © 2025 45mg <45mg.writes@gmail.com> @@ -98,6 +100,7 @@ #:use-module (gnu packages golang-web) #:use-module (gnu packages libedit) #:use-module (gnu packages linux) + #:use-module (gnu packages serialization) #:use-module (gnu packages specifications) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg)) @@ -346,6 +349,30 @@ file along with an index.html file.") "Package tcell provides a gruid Driver for making terminal apps.") (license license:isc))) +(define-public go-codeberg-org-emersion-go-scfg + (package + (name "go-codeberg-org-emersion-go-scfg") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/emersion/go-scfg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yw35rf6cxk5cwzf9y4qd0rlcryq1pxr9n34q6620i9djhgskwq2")))) + (build-system go-build-system) + (arguments + (list #:import-path "codeberg.org/emersion/go-scfg")) + (propagated-inputs + (list go-github-com-davecgh-go-spew)) + (home-page "https://codeberg.org/emersion/go-scfg") + (synopsis "Go library for simple configuration file format") + (description + "Package go-scfg parses scfg files.") + (license license:expat))) + (define-public go-dario-cat-mergo (package (name "go-dario-cat-mergo") @@ -377,30 +404,6 @@ 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") - (version "0.0.0-20240128091534-2ae16e782082") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~emersion/go-scfg") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1gxhg40q4md3lj1wrrnms0jhyqsxhx2hcv6sm5yjbbqana5x26mx")))) - (build-system go-build-system) - (arguments - (list #:import-path "git.sr.ht/~emersion/go-scfg")) - (propagated-inputs - (list go-github-com-davecgh-go-spew)) - (home-page "https://git.sr.ht/~emersion/go-scfg") - (synopsis "Go library for simple configuration file format") - (description - "Package go-scfg parses scfg files.") - (license license:expat))) - (define-public go-git-sr-ht-emersion-go-sqlite3-fts5 (package (name "go-git-sr-ht-emersion-go-sqlite3-fts5") @@ -520,7 +523,7 @@ Go library.") (define-public go-git-sr-ht-rockorager-vaxis (package (name "go-git-sr-ht-rockorager-vaxis") - (version "0.9.2") + (version "0.13.0") (source (origin (method git-fetch) @@ -529,7 +532,7 @@ Go library.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0pmi4bigqgrfdlk9d6ia3jxgcr4iadiyynf6bny9fdc3yyppcxic")))) + (base32 "0lv2ry55a19vym5km6d1rpyhafx2kh0ikcnishkjhyg93i884k52")))) (build-system go-build-system) (arguments (list @@ -900,10 +903,10 @@ strings or other files). If stdout is not a terminal, colour formatting will be stripped.") (license license:expat))) -(define-public go-github-com-alecthomas-kingpin +(define-public go-github-com-alecthomas-kingpin-v2 (package - (name "go-github-com-alecthomas-kingpin") - (version "2.2.6") + (name "go-github-com-alecthomas-kingpin-v2") + (version "2.4.0") (source (origin (method git-fetch) @@ -912,45 +915,22 @@ be stripped.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r")))) + (base32 "12xl62xzwq2h71hp1i0133403zhyqwsh95sr870fx18wmpqh8shf")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/alecthomas/kingpin")) + #:import-path "github.com/alecthomas/kingpin/v2")) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs - (list go-github-com-alecthomas-template - go-github-com-alecthomas-units)) + (list go-github-com-alecthomas-units + go-github-com-xhit-go-str2duration-v2)) (home-page "https://github.com/alecthomas/kingpin") (synopsis "Go library provides utilities for building command line interfaces") (description "Go library provides utilities for building command line interfaces.") (license license:expat))) -(define-public go-github-com-alecthomas-kingpin-v2 - (package - (inherit go-github-com-alecthomas-kingpin) - (name "go-github-com-alecthomas-kingpin-v2") - (version "2.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alecthomas/kingpin") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "12xl62xzwq2h71hp1i0133403zhyqwsh95sr870fx18wmpqh8shf")))) - (arguments - (list - #:import-path "github.com/alecthomas/kingpin/v2")) - (propagated-inputs - (list go-github-com-alecthomas-units - go-github-com-xhit-go-str2duration-v2)) - (native-inputs - (list go-github-com-stretchr-testify)))) - (define-public go-github-com-alecthomas-kong (package (name "go-github-com-alecthomas-kong") @@ -1074,38 +1054,6 @@ structs. The approach is similar to how other marshallers work in Golang, almost directly in Go source code.") (license license:expat))) -(define-public go-github-com-alecthomas-template - ;; No release, see <https://github.com/alecthomas/template/issues/7>. - (let ((commit "a0175ee3bccc567396460bf5acd36800cb10c49c") - (revision "0")) - (package - (name "go-github-com-alecthomas-template") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alecthomas/template") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj")))) - (build-system go-build-system) - (arguments - (list - ;; XXX: Failing on a newer Golang version: FAIL: TestJSEscaping - ;; (0.00s) exec_test.go:757: JS escaping [unprintable ﷿] got - ;; [unprintable ﷿] want [unprintable \uFDFF] - #:go go-1.17 - #:import-path "github.com/alecthomas/template")) - (home-page "https://github.com/alecthomas/template") - (synopsis "Fork of Go's text/template adding newline elision") - (description - "This is a fork of Go 1.4's text/template package with one addition: a -backslash immediately after a closing delimiter will delete all subsequent -newlines until a non-newline.") - (license license:bsd-3)))) - (define-public go-github-com-alecthomas-units ;; No release, see <https://github.com/alecthomas/units/issues/9>. (let ((commit "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a") @@ -1160,6 +1108,95 @@ 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-anacrolix-fuse + (package + (name "go-github-com-anacrolix-fuse") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; It's an alternative and maintained fork + ;; https://github.com/bazil/fuse + ;; -> https://github.com/zegl/fuse + ;; -> + (url "https://github.com/anacrolix/fuse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rlzcdgv7s3ywmhapp35qgi0p5cz8acw589n7hr918hq30dp7w9z")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; tests require fuse mount + #:import-path "github.com/anacrolix/fuse")) + (propagated-inputs + (list go-github-com-anacrolix-envpprof + go-github-com-tv42-httpunix + go-golang-org-x-sys)) + (home-page "https://github.com/anacrolix/fuse") + (synopsis "FUSE implementation in Golang") + (description + "Package fuse enables writing FUSE file systems on Linux, OS X, and +@code{FreeBSD}.") + (license license:bsd-3))) + +(define-public go-github-com-anacrolix-generics + (package + (name "go-github-com-anacrolix-generics") + (version "0.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/anacrolix/generics") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19nagwx6s5sjyphn5czlplqvzj4zxcv3jl9zskpix5yxg5l24san")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/anacrolix/generics")) + (propagated-inputs (list go-golang-org-x-exp)) + (home-page "https://github.com/anacrolix/generics") + (synopsis "Generic implementation for Golang") + ;; FIXME: The project provides no documentatin of README. Report upstream. + (description "This package provides generic implementations for Go.") + (license license:mpl2.0))) + +(define-public go-github-com-anacrolix-log + (package + (name "go-github-com-anacrolix-log") + (version "0.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/anacrolix/log") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pbvg15rrsh2gv10vsdqak8r572kkjlhil1g0gngnzbcyifqmca0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/anacrolix/log")) + (native-inputs + (list go-github-com-frankban-quicktest + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-anacrolix-generics)) + (home-page "https://github.com/anacrolix/log") + (synopsis "Context-style logging for Golang") + (description + "Package log implements a std log compatible logging system that draws +some inspiration from the @url{https://docs.python.org/3/library/logging.html, +Python logging module} from Python's standard library. It supports multiple +handlers, log levels, zero-allocation, scopes, custom formatting, and +environment and runtime configuration.") + (license license:mpl2.0))) + (define-public go-github-com-andreasbriese-bbloom (package (name "go-github-com-andreasbriese-bbloom") @@ -1257,6 +1294,41 @@ commands.") dumps of Go values.") (license license:mpl2.0))) +(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-apparentlymart-go-textseg-v9 (package (name "go-github-com-apparentlymart-go-textseg-v9") @@ -1407,41 +1479,6 @@ cluster segmentation algorithm.") (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") @@ -1512,6 +1549,29 @@ optimized for sparse nodes of @url{http://en.wikipedia.org/wiki/Radix_tree,radix tree}.") (license license:expat))) +(define-public go-github-com-arolek-p + (package + (name "go-github-com-arolek-p") + (version "0.0.0-20191103215535-df3c295ed582") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ARolek/p") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dsfrksyrnr3d6aiafnjf3nqyq5jn7s7pzd64j18kngc8l6jrxj1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/arolek/p")) + (home-page "https://github.com/arolek/p") + (synopsis "Pointer to the value") + (description + "Pacakge p takes in values and returns a pointer to the value.") + (license license:expat))) + (define-public go-github-com-arran4-golang-ical (package (name "go-github-com-arran4-golang-ical") @@ -1572,6 +1632,44 @@ collections. It was based on @url{https://github.com/chriso/validator.js,validator.js}.") (license license:expat))) +(define-public go-github-com-asdine-storm-v3 + (package + (name "go-github-com-asdine-storm-v3") + (version "3.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/asdine/storm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07913m4nxy7cbc9q6ldqvxx60rh32b4djyvcp9bxwbb3c4al3fh4")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; It requires v4 but import it as v1. + (substitute* (find-files "." "\\.go$") + (("github.com/vmihailenco/msgpack") + "github.com/vmihailenco/msgpack/v4")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/asdine/storm/v3")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-golang-protobuf + go-github-com-sereal-sereal-go-sereal + go-github-com-vmihailenco-msgpack-v4 + go-go-etcd-io-bbolt)) + (home-page "https://github.com/asdine/storm") + (synopsis "BoltDB toolkit for Golang") + (description + "Storm is a toolkit for @url{https://github.com/coreos/bbolt, BoltDB}, +providing various methods to work with it.") + (license license:expat))) + (define-public go-github-com-atotto-clipboard (package (name "go-github-com-atotto-clipboard") @@ -1776,30 +1874,6 @@ supports generating diffs in the Unified Format}.") (license license:expat))) -(define-public go-github-com-benbjohnson-clock - (package - (name "go-github-com-benbjohnson-clock") - (version "1.3.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/benbjohnson/clock") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1p7n09pywqra21l981fbkma9vzsyf31pbvw6xg5r4hp8h8scf955")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/benbjohnson/clock")) - (home-page "https://github.com/benbjohnson/clock") - (synopsis "Small library for mocking time in Go") - (description - "@code{clock} is a small library for mocking time in Go. It provides an -interface around the standard library's @code{time} package so that the application -can use the realtime clock while tests can use the mock clock.") - (license license:expat))) - (define-public go-github-com-beorn7-perks (package (name "go-github-com-beorn7-perks") @@ -2024,26 +2098,6 @@ based on murmurhash.") 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) @@ -2134,6 +2188,44 @@ 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-boombuler-barcode + (package + (name "go-github-com-boombuler-barcode") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/boombuler/barcode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wpk7lkq3m9dq7wfkziinfzli78qpiwd15cxhibnnyl9lkifgp9s")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/boombuler/barcode")) + (home-page "https://github.com/boombuler/barcode") + (synopsis "Barcode creation library for golang") + (description + "This package implements a functionality to generate barcodes. + +Supported Barcode Types: +@itemize +@item 2 of 5 +@item Aztec Code +@item Codabar +@item Code 128 +@item Code 39 +@item Code 93 +@item Datamatrix +@item EAN 13 +@item EAN 8 +@item PDF 417 +@item QR Code +@end itemize") + (license license:expat))) + (define-public go-github-com-bradfitz-gomemcache (package (name "go-github-com-bradfitz-gomemcache") @@ -2490,6 +2582,47 @@ encoding in Go.") over strings.") (license license:expat))) +(define-public go-github-com-chai2010-webp + (package + (name "go-github-com-chai2010-webp") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chai2010/webp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1103iah700q9id04hz37nxbpb25qz13g1ia2r6gdffc3vh2w3riv")) + (modules '((guix build utils))) + ;; FIXME: The project indludes a copy of libwebp + ;; (internal/libwebp-1.5.0) which is availalbe in Guix, find out how to + ;; build it with it's source. + (snippet + #~(begin + ;; Remove files which were auto generated by 'go generate'. + (for-each delete-file + (find-files "." "^z_libwebp_src_.*\\.c$")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/chai2010/webp" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'go-generate + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "generate"))))))) + (propagated-inputs + (list go-golang-org-x-image)) + (home-page "https://github.com/chai2010/webp") + (synopsis "WebP decoder and encoder for Golang") + (description + "Package webp implements a decoder and encoder for +@code{https://en.wikipedia.org/wiki/WebP, WebP} images.") + (license license:bsd-3))) + (define-public go-github-com-charlievieth-fastwalk (package (name "go-github-com-charlievieth-fastwalk") @@ -2647,6 +2780,32 @@ compatible terminals. You can create your own stylesheet or use one of our glamorous default themes.") (license license:expat))) +;; For chezmoi@2.1.0 +(define-public go-github-com-charmbracelet-glamour-0.3 + (hidden-package (package (inherit go-github-com-charmbracelet-glamour) + (name "go-github-com-charmbracelet-glamour") + (version "0.3.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 "0fk7wvn0yvsvhnwz6g4q4qb42r513b66131cgk8ahzs3va6flxk3")))) + (arguments + (list + #:tests? #f + #:import-path "github.com/charmbracelet/glamour")) + (propagated-inputs + (modify-inputs (package-propagated-inputs + go-github-com-charmbracelet-glamour) + (replace "go-github-com-alecthomas-chroma-v2" + go-github-com-alecthomas-chroma) + (append go-github-com-dlclark-regexp2 + go-github-com-olekukonko-tablewriter)))))) + (define-public go-github-com-charmbracelet-harmonica (package (name "go-github-com-charmbracelet-harmonica") @@ -3027,17 +3186,31 @@ levels that works by wrapping the standard @code{log} library.") (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") - "|")) + #~(list "-skip" + (string-join + ;; Tests fail with errors: + ;; - neither debugfs nor tracefs are mounted + ;; - no such file or directory + (list "TestNewEvent" + "TestFSType" + "TestEventID" + "TestSanitizePath" + "TestGetTracefsPath" + ;; Tests failing on i686-linux system. + #$@(if (target-x86?) + '("TestAuxvVDSOMemoryAddress/auxv64le.bin" + "TestUnsafeB.*/.*_with_trailing_padding" + "TestUnsafeB.*/.*_with_interspersed_padding" + "TestUnsafeB.*/.*_between_slice_entries" + "TestUnsafeB.*/.*_between_array_entries") + '()) + ;; Tests failing on ARM systems with error: reading vDSO + ;; ELF: read /proc/self/mem: input/output error. + #$@(if (target-arm?) + '("TestVDSOVersion" + "TestCurrentKernelVersion") + '())) + "|")) ;; XXX: 337 tests failed and 664 passed when "..." is preserved, run ;; some of available tests, figure out how to fix the rests. #:test-subdirs @@ -3619,30 +3792,31 @@ submodules: "This package provides memcache client and server functionality.") (license license:expat))) -(define-public go-github-com-go-md2man +(define-public go-github-com-crackcomm-go-gitignore (package - (name "go-github-com-go-md2man") - (version "2.0.5") + (name "go-github-com-crackcomm-go-gitignore") + (version "0.0.0-20241020182519-7843d2ba8fdf") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/cpuguy83/go-md2man") - (commit (string-append "v" version)))) + (url "https://github.com/crackcomm/go-gitignore") + (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0gqlkv1pv8cpvcj8g77d1hzy5bnp5a3k3xs02iahlr3a65m4azsi")))) + (base32 "0vabnacz1bk2lvln3bjg4i6wj1lsb6pxy55xzkjp8wdhd8gmk47b")))) (build-system go-build-system) (arguments (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") + #:import-path "github.com/crackcomm/go-gitignore")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/crackcomm/go-gitignore") + (synopsis "Gitignore parser for Golang") (description - "Go-md2man is a Go program that converts markdown to roff for the purpose -of building man pages.") + "ignore is a library which returns a new ignorer object which can test +against various paths. This is particularly useful when trying to filter +files based on a .gitignore document.") (license license:expat))) (define-public go-github-com-creack-pty @@ -3724,7 +3898,7 @@ values. It supports almost all kind of types: @code{int/8/16/32/64}, (define-public go-github-com-cskr-pubsub (package (name "go-github-com-cskr-pubsub") - (version "2.0.2") + (version "1.0.2") (source (origin (method git-fetch) @@ -3733,17 +3907,42 @@ values. It supports almost all kind of types: @code{int/8/16/32/64}, (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0iy85nxrfv6hp4i4mnqayjfx4hci7qyycqbaz4fx8wbd15n9ll66")))) + (base32 "0wr8cg5axrlz9xg33r9dqvkp5ix9q8h8c7qw78mj22qprwh3zj9f")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/cskr/pubsub")) + #:import-path "github.com/cskr/pubsub" + #: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 "example_test.go"))))))) (home-page "https://github.com/cskr/pubsub") (synopsis "Simple pubsub package for go") (description "Package @code{pubsub} implements a simple multi-topic pub-sub library.") (license license:bsd-2))) +(define-public go-github-com-cskr-pubsub-v2 + (package + (inherit go-github-com-cskr-pubsub) + (name "go-github-com-cskr-pubsub-v2") + (version "2.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cskr/pubsub") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0iy85nxrfv6hp4i4mnqayjfx4hci7qyycqbaz4fx8wbd15n9ll66")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cskr/pubsub/v2")))) + (define-public go-github-com-cyberdelia-go-metrics-graphite (package ;; No release, see @@ -4064,6 +4263,34 @@ German and Dutch stemmers as sub-packages.") (propagated-inputs (list go-github-com-elliotchance-orderedmap-v2)))) +(define-public go-github-com-delthas-go-libnp + (let ((commit "96674b98150ed492b535d61dde5767dfa2dd14ce") + (revision "1")) + (package + (name "go-github-com-delthas-go-libnp") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/delthas/go-libnp") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1l2p2mpspjaffninxvghjsfywr39cravfbzpxyiq62lfpw43zwaq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/delthas/go-libnp")) + (propagated-inputs + (list go-github-com-godbus-dbus-v5)) + (home-page "https://github.com/delthas/go-libnp") + (synopsis "Tiny library providing information about now-playing media") + (description + "@code{go-libnp} is a tiny cross-platform library for 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") @@ -4799,14 +5026,20 @@ program's running, don't expect consistent results between platforms (arguments (list #:import-path "github.com/elastic/gosigar" - #: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$") - ;; error: open /etc/mtab: no such file or directory. - (("TestFileSystemList") "OffTestFileSystemList")))))))) + #:test-flags + #~(list "-skip" + (string-join + ;; Test fails with error: open /etc/mtab: no such file or + ;; directory. + (list "TestFileSystemList" + ;; Test fails on ARM with error: inetdiag_test.go:61: + ;; protocol not supported. + #$@(if (target-arm?) + '("TestNetlinkInetDiag" + ;; Expect "qemu-aarch64" to match "go(.exe)?" + "TestProcExe") + '())) + "|")))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -5016,6 +5249,45 @@ specified in @url{https://datatracker.ietf.org/doc/html/rfc6350, RFC 6350}.") algorithms in Go.") (license license:bsd-2))) +(define-public go-github-com-envoyproxy-protoc-gen-validate + (package + (name "go-github-com-envoyproxy-protoc-gen-validate") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bufbuild/protoc-gen-validate") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yd77gnsn9bbiihbkdyn9klwbv314l6ar83z4kivpn9mr93xysch")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/envoyproxy/protoc-gen-validate/tests + (delete-file-recursively "tests"))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/envoyproxy/protoc-gen-validate")) + (propagated-inputs + (list go-github-com-iancoleman-strcase + go-github-com-lyft-protoc-gen-star-v2-next + go-golang-org-x-net + go-google-golang-org-protobuf)) + (home-page "https://github.com/envoyproxy/protoc-gen-validate") + (synopsis "Protocol Buffer Validation for Go, Java, Python, and C++") + (description + "PGV is a protoc plugin to generate polyglot message validators. While +protocol buffers effectively guarantee the types of structured data, they +cannot enforce semantic rules for values. This plugin adds support to +protoc-generated code to validate such constraints.") + (license license:asl2.0))) + (define-public go-github-com-erikgeiser-coninput (package (name "go-github-com-erikgeiser-coninput") @@ -5330,6 +5602,30 @@ with Go structs.") Please vendor the library as it might change in future versions.") (license license:bsd-3))) +(define-public go-github-com-flopp-go-findfont + (package + (name "go-github-com-flopp-go-findfont") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flopp/go-findfont") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05jvs5sw6yid0qr2ld7aw0n1mjp47jxhvbg9lsdig86668i2fj2q")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/flopp/go-findfont")) + (home-page "https://github.com/flopp/go-findfont") + (synopsis "Go font finder library") + (description + "This package provides a platform-agnostic Go library to locate TrueType +font files in your system's user and system font directories.") + (license license:expat))) + ;; 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 @@ -5358,6 +5654,35 @@ quoting, commenting, and escaping.") (home-page "https://github.com/flynn-archive/go-shlex") (license license:asl2.0)))) +;; XXX: This project isn't maintained upstream, consider to find alternative +;; fork, see <https://github.com/fogleman/gg/issues/185> and remove the +;; package when it has no users. +(define-public go-github-com-fogleman-gg + (package + (name "go-github-com-fogleman-gg") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fogleman/gg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; Issue with test flags. + #:import-path "github.com/fogleman/gg")) + (propagated-inputs + (list go-github-com-golang-freetype)) + (home-page "https://github.com/fogleman/gg") + (synopsis "2D rendering in Go") + (description + "@code{gg} is a library for rendering 2D graphics in pure Go.") + (license license:expat))) + (define-public go-github-com-fsnotify-fsnotify (package (name "go-github-com-fsnotify-fsnotify") @@ -5469,6 +5794,67 @@ Differentiation between text and binary files}. @end itemize") (license license:expat))) +(define-public go-github-com-gammazero-chanqueue + (package + (name "go-github-com-gammazero-chanqueue") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gammazero/chanqueue") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kji9blaqbphzrdr9b09c1lfm4vzj94m2ygwganw62byqg4hwy26")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gammazero/chanqueue")) + (native-inputs + (list go-go-uber-org-goleak)) + (propagated-inputs + (list go-github-com-gammazero-deque)) + (home-page "https://github.com/gammazero/chanqueue") + (synopsis "Buffered channel with unlimited capacity queue") + (description + "Package chanqueue implements a queue that uses channels for input and +output to provide concurrent access to a re-sizable queue. This allows the +queue to be used like a channel. Closing the input channel closes the output +channel when all queued items are read, consistent with channel behavior. In +other words chanqueue is a dynamically buffered channel with up to infinite +capacity.") + (license license:expat))) + +(define-public go-github-com-gammazero-deque + (package + (name "go-github-com-gammazero-deque") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gammazero/deque") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "017xy7cw5yzmfjixwx5bglcxhg9gyyrqjilqzvq3mrh2760idp1a")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gammazero/deque")) + (home-page "https://github.com/gammazero/deque") + (synopsis "Fast ring-buffer double-ended queue") + (description + "Package deque provides a fast ring-buffer deque (double-ended queue) +implementation for Golang. + +It generalizes a queue and a stack, to efficiently add and remove items at +either end with O(1) performance. Queue (FIFO) operations are supported using +@code{PushBack} and @code{PopFront}. Stack (LIFO) operations are supported +using @code{PushBack} and @code{PopBack}.") + (license license:expat))) + (define-public go-github-com-gdamore-encoding (package (name "go-github-com-gdamore-encoding") @@ -5548,26 +5934,29 @@ also favors portability, and includes support for all POSIX systems.") (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-gdey-errors + (package + (name "go-github-com-gdey-errors") + (version "0.0.0-20190426172550-8ebd5bc891fb") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdey/errors") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mg33xckg5i529jnv6jxvmp36innz0xl5gbkmnww9paak5yvfjb3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gdey/errors")) + (home-page "https://github.com/gdey/errors") + (synopsis "Augmentation of std @code{errors} library") + (description + "This package provides a small error library that augments the errors +library in go standard library.") + (license license:expat))) (define-public go-github-com-gedex-inflector (package @@ -5592,6 +5981,38 @@ also favors portability, and includes support for all POSIX systems.") "Go library that pluralizes and singularizes English nouns.") (license license:bsd-2))) +(define-public go-github-com-ghodss-yaml + (package + (name "go-github-com-ghodss-yaml") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ghodss/yaml") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ghodss/yaml")) + (propagated-inputs + (list go-gopkg-in-yaml-v2)) + (home-page "https://github.com/ghodss/yaml") + (synopsis "YAML marshaling and unmarshaling support for Go") + (description + "This package provides a wrapper around +@url{https://github.com/go-yaml/yaml, go-yaml} designed to enable a better way +of handling YAML when marshaling to and from structs. + +It first converts YAML to JSON using 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 go-yaml.") + (license license:expat))) + (define-public go-github-com-git-lfs-go-netrc (package (name "go-github-com-git-lfs-go-netrc") @@ -5934,6 +6355,33 @@ while callers can implement logging with whatever backend is appropriate.") standard log package.") (license license:asl2.0))) +(define-public go-github-com-go-md2man + (package + (name "go-github-com-go-md2man") + (version "2.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cpuguy83/go-md2man") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gqlkv1pv8cpvcj8g77d1hzy5bnp5a3k3xs02iahlr3a65m4azsi")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #: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-go-playground-locales (package (name "go-github-com-go-playground-locales") @@ -6009,6 +6457,53 @@ professionally translated @end itemize") (license license:expat))) +(define-public go-github-com-go-spatial-proj + (package + (name "go-github-com-go-spatial-proj") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-spatial/proj") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sdjms403rr1smm63p21k95m1dfis06i52y1962jnxidcywzm6i5")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "vendor"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-spatial/proj")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/go-spatial/proj") + (synopsis "Port of PROJ.4 projection library in Golang") + (description + "Proj is a selective and on-going port of the venerable +@url{http://proj4.org/, PROJ.4} project to the Go language. + +This package provides the following subpackages: +@itemize +@item @code{proj} (top-level): the Conversion API +@item @code{proj/cmd/proj}: the simple proj command-line tool +@item @code{proj/core}: the Core API, representing coordinate systems and +conversion operations +@item @code{proj/gie}: a naive implementation of the PROJ.4 gie tool, plus the +full set of PROJ.4 test case files +@item @code{proj/merror}: a little error package +@item @code{proj/mlog}: a little logging package +@item @code{proj/operations}: the actual coordinate operations; these routines +tend to be closest to the original C code +@item @code{proj/support}: misc structs and functions in support of the core +package +@end itemize") + ;; As it's a port of <http://proj4.org/> all licenses are preserved, see + ;; LICENSE.md. + (license (list license:expat license:asl2.0 license:x11)))) + (define-public go-github-com-go-sql-driver-mysql (package (name "go-github-com-go-sql-driver-mysql") @@ -6575,6 +7070,34 @@ This package contains a series of small enhancements and additions.") "Redigo is a Go client for the Redis database.") (license license:asl2.0))) +(define-public go-github-com-google-cadvisor + (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd") + (revision "0")) + (package + (name "go-github-com-google-cadvisor") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/cadvisor") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/cadvisor" + #:test-subdirs #~(list "."))) + (home-page "https://github.com/google/cadvisor") + (synopsis "Analyze resource usage of running containers") + (description + "The package provides @code{cadvisor}, which provides information about +the resource usage and performance characteristics of running containers.") + (license license:asl2.0)))) + (define-public go-github-com-google-gnostic-models (package (name "go-github-com-google-gnostic-models") @@ -6605,6 +7128,43 @@ for working with API description formats supported by lightweight distribution of these models with minimal dependencies.") (license license:asl2.0))) +(define-public go-github-com-google-gops + (package + (name "go-github-com-google-gops") + (version "0.3.28") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gops") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dbnpnvf624mygajxn13qcdh9nx23lr70p3x2y6xaz4jnprkilqw")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/google/gops" + #:phases + #~(modify-phases %standard-phases + ;; mkdir /homeless-shelter: permission denied + (add-before 'check 'set-home + (lambda _ + (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list go-github-com-shirou-gopsutil-v3 + go-github-com-spf13-cobra + go-github-com-xlab-treeprint + go-golang-org-x-sys + go-rsc-io-goversion)) + (home-page "https://github.com/google/gops") + (synopsis "Listing and diagnosing Go processes tool") + (description + "This package implements a functionalit to list currently running Go +processes.") + (license license:bsd-3))) + (define-public go-github-com-google-goterm (package (name "go-github-com-google-goterm") @@ -7207,34 +7767,6 @@ increment versions.") Groupcache.") (license license:mpl2.0))) -(define-public go-github-com-hashicorp-golang-lru-v2 - (package - (inherit go-github-com-hashicorp-golang-lru) - (name "go-github-com-hashicorp-golang-lru-v2") - (version "2.0.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hashicorp/golang-lru") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0lb2ylv2bz6lsqhn6c2hsafjjcx0hsdbah6arhb778g3xbkpgvf3")) - (modules '((guix build utils))) - (snippet - #~(begin - ;; Submodule(s) with their own go.mod files and packed as - ;; separated packages: - ;; - ;; - github.com/hashicorp/golang-lru/arc/v2 - (for-each delete-file-recursively - (list "arc")))))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/hashicorp/golang-lru/v2")))) - (define-public go-github-com-hashicorp-golang-lru-arc-v2 (package (name "go-github-com-hashicorp-golang-lru-arc-v2") @@ -7275,6 +7807,34 @@ cache, computationally it is roughly 2x the cost, and the extra memory overhead is linear with the size of the cache.") (license license:mpl2.0))) +(define-public go-github-com-hashicorp-golang-lru-v2 + (package + (inherit go-github-com-hashicorp-golang-lru) + (name "go-github-com-hashicorp-golang-lru-v2") + (version "2.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/golang-lru") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0lb2ylv2bz6lsqhn6c2hsafjjcx0hsdbah6arhb778g3xbkpgvf3")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodule(s) with their own go.mod files and packed as + ;; separated packages: + ;; + ;; - github.com/hashicorp/golang-lru/arc/v2 + (for-each delete-file-recursively + (list "arc")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/golang-lru/v2")))) + (define-public go-github-com-hashicorp-hcl (package (name "go-github-com-hashicorp-hcl") @@ -7571,34 +8131,6 @@ subsystem in Linux.") 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 - (name "go-github-com-ianlancetaylor-demangle") - (version "0.0.0-20230524184225-eabc099b10ab") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ianlancetaylor/demangle") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1pvlg1adp50hnw8dz7il473xb197ixirg26cy5hj3ngb4qlajwvc")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ianlancetaylor/demangle")) - (home-page "https://github.com/ianlancetaylor/demangle") - (synopsis "Symbol name demangler written in Go") - (description - "This package defines functions that demangle GCC/LLVM C++ and Rust -symbol names. This package recognizes names that were mangled according to -the C++ ABI defined at https://codesourcery.com/cxx-abi/ and the -@url{https://rust-lang.github.io/rfcs/2603-rust-symbol-name-mangling-v0.html,Rust -ABI}.") - (license license:bsd-3))) - (define-public go-github-com-iancoleman-orderedmap (package (name "go-github-com-iancoleman-orderedmap") @@ -7646,6 +8178,34 @@ keep the order that they're added. It can be de/serialized from/to JSON.") "Package strcase converts strings to various cases.") (license license:expat))) +(define-public go-github-com-ianlancetaylor-demangle + ;; No release, see <https://github.com/ianlancetaylor/demangle/issues/21>. + (package + (name "go-github-com-ianlancetaylor-demangle") + (version "0.0.0-20230524184225-eabc099b10ab") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ianlancetaylor/demangle") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pvlg1adp50hnw8dz7il473xb197ixirg26cy5hj3ngb4qlajwvc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ianlancetaylor/demangle")) + (home-page "https://github.com/ianlancetaylor/demangle") + (synopsis "Symbol name demangler written in Go") + (description + "This package defines functions that demangle GCC/LLVM C++ and Rust +symbol names. This package recognizes names that were mangled according to +the C++ ABI defined at https://codesourcery.com/cxx-abi/ and the +@url{https://rust-lang.github.io/rfcs/2603-rust-symbol-name-mangling-v0.html,Rust +ABI}.") + (license license:bsd-3))) + (define-public go-github-com-imdario-mergo (hidden-package (package/inherit go-dario-cat-mergo @@ -8425,7 +8985,11 @@ wrapper around @code{crypto/rand}.") (build-system go-build-system) (arguments (list - #:import-path "github.com/jbenet/go-temp-err-catcher")) + #:import-path "github.com/jbenet/go-temp-err-catcher" + #:test-flags + ;; One test fails on ARM with error: tec_test.go:86: time difference is + ;; greater than 0s 71.555µs. + #~(list #$@(if (target-arm?) '("-skip" "TestDoubles") '())))) (home-page "https://github.com/jbenet/go-temp-err-catcher") (synopsis "Error handling helper library") (description "Package @code{temperrcatcher} provides a @code{TempErrCatcher} @@ -8448,7 +9012,22 @@ object, which implements simple error-retrying functionality.") (build-system go-build-system) (arguments (list - #:import-path "github.com/jbenet/goprocess")) + #:import-path "github.com/jbenet/goprocess" + #:test-flags + #~(list "-short" + ;; Tests fail on ARM with error: periodic_test.go:31: time diff + ;; incorrect: 5ms 3.295666ms 15ms. + #$@(if (target-arm?) + '("-skip" (string-join + (list "TestEveryGoSeqParallel" + "TestEverySeq" + "TestTickSeq" + "TestTickSeqNoWait" + "TestTickerGoParallel" + "TestTickerGoSeq" + "TestTickerSeq") + "|")) + '())))) (native-inputs (list go-github-com-jbenet-go-cienv)) (home-page "https://github.com/jbenet/goprocess") @@ -8787,6 +9366,31 @@ https://github.com/bkeepers/dotenv.") interface instead.") (license license:asl2.0))) +(define-public go-github-com-jorropo-jsync + (package + (name "go-github-com-jorropo-jsync") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Jorropo/jsync") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1s1nn6wy6ymvvawyly84y8bx1vl9k46awnvd000q6ndrvgs1clxg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Jorropo/jsync")) + (home-page "https://github.com/Jorropo/jsync") + (synopsis "Synchronisation implementation wrapper for Go std @code{sync}") + (description + "jsync is a package that implements various synchronisation helpers that +are missing from @code{sync}. It does not and will not rely on golinkname to +be portable.") + (license (list license:asl2.0 license:expat)))) + (define-public go-github-com-josharian-intern (package (name "go-github-com-josharian-intern") @@ -9268,6 +9872,69 @@ Goroutine-safe connections) manipulate processes in a safe way.") (license license:expat))) +(define-public go-github-com-kimmachinegun-automemlimit + (package + (name "go-github-com-kimmachinegun-automemlimit") + (version "0.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KimMachineGun/automemlimit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sgm46dhd5yp2fjsmjszbv8fhvw1kip2c6p4qf4856ma0znr49p6")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/KimMachineGun/automemlimit" + #:test-flags + ;; memlimit_linux_test.go:82: SetGoMemLimit() error = failed to set + ;; GOMEMLIMIT: process is not in cgroup, wantErr cgroups is not + ;; supported on this system + #~(list "-skip" "TestSetGoMemLimit/Unavailable") + #: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"))))))) + (propagated-inputs + (list go-github-com-pbnjay-memory)) + (home-page "https://github.com/KimMachineGun/automemlimit") + (synopsis "Automatically set GOMEMLIMIT to match cgroups(7) memory limit") + (description + "Automatically set +@url{https://tip.golang.org/doc/gc-guide#Memory_limit,GOMEMLIMIT} to match +Linux @url{https://man7.org/linux/man-pages/man7/cgroups.7.html,cgroups(7)} +memory limit.") + (license license:expat))) + +(define-public go-github-com-kisielk-sqlstruct + (package + (name "go-github-com-kisielk-sqlstruct") + (version "0.0.0-20210630145711-dae28ed37023") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kisielk/sqlstruct") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kna8qzpf1n5zsfi624xm5k3sssn5cnsw1b23w4l3qa5djy4wylk")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/kisielk/sqlstruct")) + (home-page "https://github.com/kisielk/sqlstruct") + (synopsis "Golang sturcts with std @code{database/sql}") + (description + "Package sqlstruct provides some convenience functions for using structs +with the Go standard library's @code{database/sql} package.") + (license license:expat))) + (define-public go-github-com-klauspost-asmfmt (package (name "go-github-com-klauspost-asmfmt") @@ -9472,6 +10139,33 @@ processing.") @url{https://github.com/charmbracelet/lipgloss, lipgloss} Styles.") (license license:asl2.0))) +(define-public go-github-com-komkom-toml + (package + (name "go-github-com-komkom-toml") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/komkom/toml") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rl44jkfdwzjqp31aif6ywyli6pzl2999wp3807vzxz0yd6chwfw")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/komkom/toml")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pkg-errors)) + (home-page "https://github.com/komkom/toml") + (synopsis "Instream TOML to JSON encoder") + (description + "This package provides a TOML parser and JSON encoder.") + (license license:expat))) + (define-public go-github-com-kortschak-utter (package (name "go-github-com-kortschak-utter") @@ -9496,56 +10190,56 @@ processing.") aid data snapshotting.") (license license:isc))) -(define-public go-github-com-kpango-glg +(define-public go-github-com-kpango-fastime (package - (name "go-github-com-kpango-glg") - (version "1.6.15") + (name "go-github-com-kpango-fastime") + (version "1.1.9") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/kpango/glg") + (url "https://github.com/kpango/fastime") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0k6y8nvj0q8mz362490cmcx15rhcpyx4sf4rv153dgh46acd1phh")))) + (base32 "18f1p5wf0zf73ky0h2hqfa6b6zryf7pq7k2r02if673x7bjlbp9h")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/kpango/glg")) - (propagated-inputs - (list go-github-com-goccy-go-json - go-github-com-kpango-fastime - go-github-com-sirupsen-logrus - go-go-uber-org-zap)) - (home-page "https://github.com/kpango/glg") - (synopsis "Lock-free logging library for Go") + #:import-path "github.com/kpango/fastime")) + (home-page "https://github.com/kpango/fastime") + (synopsis "Fast time function library for Go") (description - "@code{glg} is simple lock-free logging library for Go.") + "@code{fastime} is a time function library for Go with zero memory +allocation. @code{fastime} is returning the approximate time.") (license license:expat))) -(define-public go-github-com-kpango-fastime +(define-public go-github-com-kpango-glg (package - (name "go-github-com-kpango-fastime") - (version "1.1.9") + (name "go-github-com-kpango-glg") + (version "1.6.15") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/kpango/fastime") + (url "https://github.com/kpango/glg") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "18f1p5wf0zf73ky0h2hqfa6b6zryf7pq7k2r02if673x7bjlbp9h")))) + (base32 "0k6y8nvj0q8mz362490cmcx15rhcpyx4sf4rv153dgh46acd1phh")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/kpango/fastime")) - (home-page "https://github.com/kpango/fastime") - (synopsis "Fast time function library for Go") + #:import-path "github.com/kpango/glg")) + (propagated-inputs + (list go-github-com-goccy-go-json + go-github-com-kpango-fastime + go-github-com-sirupsen-logrus + go-go-uber-org-zap)) + (home-page "https://github.com/kpango/glg") + (synopsis "Lock-free logging library for Go") (description - "@code{fastime} is a time function library for Go with zero memory -allocation. @code{fastime} is returning the approximate time.") + "@code{glg} is simple lock-free logging library for Go.") (license license:expat))) (define-public go-github-com-kr-fs @@ -9624,6 +10318,31 @@ allocation. @code{fastime} is returning the approximate time.") (description "This package provides a text formatting functions in Go.") (license license:expat))) +(define-public go-github-com-kylebanks-depth + (package + (name "go-github-com-kylebanks-depth") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KyleBanks/depth") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19gnz1w3ny3dawdhfnfsr17ll11isgk0jmrbfn2hsa6yqzc7jd3k")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/KyleBanks/depth" + #:test-subdirs #~(list "."))) + (home-page "https://github.com/KyleBanks/depth") + (synopsis "Visualize Golang Dependency Trees") + (description + "Package depth provides an ability to traverse and retrieve Go source +code dependencies in the form of internal and external packages.") + (license license:expat))) + (define-public go-github-com-kylelemons-godebug (package (name "go-github-com-kylelemons-godebug") @@ -10237,6 +10956,25 @@ optionally preserving color.") generation.") (license license:asl2.0))) +(define-public go-github-com-lyft-protoc-gen-star-v2-next + ;; The latest (2.0.3) version lacks some fixes, this variant points to the + ;; latest commit on master branch. + (let ((commit "496ad1ac90a4573d8b89f09e6ef5f8e25dd4adb8") + (revision "0")) + (package + (inherit go-github-com-lyft-protoc-gen-star-v2) + (name "go-github-com-lyft-protoc-gen-star-v2") + (version (git-version "2.0.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lyft/protoc-gen-star") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jdgzaq3r1bs12f0a0y84vnrc01m9xzvsk55cvcfspkv14pscqjy"))))))) + (define-public go-github-com-magiconair-properties (package (name "go-github-com-magiconair-properties") @@ -10607,6 +11345,28 @@ string.") the @code{cpan} module @code{Parse::CommandLine}.") (license license:expat))) +;; For fzf@0.60.2 +(define-public go-github-com-junegunn-go-shellwords + (let ((commit "2aa3b3277741a6ad31883f223d770221a85e9dd0") + (revision "0")) + (hidden-package (package (inherit go-github-com-mattn-go-shellwords) + (name "go-github-com-junegunn-go-shellwords") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/junegunn/go-shellwords") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x51lwmkf9bbn28f5682idkph70lk6xzh0w46diq6c7a9rw27b5b")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-mattn-go-shellwords) + ((#:import-path _) "github.com/junegunn/go-shellwords"))))))) + (define-public go-github-com-mattn-go-sixel (package (name "go-github-com-mattn-go-sixel") @@ -11507,6 +12267,52 @@ output, without you having to deal with all kinds of weird ANSI escape sequences and color conversions.") (license license:expat))) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "0")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/mufti1/interconv")) + (home-page "https://github.com/mufti1/interconv") + (synopsis "Data type converter") + (description + "InterConv converts interfaces into any data type. + +Data type that can be converted: +@itemize +@item Int +@item Int8 +@item Int32 +@item Int16 +@item Int64 +@item Float32 +@item Float64 +@item Boolean +@item String +@item Uint +@item Uint8 +@item Uint16 +@item Uint32 +@item Uint64 +@item Uintptr +@end itemize") + (license license:expat)))) + (define-public go-github-com-multiformats-go-base32 (package (name "go-github-com-multiformats-go-base32") @@ -11711,7 +12517,7 @@ sunset times from geographical coordinates and a date.") (define-public go-github-com-nats-io-nats-go (package (name "go-github-com-nats-io-nats-go") - (version "1.38.0") + (version "1.39.1") (source (origin (method git-fetch) @@ -11720,7 +12526,7 @@ sunset times from geographical coordinates and a date.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1b21sxzds2x5a8b13hmf5n1pf1bf770ky7q12147gqq7vsw39fa1")))) + (base32 "122y7n1xridlpy8048z0p7bv8192pc5yp9js1sspayi9rrn27z6i")))) (build-system go-build-system) (arguments (list @@ -11843,6 +12649,50 @@ list of sentences.") pretty printed rendering in Golang.") (license license:expat))) +(define-public go-github-com-nlpodyssey-spago + (package + (name "go-github-com-nlpodyssey-spago") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nlpodyssey/spago") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vxc7370a1ssb2p25xmrgxkg3jdrl6srsg3w8x7qiacgfdasn5cn")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/nlpodyssey/spago")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-google-flatbuffers)) + (home-page "https://github.com/nlpodyssey/spago") + (synopsis "ML/NLP library in Golang") + (description + "This package provides is a Machine Learning library written in pure Go +designed to support relevant neural architectures in Natural Language +Processing. + +It is self-contained, in that it uses its own lightweight computational +graph both for training and inference, easy to understand from start to +finish. + +It provides: +@itemize +@item automatic differentiation via dynamic define-by-run execution +@item feed-forward layers (Linear, Highway, Convolution...) +@item recurrent layers (LSTM, GRU, BiLSTM...) +@item attention layers (Self-Attention, Multi-Head Attention...) +@item gradient descent optimizers (Adam, RAdam, RMS-Prop, AdaGrad, SGD) +@item gob compatible neural models for serialization +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-nsf-termbox-go (package (name "go-github-com-nsf-termbox-go") @@ -12289,6 +13139,56 @@ composable way such that accurate error can be reasoned about.") @@url{https://rfc-editor.org/rfc/rfc8010.html,RFC 8010}.") (license license:bsd-2))) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zzamnrakjvz9frxscyhrvyz2ikqq2klmynn218jk5dar6mc6xyf")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/OperatorFoundation/monolith-go" + #:test-flags + #~(list "-skip" (string-join + (list "TestEnumeratedItems" + "TestOptional2" + "TestVariableStringsPart") + "|")))) + (propagated-inputs + (list go-github-com-deckarep-golang-set)) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Byte sequences library") + (description + "Monolith-Go is a Go library for working with byte sequences.") + (license license:expat))) + +;; To build bitmask 0.21.11, remove when it's updated. +(define-public go-github-com-operatorfoundation-monolith-go-1.0.4 + (package + (inherit go-github-com-operatorfoundation-monolith-go) + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))))) + (define-public go-github-com-orisano-pixelmatch (package (name "go-github-com-orisano-pixelmatch") @@ -12490,6 +13390,34 @@ programs that use traditional command lines.") #:import-path "github.com/pborman/getopt/v2" #:unpack-path "github.com/pborman/getopt")))) +(define-public go-github-com-pborman-uuid + (package + (name "go-github-com-pborman-uuid") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pborman/uuid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n1ng6396zgm1iggzp43h554wwp32iwr62qqfy0zl4jnk2dg41lv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pborman/uuid")) + (propagated-inputs + (list go-github-com-google-uuid)) + (home-page "https://github.com/pborman/uuid") + (synopsis "Generates and inspects UUIDs") + (description + "The uuid package generates and inspects UUIDs based on +@url{http://tools.ietf.org/html/rfc4122, RFC 4122} and DCE 1.1: Authentication +and Security Services. This package now leverages the github.com/google/uuid +package (which is based off an earlier version of this package).") + (license license:bsd-3))) + (define-public go-github-com-pelletier-go-toml (package (name "go-github-com-pelletier-go-toml") @@ -12553,6 +13481,37 @@ programs that use traditional command lines.") (list go-github-com-stretchr-testify)) (propagated-inputs '()))) +(define-public go-github-com-petar-gollrb + (package + (name "go-github-com-petar-gollrb") + (version "0.0.0-20210522233825-ae3b015fd3e9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/petar/GoLLRB") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k50v8jk7pfwpghmpyr9gk8kpcxns0d8kw113z9wjcr0x8gnyj0n")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/petar/GoLLRB" + #: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"))))))) + (home-page "https://github.com/petar/GoLLRB") + (synopsis "LLRB implementation of balanced binary search trees for Golang") + (description + "@code{GoLLRB} is a Left-Leaning Red-Black (LLRB) implementation of 2-3 +balanced binary search trees in Go Language.") + (license license:bsd-3))) + (define-public go-github-com-peterbourgon-diskv (package (name "go-github-com-peterbourgon-diskv") @@ -12581,6 +13540,38 @@ 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-peterbourgon-ff-v3 + (package + (name "go-github-com-peterbourgon-ff-v3") + (version "3.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/peterbourgon/ff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "162qh3mp7xn4qhw7rgigwmg0r52mflwcr07fig5z3k257h0mclar")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/peterbourgon/ff/v3")) + (propagated-inputs + (list go-github-com-pelletier-go-toml + go-gopkg-in-yaml-v2)) + (home-page "https://github.com/peterbourgon/ff") + (synopsis "Flags-first Golang library for configuration") + (description + "Package ff is a flags-first helper package for configuring programs. + +The basic idea is that @code{myprogram -h} should always show the complete +configuration \"surface area\" of a program. Therefore, every config +parameter should be defined as a flag. This module provides a simple and +robust way to define those flags, and to parse them from command-line +arguments, environment variables, and/or config files.") + (license license:asl2.0))) + (define-public go-github-com-philhofer-fwd (package (name "go-github-com-philhofer-fwd") @@ -12914,6 +13905,47 @@ without configuration, but if desired, everything can be customized down to the smallest detail.") (license license:expat))) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; Fix compatibility with go-1.18+ + (substitute* "statik.go" + (("fmt\\.Println\\(helpText\\)") + "fmt.Print(helpText + \"\\n\")")))))) + (build-system go-build-system) + (arguments + (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-raulk-go-watchdog (package (name "go-github-com-raulk-go-watchdog") @@ -13192,27 +14224,52 @@ strings.") (home-page "https://github.com/rogpeppe/go-internal/") (synopsis "Internal packages from the Go standard library") (description - "This repository factors out an opinionated selection of internal + "This package provides factors out an opinionated selection of internal packages and functionality from the Go standard library. Currently this consists mostly of packages and testing code from within the Go tool implementation. Included are the following: @itemize -@item dirhash: calculate hashes over directory trees the same way that the Go tool does. +@item dirhash: calculate hashes over directory trees the same way that the Go +tool does. @item goproxytest: a GOPROXY implementation designed for test use. @item gotooltest: Use the Go tool inside test scripts (see testscript below) -@item imports: list of known architectures and OSs, and support for reading import import statements. -@item modfile: read and write go.mod files while preserving formatting and comments. +@item imports: list of known architectures and OSs, and support for reading +import import statements. +@item modfile: read and write go.mod files while preserving formatting and +comments. @item module: module paths and versions. @item par: do work in parallel. @item semver: semantic version parsing. @item testenv: information on the current testing environment. @item testscript: script-based testing based on txtar files @item txtar: simple text-based file archives for testing. -@end itemize\n") +@end itemize") (license license:bsd-3))) +;; Breaking chanes and requires go-1.23+ +(define-public go-github-com-rogpeppe-go-internal-1.14 + (package + (inherit go-github-com-rogpeppe-go-internal) + (name "go-github-com-rogpeppe-go-internal") + (version "1.14.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rogpeppe/go-internal") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14g7rmpcd25vjc0cm9issdy7160zy4h6r1wmsdihimc341ff3p78")))) + (arguments + (list + #:skip-build? #t + #:go go-1.23 + #:import-path "github.com/rogpeppe/go-internal" + #:test-flags #~(list "-skip" "TestSimple/cover"))))) + (define-public go-github-com-rs-zerolog (package (name "go-github-com-rs-zerolog") @@ -13289,6 +14346,46 @@ logging.") (arguments (list #:import-path "github.com/russross/blackfriday/v2")))) +(define-public go-github-com-rwcarlsen-goexif + ;; No release or version tag, Golang pseudo version: + ;; 0.0.0-20190401172101-9e8deecbddbd. + (let ((commit "9e8deecbddbd4989a3e8d003684b783412b41e7a") + (revision "0")) + (package + (name "go-github-com-rwcarlsen-goexif") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rwcarlsen/goexif") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1drqhzplg72lvrf3qmb9awbggnjqp23hwn2pgvksi3spv17kc9h2")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/rwcarlsen/goexif")) + (home-page "https://github.com/rwcarlsen/goexif") + (synopsis "Decode embedded EXIF meta data from image files") + (description + "This package provides decoding of basic EXIF and TIFF encoded data. +Functionality is split into packages: +@itemize + +@item @code{exif} - implements decoding of EXIF data as defined in the EXIF +2.2 specification (http://www.exif.org/Exif2-2.PDF) + +@item @code{mknote} - provides makernote parsers that can be used with +@code{goexif/exif} + +@item @code{tiff} - implements TIFF decoding as defined in TIFF 6.0 +specification at http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf + +@end itemize") + (license license:bsd-2)))) (define-public go-github-com-ryanuber-columnize (package @@ -13362,6 +14459,76 @@ logging.") symbols in the style of Sublime Text, VSCode, @code{IntelliJ} IDEA et al.") (license license:expat))) +(define-public go-github-com-samber-lo + (package + (name "go-github-com-samber-lo") + (version "1.49.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/samber/lo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0x82njn075hsb4vax6w7wih5g117chjvsjgzlgq9n1kn5ksi5i64")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/samber/lo")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-text)) + (home-page "https://github.com/samber/lo") + (synopsis "Lodash-style Go library based on Go 1.18+ Generics") + (description + "This package implements a functionality to iterate over slices, maps, +channels etc. and heavily inspired by @url{https://github.com/lodash/lodash, +Lodash}.") + (license license:expat))) + +(define-public go-github-com-sap-go-hdb + (package + (name "go-github-com-sap-go-hdb") + (version "1.13.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SAP/go-hdb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zw37fi0msglsakwynj913zkbj3mfggjhdd5w042khnlm122b129")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/SAP/go-hdb/prometheus + (delete-file-recursively "prometheus"))))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:skip-build? #t + #:import-path "github.com/SAP/go-hdb" + ;; XXX: The most of the tests require access to database, run some + ;; portion of unit tests only. + #:test-subdirs #~(list "driver/internal/..." + "driver/unicode/cesu8"))) + (propagated-inputs + (list go-golang-org-x-crypto + go-golang-org-x-text)) + (home-page "https://github.com/SAP/go-hdb") + (synopsis "SAP HANA Database Client for Golang") + (description + "Go-hdb is a native Go @url{https://en.wikipedia.org/wiki/SAP_HANA, HANA} +database driver for Go's sql package. It implements the SAP HANA SQL command +network protocol.") + (license license:asl2.0))) + (define-public go-github-com-saracen-walker (package (name "go-github-com-saracen-walker") @@ -13548,6 +14715,41 @@ is undetermined, a customizable spinner is shown.") It's typically used for testing responses with larger data bodies.") (license license:expat))) +(define-public go-github-com-sereal-sereal-go-sereal + (package + (name "go-github-com-sereal-sereal-go-sereal") + (version "0.0.0-20241017075749-134ea28a101c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Sereal/Sereal") + (commit (go-version->git-ref version + #:subdir "Go/sereal")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16ig2v82kq3zpi04qvnd4a1swxyadd0pcp3886kq7ag29jq3p1na")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Sereal/Sereal/Go/sereal" + #:unpack-path "github.com/Sereal/Sereal")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-datadog-zstd + go-github-com-davecgh-go-spew + go-github-com-dchest-siphash + go-github-com-dgryski-go-ddmin + go-github-com-golang-snappy + go-github-com-google-go-cmp)) + (home-page "https://github.com/Sereal/Sereal") + (synopsis "Binary serialization and deserialization Golang library") + (description + "Package sereal implements the @code{Sereal}, an efficient, +compact-output,binary and feature-rich serialization protocol.") + (license license:bsd-2))) + (define-public go-github-com-sergi-go-diff (package (name "go-github-com-sergi-go-diff") @@ -13699,6 +14901,39 @@ sensors).") names.") (license license:expat))) +(define-public go-github-com-signintech-gopdf + (package + (name "go-github-com-signintech-gopdf") + (version "0.29.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/signintech/gopdf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0p63g8iqnq5i31v01i7hzzl09hjwi9474my2y1jzs0xfgfcg3mf1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/signintech/gopdf" + #:test-flags + #~(list "-skip" "TestImportPagesFromFile|TestTable|TestTableCenter") + #: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-phpdave11-gofpdi + go-github-com-pkg-errors)) + (home-page "https://github.com/signintech/gopdf") + (synopsis "Generating PDF documents") + (description "gopdf is a Go library for generating PDF documents.") + (license license:expat))) + (define-public go-github-com-sirupsen-logrus (package (name "go-github-com-sirupsen-logrus") @@ -13944,21 +15179,6 @@ converting them to the @code{time.Duration} type.") "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") @@ -14522,6 +15742,31 @@ standard library.") "This package provides XOR bitwise code engine.") (license license:expat))) +(define-public go-github-com-texttheater-golang-levenshtein + (package + (name "go-github-com-texttheater-golang-levenshtein") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/texttheater/golang-levenshtein") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14r17scr7qc7bcc9xidg9g6vb1dnk96ffcclppc53s11k63hrgaq")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/texttheater/golang-levenshtein")) + (home-page "https://github.com/texttheater/golang-levenshtein") + (synopsis "Implementation of the Levenshtein algorithm in Golang") + (description + "This package implements the Levenshtein algorithm in Go, providing edit +distances, edit scripts and ratios for strings (slices of runes).") + (license license:expat))) + (define-public go-github-com-thejerf-suture (package (name "go-github-com-thejerf-suture") @@ -14567,6 +15812,29 @@ environment") (sha256 (base32 "15qi7v2a1kbf70yi3w6y26wbwj0sm8hv9f6xjrb4rl6nv9l8j88c")))))) +(define-public go-github-com-tidwall-cities + (package + (name "go-github-com-tidwall-cities") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tidwall/cities") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h7imqfhn3w9cfv3zaa7k55s53sas9n628amvjh6kzzjii1a0ix3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tidwall/cities")) + (home-page "https://github.com/tidwall/cities") + (synopsis "10,000 Cities with Latitude, Longitude, and Elevation") + (description + "This package provides geographical locations of countries and cities.") + (license license:unlicense))) + (define-public go-github-com-tidwall-gjson (package (name "go-github-com-tidwall-gjson") @@ -14890,29 +16158,11 @@ supports JSON, YAML, TOML, XML and CSV with zero runtime dependencies.") @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 +;; For chezmoi@2.1.0 +(define-public go-github-com-twpayne-go-vfs-v3 (hidden-package (package (inherit go-github-com-twpayne-go-vfs-v5) - (name "go-github-com-twpayne-go-vfs") - (version "1.0.1") + (name "go-github-com-twpayne-go-vfs-v3") + (version "3.0.0") (source (origin (method git-fetch) @@ -14921,42 +16171,15 @@ supports JSON, YAML, TOML, XML and CSV with zero runtime dependencies.") (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) + (base32 "0w7alyd2pdafny4xfi0ybpnhrwwbkb3fk73yjrwjj6h0rysvpxy2")))) (arguments (list - #:import-path "github.com/twpayne/go-xdg/v3")) + #:import-path "github.com/twpayne/go-vfs/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))) + (list go-github-com-stretchr-testify))))) (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 @@ -14975,7 +16198,13 @@ supports JSON, YAML, TOML, XML and CSV with zero runtime dependencies.") (native-inputs (list go-github-com-alecthomas-assert-v2)) (propagated-inputs - (list go-github-com-twpayne-go-vfs-v5)))) + (list go-github-com-twpayne-go-vfs-v5)) + (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-txthinking-runnergroup (package @@ -15163,17 +16392,28 @@ generate mocks from those interfaces.") (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/..."))) + #:test-flags + #~(list "-skip" (string-join + (list "TestCase_To" + "Test_NewReplayService") + "|")) + #:test-subdirs + #~(list "bridge/..." + "cred/..." + ;; Tests fail on i686-linux system: + ;; <...>/conversion_test.go:142:17: cannot use 2323232323223 + ;; (untyped int constant) as int value in argument to aMap.Put + ;; (overflows). + #$@(if (target-64bit?) + '("data/...") + '()) + "format/..." + "sampler/..." + "secret/..." + "ssh/..." + "test/..." + "unsafe/..." + "url/..."))) (native-inputs (list go-github-com-stretchr-testify)) ;; XXX: No go.mod to list dependencies, see @@ -15430,6 +16670,31 @@ programming language.") "This package is a simple Golang implementation of tag parser.") (license license:bsd-2))) +(define-public go-github-com-wadey-gocovmerge + (package + (name "go-github-com-wadey-gocovmerge") + (version "0.0.0-20160331181800-b5bfa59ec0ad") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wadey/gocovmerge") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00m7kxcmmw0l9z0m7z6ii06n5j4bcrxqjbhxjbfzmsdgdsvkic31")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/wadey/gocovmerge")) + (propagated-inputs (list go-golang-org-x-tools)) + (home-page "https://github.com/wadey/gocovmerge") + (synopsis "Merge coverprofile results from multiple go cover runs") + (description + "gocovmerge takes the results from multiple @command{go test -coverprofile} runs and +merges them into one profile.") + (license license:bsd-2))) + (define-public go-github-com-warpfork-go-fsx (package (name "go-github-com-warpfork-go-fsx") @@ -15463,31 +16728,6 @@ like the os package feature you're already familiar with) ;; BSD-3-Clause terms. (license (list license:expat license:asl2.0 license:bsd-3)))) -(define-public go-github-com-wadey-gocovmerge - (package - (name "go-github-com-wadey-gocovmerge") - (version "0.0.0-20160331181800-b5bfa59ec0ad") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wadey/gocovmerge") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "00m7kxcmmw0l9z0m7z6ii06n5j4bcrxqjbhxjbfzmsdgdsvkic31")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/wadey/gocovmerge")) - (propagated-inputs (list go-golang-org-x-tools)) - (home-page "https://github.com/wadey/gocovmerge") - (synopsis "Merge coverprofile results from multiple go cover runs") - (description - "gocovmerge takes the results from multiple @command{go test -coverprofile} runs and -merges them into one profile.") - (license license:bsd-2))) - (define-public go-github-com-whyrusleeping-base32 (package (name "go-github-com-whyrusleeping-base32") @@ -15673,55 +16913,55 @@ edges and self-loops are not permitted. @end itemize") (license license:asl2.0))) -(define-public go-github-com-xaionaro-go-unsafetools +(define-public go-github-com-xaionaro-go-bytesextra (package - (name "go-github-com-xaionaro-go-unsafetools") - (version "0.0.0-20241024014258-a46e1ce3763e") + (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/unsafetools") + (url "https://github.com/xaionaro-go/bytesextra") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "153qlgq5sjg3gsw5v6an0mck8v5pmxf5mnys41ykp97yqp53mgcp")))) + (base32 "1zggis1mdrfnashngg5hc6a6r6glcxzgj87ali7qdi02bnrl8s9i")))) (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") + #: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 package provides function @code{FieldByName} to access to any field -(including private/unexported) of a structure.") + "This package provides @code{io.ReadWriteSeeker} implementation for +@code{[]byte}.") (license license:cc0))) -(define-public go-github-com-xaionaro-go-bytesextra +(define-public go-github-com-xaionaro-go-unsafetools (package - (name "go-github-com-xaionaro-go-bytesextra") - (version "0.0.0-20220103144954-846e454ddea9") + (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/bytesextra") + (url "https://github.com/xaionaro-go/unsafetools") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1zggis1mdrfnashngg5hc6a6r6glcxzgj87ali7qdi02bnrl8s9i")))) + (base32 "153qlgq5sjg3gsw5v6an0mck8v5pmxf5mnys41ykp97yqp53mgcp")))) (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") + #: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 @code{io.ReadWriteSeeker} implementation for -@code{[]byte}.") + "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-gosrc @@ -15934,6 +17174,58 @@ identifiers, a standardized format in the form of a 128 bit number.") detection.") (license license:asl2.0))) +(define-public go-github-com-yargevad-filepathx + (package + (name "go-github-com-yargevad-filepathx") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yargevad/filepathx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fcrzx3h9lxfhqiy85815m65djn64pgfyqrdcr1c0k6axvs49g2s")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/yargevad/filepathx")) + (home-page "https://github.com/yargevad/filepathx") + (synopsis "Double-star support to Golang's std @code{path/filepath}") + (description + "Package filepathx adds double-star globbing support to the Glob function +from the core path/filepath package. You might recognize \"**\" recursive +globs from things like your .gitignore file, and zsh. The \"**\" glob +represents a recursive wildcard matching zero-or-more directory levels deep.") + (license license:expat))) + +(define-public go-github-com-yookoala-realpath + (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8") + (revision "0")) + (package + (name "go-github-com-yookoala-realpath") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yookoala/realpath") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/yookoala/realpath")) + (home-page "https://github.com/yookoala/realpath") + (synopsis "@code{realpath} for Golang") + (description + "This package provides @code{realpath}, a Go module that when provided +with a valid relative path / alias path, it will return you with a string of +its real absolute path in the system.") + (license license:expat)))) + ;; 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 @@ -16062,6 +17354,57 @@ 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-zalando-go-keyring + (package + (name "go-github-com-zalando-go-keyring") + (version "0.2.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zalando/go-keyring") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gavcs0k2wnw0q7zgcdhwca1phqls70wb93j2bdmjlvmrq9na6f4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/zalando/go-keyring" + #: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" "-v" + "-skip" (string-join + ;; Disable tests which require a system + ;; DBus instance. + (list "TestDelete" + "TestDeleteAll" + "TestDeleteAllEmptyService" + "TestDeleteNonExisting" + "TestGet" + "TestGetMultiLine" + "TestGetNonExisting" + "TestGetSingleLineHex" + "TestGetUmlaut" + "TestSet") + "|") + "./...")))))))) + (native-inputs + (list dbus)) + (propagated-inputs + (list go-github-com-godbus-dbus-v5)) + (home-page "https://github.com/zalando/go-keyring/") + (synopsis "Library for working with system keyring") + (description + "@code{go-keyring} is a library for setting, getting and 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") @@ -16356,6 +17699,57 @@ wherever else you need terminal emulation. It's an active fork of @url{https://github.com/james4k/terminal}.") (license license:expat))) +(define-public go-gitlab-com-ambrevar-damerau + (let ((commit "883829e1f25fad54015772ea663e69017cf22352") + (revision "0")) + (package + (name "go-gitlab-com-ambrevar-damerau") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://gitlab.com/ambrevar/damerau") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gitlab.com/ambrevar/damerau")) + (home-page "https://gitlab.com/ambrevar/damerau") + (synopsis "Damerau-Levenshtein distance for Golang") + (description + "This is a spelling corrector implementing the Damerau-Levenshtein +distance. Takes a string value input from the user. Looks for an identical +word on a list of words, if none is found, look for a similar word.") + (license license:expat)))) + +(define-public go-go-abhg-dev-io-ioutil + (package + (name "go-go-abhg-dev-io-ioutil") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abhinav/ioutil-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sckmmpabnv9myccnjjrdr3an8zkzvcpwssx40x2z60kivd4zvv2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.abhg.dev/io/ioutil")) + (home-page "https://go.abhg.dev/io/ioutil") + (synopsis "Extensions for the Golang std @code{io} package") + (description + "Package ioutil contains extensions for the @code{io} package.") + (license license:bsd-3))) + (define-public go-go-abhg-dev-komplete (package (name "go-go-abhg-dev-komplete") @@ -16420,6 +17814,124 @@ for projects that don't require a full database server such as Postgres or MySQL.") (license license:expat))) +(define-public go-go-mau-fi-util + (package + (name "go-go-mau-fi-util") + (version "0.8.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mautrix/go-util") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zzkrbwgbxfppsxjck8qgj4xxzpiq25sx4p3zwjh6s1yz3kfb97p")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mau.fi/util" + ;; dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp + ;; [::1]:58818->[::1]:53: read: connection refused + #:test-flags #~(list "-skip" "TestAdd_Full|TestFullyQualify_Full"))) + (native-inputs + (list go-github-com-data-dog-go-sqlmock + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-mattn-go-sqlite3 + go-github-com-petermattis-goid + go-github-com-rs-zerolog + go-golang-org-x-exp + go-golang-org-x-sys + go-golang-org-x-text + go-google-golang-org-protobuf + go-gopkg-in-yaml-v3)) + (home-page "https://go.mau.fi/util") + (synopsis "Golang utilities used by mautrix-go and bridges") + (description + "This package provides various Go utilities used by mautrix-go, bridges +written in Go, as well as some other related libraries like whatsmeow.") + (license license:mpl2.0))) + +(define-public go-go-mau-fi-webp + (package + (name "go-go-mau-fi-webp") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tulir/webp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g2m162kmnz1d2zpmbgja330q1p9ygdryllfzm71zr7d5pr9fc13")) + (modules '((guix build utils))) + ;; FIXME: The project indludes a copy of libwebp + ;; (internal/libwebp-1.5.0) which is availalbe in Guix, find out how to + ;; build it with it's source. + (snippet + #~(begin + ;; Remove files which were auto generated by 'go generate'. + (for-each delete-file + (find-files "." "^z_libwebp_src_.*\\.c$")) + ;; An Apple user was here (mem). + (for-each delete-file + (find-files "^\\.DS_Store$")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mau.fi/webp" + ;; reader_test.go:34: image: unknown format + #:test-flags #~(list "-skip" "TestDecode") + #: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 "bench")))) + (add-after 'unpack 'go-generate + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "generate"))))))) + (propagated-inputs (list go-golang-org-x-image)) + (home-page "https://go.mau.fi/webp") + (synopsis "WebP decoder and encoder for Golang") + (description + "Package webp implements a decoder and encoder for +@code{https://en.wikipedia.org/wiki/WebP, WebP} images. It's a maintained +fork of @code{github.com/chai2010/webp}.") + (license license:bsd-3))) + +(define-public go-go-mau-fi-zeroconfig + (package + (name "go-go-mau-fi-zeroconfig") + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tulir/zeroconfig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zi5jbrlvsmpiq6ph8mh2360f5chdpy69ykrlmycbm5518wigz2c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mau.fi/zeroconfig")) + (propagated-inputs + (list go-github-com-rs-zerolog + go-github-com-stretchr-testify + go-gopkg-in-natefinch-lumberjack-v2)) + (home-page "https://go.mau.fi/zeroconfig") + (synopsis "Declarative config format for zerolog") + (description + "This package provides a relatively simple declarative config format for +@url{https://github.com/rs/zerolog, zerolog} supporting configuration files +written in YAML or JSON.") + (license license:mpl2.0))) + (define-public go-go-mongodb-org-mongo-driver (package (name "go-go-mongodb-org-mongo-driver") @@ -16692,6 +18204,63 @@ that handle none of the event types.") "@code{multierr} allows combining one or more Go errors together.") (license license:expat))) +(define-public go-go-uber-org-ratelimit + (package + (name "go-go-uber-org-ratelimit") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uber-go/ratelimit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12q3a1k88ifff8rnp3sk1bk730iln0gqmx32966a8w19yrgwrcdj")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - go.uber.org/ratelimit/tools + (delete-file-recursively "tools"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.uber.org/ratelimit" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests are shaky, see + ;; <https://github.com/uber-go/ratelimit/issues/128>. + (list "TestInitial/With_Slack" + "TestDelayedRateLimiter/atomic" + "TestInitial/Without_Slack" + "TestPer/atomic" + "TestSlack/no_option,_defaults_to_10,_with_per/atomic" + "TestSlack/no_option,_defaults_to_10,_with_per/mutex" + "TestSlack/no_option,_defaults_to_10/atomic" + "TestSlack/slack_of_10,_like_default,_with_per/atomic" + "TestSlack/slack_of_10,_like_default/atomic" + "TestSlack/slack_of_150,_with_per/atomic" + "TestSlack/slack_of_150/atomic" + "TestSlack/slack_of_20,_with_per/atomic" + "TestSlack/slack_of_20/atomic") + "|")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-benbjohnson-clock + go-go-uber-org-atomic)) + (home-page "https://github.com/uber-go/ratelimit") + (synopsis "Blocking leaky-bucket rate limit implementation in Golang") + (description + "This package implements the +@url{https://en.wikipedia.org/wiki/Leaky_bucket, leaky-bucket rate limit +algorithm}. It refills the bucket based on the time elapsed between requests +instead of requiring an interval clock to fill the bucket discretely.") + (license license:expat))) + (define-public go-go-uber-org-zap (package (name "go-go-uber-org-zap") @@ -16704,47 +18273,241 @@ that handle none of the event types.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1h3ml2wqmdxwqv0xdfqvf7l4wma5yd0hdfsa6189mmbhkhzn8v3m")))) + (base32 "1h3ml2wqmdxwqv0xdfqvf7l4wma5yd0hdfsa6189mmbhkhzn8v3m")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - go.uber.org/zap/assets + ;; - go.uber.org/zap/benchmarks + ;; - go.uber.org/zap/exp + ;; - go.uber.org/zap/tools + ;; - go.uber.org/zap/zapgrpc/internal/test + (for-each delete-file-recursively + (list "assets" + "benchmarks" + "exp" + "tools" + "zapgrpc/internal/test")))))) (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 - (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")))))))) + ;; Failed to run 'go mod download' + #~(list "-skip" "TestStacktraceFiltersVendorZap"))) (native-inputs (list go-github-com-stretchr-testify go-go-uber-org-goleak)) (propagated-inputs (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") + (home-page "https://github.com/uber-go/zap") + (synopsis "Structured and leveled logging in Golang") + (description + "This package implements a reflection-free, zero-allocation JSON encoder, +and the base Logger strives to avoid serialization overhead and allocations +wherever possible. By building the high-level @code{SugaredLogger} on that +foundation, zap lets users choose when they need to count every allocation and +when they'd prefer a more familiar, loosely typed API.") + (license license:expat))) + +(define-public go-go-uber-org-zap-exp + (package + (name "go-go-uber-org-zap-exp") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uber-go/zap") + (commit (go-version->git-ref version + #:subdir "exp")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05i15278swdmpif3p6g18sy0sn7rnfdl3m2rj5p30cnyb0j29vig")) + (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 "." "exp"))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "go.uber.org/zap/exp" + #:unpack-path "go.uber.org/zap")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-go-uber-org-zap)) + (home-page "https://github.com/uber-go/zap") + (synopsis "Experemental modules for Uber's Zap") (description - "This package provides a library for fast, structured, leveled logging in -Go.") + "This package providies two additional libraries for go.uber.org/zap: + +@itemize +@item @code{zapslog} implements @code{slog.Handler} which writes to the +supplied @code{zapcore.Core} +@item @code{zapfield} implements experimental @code{zap.Field} helpers whose +APIs may be unstable +@end itemize") (license license:expat))) +(define-public go-go4-org + ;; No release or version tag, Golang pseudo version: + ;; 0.0.0-20230225012048-214862532bf5. + (let ((commit "214862532bf518db360e7ecc2b8a94b66a10c176") + (revision "0")) + (package + (name "go-go4-org") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go4org/go4") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cfgb3jjmqmxcb7n46kk4i8pqqda0fhxgs1wqmgicxqj46ny8bpk")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "go4.org" + #:test-subdirs + #~(list "bytereplacer/..." + ;; "cloud/..." ; missing packages + "ctxutil/..." + "errorutil/..." + "fault/..." + "jsonconfig/..." + "legal/..." + "lock/..." + "media/..." + "must/..." + "net/..." + "net/throttle/..." + "oauthutil/..." + "osutil/..." + "readerutil/..." + "reflectutil/..." + "rollsum/..." + "sort/..." + "strutil/..." + "syncutil/..." + "testing/..." + "testing/functest/..." + "types/..." + ;; "wkfs/..." ; missing packages + "writerutil/..." + "xdgdir/...") + #: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 + (find-files "." "example.*_test\\.go$")))))))) + (propagated-inputs + (list ;; go-cloud-google-com-go + ;; go-cloud-google-com-go-storage + go-github-com-rwcarlsen-goexif + go-golang-org-x-net + go-golang-org-x-oauth2 + go-golang-org-x-sys + #; go-google-golang-org-api)) + (home-page "https://github.com/go4org/go4") + (synopsis "Collection of packages for Go programmers") + (description + "This package provides a collection various self sufficient Golang +sub-packages: + +@itemize +@item @code{bytereplacer} - provides a utility for replacing parts of byte +@item @code{ctxutil} - contains golang.org/x/net/context related utilities +@item @code{errorutil} - helps make better error messages +@item @code{fault} - handles fault injection for testing +@item @code{jsonconfig} - defines a helper type for JSON objects to be used +for configuration +@item @code{legal} - provides in-process storage for compiled-in licenses +@item @code{lock} - provides a file locking library +@item @code{media/heif} - reads HEIF containers, as found in Apple HEIC/HEVC +images +@item @code{must} - contains helpers that panic on failure +@item @code{net/throttle} - provides a @code{net.Listener} that returns +artificially-delayed connections for testing real-world connectivity slices +@item @code{oauthutil} - contains OAuth 2 related utilities +@item @code{osutil} - contains os level functions +@item @code{readerutil} - contains @code{io.Reader} types +@item @code{readerutil} - provides and operates on @code{io.Readers} +@item @code{reflectutil} - contains @code{reflect} utilities +@item @code{rollsum} - implements rolling checksums similar to apenwarr's bup, +which is similar to librsync +@item @code{sort} - provides primitives for sorting slices and user-defined +collections +@item @code{strutil} - contains string and byte processing functions +@item @code{syncutil/singleflight} - provides a duplicate function call +suppression mechanism +@item @code{syncutil/syncdebug} - contains facilities for debugging +synchronization problems +@item @code{syncutil} - provides various synchronization utilities +@item @code{testing/functest} - contains utilities to ease writing +table-driven tests for pure functions and method +@item @code{types} - provides various common types +@item @code{wkfs} - implements the pluggable well-known filesystem abstraction +layer +@item @code{writerutil} - contains {io.Writer} types +@item @code{xdgdir} - implements the Free Desktop Base Directory specification +for locating directories +@end itemize") + (license (list license:asl2.0 license:bsd-3))))) + +(define-public go-golang-org-rainycape-unidecode + (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c") + (revision "1")) + (package + (name "go-golang-org-rainycape-unidecode") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rainycape/unidecode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "golang.org/rainycape/unidecode")) + (home-page "https://github.com/rainycape/unidecode") + (synopsis "Unicode transliterator in Golang") + (description + "Unicode transliterator in Golang - Replaces non-ASCII characters with +their ASCII approximations.") + (license license:asl2.0)))) + (define-public go-google-golang-org-appengine (package (name "go-google-golang-org-appengine") @@ -16781,7 +18544,7 @@ Go.") (define-public go-gopkg-in-alecthomas-kingpin-v2 (package - (inherit go-github-com-alecthomas-kingpin) + (inherit go-github-com-alecthomas-kingpin-v2) (name "go-gopkg-in-alecthomas-kingpin-v2") (arguments (list @@ -16929,6 +18692,37 @@ machine readable. It is modeled after the Go standard library's @code{io} and (package-arguments go-github-com-op-go-logging) ((#:import-path _) "gopkg.in/op/go-logging.v1"))))) +(define-public go-gopkg-in-tomb-v1 + (package + (name "go-gopkg-in-tomb-v1") + (version "1.0.0-20141024135613-dd632973f1e7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/tomb.v1") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/tomb.v1" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-test + (lambda* (#:key import-path #:allow-other-keys) + (substitute* (string-append "src/" import-path "/tomb_test.go") + (("t.Fatalf\\(`Killf\\(\"BO%s") + "t.Fatalf(`Killf(\"BO%%s"))))))) + (home-page "https://gopkg.in/tomb.v1") + (synopsis "@code{tomb} handles clean goroutine tracking and termination") + (description + "The @code{tomb} package handles clean goroutine tracking and +termination.") + (license license:bsd-3))) + (define-public go-gopkg-in-vmihailenco-msgpack-v2 (package (name "go-gopkg-in-vmihailenco-msgpack-v2") @@ -17271,6 +19065,32 @@ kubernetes-independent packages supplementing the @url{https://pkg.go.dev/std#stdlib,Go standard libs}.") (license license:asl2.0))) +(define-public go-maunium-net-go-mauflag + (package + (name "go-maunium-net-go-mauflag") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tulir/mauflag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09jv1819jwq5i29y6ngf4j4ii6qwlshydvprfvsfplc419dkz1vx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "maunium.net/go/mauflag")) + (home-page "https://maunium.net/go/mauflag") + (synopsis "Extendable argument parser for Golang") + (description + "This package provides an extendable argument parser for Golang. Mostly +follows the GNU +@@url{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html, +Program Argument Syntax Conventions}.") + (license license:gpl3))) + (define-public go-modernc-org-fileutil (package (name "go-modernc-org-fileutil") @@ -17609,6 +19429,30 @@ 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-rsc-io-goversion + (package + (name "go-rsc-io-goversion") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rsc/goversion") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k5rskhl3653snrfwwv0a9ia3jf52gwkc6p4abj4xb04s23qczcs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "rsc.io/goversion")) + (home-page "https://github.com/rsc/goversion") + (synopsis "Print version used to build Go executables") + (description + "Goversion scans a directory tree and, for every executable it finds, +prints the Go version used to build that executable.") + (license license:bsd-3))) + (define-public go-sigs-k8s-io-json (package (name "go-sigs-k8s-io-json") @@ -18008,6 +19852,24 @@ Jsonnet C++implementation.") (string-append (package-description go-github-com-vburenin-ifacemaker) " This package provides a command line interface (CLI) tool.")))) +(define-public go-md2man + (package/inherit go-github-com-go-md2man + (name "go-md2man") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-go-md2man) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:skip-build? _ #t) #f))) + (native-inputs + (package-propagated-inputs go-github-com-go-md2man)) + (propagated-inputs '()) + (inputs '()) + (description + (string-append (package-description go-github-com-go-md2man) + "\nThis package provides a command line interface (CLI) +tool.")))) + (define-public go-msgio (package (inherit go-github-com-libp2p-go-msgio) @@ -18246,7 +20108,7 @@ tool.")))) (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") + (version "0.18.1") (source (origin (method git-fetch) @@ -18255,7 +20117,7 @@ tool.")))) (commit (go-version->git-ref version #:subdir "gopls")))) (file-name (git-file-name name version)) (sha256 - (base32 "1qksn79nc94fig5bia0l8h7fzm1zbn9rvya25hwf0f18v8a0id9l")))) + (base32 "0s396bjwac1acrlpbp7k7xfyhmkykyxc08w6hirbdhlq8vg923p7")))) (build-system go-build-system) (arguments (list @@ -18281,8 +20143,10 @@ tool.")))) go-github-com-jba-templatecheck go-golang-org-x-mod go-golang-org-x-sync + go-golang-org-x-sys go-golang-org-x-telemetry go-golang-org-x-text + go-golang-org-x-tools go-golang-org-x-vuln go-gopkg-in-yaml-v3 go-honnef-co-go-tools @@ -18307,6 +20171,55 @@ editor.") #:import-path "github.com/client9/misspell/cmd/misspell" #:unpack-path "github.com/client9/misspell")))) +(define-public gops + (package + (inherit go-github-com-google-gops) + (name "gops") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-google-gops) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:skip-build? _ #t) #f))) + (native-inputs (package-propagated-inputs go-github-com-google-gops)) + (propagated-inputs '()) + (inputs '()))) + +(define-public protoc-gen-validate + (package + (inherit go-github-com-envoyproxy-protoc-gen-validate) + (name "protoc-gen-validate") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-envoyproxy-protoc-gen-validate) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:skip-build? _ #t) #f) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (replace 'build + (lambda* (#:key import-path #:allow-other-keys #:rest arguments) + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,cmd))) + (list import-path + (string-append import-path + "/cmd/protoc-gen-validate-cpp") + (string-append import-path + "/cmd/protoc-gen-validate-go") + (string-append import-path + "/cmd/protoc-gen-validate-java"))))))))) + (native-inputs (package-propagated-inputs + go-github-com-envoyproxy-protoc-gen-validate)) + (propagated-inputs '()) + (inputs '()) + (description + (string-append (package-description + go-github-com-envoyproxy-protoc-gen-validate) + "\nThis package provides command line interface (CLI) +tools.")))) + ;;; ;;; 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 791e2db9f9..999e3055f8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,7 +73,6 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) - #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (gnu packages) @@ -81,29 +80,11 @@ #:use-module (gnu packages base) #:use-module ((gnu packages bootstrap) #:select (glibc-dynamic-linker)) #:use-module (gnu packages check) - #:use-module (gnu packages fonts) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) - #:use-module (gnu packages gnupg) - #: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 lua) - #:use-module (gnu packages mail) - #:use-module (gnu packages mp3) - #:use-module (gnu packages password-utils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages pulseaudio) - #:use-module (gnu packages ruby) - #:use-module (gnu packages terminals) - #:use-module (gnu packages textutils) - #:use-module (gnu packages tls) - #:use-module (gnu packages web) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -992,7 +973,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.21) (name "go") - (version "1.22.11") + (version "1.22.12") (source (origin (method git-fetch) @@ -1001,7 +982,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (commit (string-append "go" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gdiyifsp65wlnfqfmnbv6n1rh23jbr13l79xwla3gavm67scx02")))) + (base32 "0f0fr92z3l3szmxf3wvh20w1sqayvd927gawdp5d44cc44pd6c0n")))) (arguments (substitute-keyword-arguments (package-arguments go-1.21) ((#:phases phases) @@ -1028,7 +1009,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.22) (name "go") - (version "1.23.5") + (version "1.23.8") (source (origin (method git-fetch) @@ -1037,7 +1018,25 @@ in the style of communicating sequential processes (@dfn{CSP}).") (commit (string-append "go" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0iffjgsmh4ilc1r30zbidqvxz2dd8k0sml5rzzk1k4wkab0cjw0i")))))) + (base32 "13pvhs00bdhbmi25aaqxc1h3hxlrh7ysiclnywa4hzivbzl40dkh")))))) + +(define-public go-1.24 + (package + (inherit go-1.23) + (name "go") + (version "1.24.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/go") + (commit (string-append "go" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "199yajw3amvspl9k2a75v4jblwr965laqngxbnsi5l3ragp5c1ck")))) + (native-inputs + ;; Go 1.24 and later requires Go 1.22+ as the bootstrap toolchain. + (alist-replace "go" (list go-1.22) (package-native-inputs go-1.23))))) ;; ;; Default Golang version used in guix/build-system/go.scm to build packages. @@ -1086,1224 +1085,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (define-public go-std-1.21 (make-go-std go-1.21)) (define-public go-std-1.22 (make-go-std go-1.22)) (define-public go-std-1.23 (make-go-std go-1.23)) - -(define-public go-0xacab-org-leap-shapeshifter - (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") - (revision "12")) - (package - (name "go-0xacab-org-leap-shapeshifter") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://0xacab.org/leap/shapeshifter") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) - (build-system go-build-system) - (arguments - `(#:import-path "0xacab.org/leap/shapeshifter")) - (propagated-inputs - (list go-github-com-operatorfoundation-obfs4 - go-github-com-operatorfoundation-shapeshifter-transports - go-golang-org-x-net)) - (home-page "https://0xacab.org/leap/shapeshifter") - (synopsis "Shapeshifter Dispatcher Library") - (description "Shapeshifter provides network protocol shapeshifting -technology. The purpose of this technology is to change the characteristics of -network traffic so that it is not identified and subsequently blocked by network -filtering devices.") - (license license:bsd-2)))) - -(define-public go-github-com-operatorfoundation-shapeshifter-transports - (package - (name "go-github-com-operatorfoundation-shapeshifter-transports") - (version "3.0.12") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/OperatorFoundation/shapeshifter-transports") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) - (build-system go-build-system) - (arguments - `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" - #: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/shapeshifter-transports/transports/Dust/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) - (replace 'check - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'check) - `(,@arguments #:import-path ,directory))) - (list - ;;; ERROR: invalid memory address or nil pointer dereference. - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" - ;;; ERROR: failed with status 1. - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" - ;;; ERROR: bind: permission denied. - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")))) - ;;; ERROR: failed with status 1. - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" - ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) - (replace 'install - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'install) - `(,@arguments #:import-path ,directory))) - (list - "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" - "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" - "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))))) - (native-inputs - (list go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-aead-chacha20 - go-github-com-blanu-dust - go-github-com-deckarep-golang-set - go-github-com-kataras-golog - go-github-com-mufti1-interconv - go-github-com-opentracing-opentracing-go - go-github-com-operatorfoundation-monolith-go-1.0.4 - go-github-com-operatorfoundation-obfs4 - go-github-com-operatorfoundation-shapeshifter-ipc - go-github-com-shadowsocks-go-shadowsocks2 - go-golang-org-x-crypto - go-golang-org-x-net - go-torproject-org-pluggable-transports-goptlib)) - (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") - (synopsis "Go implementation of Pluggable Transports") - (description "Shapeshifter-Transports is a set of Pluggable Transports -implementing the Go API from the Pluggable Transports 2.0 specification. -Each transport implements a different method of shapeshifting network traffic. -The goal is for application traffic to be sent over the network in a shapeshifted -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-mufti1-interconv - (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") - (revision "0")) - (package - (name "go-github-com-mufti1-interconv") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/mufti1/interconv") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) - (build-system go-build-system) - (arguments - `(#:unpack-path "github.com/mufti1/interconv" - #:import-path "github.com/mufti1/interconv/package")) - (home-page "https://github.com/mufti1/interconv") - (synopsis "Data type converter") - (description "InterConv converts interfaces into any data type.") - (license license:expat)))) - -(define-public go-github-com-operatorfoundation-monolith-go - (package - (name "go-github-com-operatorfoundation-monolith-go") - (version "1.0.10") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/OperatorFoundation/monolith-go") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zzamnrakjvz9frxscyhrvyz2ikqq2klmynn218jk5dar6mc6xyf")))) - (build-system go-build-system) - (arguments - `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. - #:unpack-path "github.com/OperatorFoundation/monolith-go" - #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) - (propagated-inputs - (list go-github-com-deckarep-golang-set)) - (home-page "https://github.com/OperatorFoundation/monolith-go") - (synopsis "Byte sequences library") - (description "Monolith-Go is a Go library for working with byte sequences.") - (license license:expat))) - -;; To build bitmask 0.21.11, remove when it's updated. -(define-public go-github-com-operatorfoundation-monolith-go-1.0.4 - (package - (inherit go-github-com-operatorfoundation-monolith-go) - (name "go-github-com-operatorfoundation-monolith-go") - (version "1.0.4") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/OperatorFoundation/monolith-go") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))))) - -(define-public go-github-com-blanu-dust - (package - (name "go-github-com-blanu-dust") - (version "1.0.1") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/blanu/Dust") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) - (build-system go-build-system) - (arguments - `(#:unpack-path "github.com/blanu/Dust" - #: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/blanu/Dust/go/buf" - "github.com/blanu/Dust/go/dist" - "github.com/blanu/Dust/go/huffman" - "github.com/blanu/Dust/go/model1" - "github.com/blanu/Dust/go/prim1" - "github.com/blanu/Dust/go/proc" - "github.com/blanu/Dust/go/sillyHex" - "github.com/blanu/Dust/go/skein" - "github.com/blanu/Dust/go/v2/Dust2_proxy" - "github.com/blanu/Dust/go/v2/Dust2_tool" - "github.com/blanu/Dust/go/v2/crypting" - "github.com/blanu/Dust/go/v2/interface" - "github.com/blanu/Dust/go/v2/shaping")))) - (replace 'check - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'check) - `(,@arguments #:import-path ,directory))) - (list - "github.com/blanu/Dust/go/buf" - "github.com/blanu/Dust/go/dist" - ;; Repository is missing test files directory. - ;;"github.com/blanu/Dust/go/huffman" - "github.com/blanu/Dust/go/model1" - "github.com/blanu/Dust/go/prim1" - "github.com/blanu/Dust/go/proc" - "github.com/blanu/Dust/go/sillyHex" - "github.com/blanu/Dust/go/skein" - "github.com/blanu/Dust/go/v2/Dust2_proxy" - "github.com/blanu/Dust/go/v2/Dust2_tool" - "github.com/blanu/Dust/go/v2/crypting" - "github.com/blanu/Dust/go/v2/interface" - "github.com/blanu/Dust/go/v2/shaping")))) - (replace 'install - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'install) - `(,@arguments #:import-path ,directory))) - (list - "github.com/blanu/Dust/go/buf" - "github.com/blanu/Dust/go/dist" - "github.com/blanu/Dust/go/huffman" - "github.com/blanu/Dust/go/model1" - "github.com/blanu/Dust/go/prim1" - "github.com/blanu/Dust/go/proc" - "github.com/blanu/Dust/go/sillyHex" - "github.com/blanu/Dust/go/skein" - "github.com/blanu/Dust/go/v2/Dust2_proxy" - "github.com/blanu/Dust/go/v2/Dust2_tool" - "github.com/blanu/Dust/go/v2/crypting" - "github.com/blanu/Dust/go/v2/interface" - "github.com/blanu/Dust/go/v2/shaping"))))))) - (propagated-inputs - (list go-github-com-operatorfoundation-ed25519 - go-github-com-op-go-logging go-golang-org-x-crypto)) - (home-page "https://github.com/blanu/Dust") - (synopsis "Censorship-resistant internet transport protocol") - (description "Dust is an Internet protocol designed to resist a number of -attacks currently in active use to censor Internet communication. While -adherence to the theoretical maxims of cryptographic security is observed where -possible, the focus of Dust is on real solutions to real attacks.") - (license - (list - ;; Skein. - license:bsd-2 - ;; Others. - license:expat)))) - -(define-public go-github-com-operatorfoundation-shapeshifter-ipc - (package - (name "go-github-com-operatorfoundation-shapeshifter-ipc") - (version "2.0.0") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/OperatorFoundation/shapeshifter-ipc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) - (build-system go-build-system) - (arguments - `(#:tests? #f ; ERROR: undefined: Args. - #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" - #: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/shapeshifter-ipc/v2" - "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) - (replace 'check - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'check) - `(,@arguments #:import-path ,directory))) - (list - "github.com/OperatorFoundation/shapeshifter-ipc/v2" - "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) - (replace 'install - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'install) - `(,@arguments #:import-path ,directory))) - (list - "github.com/OperatorFoundation/shapeshifter-ipc/v2" - "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))))) - (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") - (synopsis "Go implementation of the Pluggable Transports IPC protocol") - (description "Shapeshifter-IPC is a library for Go implementing the IPC -protocol from the Pluggable Transports 2.0 specification.") - (license license:expat))) - -(define-public go-github-com-operatorfoundation-obfs4 - (package - (name "go-github-com-operatorfoundation-obfs4") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/OperatorFoundation/obfs4") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) - (build-system go-build-system) - (arguments - (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 - go-github-com-willscott-goturn - go-golang-org-x-crypto - go-golang-org-x-net - go-torproject-org-pluggable-transports-goptlib)) - (home-page "https://github.com/OperatorFoundation/obfs4") - (synopsis "Network obfourscator to scramble network traffic") - (description "Obfs4 is a look-like nothing obfuscation protocol that -incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. -The notable differences between ScrambleSuit and obfs4 are: -@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:bsd-2))) - -(define-public go-github-com-willscott-goturn - (package - (name "go-github-com-willscott-goturn") - (version "0.0.0-20170802220503-19f41278d0c9") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/willscott/goturn") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) - (build-system go-build-system) - (arguments - `(#: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))) - -(define-public go-github-com-flopp-go-findfont - (package - (name "go-github-com-flopp-go-findfont") - (version "0.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flopp/go-findfont") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05jvs5sw6yid0qr2ld7aw0n1mjp47jxhvbg9lsdig86668i2fj2q")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/flopp/go-findfont")) - (home-page "https://github.com/flopp/go-findfont") - (synopsis "Go font finder library") - (description - "This package provides a platform-agnostic Go library to locate -TrueType font files in your system's user and system font directories.") - (license license:expat))) - -(define-public go-github-com-signintech-gopdf - (package - (name "go-github-com-signintech-gopdf") - (version "0.22.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/signintech/gopdf") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1h6cslvid5v8fiymydj4irrzi8f91knsx8rgbzp2b8favclhwxxg")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/signintech/gopdf" - #: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-pkg-errors - go-github-com-phpdave11-gofpdi)) - (home-page "https://github.com/signintech/gopdf") - (synopsis "Generating PDF documents") - (description "gopdf is a Go library for generating PDF documents.") - (license license:expat))) - -(define-public go-github-com-wraparound-wrap - (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")))) - (build-system go-build-system) - (arguments - (list - #:install-source? #f - #:import-path "github.com/Wraparound/wrap/cmd/wrap" - #:unpack-path "github.com/Wraparound/wrap" - #:phases - #~(modify-phases %standard-phases - (add-after 'install 'wrap-fonts - (lambda* (#:key inputs outputs #:allow-other-keys) - (for-each - (lambda (program) - (wrap-program program - `("XDG_DATA_DIRS" suffix - ,(map dirname - (search-path-as-list '("share/fonts") - (map cdr inputs)))))) - (find-files (string-append (assoc-ref outputs "out") - "/bin")))))))) - (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 -standard Fountain, but also has some custom syntax extensions such as -translated keywords and acts.") - (license license:gpl3))) - -(define-public lyrebird - (package - (name "lyrebird") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird") - (commit (string-append "lyrebird-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1qk7npkj0a3a28rp38whl1jwjr0z0hdcsq5bgm8bl1fk9g6cqbnp")))) - (build-system go-build-system) - (arguments - (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)) - (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-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") - (revision "0")) - (package - (name "go-github-com-apparentlymart-go-openvpn-mgmt") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/apparentlymart/go-openvpn-mgmt") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) - (build-system go-build-system) - (arguments - `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" - #: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/apparentlymart/go-openvpn-mgmt/demux" - "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) - (replace 'check - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'check) - `(,@arguments #:import-path ,directory))) - (list - "github.com/apparentlymart/go-openvpn-mgmt/demux" - "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) - (replace 'install - (lambda arguments - (for-each - (lambda (directory) - (apply (assoc-ref %standard-phases 'install) - `(,@arguments #:import-path ,directory))) - (list - "github.com/apparentlymart/go-openvpn-mgmt/demux" - "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))))) - (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") - (synopsis "Go client library for OpenVPN's management protocol") - (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN -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-rakyll-statik - (package - (name "go-github-com-rakyll-statik") - (version "0.1.7") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/rakyll/statik") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")) - (snippet - #~(begin - (use-modules (guix build utils)) - ;; Fix compatibility with go-1.18+ - (substitute* "statik.go" - (("fmt\\.Println\\(helpText\\)") - "fmt.Print(helpText + \"\\n\")")))))) - (build-system go-build-system) - (arguments - (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-gopkg.in-tomb.v2 - (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c") - (revision "0")) - (package - (name "go-gopkg.in-tomb.v2") - (version (string-append "0.0.0-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/go-tomb/tomb") - (commit commit))) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10")))) - (build-system go-build-system) - (arguments - '(#:import-path "gopkg.in/tomb.v2" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda _ - ;; Add a missing % to fix the compilation of this test - (substitute* "src/gopkg.in/tomb.v2/tomb_test.go" - (("t.Fatalf\\(`Killf\\(\"BO%s") - "t.Fatalf(`Killf(\"BO%%s")) - #t))))) - (synopsis "@code{tomb} handles clean goroutine tracking and termination") - (description - "The @code{tomb} package handles clean goroutine tracking and -termination.") - (home-page "https://gopkg.in/tomb.v2") - (license license:bsd-3)))) - -(define-public go-gopkg-in-tomb-v1 - (package - (inherit go-gopkg.in-tomb.v2) - (name "go-gopkg-in-tomb-v1") - (version "1.0.0-20141024135613-dd632973f1e7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gopkg.in/tomb.v1") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv")))) - (arguments - (list #:import-path "gopkg.in/tomb.v1" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'fix-test - (lambda* (#:key import-path #:allow-other-keys) - (substitute* (string-append "src/" import-path - "/tomb_test.go") - (("t.Fatalf\\(`Killf\\(\"BO%s") - "t.Fatalf(`Killf(\"BO%%s"))))))) - (home-page "https://gopkg.in/tomb.v1"))) - -(define-public go-github-com-google-cadvisor - (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd") - (revision "0")) - (package - (name "go-github-com-google-cadvisor") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/google/cadvisor") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55")))) - (build-system go-build-system) - (arguments - '(#: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 -information about the resource usage and performance characteristics of running -containers.") - (license license:asl2.0)))) - -(define-public go-github-com-aarzilli-golua - (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d") - (revision "0")) - (package - (name "go-github-com-aarzilli-golua") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/aarzilli/golua") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di")))) - (build-system go-build-system) - ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so - ;; when this package required as input for another one, it will have to - ;; be built again. Thus its CGO requirements must be made available in - ;; the environment, that is, they must be propagated. - (propagated-inputs - (list lua)) - (arguments - `(#:unpack-path "github.com/aarzilli/golua" - #:import-path "github.com/aarzilli/golua/lua" - #:phases - (modify-phases %standard-phases - ;; While it's possible to fix the CGO_LDFLAGS with the "-tags" - ;; command line argument, go-1.10+ does not re-use the produced pkg - ;; for dependencies, which means we would need to propagate the - ;; same "-tags" argument to all golua referrers. A substitution is - ;; more convenient here. We also need to propagate the lua - ;; dependency to make it available to referrers. - (add-after 'unpack 'fix-lua-ldflags - (lambda _ - (substitute* "src/github.com/aarzilli/golua/lua/lua.go" - (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3") - "#cgo linux,!llua,!luaa LDFLAGS: -llua"))))))) - (home-page "https://github.com/aarzilli/golua") - (synopsis "Go Bindings for the Lua C API") - (description "This package provides @code{lua}, a Go module that can -run a Lua virtual machine.") - (license license:expat)))) - -(define-public go-gitlab-com-ambrevar-golua-unicode - (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144") - (revision "0")) - (package - (name "go-gitlab-com-ambrevar-golua-unicode") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://gitlab.com/ambrevar/golua") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm")))) - (build-system go-build-system) - (native-inputs - (list lua go-github-com-aarzilli-golua)) - (arguments - `(#:unpack-path "gitlab.com/ambrevar/golua" - #:import-path "gitlab.com/ambrevar/golua/unicode" - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key import-path #:allow-other-keys) - (setenv "USER" "homeless-dude") - (invoke "go" "test" import-path)))))) - (home-page "https://gitlab.com/ambrevar/golua") - (synopsis "Add Unicode support to Golua") - (description "This extension to Arzilli's Golua adds Unicode support to -all functions from the Lua string library. Lua patterns are replaced by Go -regexps. This breaks compatibility with Lua, but Unicode support breaks it -anyways and Go regexps are more powerful.") - (license license:expat)))) - -(define-public go-github-com-yookoala-realpath - (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8") - (revision "0")) - (package - (name "go-github-com-yookoala-realpath") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/yookoala/realpath") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/yookoala/realpath")) - (home-page "https://github.com/yookoala/realpath") - (synopsis "@code{realpath} for Golang") - (description "This package provides @code{realpath}, a Go module that -when provided with a valid relative path / alias path, it will return you with -a string of its real absolute path in the system.") - (license license:expat)))) - -(define-public go-gitlab-com-ambrevar-damerau - (let ((commit "883829e1f25fad54015772ea663e69017cf22352") - (revision "0")) - (package - (name "go-gitlab-com-ambrevar-damerau") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://gitlab.com/ambrevar/damerau") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv")))) - (build-system go-build-system) - (arguments - `(#:import-path "gitlab.com/ambrevar/damerau")) - (home-page "https://gitlab.com/ambrevar/damerau") - (synopsis "Damerau-Levenshtein distance for Golang") - (description "This is a spelling corrector implementing the -Damerau-Levenshtein distance. Takes a string value input from the user. -Looks for an identical word on a list of words, if none is found, look for a -similar word.") - (license license:expat)))) - -(define-public go-github-com-stevedonovan-luar - (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead") - (revision "0")) - (package - (name "go-github-com-stevedonovan-luar") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/stevedonovan/luar") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c")))) - (build-system go-build-system) - (native-inputs - (list go-github-com-aarzilli-golua)) - (arguments - `(#:tests? #f ; Upstream tests are broken. - #:import-path "github.com/stevedonovan/luar")) - (home-page "https://github.com/stevedonovan/luar") - (synopsis "Lua reflection bindings for Go") - (description "Luar is designed to make using Lua from Go more -convenient. Go structs, slices and maps can be automatically converted to Lua -tables and vice-versa. The resulting conversion can either be a copy or a -proxy. In the latter case, any change made to the result will reflect on the -source. - -Any Go function can be made available to Lua scripts, without having to write -C-style wrappers. - -Luar support cyclic structures (lists, etc.). - -User-defined types can be made available to Lua as well: their exported -methods can be called and usual operations such as indexing or arithmetic can -be performed.") - (license license:expat)))) - -(define-public go-github-com-wtolson-go-taglib - (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777") - (revision "0")) - (package - (name "go-github-com-wtolson-go-taglib") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url - "https://github.com/wtolson/go-taglib") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2")))) - (build-system go-build-system) - ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so - ;; when this package required as input for another one, it will have to - ;; be built again. Thus its CGO requirements must be made available in - ;; the environment, that is, they must be propagated. - (propagated-inputs - (list pkg-config taglib)) - (arguments - `(#:import-path "github.com/wtolson/go-taglib" - ;; Tests don't pass "vet" on Go since 1.11. See - ;; https://github.com/wtolson/go-taglib/issues/12. - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key import-path #:allow-other-keys) - (invoke "go" "test" - "-vet=off" - import-path)))))) - (home-page "https://github.com/wtolson/go-taglib") - (synopsis "Go wrapper for taglib") - (description "Go wrapper for taglib") - (license license:unlicense)))) - -(define-public go-golang-org-rainycape-unidecode - (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c") - (revision "1")) - (package - (name "go-golang-org-rainycape-unidecode") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rainycape/unidecode") - (commit commit))) - (file-name (string-append "go-golang-org-rainycape-unidecode-" - version "-checkout")) - (sha256 - (base32 - "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5")))) - (build-system go-build-system) - (arguments - `(#:import-path "golang.org/rainycape/unidecode")) - (home-page "https://github.com/rainycape/unidecode") - (synopsis "Unicode transliterator in Golang") - (description "Unicode transliterator in Golang - Replaces non-ASCII -characters with their ASCII approximations.") - (license license:asl2.0)))) - -(define-public go-github-com-fogleman-gg - (package - (name "go-github-com-fogleman-gg") - (version "1.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fogleman/gg") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n")))) - (build-system go-build-system) - (arguments - `(#:tests? #f ; Issue with test flags. - #:import-path "github.com/fogleman/gg")) - (propagated-inputs - (list go-github-com-golang-freetype)) - (home-page "https://github.com/fogleman/gg") - (synopsis "2D rendering in Go") - (description "@code{gg} is a library for rendering 2D graphics in pure Go.") - (license license:expat))) - -(define-public go-github-com-twpayne-go-vfsafero - (package - (name "go-github-com-twpayne-go-vfsafero") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/twpayne/go-vfsafero") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "18jwxhlrjd06z8xzg9ij0irl4f79jfy5jpwiz6xqlhzb1fja19pw")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/twpayne/go-vfsafero")) - (native-inputs - (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 - "Package @code{vfsafero} provides a compatibility later between -@code{go-github-com-twpayne-go-vfs} and @code{go-github-com-spf13-afero}.") - (license license:expat))) - -(define-public go-github-com-delthas-go-libnp - (let ((commit "0e45ece1f878f202fee2c74801e287804668f677")) - (package - (name "go-github-com-delthas-go-libnp") - (version (git-version "0.0.0" "0" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/delthas/go-libnp") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1hylpvwz3kb8wr00knba6mggjacak2vmqafwysansj0ns038lp8w")))) - (build-system go-build-system) - (arguments `(#:import-path "github.com/delthas/go-libnp")) - (propagated-inputs (list go-github-com-godbus-dbus-v5)) - (home-page "https://github.com/delthas/go-libnp") - (synopsis "Tiny library providing information about now-playing media") - (description "@code{go-libnp} is a tiny cross-platform library for -extracting information about the music/image/video that is Now Playing on the -system.") - (license license:expat)))) - -(define-public go-github-com-zalando-go-keyring - (package - (name "go-github-com-zalando-go-keyring") - (version "0.2.5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zalando/go-keyring") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1p6qlsbj9rmqiwz9ly4c7jmifcx8m45xjhsbdwdvw2jzw5jc2ch1")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/zalando/go-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 tests which require a system DBus instance. - (("TestDelete") "OffTestDelete") - (("TestGet") "OffTestGet") - (("TestSet") "OffTestSet"))))) - (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" "-v" "./...")))))))) - (native-inputs - (list dbus)) - (propagated-inputs - (list go-github-com-godbus-dbus-v5)) - (home-page "https://github.com/zalando/go-keyring/") - (synopsis "Library for working with system keyring") - (description "@code{go-keyring} is a library for setting, getting and -deleting secrets from the system keyring.") - (license license:expat))) - -(define-public go-github-com-akosmarton-papipes - (let ((commit "3c63b4919c769c9c2b2d07e69a98abb0eb47fe64") - (revision "0")) - (package - (name "go-github-com-akosmarton-papipes") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/akosmarton/papipes") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "16p77p3d1v26qd3knxn087jqlad2qm23q8m796cdr66hrdc0gahq")))) - (build-system go-build-system) - (inputs - (list pulseaudio)) - (arguments - `(#:import-path "github.com/akosmarton/papipes" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("src/github.com/akosmarton/papipes/common.go" - "src/github.com/akosmarton/papipes/sink.go" - "src/github.com/akosmarton/papipes/source.go") - (("exec.Command\\(\"pactl\"") - (string-append "exec.Command(\"" - (assoc-ref inputs "pulseaudio") - "/bin/pactl\"")))))))) - (home-page "https://github.com/akosmarton/papipes") - (synopsis "Pulseaudio client library for Go") - (description - "This is a Pulseaudio client library in Golang for creating virtual -sinks and sources.") - (license license:expat)))) - -(define-public go-github-com-mesilliac-pulse-simple - (let ((commit "75ac54e19fdff88f4fbd82f45125134b602230b0") - (revision "0")) - (package - (name "go-github-com-mesilliac-pulse-simple") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mesilliac/pulse-simple") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1awwczsa9yy99p035ckajqfs8m6mab0lz82mzlj1c5cj9lnmwplj")))) - (build-system go-build-system) - (propagated-inputs - (list pkg-config pulseaudio)) - (arguments - (list - #:import-path "github.com/mesilliac/pulse-simple" - #: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/mesilliac/pulse-simple") - (synopsis "Cgo bindings to PulseAudio's Simple API") - (description - "This package provides Cgo bindings to PulseAudio's Simple API, to play -or capture raw audio.") - (license license:expat)))) - -(define-public go-github-com-gsterjov-go-libsecret - (package - (name "go-github-com-gsterjov-go-libsecret") - (version "0.0.0-20161001094733-a6f4afe4910c") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gsterjov/go-libsecret") - (commit (go-version->git-ref version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09zaiadnll83vs22ib89agg7anj0blw5fywvmckxllsgif6ak6v7")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/gsterjov/go-libsecret")) - (propagated-inputs - (list go-github-com-godbus-dbus)) - (home-page "https://github.com/gsterjov/go-libsecret") - (synopsis "Manage secrets via the @code{Secret Service} DBus API") - (description - "This native Go library manages secrets via the freedesktop.org -@code{Secret Service} DBus interface.") - (license license:expat))) +(define-public go-std-1.24 (make-go-std go-1.24)) ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 08bdf39043..6587189e0f 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -64,7 +64,6 @@ #: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-xyz) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) @@ -189,7 +188,7 @@ sets, and tools to deal with register databases.") (map (lambda (target) (apply invoke "make" target make-flags)) '("install.udev" "install.polkit"))))))) - (native-inputs (list go-github-com-go-md2man)) + (native-inputs (list go-md2man)) (supported-systems (lset-difference string=? %supported-systems %hurd-systems)) (home-page "https://gitlab.com/cameronnemo/brillo") diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm index b610e8791e..ed09909251 100644 --- a/gnu/packages/high-availability.scm +++ b/gnu/packages/high-availability.scm @@ -204,7 +204,7 @@ applications.") (define-public nats-server (package (name "nats-server") - (version "2.10.24") + (version "2.10.26") (source (origin (method git-fetch) @@ -213,7 +213,7 @@ applications.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0r1d0l3mmb90956wl97vqlb3cdhax7jkqa95hvx9b380g93a08py")))) + (base32 "0mpmbsq14l1fbyz9wrfks8acbdikpwi25whlxz5w9wn8w7bd5rwc")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/hyperledger.scm b/gnu/packages/hyperledger.scm index 45436da7db..49955f0121 100644 --- a/gnu/packages/hyperledger.scm +++ b/gnu/packages/hyperledger.scm @@ -33,7 +33,6 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages docker) - #:use-module (gnu packages golang) #:use-module (gnu packages logging) #:use-module (gnu packages machine-learning) #:use-module (gnu packages popt) diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index faf982f4d7..bcf74a0356 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-maths) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages prometheus) @@ -118,6 +119,181 @@ JSONMarshal/JSONUnmarshal to store/reload the Bloom filter.") (license (list license:expat ; bbloom.go license:public-domain)))) ; siphash.go +(define-public go-github-com-ipfs-boxo + (package + (name "go-github-com-ipfs-boxo") + (version "0.28.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/boxo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "152g98g4j0pw5az1pc9xdrrzp4qd3cb9xflc98w69migq9il6k68")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packed as + ;; separated packages: + ;; + ;; - github.com/ipfs/boxo/cmd/boxo-migrate + ;; - github.com/ipfs/boxo/cmd/deprecator + ;; - github.com/ipfs/boxo/examples + (for-each delete-file-recursively + (list "cmd" "examples")))))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:skip-build? #t + #:embed-files #~(list "sorted-network-list.bin") + #:test-subdirs #~(list "bitswap/..." + "blockservice/..." + "blockstore/..." + "bootstrap/..." + "chunker/..." + "datastore/..." + "exchange/..." + "fetcher/..." + "files/..." + "filestore/..." + ;; "gateway/..." ; missing packages + "ipld/..." + "ipns/..." + "keystore/..." + "mfs/..." + ;; "namesys/..." ; missing packages + "path/..." + "peering/..." + "pinning/..." + "provider/..." + ;; "routing/..." ; missing packages + "tar/..." + ;; "tracing/..." ; missing packages + "util/..." + "verifcid/...") + #:import-path "github.com/ipfs/boxo")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-alecthomas-units + go-github-com-cespare-xxhash-v2 + go-github-com-crackcomm-go-gitignore + go-github-com-cskr-pubsub + go-github-com-dustin-go-humanize + go-github-com-filecoin-project-go-clock + go-github-com-gabriel-vasile-mimetype + go-github-com-gammazero-chanqueue + go-github-com-gammazero-deque + go-github-com-google-uuid + go-github-com-gorilla-mux + go-github-com-hashicorp-go-multierror + go-github-com-hashicorp-golang-lru-v2 + go-github-com-ipfs-bbloom + go-github-com-ipfs-go-bitfield + go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-cidutil + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-detect-race + go-github-com-ipfs-go-ipfs-delay + go-github-com-ipfs-go-ipfs-redirects-file + go-github-com-ipfs-go-ipld-format + go-github-com-ipfs-go-ipld-legacy + go-github-com-ipfs-go-log-v2 + go-github-com-ipfs-go-metrics-interface + go-github-com-ipfs-go-peertaskqueue + go-github-com-ipfs-go-test + go-github-com-ipfs-go-unixfsnode + go-github-com-ipld-go-car + go-github-com-ipld-go-car-v2 + go-github-com-ipld-go-codec-dagpb + go-github-com-ipld-go-ipld-prime + go-github-com-libp2p-go-buffer-pool + go-github-com-libp2p-go-doh-resolver + go-github-com-libp2p-go-libp2p + ;; go-github-com-libp2p-go-libp2p-kad-dht + go-github-com-libp2p-go-libp2p-record + go-github-com-libp2p-go-libp2p-routing-helpers + go-github-com-libp2p-go-libp2p-testing + go-github-com-libp2p-go-msgio + go-github-com-miekg-dns + go-github-com-mr-tron-base58 + go-github-com-multiformats-go-base32 + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-multiaddr-dns + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash + go-github-com-multiformats-go-multistream + go-github-com-polydawn-refmt + go-github-com-prometheus-client-golang + go-github-com-samber-lo + ;; go-github-com-slok-go-http-metrics + go-github-com-spaolacci-murmur3 + go-github-com-whyrusleeping-base32 + go-github-com-whyrusleeping-chunker + go-go-opencensus-io + go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp + go-go-opentelemetry-io-otel + ;; go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc + ;; go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp + ;; go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace + ;; go-go-opentelemetry-io-otel-exporters-zipkin + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-trace + go-go-uber-org-multierr + go-go-uber-org-zap + go-golang-org-x-exp + go-golang-org-x-oauth2 + go-golang-org-x-sync + go-golang-org-x-sys + go-google-golang-org-protobuf)) + (home-page "https://github.com/ipfs/boxo") + (synopsis "Collection of reference libraries for building IPFS applications") + (description + "This package provides a set of libraries for building IPFS applications +and implementations in Golang. + +Included subpackaged: +@itemize +@item @code{bitswap} - implementation of the bitswap protocol, the data +trading module for ipfs + +@item @code{blockservice} - implements a BlockService interface that +provides a single GetBlock/AddBlock interface that seamlessly retrieves data +either locally or from a remote peer through the exchange + +@item @code{blockstore} - implements a thin wrapper over a datastore, +giving a clean interface for Getting and Putting block objects + +@item @code{datastore/dshelp} - provides utilities for parsing and creating +datastore keys used by go-ipfs + +@item @code{exchange} - defines the IPFS exchange interface + +@item @code{files} - file interfaces and utils used in Golang implementations +of IPFS + +@item @code{filestore} - implements a Blockstore which is able to read certain +blocks of data directly from its original location in the filesystem + +@item @code{ipld/unixfs} - provides additinoal @code{importer}, @code{io}, +@code{mod}, @code{hamt}, @code{archive} and @code{test} packages + +@item @code{ipld/merkledag} - implements the IPFS Merkle DAG data structures + +@item @code{ipns} - reference implementation of the IPNS Record and +Verification specification + +@item @code{mfs} - implements an in memory model of a mutable IPFS filesystem + +@item @code{path} - contains utilities to work with IPFS paths +@end itemize") + (license (list license:expat license:asl2.0)))) + (define-public go-github-com-ipfs-go-bitfield (package (name "go-github-com-ipfs-go-bitfield") @@ -173,6 +349,84 @@ 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-blockservice + (package + (name "go-github-com-ipfs-go-blockservice") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-blockservice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pg6mj0iwlisp0sk9dng9663vvxbcnxjmbb62nkdfaf4dkbs920c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-blockservice" + ;; Mock tests intoruduce cycle with Boxo (go-libipfs), run just a + ;; portion of tests. + #:test-subdirs #~(list "."))) + (propagated-inputs + (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-ipfs-blockstore + go-github-com-ipfs-go-ipfs-blocksutil + go-github-com-ipfs-go-ipfs-delay + go-github-com-ipfs-go-ipfs-exchange-interface + go-github-com-ipfs-go-ipfs-exchange-offline + go-github-com-ipfs-go-ipfs-routing + go-github-com-ipfs-go-ipfs-util + go-github-com-ipfs-go-ipld-format + go-github-com-ipfs-go-log-v2 + go-github-com-ipfs-go-verifcid + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-trace)) + (home-page "https://github.com/ipfs/go-blockservice") + (synopsis "Combines local and remote storage seamlessly") + (description + "Package blockservice implements a @code{BlockService} interface that +provides a single @code{GetBlock/AddBlock} interface that seamlessly retrieves +data either locally or from a remote peer through the exchange.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-ds-dynamodb + (package + (name "go-github-com-ipfs-go-ds-dynamodb") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ds-dynamodb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1z155ajpx52v71hsdjz5950z1w0qmp6c7lsqmsa9qyn7x21g7p0g")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; tests need Docker or local DynamoDB Java app + #:import-path "github.com/ipfs/go-ds-dynamodb")) + (propagated-inputs + (list go-github-com-aws-aws-sdk-go + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-log-v2)) + (home-page "https://github.com/ipfs/go-ds-dynamodb") + (synopsis "DynamoDB datastore implementation") + (description + "This is an implementation of @url{https://github.com/ipfs/go-datastore, +go-datastore} that is backed by @code{DynamoDB}. + +ddbds includes support for optimized prefix queries. When you setup your +table's key schema correctly and register it with ddbds, then incoming queries +that match the schema will be converted into DynamoDB queries instead of table +scans, enabling high performance, ordered, high-cardinality prefix queries.") + (license (list license:expat license:asl2.0)))) + (define-public go-github-com-ipfs-go-ds-flatfs (package (name "go-github-com-ipfs-go-ds-flatfs") @@ -202,6 +456,61 @@ 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-ds-measure + (package + (name "go-github-com-ipfs-go-ds-measure") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ds-measure") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14p3681sb1h81qxkwblngvy72yrd73drcvamgc3v7za734l9f54b")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-ds-measure")) + (propagated-inputs + (list go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-metrics-interface)) + (home-page "https://github.com/ipfs/go-ds-measure") + (synopsis "Datastore implementation that keeps metrics on all calls made") + (description + "Package measure provides a Datastore wrapper that records metrics using +@url{https://github.com/ipfs/go-metrics-interface}.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-fs-lock + (package + (name "go-github-com-ipfs-go-fs-lock") + (version "0.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-fs-lock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zf52cq7j59pwdy4wd8h5gym8ph2big0nma05xwl61wrsyjwsngz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-fs-lock")) + (propagated-inputs + (list go-github-com-ipfs-go-ipfs-util + go-github-com-ipfs-go-log-v2 + go-go4-org + go-golang-org-x-sys)) + (home-page "https://github.com/ipfs/go-fs-lock") + (synopsis "Filesystem based locking") + (description + "This package implements a filesystem based locking.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipfs-blockstore (package (name "go-github-com-ipfs-go-ipfs-blockstore") @@ -326,6 +635,43 @@ used in @code{go-ipfs} and related packages to refer to a typed hunk of data.") with @url{https://github.com/ipld/cid, CIDs}.") (license license:expat))) +(define-public go-github-com-ipfs-go-ipfs-cmds + (package + (name "go-github-com-ipfs-go-ipfs-cmds") + (version "0.14.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipfs-cmds") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0npgcwzxzgvygl9r9h5kbnfl1dh0hygmwk1jj1hwznyvj47x6lwl")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:import-path "github.com/ipfs/go-ipfs-cmds" + #: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-github-com-ipfs-boxo + go-github-com-ipfs-go-log + go-github-com-rs-cors + go-github-com-texttheater-golang-levenshtein + go-golang-org-x-term)) + (home-page "https://github.com/ipfs/go-ipfs-cmds") + (synopsis "IPFS commands package") + (description + "Package cmds helps building both standalone and client-server +applications.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipfs-delay (package (name "go-github-com-ipfs-go-ipfs-delay") @@ -545,6 +891,61 @@ LevelDB backend.") "@code{go-ipfs-exchange-interface} defines the IPFS exchange interface.") (license license:expat))) +(define-public go-github-com-ipfs-go-ipfs-exchange-offline + (package + (name "go-github-com-ipfs-go-ipfs-exchange-offline") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipfs-exchange-offline") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ad28xbqbxc93ckjnlifbk7p58qis7ayfpndav33n6b4sq6s2a0r")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-ipfs-exchange-offline")) + (propagated-inputs + (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-ipfs-blockstore + go-github-com-ipfs-go-ipfs-blocksutil + go-github-com-ipfs-go-ipfs-exchange-interface + go-github-com-ipfs-go-ipfs-util + go-github-com-ipfs-go-ipld-format)) + (home-page "https://github.com/ipfs/go-ipfs-exchange-offline") + (synopsis "Offline IPFS exchange implementation") + (description + "This package implements an object that implements the exchange interface +but returns nil values to every request.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-ipfs-pq + (package + (name "go-github-com-ipfs-go-ipfs-pq") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipfs-pq") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zi177lysf6f2zap9l0yxcw4r2xvjiji1yb1jzdmiif2ahvi0v84")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-ipfs-pq")) + (home-page "https://github.com/ipfs/go-ipfs-pq") + (synopsis "Priority queue used by go-ipfs") + (description "Package pq implements a priority queue.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipfs-redirects-file (package (name "go-github-com-ipfs-go-ipfs-redirects-file") @@ -574,6 +975,48 @@ LevelDB backend.") parsing.") (license license:expat))) +(define-public go-github-com-ipfs-go-ipfs-routing + (package + (name "go-github-com-ipfs-go-ipfs-routing") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipfs-routing") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j5pyp35z0jnqzz7iiknqx3234swqrpqz478ng8al3b6gqaza9ks")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/ipfs/go-ipfs-routing" + ;; One test fails with error: panic: protobuf tag not enough fields in + ;; Record.state. + #:test-flags #~(list "-skip" "TestOfflineRouterStorage"))) + (native-inputs + (list go-github-com-libp2p-go-libp2p-testing)) + (propagated-inputs + (list go-github-com-gogo-protobuf + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-ipfs-delay + go-github-com-ipfs-go-ipfs-ds-help + go-github-com-ipfs-go-ipfs-util + go-github-com-ipfs-go-log + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-record + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-ipfs-routing") + (synopsis "P2P routing implementations used in IPFS") + (description + "This package provides P2P routing implementations for IPFS +development.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipfs-util (package (name "go-github-com-ipfs-go-ipfs-util") @@ -717,20 +1160,202 @@ order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-fore (build-system go-build-system) (arguments (list - #:go go-1.21 #:import-path "github.com/ipfs/go-ipld-legacy")) - (native-inputs (list go-github-com-stretchr-testify)) - (propagated-inputs (list go-github-com-ipfs-go-block-format - go-github-com-ipfs-go-cid - go-github-com-ipfs-go-ipld-format - go-github-com-ipld-go-ipld-prime)) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-ipld-format + go-github-com-ipld-go-ipld-prime)) (home-page "https://github.com/ipfs/go-ipld-legacy") (synopsis "Translation layer for IPLD legacy code") (description - "@code{go-ipld-format} is a translation layer between @code{go-ipld-prime} nodes -and @code{go-ipld-format} legacy interface.") + "@code{go-ipld-format} is a translation layer between +@code{go-ipld-prime} nodes and @code{go-ipld-format} legacy interface.") (license (list license:expat license:asl2.0)))) +(define-public go-github-com-ipfs-go-merkledag + (package + (name "go-github-com-ipfs-go-merkledag") + (version "0.11.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-merkledag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g1hrk2iw7gvk5qyv5avcc2idkc13w8agz6d7390bwjk18bdd5gr")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-merkledag" + #:phases + #~(modify-phases %standard-phases + ;; Tests requireing not packaged "github.com/ipfs/go-bitswap". + (add-before 'check 'remove-failing-test-files + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file "merkledag_test.go"))))))) + (propagated-inputs + (list go-github-com-gogo-protobuf + go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-blockservice + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-ipfs-blockstore + go-github-com-ipfs-go-ipfs-exchange-offline + go-github-com-ipfs-go-ipfs-util + go-github-com-ipfs-go-ipld-format + go-github-com-ipfs-go-ipld-legacy + go-github-com-ipfs-go-log-v2 + go-github-com-ipld-go-codec-dagpb + go-github-com-ipld-go-ipld-prime + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-merkledag") + (synopsis "IPFs merkledag service implementation") + (description + "Package merkledag implements the IPFS Merkle @acronym{Directed Acyclic +Graphs, DAG} data structures as specified in +@url{https://docs.ipfs.tech/concepts/merkle-dag}.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-metrics-prometheus + (package + (name "go-github-com-ipfs-go-metrics-prometheus") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-metrics-prometheus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gyh2g912lrwghs2f5alh42dgwsbbdg1wan5vw8s0a2ni0avsfib")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-metrics-prometheus")) + (propagated-inputs + (list go-github-com-ipfs-go-log-v2 + go-github-com-ipfs-go-metrics-interface + go-github-com-prometheus-client-golang)) + (home-page "https://github.com/ipfs/go-metrics-prometheus") + (synopsis "Prometheus bindings for go-metrics-interface") + (description + "This package provides Prometheus bindings used in IPFS development.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-peertaskqueue + (package + (name "go-github-com-ipfs-go-peertaskqueue") + (version "0.8.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-peertaskqueue") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mz6kj0d23p7hfmcrh8l0khj6gx9f58v2ls5336im6yw4vkzr711")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-peertaskqueue")) + (propagated-inputs + (list go-github-com-filecoin-project-go-clock + go-github-com-ipfs-go-ipfs-pq + go-github-com-libp2p-go-libp2p)) + (home-page "https://github.com/ipfs/go-peertaskqueue") + (synopsis "Prioritized queue of abstract tasks distributed among peers") + ;; Project has nothing in README, see + ;; <https://github.com/ipfs/go-peertaskqueue/issues/1>. + (description + "This package implements a functionality to prioritize queue of abstract +tasks distributed among peers.") + (license (list license:asl2.0 license:expat)))) + +(define-public go-github-com-ipfs-go-test + (package + (name "go-github-com-ipfs-go-test") + (version "0.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-test") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0h2lns6xl874m175l692qwsrwrv7jcx54ncqygjy9l3910ny2dg2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-test")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-libp2p-go-libp2p + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-test") + (synopsis "Testing utilty library for IPFS") + (description + "This package profides a test utility code used across many different +IPFS related projects.") + (license (list license:asl2.0 license:expat)))) + +(define-public go-github-com-ipfs-go-unixfsnode + (package + (name "go-github-com-ipfs-go-unixfsnode") + (version "1.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-unixfsnode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rn4x8f9a1ipwz0rg19ylbyh2s3q81vpnlan9yjscnfxx1r6gdbg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-unixfsnode" + ;; Full test suites requires Box, which introduce cycle. + #:test-subdirs #~(list "."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list ;; go-github-com-ipfs-boxo ; introduce cycle + go-github-com-ipfs-go-bitfield + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-ipld-format + go-github-com-ipfs-go-test + go-github-com-ipld-go-car-v2 + go-github-com-ipld-go-codec-dagpb + go-github-com-ipld-go-ipld-prime + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash + go-github-com-spaolacci-murmur3 + go-google-golang-org-protobuf)) + (home-page "https://github.com/ipfs/go-unixfsnode") + (synopsis "ADL IPLD prime node implementation of protobuf") + (description + "This is an IPLD ADL that provides string based pathing for protobuf +nodes. The top level node behaves like a map where @code{LookupByString} +returns the Hash property on the Link in the protobufs list of Links whos Name +property matches the key. This should enable selector traversals that work +based of paths.") + (license (list license:asl2.0 license:expat)))) + ;; XXX: This repository has been archived by the owner on Jun 20, 2023. It is ;; now read-only. We highly recommend switching to the maintained version at ;; https://github.com/ipfs/boxo/tree/main/verifcid. It's still in use by some @@ -765,6 +1390,197 @@ code prior to it getting merged into @code{go-cid}.") ;; LICENSE-MIT and LICENSE-APACHE. (license (list license:expat license:asl2.0)))) +(define-public go-github-com-ipfs-shipyard-nopfs + (package + (name "go-github-com-ipfs-shipyard-nopfs") + (version "0.0.14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs-shipyard/nopfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qbp7hny0v6n74agh1ym98ndnnr53aq1hd6ybm5q214fah7k23r7")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/ipfs-shipyard/nopfs/ipfs + ;; - github.com/ipfs-shipyard/nopfs/nopfs-kubo-plugin + (for-each delete-file-recursively + (list "ipfs" "nopfs-kubo-plugin")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs-shipyard/nopfs")) + (propagated-inputs + (list go-github-com-fsnotify-fsnotify + go-github-com-ipfs-boxo + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-log-v2 + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash + go-go-uber-org-multierr + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/ipfs-shipyard/nopfs") + (synopsis "Content-blocking-layer capabilities for IPFS") + (description + "Package nopfs implements content blocking for the IPFS stack.") + (license license:asl2.0))) + +(define-public go-github-com-ipfs-shipyard-nopfs-ipfs + (package + (name "go-github-com-ipfs-shipyard-nopfs-ipfs") + (version "0.25.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs-shipyard/nopfs") + (commit (go-version->git-ref version + #:subdir "ipfs")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00lwizzdfdx6kynxddal3all6q9dhwqanpkw0d0vxlwik4nkvxa5")) + (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 "." "ipfs"))))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:embed-files #~(list "sorted-network-list.bin") + #:import-path "github.com/ipfs-shipyard/nopfs/ipfs" + #:unpack-path "github.com/ipfs-shipyard/nopfs")) + (propagated-inputs + (list go-github-com-ipfs-boxo + go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-log-v2 + go-github-com-ipfs-shipyard-nopfs + go-github-com-ipld-go-ipld-prime + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-kad-dht)) + (home-page "https://github.com/ipfs-shipyard/nopfs") + (synopsis "IPFS library helpers and wrappers") + (description + "Package ipfs provides wrapper implementations of key layers in the +go-ipfs stack to enable content-blocking.") + (license license:asl2.0))) + +(define-public go-github-com-ipld-go-car + (package + (name "go-github-com-ipld-go-car") + (version "0.6.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipld/go-car") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c9mmvwwhl86m0jv7cp3xaay7bpp9nzq3by3r75z2hyz341zvb2c")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/ipld/go-car/v2 + (delete-file-recursively "v2") + ;; To reduce cycles + (delete-file-recursively "cmd"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipld/go-car")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-ipld-cbor + go-github-com-ipfs-go-ipld-format + go-github-com-ipfs-go-merkledag + go-github-com-ipld-go-codec-dagpb + go-github-com-ipld-go-ipld-prime + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipld/go-car") + (synopsis "Content addressible archive utility") + (description + "Package car allows inspecting and reading CARv1 files, described at +@url{https://ipld.io/specs/transport/car}.") + ;; This library is dual-licensed under Apache 2.0 and MIT terms. + (license (list license:expat license:asl2.0)))) + +(define-public go-github-com-ipld-go-car-v2 + (package + (inherit go-github-com-ipld-go-car) + (name "go-github-com-ipld-go-car-v2") + (version "2.14.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipld/go-car") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08zkz73r76va2hvrg6gixc0nfdwwsigdncsl9h6b5ibb11zwa0gn")))) + (arguments + (list + ;; Version 2 is part of the same source and located in "v2" directory. + #:import-path "github.com/ipld/go-car/v2" + #:unpack-path "github.com/ipld/go-car" + #:phases + #~(modify-phases %standard-phases + ;; Tests requiring github.com/ipfs/go-unixfsnode and indrodusing + ;; cylcle. + (add-before 'check 'remove-failing-test-files + (lambda* (#:key unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (for-each delete-file + (list "v2/selective_test.go" + "v2/writer_test.go")))))))) + (propagated-inputs + (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-ipld-cbor + go-github-com-ipfs-go-ipld-format + go-github-com-ipld-go-codec-dagpb + go-github-com-ipld-go-ipld-prime + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash + go-github-com-multiformats-go-varint + go-github-com-petar-gollrb + go-github-com-whyrusleeping-cbor + go-golang-org-x-exp)) + (description + "Package car allows inspecting and reading CARv2 files, described at +@url{https://ipld.io/specs/transport/car}."))) + (define-public go-github-com-ipld-go-codec-dagpb (package (name "go-github-com-ipld-go-codec-dagpb") @@ -781,11 +1597,11 @@ code prior to it getting merged into @code{go-cid}.") (build-system go-build-system) (arguments (list - #:go go-1.21 #:import-path "github.com/ipld/go-codec-dagpb")) - (propagated-inputs (list go-github-com-ipfs-go-cid - go-github-com-ipld-go-ipld-prime - go-google-golang-org-protobuf)) + (propagated-inputs + (list go-github-com-ipfs-go-cid + go-github-com-ipld-go-ipld-prime + go-google-golang-org-protobuf)) (home-page "https://github.com/ipld/go-codec-dagpb/") (synopsis "Implementation of the DAG-PB spec for Go") (description @@ -926,7 +1742,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.5") + (version "0.40.0") (source (origin (method git-fetch) @@ -935,7 +1751,7 @@ their levels to be controlled individually.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0fmalwb0g0nykd1v22nm5gmif9mvapshsja8w1ihlm8ahbqq9vb2")) + (base32 "1w9bx5g5c39ik4d7lxrhh1hv6k1mw9hz61l3ipshylf5jc3azc8f")) (modules '((guix build utils))) (snippet #~(begin @@ -948,6 +1764,7 @@ their levels to be controlled individually.") (build-system go-build-system) (arguments (list + #:go go-1.22 #:embed-files #~(list "sorted-network-list.bin") #:import-path "github.com/libp2p/go-libp2p" ;; XXX: Check how to enable the most of the tests, see GitHub Actions @@ -958,7 +1775,7 @@ their levels to be controlled individually.") (add-after 'unpack 'remove-examples (lambda* (#:key import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) - (delete-file-recursively "examples"))))))) + (delete-file-recursively "examples"))))))) (native-inputs (list go-github-com-libp2p-go-libp2p-testing go-github-com-stretchr-testify @@ -987,7 +1804,7 @@ their levels to be controlled individually.") go-github-com-libp2p-go-nat go-github-com-libp2p-go-netroute go-github-com-libp2p-go-reuseport - go-github-com-libp2p-go-yamux-v4 + go-github-com-libp2p-go-yamux-v5 go-github-com-libp2p-zeroconf-v2 go-github-com-marten-seemann-tcp go-github-com-mikioh-tcpinfo @@ -1003,11 +1820,11 @@ their levels to be controlled individually.") go-github-com-multiformats-go-varint go-github-com-pbnjay-memory go-github-com-pion-datachannel - go-github-com-pion-ice-v2 + go-github-com-pion-ice-v4 go-github-com-pion-logging go-github-com-pion-sctp go-github-com-pion-stun - go-github-com-pion-webrtc-v3 + go-github-com-pion-webrtc-v4 go-github-com-prometheus-client-golang go-github-com-prometheus-client-model go-github-com-quic-go-quic-go @@ -1016,7 +1833,6 @@ their levels to be controlled individually.") go-go-uber-org-fx go-go-uber-org-zap go-golang-org-x-crypto - go-golang-org-x-exp go-golang-org-x-sync go-golang-org-x-sys go-golang-org-x-tools @@ -1029,6 +1845,357 @@ their levels to be controlled individually.") @url{https://github.com/libp2p/specs,libp2p}.") (license license:expat))) +;; For kubo@0.32.0 +(define-public go-github-com-libp2p-go-libp2p-0.38 + (hidden-package (package/inherit go-github-com-libp2p-go-libp2p + (name "go-github-com-libp2p-go-libp2p") + (version "0.38.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c88qgkvyvdjsy5bds3ylcikpj00jxhyxnv7alb6x860xm9703xk")))) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-libp2p-go-libp2p) + (replace "go-github-com-libp2p-go-yamux-v5" + go-github-com-libp2p-go-yamux-v4) + (replace "go-github-com-pion-ice-v4" + go-github-com-pion-ice-v2) + (replace "go-github-com-pion-webrtc-v4" + go-github-com-pion-webrtc-v3)))))) + +(define-public go-github-com-libp2p-go-libp2p-gostream + (package + (name "go-github-com-libp2p-go-libp2p-gostream") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-gostream") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zq5vhjj590azc1gwwiyqilf9ifxp8nz4hziz0fxs5ly2xhjj1mw")))) + (build-system go-build-system) + (arguments + (list + ;; XXX: Broken upstream, see + ;; <https://github.com/libp2p/go-libp2p-gostream/issues/90> + #:tests? #f + #:import-path "github.com/libp2p/go-libp2p-gostream" + ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern + ;; sorted-network-list.bin: cannot embed irregular file + ;; sorted-network-list.bin + #:embed-files #~(list "sorted-network-list\\.bin"))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-libp2p-go-libp2p + go-github-com-multiformats-go-multiaddr)) + (home-page "https://github.com/libp2p/go-libp2p-gostream") + (synopsis "Golang @code{net} wrappers for libp2p") + (description + "This package provides a replacement of the standard @code{net} stack in +Go with @url{https://github.com/libp2p/libp2p, LibP2P} streams.") + (license license:expat))) + +(define-public go-github-com-libp2p-go-libp2p-http + (package + (name "go-github-com-libp2p-go-libp2p-http") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-http") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0v65xjj1ljpx9bfwqivgncc6imrykw1dd8m2zvaqiygv0dirzkzn")))) + (build-system go-build-system) + (arguments + (list + ;; XXX: Broken upstream, see + ;; <https://github.com/libp2p/go-libp2p-http/issues/94> + #:tests? #f + #:import-path "github.com/libp2p/go-libp2p-http" + ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern + ;; sorted-network-list.bin: cannot embed irregular file + ;; sorted-network-list.bin + #:embed-files #~(list "sorted-network-list\\.bin"))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-gostream + go-github-com-multiformats-go-multiaddr)) + (home-page "https://github.com/libp2p/go-libp2p-http") + (synopsis "HTTP on top of libp2p") + (description + "Package p2phttp allows to serve HTTP endpoints and make HTTP requests +through @url{https://github.com/libp2p/libp2p, LibP2P} using Go's standard +@code{http} and @code{net} stacks.") + (license license:expat))) + +(define-public go-github-com-libp2p-go-libp2p-kad-dht + (package + (name "go-github-com-libp2p-go-libp2p-kad-dht") + (version "0.29.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-kad-dht") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cmj04sypdky5fc3b50fhz8h1aarg0ngdi15cyfwn6yb98pmfq4z")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:embed-files #~(list "sorted-network-list.bin") + #:import-path "github.com/libp2p/go-libp2p-kad-dht")) + (native-inputs + (list go-github-com-ipfs-go-test + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-google-gopacket + go-github-com-google-uuid + go-github-com-hashicorp-go-multierror + go-github-com-hashicorp-golang-lru + go-github-com-ipfs-boxo + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-detect-race + go-github-com-ipfs-go-log + go-github-com-ipfs-go-log-v2 + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-kbucket + go-github-com-libp2p-go-libp2p-record + go-github-com-libp2p-go-libp2p-routing-helpers + go-github-com-libp2p-go-libp2p-testing + go-github-com-libp2p-go-libp2p-xor + go-github-com-libp2p-go-msgio + go-github-com-libp2p-go-netroute + go-github-com-multiformats-go-base32 + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-multihash + go-github-com-multiformats-go-multistream + go-github-com-whyrusleeping-go-keyspace + go-go-opentelemetry-io-otel + ;; go-go-opentelemetry-io-otel-metric + go-go-opentelemetry-io-otel-trace + go-go-uber-org-multierr + go-go-uber-org-zap + go-gonum-org-v1-gonum + go-google-golang-org-protobuf)) + (home-page "https://github.com/libp2p/go-libp2p-kad-dht") + (synopsis "Kademlia DHT implementation on go-libp2p") + (description + "Package dht implements a distributed hash table that satisfies the IPFS +routing interface as specified in @url{https://github.com/libp2p/specs, +kab-dht}. This DHT is modeled after Kademlia with S/Kademlia modifications.") + (license license:expat))) + +(define-public go-github-com-libp2p-go-libp2p-kbucket + (package + (name "go-github-com-libp2p-go-libp2p-kbucket") + (version "0.6.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-kbucket") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03xla0mhb17lh7syv0x4hvg2i0q1r8d6ym6rmjgf1z3z955znx6l")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t ; cycles with Boxo + #:import-path "github.com/libp2p/go-libp2p-kbucket" + ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern + ;; sorted-network-list.bin: cannot embed irregular file + ;; sorted-network-list.bin + #:embed-files #~(list "sorted-network-list\\.bin") + ;; Run portion of tests to bypath cycle with Boxo. + #:test-subdirs #~(list "peerdiversity/..."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-ipfs-go-log-v2 + go-github-com-libp2p-go-cidranger + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-asn-util + go-github-com-minio-sha256-simd + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/libp2p/go-libp2p-kbucket") + (synopsis "Kbucket implementation for use as a routing table") + (description + "Package kbucket implements a kademlia k-bucket routing table.") + (license license:expat))) + +(define-public go-github-com-libp2p-go-libp2p-pubsub + (package + (name "go-github-com-libp2p-go-libp2p-pubsub") + (version "0.13.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-pubsub") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14afjrgfbmlrnjd5xnl70ff95mbvfxp9n8mx3hrw8069bcpzvm2k")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + ;; TODO: Tests may need some adjustments as they take quite a lot of + ;; time to finish. + #:import-path "github.com/libp2p/go-libp2p-pubsub" + ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern + ;; sorted-network-list.bin: cannot embed irregular file + ;; sorted-network-list.bin + #:embed-files #~(list "sorted-network-list\\.bin"))) + (native-inputs + (list go-github-com-libp2p-go-libp2p-testing + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-benbjohnson-clock + go-github-com-gogo-protobuf + go-github-com-ipfs-go-log-v2 + go-github-com-libp2p-go-buffer-pool + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-msgio + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-varint + go-go-uber-org-zap)) + (home-page "https://github.com/libp2p/go-libp2p-pubsub") + (synopsis "PubSub implementation for go-libp2p") + (description + "This package provides facilities for the Publish/Subscribe pattern of +message propagation, also known as overlay multicast. The implementation +provides topic-based pubsub, with pluggable routing algorithms.") + (license (list license:asl2.0 license:expat)))) + +(define-public go-github-com-libp2p-go-libp2p-pubsub-router + (package + (name "go-github-com-libp2p-go-libp2p-pubsub-router") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-pubsub-router") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01mxb8gi7myidnyfg8yqb445lbwqmgncvh7rcwx6n8av84afplx4")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; XXX: tests hang, check why + #:import-path "github.com/libp2p/go-libp2p-pubsub-router")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-gogo-protobuf + go-github-com-ipfs-go-datastore + go-github-com-ipfs-go-ipfs-ds-help + go-github-com-ipfs-go-log-v2 + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-pubsub + go-github-com-libp2p-go-libp2p-record + go-github-com-libp2p-go-msgio + go-golang-org-x-sync)) + (home-page "https://github.com/libp2p/go-libp2p-pubsub-router") + (synopsis "PubSub libp2p router library") + (description + "This package implements a IPNS over PubSub for @code{libp2p}.") + (license license:expat))) + +(define-public go-github-com-libp2p-go-libp2p-record + (package + (name "go-github-com-libp2p-go-libp2p-record") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-record") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hl3khlsxagypf18cgx0rd2hnlnpg2vhcrn4g7m1xrkimgj57696")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/libp2p/go-libp2p-record")) + (native-inputs + (list go-github-com-ipfs-go-test + go-google-golang-org-protobuf)) + (propagated-inputs + (list go-github-com-libp2p-go-libp2p + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/libp2p/go-libp2p-record") + (synopsis "Signed records for use with routing systems") + (description + "This package implements signed records for use wit IPFS routing +systems.") + (license license:expat))) + +(define-public go-github-com-libp2p-go-libp2p-routing-helpers + (package + (name "go-github-com-libp2p-go-libp2p-routing-helpers") + (version "0.7.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-routing-helpers") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s0gzxfhmvywk4w78j1ga1ha7f948csfyflpxz8la1cp64238f01")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/libp2p/go-libp2p-routing-helpers")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-hashicorp-errwrap + go-github-com-hashicorp-go-multierror + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-log + go-github-com-jorropo-jsync + go-github-com-libp2p-go-libp2p + go-github-com-libp2p-go-libp2p-record + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-multihash + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-trace + go-go-uber-org-multierr)) + (home-page "https://github.com/libp2p/go-libp2p-routing-helpers") + (synopsis + "Collection of helper types for composing different types of routers") + ;; XXX: Project lacks any documentation. + (description + "This package provides a collection of helper types for composing +different types of routers.") + (license license:expat))) + (define-public go-github-com-libp2p-go-libp2p-testing (package (name "go-github-com-libp2p-go-libp2p-testing") @@ -1054,6 +2221,36 @@ their levels to be controlled individually.") "This package provides a testing toolbox for go-libp2p modules.") (license (list license:expat license:asl2.0)))) +(define-public go-github-com-libp2p-go-libp2p-xor + (package + (name "go-github-com-libp2p-go-libp2p-xor") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-xor") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0p4mwz0q0zbj8p1s04hmpy0w0znfxz3b7x28dv7cz0cg6wqvfqvk")))) + (build-system go-build-system) + (arguments + (list + ;; Do not build or test to bypass cycle with Boxo. + #:skip-build? #t + #:tests? #f + #:import-path "github.com/libp2p/go-libp2p-xor")) + (propagated-inputs + (list go-github-com-libp2p-go-libp2p-kbucket)) + (home-page "https://github.com/libp2p/go-libp2p-xor") + (synopsis "Xor Trie implementation for libp2p") + (description + "This package implements XOR tries. An XOR trie is a trie for +equal-length bit strings. XOR tries support efficient set operations, as well +as distance-based operations with respect to the XOR metric.") + (license license:expat))) + (define-public go-github-com-whyrusleeping-cbor-gen (package (name "go-github-com-whyrusleeping-cbor-gen") @@ -1085,31 +2282,38 @@ types.") (define-public kubo (package (name "kubo") - (version "0.31.0") + (version "0.32.0") (source (origin (method url-fetch/tarbomb) (uri (string-append - "https://dist.ipfs.io/kubo/v" version + ;; Permament redirection from <https://ipfs.io>. + "https://dist.ipfs.tech/kubo//v" version "/kubo-source.tar.gz")) (sha256 - (base32 "0271rh54xbwikbllzsjnkjlj29cb2xy5lnhia47qlf2ymvl48kvf")) + (base32 "0la7ndrvi17fhbsss0q5qhl47phni5zqbyr4n5svcznyin58d4g8")) (file-name (string-append name "-" version "-source")) (modules '((guix build utils))) (snippet '(for-each delete-file-recursively ;; TODO: unbundle the rest as well '("vendor/bazil.org" + "vendor/contrib.go.opencensus.io" "vendor/github.com/AndreasBriese" + "vendor/github.com/DataDog" + "vendor/github.com/Jorropo" "vendor/github.com/alecthomas" "vendor/github.com/benbjohnson" "vendor/github.com/beorn7" "vendor/github.com/blang" + "vendor/github.com/caddyserver/certmagic" "vendor/github.com/cenkalti" "vendor/github.com/ceramicnetwork" "vendor/github.com/cespare" "vendor/github.com/cheggaaa" "vendor/github.com/containerd" "vendor/github.com/coreos" + "vendor/github.com/crackcomm" + "vendor/github.com/cskr" "vendor/github.com/davecgh" "vendor/github.com/davidlazar" "vendor/github.com/decred" @@ -1135,6 +2339,7 @@ types.") "vendor/github.com/gorilla" "vendor/github.com/hashicorp" "vendor/github.com/huin" + "vendor/github.com/ipfs/bbloom" "vendor/github.com/ipfs/go-bitfield" "vendor/github.com/ipfs/go-block-format" "vendor/github.com/ipfs/go-cid" @@ -1142,8 +2347,12 @@ types.") "vendor/github.com/ipfs/go-datastore" "vendor/github.com/ipfs/go-detect-race" "vendor/github.com/ipfs/go-ds-badger" + "vendor/github.com/ipfs/go-ds-flatfs" "vendor/github.com/ipfs/go-ds-leveldb" + "vendor/github.com/ipfs/go-ds-measure" + "vendor/github.com/ipfs/go-fs-lock" "vendor/github.com/ipfs/go-ipfs-delay" + "vendor/github.com/ipfs/go-ipfs-ds-help" "vendor/github.com/ipfs/go-ipfs-redirects-file" "vendor/github.com/ipfs/go-ipfs-util" "vendor/github.com/ipfs/go-ipld-cbor" @@ -1152,20 +2361,29 @@ types.") "vendor/github.com/ipfs/go-ipld-legacy" "vendor/github.com/ipfs/go-log" "vendor/github.com/ipfs/go-metrics-interface" + "vendor/github.com/ipfs/go-metrics-prometheus" + "vendor/github.com/ipfs/go-peertaskqueue" + "vendor/github.com/ipfs/go-test" + "vendor/github.com/ipfs/go-unixfsnode" "vendor/github.com/ipfs/go-verifcid" - "vendor/github.com/ipld/go-codec-dagpb" - "vendor/github.com/ipld/go-ipld-prime" + "vendor/github.com/ipld" "vendor/github.com/jackpal" "vendor/github.com/jbenet" "vendor/github.com/julienschmidt" "vendor/github.com/klauspost" "vendor/github.com/koron" + "vendor/github.com/kr" "vendor/github.com/libp2p/go-buffer-pool" "vendor/github.com/libp2p/go-cidranger" "vendor/github.com/libp2p/go-doh-resolver" "vendor/github.com/libp2p/go-flow-metrics" "vendor/github.com/libp2p/go-libp2p" "vendor/github.com/libp2p/go-libp2p-asn-util" + "vendor/github.com/libp2p/go-libp2p-http" + "vendor/github.com/libp2p/go-libp2p-pubsub" + "vendor/github.com/libp2p/go-libp2p-pubsub-router" + "vendor/github.com/libp2p/go-libp2p-routing-helpers" + "vendor/github.com/libp2p/go-libp2p-testing" "vendor/github.com/libp2p/go-msgio" "vendor/github.com/libp2p/go-nat" "vendor/github.com/libp2p/go-netroute" @@ -1176,16 +2394,18 @@ types.") "vendor/github.com/marten-seemann" "vendor/github.com/mattn" "vendor/github.com/mgutz" + "vendor/github.com/mholt" "vendor/github.com/miekg" "vendor/github.com/mikioh" "vendor/github.com/minio" - "vendor/github.com/mitchellh" "vendor/github.com/mr-tron" "vendor/github.com/multiformats" + "vendor/github.com/munnerz" "vendor/github.com/onsi" "vendor/github.com/opencontainers" "vendor/github.com/opentracing" "vendor/github.com/pbnjay" + "vendor/github.com/petar" "vendor/github.com/pion" "vendor/github.com/pkg" "vendor/github.com/pmezard" @@ -1193,15 +2413,23 @@ types.") "vendor/github.com/prometheus" "vendor/github.com/quic-go" "vendor/github.com/raulk" + "vendor/github.com/rogpeppe" "vendor/github.com/rs" + "vendor/github.com/samber" "vendor/github.com/spaolacci" "vendor/github.com/stretchr" "vendor/github.com/syndtr" + "vendor/github.com/texttheater" "vendor/github.com/tidwall" "vendor/github.com/ucarion" "vendor/github.com/whyrusleeping" + "vendor/github.com/wlynxg" + "vendor/go.opencensus.io" "vendor/go.uber.org" + "vendor/go4.org" "vendor/golang.org" + "vendor/gonum.org" + "vendor/google.golang.org/genproto/googleapis/rpc" "vendor/google.golang.org/protobuf" "vendor/gopkg.in" "vendor/lukechampine.com"))))) @@ -1233,16 +2461,18 @@ types.") ;; directory. ;; go-bazil-org-fuse - ;;go-contrib-go-opencensus-io-exporter-prometheus - go-github-com-benbjohnson-clock + go-contrib-go-opencensus-io-exporter-prometheus go-github-com-blang-semver-v4 + go-github-com-caddyserver-certmagic go-github-com-cenkalti-backoff-v4 go-github-com-ceramicnetwork-go-dag-jose go-github-com-cheggaaa-pb + ;;go-github-com-cockroachdb-pebble go-github-com-coreos-go-systemd-v22 go-github-com-dustin-go-humanize go-github-com-elgris-jsondiff go-github-com-facebookgo-atomicfile + go-github-com-filecoin-project-go-clock go-github-com-fsnotify-fsnotify go-github-com-google-uuid go-github-com-hashicorp-go-multierror @@ -1254,10 +2484,11 @@ types.") go-github-com-ipfs-go-datastore go-github-com-ipfs-go-detect-race go-github-com-ipfs-go-ds-badger - ;;go-github-com-ipfs-go-ds-flatfs + go-github-com-ipfs-go-ds-flatfs go-github-com-ipfs-go-ds-leveldb - ;;go-github-com-ipfs-go-ds-measure - ;;go-github-com-ipfs-go-fs-lock + go-github-com-ipfs-go-ds-measure + ;;go-github-com-ipfs-go-ds-pebble + go-github-com-ipfs-go-fs-lock ;;go-github-com-ipfs-go-ipfs-cmds go-github-com-ipfs-go-ipld-cbor go-github-com-ipfs-go-ipld-format @@ -1266,30 +2497,30 @@ types.") go-github-com-ipfs-go-log go-github-com-ipfs-go-log-v2 go-github-com-ipfs-go-metrics-interface - ;;go-github-com-ipfs-go-metrics-prometheus - ;;go-github-com-ipfs-go-unixfsnode + go-github-com-ipfs-go-metrics-prometheus + go-github-com-ipfs-go-test + go-github-com-ipfs-go-unixfsnode ;;go-github-com-ipfs-shipyard-nopfs ;;go-github-com-ipfs-shipyard-nopfs-ipfs - ;;go-github-com-ipld-go-car - ;;go-github-com-ipld-go-car-v2 + go-github-com-ipld-go-car + go-github-com-ipld-go-car-v2 go-github-com-ipld-go-codec-dagpb go-github-com-ipld-go-ipld-prime - go-github-com-jbenet-go-random + ;;go-github-com-ipshipyard-p2p-forge go-github-com-jbenet-go-temp-err-catcher go-github-com-jbenet-goprocess go-github-com-julienschmidt-httprouter go-github-com-libp2p-go-doh-resolver - go-github-com-libp2p-go-libp2p - ;;go-github-com-libp2p-go-libp2p-http + go-github-com-libp2p-go-libp2p-0.38 + go-github-com-libp2p-go-libp2p-http ;;go-github-com-libp2p-go-libp2p-kad-dht ;;go-github-com-libp2p-go-libp2p-kbucket - ;;go-github-com-libp2p-go-libp2p-pubsub - ;;go-github-com-libp2p-go-libp2p-pubsub-router + go-github-com-libp2p-go-libp2p-pubsub + go-github-com-libp2p-go-libp2p-pubsub-router ;;go-github-com-libp2p-go-libp2p-record - ;;go-github-com-libp2p-go-libp2p-routing-helpers - ;;go-github-com-libp2p-go-libp2p-testing + go-github-com-libp2p-go-libp2p-routing-helpers + go-github-com-libp2p-go-libp2p-testing go-github-com-libp2p-go-socket-activation - go-github-com-mitchellh-go-homedir go-github-com-multiformats-go-multiaddr go-github-com-multiformats-go-multiaddr-dns go-github-com-multiformats-go-multibase @@ -1304,7 +2535,7 @@ types.") go-github-com-tidwall-sjson go-github-com-whyrusleeping-go-sysinfo go-github-com-whyrusleeping-multiaddr-filter - ;;go-go-opencensus-io + go-go-opencensus-io ;;go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp ;;go-go-opentelemetry-io-contrib-propagators-autoprop ;;go-go-opentelemetry-io-otel @@ -1327,31 +2558,31 @@ types.") ;; XXX: Remove them when all of the vendored packages are ;; available. ;; - go-github-com-alecthomas-units ; github.com/ipfs/boxo - go-github-com-cespare-xxhash + + go-github-com-texttheater-golang-levenshtein ; github.com/ipfs/go-ipfs-cmds + + go-github-com-crackcomm-go-gitignore ; github.com/ipfs/boxo + go-github-com-cskr-pubsub ; github.com/ipfs/boxo + go-github-com-datadog-zstd ; github.com/cockroachdb/pebble go-github-com-felixge-httpsnoop ; go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp go-github-com-gabriel-vasile-mimetype ; github.com/ipfs/boxo go-github-com-go-logr-stdr ; go.opentelemetry.io/otel - go-github-com-golang-groupcache ; go.opencensus.io/trace go-github-com-google-gopacket ; github.com/libp2p/go-libp2p-kad-dht go-github-com-gorilla-mux ; github.com/ipfs/boxo go-github-com-hashicorp-golang-lru ; github.com/libp2p/go-libp2p-kad-dht go-github-com-hashicorp-golang-lru-v2 ; github.com/ipfs/boxo go-github-com-ipfs-go-bitfield ; github.com/ipfs/boxo go-github-com-ipfs-go-ipfs-redirects-file ; github.com/ipfs/boxo - go-github-com-ipfs-go-verifcid ; github.com/ipfs/go-blockservice + go-github-com-ipfs-go-peertaskqueue ; github.com/ipfs/boxo go-github-com-libp2p-go-cidranger ; github.com/libp2p/go-libp2p-kbucket go-github-com-libp2p-go-libp2p-asn-util ; github.com/libp2p/go-libp2p-kbucket go-github-com-libp2p-go-msgio ; github.com/libp2p/go-libp2p-kad-dht - go-github-com-prometheus-statsd-exporter ; contrib.go.opencensus.io/exporter/prometheus go-github-com-rs-cors ; github.com/ipfs/go-ipfs-cmds + go-github-com-samber-lo ; github.com/ipfs/boxo go-github-com-whyrusleeping-base32 ; github.com/ipfs/boxo - go-github-com-whyrusleeping-cbor ; github.com/ipld/go-car go-github-com-whyrusleeping-chunker ; github.com/ipfs/boxo go-github-com-whyrusleeping-go-keyspace ; github.com/libp2p/go-libp2p-kad-dht - 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-gonum-org-v1-gonum ; github.com/libp2p/go-libp2p-kad-dht )) (native-inputs (append (if (%current-target-system) @@ -1389,6 +2620,7 @@ also mount the world at @code{/ipfs}.") (build-system go-build-system) (arguments (list + #:go go-1.22 #:embed-files #~(list "sorted-network-list.bin") #:install-source? #f #:import-path "gitlab.com/spritely/spritely-libp2p-daemon")) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 2ab2443356..1ab72a3636 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -72,7 +72,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-check) #:use-module (gnu packages golang-web) @@ -1225,7 +1224,7 @@ seen, tell, and what.") (define-public soju (package (name "soju") - (version "0.8.2") + (version "0.9.0") (source (origin (method git-fetch) @@ -1234,7 +1233,7 @@ seen, tell, and what.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dk9w87ksjvbhnchyyl4yhdlhjnc9s9hpzhykfiyh935g75zv66c")))) + (base32 "09d4h2rchhccrh6qhgqwbv0s1vsfzkmbv3j9f3ayaf9a9ml97d59")))) (build-system go-build-system) (arguments (list @@ -1264,9 +1263,10 @@ seen, tell, and what.") (setenv "PREFIX" #$output) (invoke "make" "install"))))))) (native-inputs - (list go-git-sr-ht-emersion-go-scfg + (list go-codeberg-org-emersion-go-scfg go-git-sr-ht-emersion-go-sqlite3-fts5 go-git-sr-ht-sircmpwn-go-bare + go-github-com-sherclockholmes-webpush-go go-github-com-coder-websocket go-github-com-emersion-go-sasl go-github-com-lib-pq @@ -1274,10 +1274,8 @@ seen, tell, and what.") go-github-com-msteinert-pam-v2 go-github-com-pires-go-proxyproto go-github-com-prometheus-client-golang - go-github-com-sherclockholmes-webpush-go go-golang-org-x-crypto go-golang-org-x-time - go-google-golang-org-protobuf go-gopkg-in-irc-v4 scdoc)) (home-page "https://soju.im/") @@ -1289,4 +1287,3 @@ such as multiple users, numerous @@url{https://ircv3.net/,IRCv3} extensions, chat history playback and detached channels. It is well-suited for both small and large deployments.") (license license:agpl3))) - diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index ccc5c19bb5..9656e61299 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -58,7 +58,7 @@ ;;; Copyright © 2024 Benjamin Slade <slade@lambda-y.net> ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> ;;; Copyright © 2024, 2025 Zheng Junjie <873216071@qq.com> -;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> +;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2025 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; @@ -116,7 +116,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-check) #:use-module (gnu packages golang-crypto) @@ -3326,14 +3325,14 @@ from the Cyrus IMAP project.") (define-public opensmtpd (package (name "opensmtpd") - (version "7.6.0p1") + (version "7.7.0p0") (source (origin (method url-fetch) (uri (string-append "https://www.opensmtpd.org/archives/" "opensmtpd-" version ".tar.gz")) (sha256 - (base32 "15sa1vzh6rbl0c8fwl4kz5zrlarp8mxaw47q6wk3lrd6h9lq0z5j")))) + (base32 "0s1r93f9g8rpbd13v68arx1apgszjfm1knww2fzf9grcrshkv5dh")))) (build-system gnu-build-system) (inputs ;; OpenSMTPd bundled (a subset of) libasr and libtls, which we use. See diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm index be3edae0dc..c8edaf5d5a 100644 --- a/gnu/packages/matrix.scm +++ b/gnu/packages/matrix.scm @@ -5,8 +5,11 @@ ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2022 Morgan Smith <Morgan.J.Smith@outlook.com> +;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com> +;;; Copyright © 2023 conses <contact@conses.eu> ;;; Copyright © 2025 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2025 Arjan Adriaanse <arjan@adriaan.se> +;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +32,11 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages glib) + #:use-module (gnu packages golang) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages monitoring) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) @@ -36,6 +44,7 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages xml) + #:use-module (guix build-system go) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix download) @@ -43,6 +52,80 @@ #:use-module (guix git-download) #:use-module (guix packages)) +(define-public mautrix-whatsapp + (package + (name "mautrix-whatsapp") + (version "0.11.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mautrix/whatsapp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wn9kldhh865w5mbg3cl61m0db9nr7zl1j8lqs2dixsaihv1lbnx")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:install-source? #f + #:tests? #f ; no tests provided + #:import-path "go.mau.fi/mautrix-whatsapp/cmd/mautrix-whatsapp" + #:unpack-path "go.mau.fi/mautrix-whatsapp" + #:build-flags + #~(list (string-append "-ldflags=-X main.Tag=" #$version)) + #:embed-files + #~(list + ;; go.mau.fi/whatsmeow/proto/<...> pattern <...>.pb.raw: cannot embed + ;; irregular file <...>.pb.raw + ".*\\.pb\\.raw$" + ;; maunium.net/go/mautrix/bridgev2/database/upgrades/upgrades.go + ;; maunium.net/go/mautrix/crypto/sql_store_upgrade/upgrade.go + ;; maunium.net/go/mautrix/sqlstatestore/statestore.go + ;; + ;; pattern *.sql: cannot embed irregular file <...>.sql + ".*\\.sql" + ;; golang.org/x/net/publicsuffix/table.go:63:12: pattern + ;; data/children: cannot embed irregular file data/children + "children" + ;; golang.org/x/net/publicsuffix/table.go:48:12: pattern data/nodes: + ;; cannot embed irregular file data/nodes + "nodes" + ;; golang.org/x/net/publicsuffix/table.go:33:12: pattern data/text: + ;; cannot embed irregular file data/text + "text" + ;; maunium.net/go/mautrix/bridgev2/matrix/mxmain/config.go:17:12: + ;; pattern example-config.yaml: cannot embed irregular file + ;; example-config.yaml + "example-config\\.yaml" + ;; go.mau.fi/webp/webp.go:14:12: pattern internal: cannot embed + ;; directory internal: contains no embeddable files + ".*\\.c" + ".*\\.h"))) + (native-inputs + (list olm + go-github-com-gorilla-mux + go-github-com-gorilla-websocket + go-github-com-lib-pq + go-github-com-rs-zerolog + go-go-mau-fi-util + go-go-mau-fi-webp + go-go-mau-fi-whatsmeow + go-golang-org-x-exp + go-golang-org-x-image + go-golang-org-x-net + go-golang-org-x-sync + go-google-golang-org-protobuf + go-gopkg-in-yaml-v3 + go-maunium-net-go-mautrix)) + (home-page "https://go.mau.fi/mautrix-whatsapp") + (synopsis "Matrix <-> WhatsApp puppeting bridge") + (description + "This package provides a @code{Matrix<->WhatsApp} puppeting bridge based +on @url{https://github.com/tulir/whatsmeow, whatsmeow}.") + (license license:agpl3+))) + (define-public python-matrix-client (package (name "python-matrix-client") diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 9c01626827..a305498649 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -94,7 +94,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-check) #:use-module (gnu packages golang-compression) @@ -3711,7 +3710,7 @@ a text snippet), using @code{libphonenumber}.") (define-public senpai (package (name "senpai") - (version "0.3.0") + (version "0.4.0") (source (origin (method git-fetch) @@ -3721,41 +3720,47 @@ a text snippet), using @code{libphonenumber}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0l43qfjr0ggpv1hkyyfxp3j6acrbbrl8n6qxlh91gyb2jan03683")))) + (base32 "0hzrkzsi7c3nrarrd09b8cs31r6vdnmjcw3clj7mjm4cp7xp4dfw")))) (build-system go-build-system) (arguments - (list #:import-path "git.sr.ht/~taiite/senpai/cmd/senpai" - #:unpack-path "git.sr.ht/~taiite/senpai" + (list #:import-path "git.sr.ht/~delthas/senpai/cmd/senpai" + #:unpack-path "git.sr.ht/~delthas/senpai" #:install-source? #f ;; Step away from cmd/senpai to test the whole project. #:test-subdirs #~(list "../../...") #:phases - #~(modify-phases %standard-phases + #~(modify-phases + %standard-phases (add-after 'build 'build-doc (lambda* (#:key unpack-path #:allow-other-keys) (invoke "make" "doc" "-C" (string-append "src/" unpack-path)))) (add-after 'install 'install-doc (lambda* (#:key unpack-path #:allow-other-keys) - (let ((man1 (string-append #$output "/share/man/man1")) - (man5 (string-append #$output "/share/man/man5"))) - (mkdir-p man1) - (mkdir-p man5) - (install-file - (string-append "src/" unpack-path "/doc/senpai.1") - man1) - (install-file - (string-append "src/" unpack-path "/doc/senpai.5") - man5))))))) + (install-file + (string-append "src/" unpack-path "/doc/senpai.1") + (string-append #$output "/share/man/man1")) + (install-file + (string-append "src/" unpack-path "/doc/senpai.5") + (string-append #$output "/share/man/man5")))) + (add-after 'install 'install-desktop-file + (lambda* (#:key unpack-path #:allow-other-keys) + (install-file + (string-append "src/" unpack-path "/contrib/senpai.desktop") + (string-append #$output "/share/applications"))))))) (native-inputs - (list go-git-sr-ht-emersion-go-scfg + (list go-codeberg-org-emersion-go-scfg + go-git-sr-ht-rockorager-vaxis + go-github-com-containerd-console go-github-com-delthas-go-libnp go-github-com-delthas-go-localeinfo - go-github-com-delthas-tcell-v2 ; remove in the next release - go-github-com-mattn-go-runewidth + go-github-com-disintegration-imaging + go-github-com-godbus-dbus-v5 + go-github-com-rivo-uniseg go-golang-org-x-net go-golang-org-x-time go-mvdan-cc-xurls-v2 + go-github-com-mattn-go-runewidth scdoc which)) (home-page "https://sr.ht/~delthas/senpai") diff --git a/gnu/packages/mold.scm b/gnu/packages/mold.scm index 1f072197f6..d153d4dde3 100644 --- a/gnu/packages/mold.scm +++ b/gnu/packages/mold.scm @@ -36,7 +36,7 @@ (define-public mold (package (name "mold") - (version "2.39.1") + (version "2.40.0") (source (origin (method git-fetch) @@ -45,7 +45,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "09wpn1lxhq8mcq927j6m9s34m39v937acpi099lln5sz85mahbmq")) + (base32 "0yjip7i8ldjcb28qsl4w27ppnsxbkfxbk31r159b10vgv60q0jph")) (modules '((guix build utils))) (snippet #~(begin diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 1009c32783..91000a2f7c 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -553,87 +553,83 @@ WSGI and the node exporter textfile collector.") (license license:asl2.0))) (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, + (package + (name "prometheus-node-exporter") + (version "1.9.0") + (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 "0xs57jlmjj1vqac6xlkygg3xb08g356nlnc852ds1ia87911jvls")))) + (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=0" + " -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 + 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.") - (license license:asl2.0)))) + (license license:asl2.0))) (define-public go-github-com-prometheus-node-exporter (deprecated-package "go-github-com-prometheus-node-exporter" diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 59ce059a20..afab7fc8e0 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6328,6 +6328,179 @@ discard bad quality ones. @end itemize\n") (license license:expat)))) +;; demlo is only one user of this package, keep it next to it to prevent +;; importing taglib module into golang-xyz. +(define-public go-github-com-wtolson-go-taglib + (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777") + (revision "0")) + (package + (name "go-github-com-wtolson-go-taglib") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/wtolson/go-taglib") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2")))) + (build-system go-build-system) + ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so + ;; when this package required as input for another one, it will have to + ;; be built again. Thus its CGO requirements must be made available in + ;; the environment, that is, they must be propagated. + (propagated-inputs + (list pkg-config taglib)) + (arguments + `(#:import-path "github.com/wtolson/go-taglib" + ;; Tests don't pass "vet" on Go since 1.11. See + ;; https://github.com/wtolson/go-taglib/issues/12. + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key import-path #:allow-other-keys) + (invoke "go" "test" + "-vet=off" + import-path)))))) + (home-page "https://github.com/wtolson/go-taglib") + (synopsis "Go wrapper for taglib") + (description "Go wrapper for taglib") + (license license:unlicense)))) + +;; demlo is only one user of this package, keep it next to it to prevent +;; importing lua module into golang-xyz. +(define-public go-github-com-aarzilli-golua + (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d") + (revision "0")) + (package + (name "go-github-com-aarzilli-golua") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/aarzilli/golua") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di")))) + (build-system go-build-system) + ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so + ;; when this package required as input for another one, it will have to + ;; be built again. Thus its CGO requirements must be made available in + ;; the environment, that is, they must be propagated. + (propagated-inputs + (list lua)) + (arguments + `(#:unpack-path "github.com/aarzilli/golua" + #:import-path "github.com/aarzilli/golua/lua" + #:phases + (modify-phases %standard-phases + ;; While it's possible to fix the CGO_LDFLAGS with the "-tags" + ;; command line argument, go-1.10+ does not re-use the produced pkg + ;; for dependencies, which means we would need to propagate the + ;; same "-tags" argument to all golua referrers. A substitution is + ;; more convenient here. We also need to propagate the lua + ;; dependency to make it available to referrers. + (add-after 'unpack 'fix-lua-ldflags + (lambda _ + (substitute* "src/github.com/aarzilli/golua/lua/lua.go" + (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3") + "#cgo linux,!llua,!luaa LDFLAGS: -llua"))))))) + (home-page "https://github.com/aarzilli/golua") + (synopsis "Go Bindings for the Lua C API") + (description "This package provides @code{lua}, a Go module that can +run a Lua virtual machine.") + (license license:expat)))) + +;; demlo is only one user of this package, keep it next to it to prevent +;; importing lua module into golang-xyz. +(define-public go-github-com-stevedonovan-luar + (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead") + (revision "0")) + (package + (name "go-github-com-stevedonovan-luar") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/stevedonovan/luar") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c")))) + (build-system go-build-system) + (native-inputs + (list go-github-com-aarzilli-golua)) + (arguments + `(#:tests? #f ; Upstream tests are broken. + #:import-path "github.com/stevedonovan/luar")) + (home-page "https://github.com/stevedonovan/luar") + (synopsis "Lua reflection bindings for Go") + (description "Luar is designed to make using Lua from Go more +convenient. Go structs, slices and maps can be automatically converted to Lua +tables and vice-versa. The resulting conversion can either be a copy or a +proxy. In the latter case, any change made to the result will reflect on the +source. + +Any Go function can be made available to Lua scripts, without having to write +C-style wrappers. + +Luar support cyclic structures (lists, etc.). + +User-defined types can be made available to Lua as well: their exported +methods can be called and usual operations such as indexing or arithmetic can +be performed.") + (license license:expat)))) + +;; demlo is only one user of this package, keep it next to it to prevent +;; importing lua module into golang-xyz. +(define-public go-gitlab-com-ambrevar-golua-unicode + (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144") + (revision "0")) + (package + (name "go-gitlab-com-ambrevar-golua-unicode") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://gitlab.com/ambrevar/golua") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm")))) + (build-system go-build-system) + (native-inputs + (list lua go-github-com-aarzilli-golua)) + (arguments + `(#:unpack-path "gitlab.com/ambrevar/golua" + #:import-path "gitlab.com/ambrevar/golua/unicode" + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key import-path #:allow-other-keys) + (setenv "USER" "homeless-dude") + (invoke "go" "test" import-path)))))) + (home-page "https://gitlab.com/ambrevar/golua") + (synopsis "Add Unicode support to Golua") + (description "This extension to Arzilli's Golua adds Unicode support to +all functions from the Lua string library. Lua patterns are replaced by Go +regexps. This breaks compatibility with Lua, but Unicode support breaks it +anyways and Go regexps are more powerful.") + (license license:expat)))) + + (define-public fmit (package (name "fmit") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 62bbd4dc82..ebcbc1caa1 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -135,7 +135,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-check) #:use-module (gnu packages golang-crypto) @@ -4889,32 +4888,22 @@ daemon.") (build-system go-build-system) (arguments (list - #:import-path "github.com/slackhq/nebula" #:install-source? #f - ;; XXX: Pack missing packages for cmd/nebula-service - #:test-subdirs #~(list ".") + #:import-path "github.com/slackhq/nebula" + #:build-flags + #~(list (format #f "-ldflags=-X main.Build=~a" #$version)) #:phases #~(modify-phases %standard-phases (replace 'build - (lambda* (#:key import-path #:allow-other-keys) - ;; Suggested option to provide build time flags is not supported - ;; in Guix for go-build-system. - ;; -ldflags "-X main.Build=SOMEVERSION" - (substitute* (string-append "src/" import-path "/cmd/nebula/main.go") - (("Version: ") - (string-append "Version: " #$version))) - ;; Build nebula and nebula-cert - (let* ((dir "github.com/slackhq/nebula") - (nebula-cmd (string-append dir "/cmd/nebula")) - (cert-cmd (string-append dir "/cmd/nebula-cert"))) - (invoke "go" "build" nebula-cmd) - (invoke "go" "build" cert-cmd)))) - (replace 'install - (lambda _ - (let* ((out #$output) - (bindir (string-append out "/bin"))) - (install-file "nebula" bindir) - (install-file "nebula-cert" bindir))))))) + (lambda* (#:key import-path #:allow-other-keys #:rest arguments) + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path + ,(string-append import-path "/cmd/" cmd)))) + (list "nebula" + "nebula-service" + "nebula-cert"))))))) (inputs (list go-dario-cat-mergo go-github-com-anmitsu-go-shlex @@ -4943,8 +4932,7 @@ daemon.") go-golang-zx2c4-com-wireguard go-google-golang-org-protobuf go-gopkg-in-yaml-v2 - ;go-gvisor-dev-gvisor ; for nebula-service, not packed yet - )) + go-gvisor-dev-gvisor)) (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 548629c965..665f8c1399 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -92,7 +92,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-crypto) #:use-module (gnu packages golang-xyz) @@ -147,13 +146,10 @@ (list #:install-source? #f #:import-path "github.com/99designs/aws-vault" + #:build-flags + #~(list (string-append "-ldflags=-X main.Version=" #$version)) #: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 diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm index be13c2a10c..6c70590234 100644 --- a/gnu/packages/printers.scm +++ b/gnu/packages/printers.scm @@ -82,7 +82,7 @@ (list avahi libusb)) (native-inputs (list go-github-com-openprinting-goipp - go-github-com-go-md2man + go-md2man pkg-config)) (home-page "https://github.com/OpenPrinting/ipp-usb") (synopsis "HTTP reverse proxy, backed by the IPP-over-USB connection") diff --git a/gnu/packages/prometheus.scm b/gnu/packages/prometheus.scm index 77875933f1..ec70d45817 100644 --- a/gnu/packages/prometheus.scm +++ b/gnu/packages/prometheus.scm @@ -52,6 +52,36 @@ ;;; Libraries: ;;; +(define-public go-contrib-go-opencensus-io-exporter-prometheus + (package + (name "go-contrib-go-opencensus-io-exporter-prometheus") + (version "0.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/census-ecosystem/opencensus-go-exporter-prometheus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n09d2nbng4bws9vi2ddq2ffv9hr0c3i9mif6fkjr4chyyyiy8ik")))) + (build-system go-build-system) + (arguments + (list + #:import-path "contrib.go.opencensus.io/exporter/prometheus")) + (propagated-inputs + (list go-github-com-google-go-cmp + go-github-com-prometheus-client-golang + go-github-com-prometheus-statsd-exporter + go-go-opencensus-io)) + (home-page "https://github.com/census-ecosystem/opencensus-go-exporter-prometheus") + (synopsis "OpenCensus Go Prometheus Exporter") + (description + "Package prometheus contains a Prometheus exporter that supports +exporting @code{OpenCensus} views as Prometheus metrics.") + (license license:asl2.0))) + (define-public go-github-com-mwitkow-go-conntrack (package (name "go-github-com-mwitkow-go-conntrack") @@ -130,7 +160,7 @@ registry.") (define-public go-github-com-prometheus-client-golang (package (name "go-github-com-prometheus-client-golang") - (version "1.20.5") + (version "1.21.1") (source (origin (method git-fetch) @@ -139,15 +169,13 @@ registry.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1q3n22p5ic22xzha6mffh0m0jzbxrkyjrcmnxsnanl61jwb4rkpw")) + (base32 "01946gv7ncjzd0536dx0523safcdnwy64m7pa8b54vrwzryrvb7p")) (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 @@ -210,12 +238,8 @@ Prometheus metrics.") (build-system go-build-system) (arguments (list - #:import-path "github.com/prometheus/client_model" - #:tests? #f - #:phases - #~(modify-phases %standard-phases - ;; Source-only package - (delete 'build)))) + #:skip-build? #t + #:import-path "github.com/prometheus/client_model")) (propagated-inputs (list go-github-com-golang-protobuf)) (home-page "https://github.com/prometheus/client_model") @@ -227,7 +251,7 @@ Prometheus metrics.") (define-public go-github-com-prometheus-common (package (name "go-github-com-prometheus-common") - (version "0.61.0") + (version "0.63.0") (source (origin (method git-fetch) @@ -236,7 +260,7 @@ Prometheus metrics.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wng61rzvh27s2rlaadvjbffwgpn74p1wjrz6insl57k1pg3cmcn")) + (base32 "0jf6wqx16zipp2dyjd6n4fdkp5i1hh4ranjcm5iph5rdvcry06m3")) (modules '((guix build utils))) (snippet #~(begin @@ -244,46 +268,36 @@ Prometheus metrics.") ;; separated packages: ;; ;; - github.com/prometheus/common/assets - ;; - github.com/prometheus/common/sigv4 - (for-each delete-file-recursively - (list "assets" "sigv4")))))) + (delete-file-recursively "assets"))))) (build-system go-build-system) (arguments (list + #:skip-build? #t #:import-path "github.com/prometheus/common" - #: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" - ;; Skipp, as it requires - ;; <github.com/prometheus/client_golang/prometheus>, - ;; which introduces cycle. - ;; "./config/..." + #:test-subdirs + #~(list + ;; Skipp, as it requires + ;; <github.com/prometheus/client_golang/prometheus>, which introduces + ;; cycle. + ;; "./config/..." - ;; Some tests fail on non x86_64 architecture: - ;; Cannot use 9223372036 (untyped int constant) as int - ;; value in ;; struct literal (overflows). - ;; Cannot use math.MaxInt64 - ;; (untyped int constant 9223372036854775807) as int value - ;; in argument to HumanizeTimestamp (overflows) - #$@(if (target-x86-64?) - '("./helpers/...") - '()) - "./expfmt/..." - "./model/..." - "./promlog/..." - "./route/..." - "./server/...")))))))) + ;; Some tests fail on non x86_64 architecture: Cannot use 9223372036 + ;; (untyped int constant) as int value in ;; struct literal + ;; (overflows). Cannot use math.MaxInt64 (untyped int constant + ;; 9223372036854775807) as int value in argument to HumanizeTimestamp + ;; (overflows) + #$@(if (target-x86-64?) + '("./helpers/...") + '()) + "./expfmt/..." + "./model/..." + "./promlog/..." + "./route/..." + "./server/..."))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-alecthomas-kingpin-v2 - go-github-com-go-kit-log go-github-com-google-go-cmp go-github-com-julienschmidt-httprouter go-github-com-munnerz-goautoneg @@ -294,10 +308,20 @@ Prometheus metrics.") go-google-golang-org-protobuf go-gopkg-in-yaml-v2)) (home-page "https://github.com/prometheus/common") - (synopsis "Prometheus metrics") + (synopsis "Shared Prometheus Golang components") (description - "This package provides tools for reading and writing Prometheus -metrics.") + "This package provides Go libraries that are shared across Prometheus +components. + +@itemize +@item @code{config} - common configuration structures +@item @code{expfmt} - decoding and encoding for the exposition format +@item @code{model} - shared data structures +@item @code{promslog} - a logging wrapper around log/slog +@item @code{route} - a routing wrapper around httprouter using context.Context +@item @code{server} - common servers +@item @code{version} version information and metrics +@end itemize") (license license:asl2.0))) (define-public go-github-com-prometheus-common-assets @@ -325,62 +349,6 @@ metrics.") "This package provides Prometheus assets.") (license license:asl2.0))) -(define-public go-github-com-prometheus-common-sigv4 - (package - (name "go-github-com-prometheus-common-sigv4") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/prometheus/common") - (commit (go-version->git-ref version - #:subdir "sigv4")))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08sdhxryl1jpy829qki8k2jy773xhrbr9wsk997pxhbbvl634gvb")) - (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 "." "sigv4"))))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/prometheus/common/sigv4" - #:unpack-path "github.com/prometheus/common")) - (native-inputs - (list go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-aws-aws-sdk-go - go-github-com-prometheus-client-golang - go-github-com-prometheus-common - go-gopkg-in-yaml-v2)) - (home-page "https://github.com/prometheus/common") - (synopsis "HTTP signed requests with Amazon's Signature Verification V4") - (description - "This package provides a @code{http.RoundTripper} that will sign requests -using Amazon's Signature Verification V4 signing procedure, using credentials -from the default AWS credential chain.") - (license license:asl2.0))) - (define-public go-github-com-prometheus-community-pro-bing (package (name "go-github-com-prometheus-community-pro-bing") @@ -468,7 +436,7 @@ Protocol,ICMP} echo (ping) functionality.") (define-public go-github-com-prometheus-procfs (package (name "go-github-com-prometheus-procfs") - (version "0.15.1") + (version "0.16.0") (source (origin (method git-fetch) @@ -477,7 +445,7 @@ Protocol,ICMP} echo (ping) functionality.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "116ns8k1yjdj9a2vq5czlpmafrhy0yw5y0bcm1qqbqnn57agg68m")))) + (base32 "0f692685zcssryd38bahmamd72iaiilngp92gl1s9177891f44gm")))) (build-system go-build-system) (arguments (list @@ -514,25 +482,37 @@ 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-sigv4 + (package + (name "go-github-com-prometheus-sigv4") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/sigv4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yw37lw4x2l20l02i6yd4m4x948vgrfyaa0csl155rdyq3ynwa5w")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/prometheus/sigv4")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-aws-aws-sdk-go + go-github-com-prometheus-client-golang + go-github-com-prometheus-common + go-gopkg-in-yaml-v2)) + (home-page "https://github.com/prometheus/sigv4") + (synopsis "HTTP signed requests with Amazon's Signature Verification V4") + (description + "sigv4 provides a @code{http.RoundTripper} that will sign requests using +Amazon's Signature Verification V4 signing procedure, using credentials from +the default AWS credential chain.") + (license license:asl2.0))) (define-public go-github-com-prometheus-statsd-exporter (package diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 7792e51e30..376ae67570 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -5004,6 +5004,277 @@ providing a clean and modern domain specific specification language (DSL) in Python style, together with a fast and comfortable execution environment.") (license license:expat))) +(define-public snakemake-5 + (package + (name "snakemake") + (version "5.32.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/snakemake/snakemake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nxp4z81vykv07kv2b6zrwk7ns8s10zqsb7vcignp8695yq3nlcm")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + '(list + ;; We have no TES support. + "--ignore=tests/test_tes.py" + ;; This test attempts to change S3 buckets on AWS and fails + ;; because there are no AWS credentials. + "--ignore=tests/test_tibanna.py" + ;; It's a similar story with this test, which requires access + ;; to the Google Storage service. + "--ignore=tests/test_google_lifesciences.py" + ;; Unclear failure. + "-k" "not test_lint[long_run-positive]") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'tabulate-compatibility + (lambda _ + (substitute* "snakemake/dag.py" + (("\"job\": rule,") + "\"job\": rule.name,")))) + (add-after 'unpack 'patch-version + (lambda _ + (substitute* "setup.py" + (("version=versioneer.get_version\\(\\)") + (format #f "version=~s" #$version))) + (substitute* '("snakemake/_version.py" + "versioneer.py") + (("0\\+unknown") #$version)))) + ;; For cluster execution Snakemake will call Python. Since there is + ;; no suitable PYTHONPATH set, cluster execution will fail. We fix + ;; this by calling the snakemake wrapper instead. + (add-after 'unpack 'call-wrapper-not-wrapped-snakemake + (lambda _ + (substitute* "snakemake/executors/__init__.py" + (("\\{sys.executable\\} -m snakemake") + (string-append #$output "/bin/snakemake"))))) + (add-before 'check 'pre-check + (lambda _ (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list python-appdirs + python-configargparse + python-datrie + python-docutils + python-gitpython + python-jinja2 + python-jsonschema + python-nbformat + python-networkx + python-psutil + python-pulp + python-pyyaml + python-ratelimiter + python-requests + python-toposort + python-wrapt)) + (native-inputs + (list git-minimal + python-wrapper + python-pytest + python-pandas + python-requests-mock + python-setuptools + python-wheel)) + (home-page "https://snakemake.readthedocs.io") + (synopsis "Python-based execution environment for make-like workflows") + (description + "Snakemake aims to reduce the complexity of creating workflows by +providing a clean and modern domain specific specification language (DSL) in +Python style, together with a fast and comfortable execution environment.") + (license license:expat))) + +(define-public snakemake-6 + (package + (inherit snakemake-5) + (name "snakemake") + (version "6.15.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/snakemake/snakemake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09yrpi9f86r9yvcm2dfjs5zy87c4j31bxama77kfd6y8yfrrjlai")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + '(list + ;; This test attempts to change S3 buckets on AWS and fails + ;; because there are no AWS credentials. + "--ignore=tests/test_tibanna.py" + ;; Unclear failure. + "-k" "not test_lint[long_run-positive]") + #:phases + #~(modify-phases %standard-phases + ;; For cluster execution Snakemake will call Python. Since there is + ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We + ;; fix this by calling the snakemake wrapper instead. + + ;; XXX: There is another instance of sys.executable on line 692, but + ;; it is not clear how to patch it. + (add-after 'unpack 'call-wrapper-not-wrapped-snakemake + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "snakemake/executors/__init__.py" + (("\\{sys.executable\\} -m snakemake") + (string-append #$output "/bin/snakemake"))))) + (add-after 'unpack 'tabulate-compatibility + (lambda _ + (substitute* "snakemake/dag.py" + (("\"job\": rule,") + "\"job\": rule.name,")))) + (add-after 'unpack 'patch-version + (lambda _ + (substitute* "setup.py" + (("version=versioneer.get_version\\(\\)") + (format #f "version=~s" #$version))) + (substitute* '("snakemake/_version.py" + "versioneer.py") + (("0\\+unknown") #$version)))) + (add-before 'check 'pre-check + (lambda _ (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list python-appdirs + python-configargparse + python-connection-pool + python-datrie + python-docutils + python-filelock + python-gitpython + python-jinja2 + python-jsonschema + python-nbformat + python-networkx + python-psutil + python-pulp + python-pyyaml + python-py-tes + python-ratelimiter + python-requests + python-smart-open + python-stopit + python-tabulate + python-toposort + python-wrapt)) + (native-inputs + (list git-minimal + python-wrapper + python-pytest + python-pandas + python-requests-mock + python-setuptools + python-wheel)))) + +(define-public snakemake-7 + (package + (inherit snakemake-6) + (name "snakemake") + (version "7.32.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/snakemake/snakemake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d5hizai89k1glfqfkvf1ghj0l7wm8il6gl5pfwk2gkza87yka6d")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; This test attempts to change S3 buckets on AWS and fails + ;; because there are no AWS credentials. + '(list "--ignore=tests/test_tibanna.py" + ;; It's a similar story with this test, which requires access to + ;; the Google Storage service. + "--ignore=tests/test_google_lifesciences.py" + "--ignore-glob=tests/test_conda_python_3_7_script/*" + ;; We don't have a slurm installation in the build environment + "--ignore=tests/test_slurm.py") + #:phases + #~(modify-phases %standard-phases + ;; For cluster execution Snakemake will call Python. Since there is + ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We + ;; fix this by calling the snakemake wrapper instead. + (add-after 'unpack 'call-wrapper-not-wrapped-snakemake + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "snakemake/executors/__init__.py" + (("self\\.get_python_executable\\(\\),") + "") + (("\"-m snakemake\"") + (string-append "\"" #$output + "/bin/snakemake" "\"")) + ;; The snakemake command produced by format_job_exec contains + ;; references to /gnu/store. Prior to patching above that's + ;; just a reference to Python; after patching it's a reference + ;; to the snakemake executable. + ;; + ;; In Tibanna execution mode Snakemake arranges for a certain + ;; Docker image to be deployed to AWS. It then passes its own + ;; command line to Tibanna. This is misguided because it only + ;; ever works if the local Snakemake command was run inside + ;; the same Docker image. In the case of using Guix this is + ;; never correct, so we need to replace the store reference. + (("tibanna_args.command = command") + (string-append + "tibanna_args.command = command.replace('" + #$output "/bin/snakemake', 'python3 -m snakemake')"))))) + (add-after 'unpack 'patch-version + (lambda _ + (substitute* "setup.py" + (("version=versioneer.get_version\\(\\)") + (format #f "version=~s" #$version))) + (substitute* '("snakemake/_version.py" + "versioneer.py") + (("0\\+unknown") #$version)))) + (add-before 'check 'pre-check + (lambda _ (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list python-appdirs + python-configargparse + python-connection-pool + python-datrie + python-docutils + python-filelock + python-gitpython + python-humanfriendly + python-jinja2 + python-jsonschema + python-nbformat + python-networkx + python-psutil + python-pulp + python-pyyaml + python-py-tes + python-requests + python-retry + python-reretry + python-smart-open + python-stopit + python-tabulate + python-throttler + python-toposort + python-wrapt + python-yte)) + (native-inputs + (list git-minimal + python-wrapper + python-pytest + python-pandas + python-requests-mock + python-setuptools + python-wheel)))) + ;;; ;;; 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/python-web.scm b/gnu/packages/python-web.scm index 56f697bbd2..a7dc180d7e 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -5569,12 +5569,19 @@ Services (AWS) API.") (arguments (list #:test-flags - ;; The resource leak tests use ps to check for memory consumption. - '(list "--ignore=functional/botocore/leak/test_resource_leaks.py" + '(list ;; This version of prompt-toolkit has issues with awscli-2, see + ;; <https://github.com/aws/aws-cli/issues/9453#issuecomment-2822186530>. + "--ignore=functional/autoprompt/test_prompttoolkit.py" + ;; The resource leak tests use ps to check for memory consumption. + "--ignore=functional/botocore/leak/test_resource_leaks.py" ;; These tests complain about unavailable TLS certs. "--ignore=functional/ec2instanceconnect/test_opentunnel.py" ;; These seem to require Internet access. - "--ignore=unit/botocore/test_awsrequest.py") + "--ignore=unit/botocore/test_awsrequest.py" + ;; Flaky, something to do with PATH disappearing from os.environ? + ;; Passes when run on its own, so maybe something else is + ;; modifying this during the test run. + "--ignore=unit/customizations/emr/test_emr_utils.py") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'ignore-deprecations diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2e8ff4b297..8e3b5e0046 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -15179,277 +15179,6 @@ approach.") "This is a Python package for easy throttling with asyncio support.") (license license:expat))) -(define-public snakemake-5 - (package - (name "snakemake") - (version "5.32.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/snakemake/snakemake") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0nxp4z81vykv07kv2b6zrwk7ns8s10zqsb7vcignp8695yq3nlcm")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - '(list - ;; We have no TES support. - "--ignore=tests/test_tes.py" - ;; This test attempts to change S3 buckets on AWS and fails - ;; because there are no AWS credentials. - "--ignore=tests/test_tibanna.py" - ;; It's a similar story with this test, which requires access - ;; to the Google Storage service. - "--ignore=tests/test_google_lifesciences.py" - ;; Unclear failure. - "-k" "not test_lint[long_run-positive]") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'tabulate-compatibility - (lambda _ - (substitute* "snakemake/dag.py" - (("\"job\": rule,") - "\"job\": rule.name,")))) - (add-after 'unpack 'patch-version - (lambda _ - (substitute* "setup.py" - (("version=versioneer.get_version\\(\\)") - (format #f "version=~s" #$version))) - (substitute* '("snakemake/_version.py" - "versioneer.py") - (("0\\+unknown") #$version)))) - ;; For cluster execution Snakemake will call Python. Since there is - ;; no suitable PYTHONPATH set, cluster execution will fail. We fix - ;; this by calling the snakemake wrapper instead. - (add-after 'unpack 'call-wrapper-not-wrapped-snakemake - (lambda _ - (substitute* "snakemake/executors/__init__.py" - (("\\{sys.executable\\} -m snakemake") - (string-append #$output "/bin/snakemake"))))) - (add-before 'check 'pre-check - (lambda _ (setenv "HOME" "/tmp")))))) - (propagated-inputs - (list python-appdirs - python-configargparse - python-datrie - python-docutils - python-gitpython - python-jinja2 - python-jsonschema - python-nbformat - python-networkx - python-psutil - python-pulp - python-pyyaml - python-ratelimiter - python-requests - python-toposort - python-wrapt)) - (native-inputs - (list git-minimal - python-wrapper - python-pytest - python-pandas - python-requests-mock - python-setuptools - python-wheel)) - (home-page "https://snakemake.readthedocs.io") - (synopsis "Python-based execution environment for make-like workflows") - (description - "Snakemake aims to reduce the complexity of creating workflows by -providing a clean and modern domain specific specification language (DSL) in -Python style, together with a fast and comfortable execution environment.") - (license license:expat))) - -(define-public snakemake-6 - (package - (inherit snakemake-5) - (name "snakemake") - (version "6.15.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/snakemake/snakemake") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09yrpi9f86r9yvcm2dfjs5zy87c4j31bxama77kfd6y8yfrrjlai")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - '(list - ;; This test attempts to change S3 buckets on AWS and fails - ;; because there are no AWS credentials. - "--ignore=tests/test_tibanna.py" - ;; Unclear failure. - "-k" "not test_lint[long_run-positive]") - #:phases - #~(modify-phases %standard-phases - ;; For cluster execution Snakemake will call Python. Since there is - ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We - ;; fix this by calling the snakemake wrapper instead. - - ;; XXX: There is another instance of sys.executable on line 692, but - ;; it is not clear how to patch it. - (add-after 'unpack 'call-wrapper-not-wrapped-snakemake - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "snakemake/executors/__init__.py" - (("\\{sys.executable\\} -m snakemake") - (string-append #$output "/bin/snakemake"))))) - (add-after 'unpack 'tabulate-compatibility - (lambda _ - (substitute* "snakemake/dag.py" - (("\"job\": rule,") - "\"job\": rule.name,")))) - (add-after 'unpack 'patch-version - (lambda _ - (substitute* "setup.py" - (("version=versioneer.get_version\\(\\)") - (format #f "version=~s" #$version))) - (substitute* '("snakemake/_version.py" - "versioneer.py") - (("0\\+unknown") #$version)))) - (add-before 'check 'pre-check - (lambda _ (setenv "HOME" "/tmp")))))) - (propagated-inputs - (list python-appdirs - python-configargparse - python-connection-pool - python-datrie - python-docutils - python-filelock - python-gitpython - python-jinja2 - python-jsonschema - python-nbformat - python-networkx - python-psutil - python-pulp - python-pyyaml - python-py-tes - python-ratelimiter - python-requests - python-smart-open - python-stopit - python-tabulate - python-toposort - python-wrapt)) - (native-inputs - (list git-minimal - python-wrapper - python-pytest - python-pandas - python-requests-mock - python-setuptools - python-wheel)))) - -(define-public snakemake-7 - (package - (inherit snakemake-6) - (name "snakemake") - (version "7.32.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/snakemake/snakemake") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1d5hizai89k1glfqfkvf1ghj0l7wm8il6gl5pfwk2gkza87yka6d")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - ;; This test attempts to change S3 buckets on AWS and fails - ;; because there are no AWS credentials. - '(list "--ignore=tests/test_tibanna.py" - ;; It's a similar story with this test, which requires access to - ;; the Google Storage service. - "--ignore=tests/test_google_lifesciences.py" - "--ignore-glob=tests/test_conda_python_3_7_script/*" - ;; We don't have a slurm installation in the build environment - "--ignore=tests/test_slurm.py") - #:phases - #~(modify-phases %standard-phases - ;; For cluster execution Snakemake will call Python. Since there is - ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We - ;; fix this by calling the snakemake wrapper instead. - (add-after 'unpack 'call-wrapper-not-wrapped-snakemake - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "snakemake/executors/__init__.py" - (("self\\.get_python_executable\\(\\),") - "") - (("\"-m snakemake\"") - (string-append "\"" #$output - "/bin/snakemake" "\"")) - ;; The snakemake command produced by format_job_exec contains - ;; references to /gnu/store. Prior to patching above that's - ;; just a reference to Python; after patching it's a reference - ;; to the snakemake executable. - ;; - ;; In Tibanna execution mode Snakemake arranges for a certain - ;; Docker image to be deployed to AWS. It then passes its own - ;; command line to Tibanna. This is misguided because it only - ;; ever works if the local Snakemake command was run inside - ;; the same Docker image. In the case of using Guix this is - ;; never correct, so we need to replace the store reference. - (("tibanna_args.command = command") - (string-append - "tibanna_args.command = command.replace('" - #$output "/bin/snakemake', 'python3 -m snakemake')"))))) - (add-after 'unpack 'patch-version - (lambda _ - (substitute* "setup.py" - (("version=versioneer.get_version\\(\\)") - (format #f "version=~s" #$version))) - (substitute* '("snakemake/_version.py" - "versioneer.py") - (("0\\+unknown") #$version)))) - (add-before 'check 'pre-check - (lambda _ (setenv "HOME" "/tmp")))))) - (propagated-inputs - (list python-appdirs - python-configargparse - python-connection-pool - python-datrie - python-docutils - python-filelock - python-gitpython - python-humanfriendly - python-jinja2 - python-jsonschema - python-nbformat - python-networkx - python-psutil - python-pulp - python-pyyaml - python-py-tes - python-requests - python-retry - python-reretry - python-smart-open - python-stopit - python-tabulate - python-throttler - python-toposort - python-wrapt - python-yte)) - (native-inputs - (list git-minimal - python-wrapper - python-pytest - python-pandas - python-requests-mock - python-setuptools - python-wheel)))) - (define-public python-pyqrcode (package (name "python-pyqrcode") diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index a358c9bbf3..175ed05f8c 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -68,7 +68,6 @@ #: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-xyz) #:use-module (gnu packages gps) #:use-module (gnu packages graphviz) @@ -2429,6 +2428,81 @@ Compatible hardware/software: @end itemize\n") (license license:expat))) +;; kapanhang is only one user of this package, keep it next to it to prevent +;; importing pulseaudio module into golang-xyz. +(define-public go-github-com-mesilliac-pulse-simple + (let ((commit "75ac54e19fdff88f4fbd82f45125134b602230b0") + (revision "0")) + (package + (name "go-github-com-mesilliac-pulse-simple") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mesilliac/pulse-simple") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1awwczsa9yy99p035ckajqfs8m6mab0lz82mzlj1c5cj9lnmwplj")))) + (build-system go-build-system) + (propagated-inputs + (list pkg-config pulseaudio)) + (arguments + (list + #:import-path "github.com/mesilliac/pulse-simple" + #: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/mesilliac/pulse-simple") + (synopsis "Cgo bindings to PulseAudio's Simple API") + (description + "This package provides Cgo bindings to PulseAudio's Simple API, to play +or capture raw audio.") + (license license:expat)))) + +;; kapanhang is only one user of this package, keep it next to it to prevent +;; importing pulseaudio module into golang-xyz. +(define-public go-github-com-akosmarton-papipes + (let ((commit "3c63b4919c769c9c2b2d07e69a98abb0eb47fe64") + (revision "0")) + (package + (name "go-github-com-akosmarton-papipes") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/akosmarton/papipes") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16p77p3d1v26qd3knxn087jqlad2qm23q8m796cdr66hrdc0gahq")))) + (build-system go-build-system) + (inputs + (list pulseaudio)) + (arguments + `(#:import-path "github.com/akosmarton/papipes" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("src/github.com/akosmarton/papipes/common.go" + "src/github.com/akosmarton/papipes/sink.go" + "src/github.com/akosmarton/papipes/source.go") + (("exec.Command\\(\"pactl\"") + (string-append "exec.Command(\"" + (assoc-ref inputs "pulseaudio") + "/bin/pactl\"")))))))) + (home-page "https://github.com/akosmarton/papipes") + (synopsis "Pulseaudio client library for Go") + (description + "This is a Pulseaudio client library in Golang for creating virtual +sinks and sources.") + (license license:expat)))) + (define-public dream (package (name "dream") diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 80903c787c..3b47b91f3b 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -29,7 +29,7 @@ ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org> ;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> -;;; Copyright © 2022-2024 Remco van 't Veer <remco@remworks.net> +;;; Copyright © 2022-2025 Remco van 't Veer <remco@remworks.net> ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> ;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com> @@ -250,6 +250,7 @@ a focus on simplicity and productivity.") (package (inherit ruby-3.0) (version "3.1.4") + (replacement ruby-3.1.7) (source (origin (method url-fetch) @@ -260,6 +261,22 @@ a focus on simplicity and productivity.") (base32 "0kzr792rk9n9yrqlyrkc1a0cmbk5y194f7v7p4vwjdk0ww860v8v")))))) ++;;; TODO: This newer version resolves serveral CVEs. Remove ++;;; after ungrafting ruby. +(define ruby-3.1.7 + (package + (inherit ruby-3.1) + (version "3.1.7") + (source + (origin + (method url-fetch) + (uri (string-append "http://cache.ruby-lang.org/pub/ruby/" + (version-major+minor version) + "/ruby-" version ".tar.xz")) + (sha256 + (base32 + "0ddhh3nzfnwwb0ks3rsmf3w1m71ban30wf61djn8gnkbbd2wr2k5")))))) + (define-public ruby-3.2 (package (inherit ruby-3.1) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index f66185d692..d15eae3f1c 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2023 Adam Faiz <adam.faiz@disroot.org> ;;; Copyright © 2023 David Pflug <david@pflug.io> ;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se> +;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,6 +54,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages ebook) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages file) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -82,7 +84,7 @@ (define-public xapian (package (name "xapian") - (version "1.4.19") + (version "1.4.29") ;; Note: When updating Xapian, remember to update omega and ;; python-xapian-bindings below. (source (origin @@ -90,7 +92,7 @@ (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) (sha256 - (base32 "1hx92kbqdl38gsrwzvbqgf2jc4wwzsad2gd99g62cdfclvy4ijhz")))) + (base32 "1g11wps45rgh7a7z0zmsvk6vg2i1ih4cmbwf44nfrlrsc749np65")))) (build-system gnu-build-system) (inputs (list zlib `(,util-linux "lib"))) @@ -129,10 +131,12 @@ rich set of boolean query operators.") "/xapian-omega-" version ".tar.xz")) (sha256 (base32 - "136dsna6jvq48j4x4rr5y9nxmgrif9kvf4ybl5a6gpsmgqlfzcp4")))) + "0gpq1k1fanx2vpj0xrmkdafacn2r5qsf57201ax4skkb96flxfjg")))) (build-system gnu-build-system) + (native-inputs + (list pkg-config)) (inputs - (list (list pcre "bin") perl xapian zlib)) + (list file pcre2 perl xapian zlib)) (home-page "https://xapian.org/") (synopsis "Search engine built on Xapian") (description @@ -157,16 +161,19 @@ a CGI web search frontend.") "/xapian-bindings-" version ".tar.xz")) (sha256 (base32 - "0gc8l9cn8jdma0p73jl14z17yizp6dax5zsycvgprajii6j8bhwi")))) + "1kn8dw0zrlxvc417wmqmdkqz76kw3f5802wsv5kyyl38pckyjh0p")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--with-python3") - #:make-flags - (list (string-append "pkgpylibdir=" - (assoc-ref %outputs "out") - "/lib/python" ,(version-major+minor - (package-version python)) - "/site-packages/xapian")))) + (list #:configure-flags #~(list "--with-python3") + #:make-flags + #~(list (string-append "pkgpylibdir=" + #$output + "/lib/python" #$(version-major+minor + (package-version python)) + "/site-packages/xapian") + ;; XXX: Otherwise set to "None", which produces _xapianNone + ;; and ends up unable to find it. + "PYTHON3_SO=.so"))) (native-inputs (list python-sphinx)) ;for documentation (inputs diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 5dbeb36929..38a274a96b 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -48,6 +48,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) @@ -1015,6 +1016,16 @@ game development and other performance-critical applications.") (base32 "01g64kmjw8dfhj12j5fgyx70avix9p1ml4w25lm726dixmpq9gp8")))))) +(define-public go-github-com-google-flatbuffers + (package/inherit flatbuffers-next + (name "go-github-com-google-flatbuffers") + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f + #:import-path "github.com/google/flatbuffers")))) + (define-public python-flatbuffers (package (name "python-flatbuffers") diff --git a/gnu/packages/specifications.scm b/gnu/packages/specifications.scm index c02d3265f9..d0f121fb56 100644 --- a/gnu/packages/specifications.scm +++ b/gnu/packages/specifications.scm @@ -27,6 +27,33 @@ #:use-module (guix packages) #:use-module (guix build-system copy)) +(define-public specification-ip2asn-v6 + (package + (name "specification-ip2asn-v6") + (version "20240820024646") + (source + (origin + (method url-fetch) + ;; Upstream updates the file too often without any versioning provided, + ;; use archived variant. + (uri (string-append "https://web.archive.org/web/" version + "/https://iptoasn.com/data/ip2asn-v6.tsv.gz")) + (sha256 + (base32 "1n2l0s6vg7v0nxprhi0gkrbqrjq5q91gra15bp2lr7p5kwki52xf")))) + (build-system copy-build-system) + (arguments + '(#:install-plan '(("ip2asn-v6.tsv" "share/data/")))) + (home-page "https://iptoasn.com") + (synopsis "Free IP address to ASN database") + (description + "This package provides a collection of IPv6 addresses to +@acronym{Autonomous system, ASN}, a self-hosted API is availalbe from +@url{https://github.com/jedisct1/iptoasn-webservice}.") + ;; It's a TSV plain text file, distributed under Public Domain + ;; Dedication license + ;; <https://opendatacommons.org/licenses/pddl/1.0/>. + (license license:public-domain))) + (define-public specification-ipld (let ((commit "84a5cc6c168314a26be0d447c26fe76e46ce2a42") (revision "0")) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d3f67f2485..b60fdbc841 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2957,7 +2957,8 @@ Java package that provides routines for various statistical distributions.") "$(MAKE) -C etc install")))))) (build-system gnu-build-system) (arguments - (let ((base-directory "/share/emacs/site-lisp")) + (let ((base-directory (string-append "/share/emacs/site-lisp/" + "ess-" version))) (list #:modules '((guix build gnu-build-system) (guix build utils) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 6470c2d2a2..bb893ef157 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -229,7 +229,9 @@ notification area icon for Syncthing. Supported Syncthing features: (base32 "1mw7kxj0smcf4vgpxai7m9vncdx2d3blxqy13hffvza0fxnwkv37")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/syncthing/notify")) + (list + #:parallel-tests? #f + #:import-path "github.com/syncthing/notify")) (propagated-inputs (list go-golang-org-x-sys)) (home-page "https://github.com/syncthing/notify") diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index 62f5bbf0f3..a383dc8c5d 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -340,31 +340,40 @@ time to a logfile.") (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 - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "build" "-trimpath" "-o" "dstask" "cmd/dstask/main.go") - (invoke "go" "build" "-trimpath" "-o" "dstask-import" - "cmd/dstask-import/main.go")))) - (replace 'install - (lambda* (#:key import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (let* ((out (assoc-ref outputs "out")) - (bindir (string-append out "/bin")) - (zsh-completion (string-append - out "/share/zsh/site-functions/_dstask")) - (bash-completion - (string-append - out "/share/bash-completion/completions/_dstask"))) - (install-file "dstask" bindir) - (install-file "dstask-import" bindir) - (install-file ".dstask-bash-completions.sh" bash-completion) - (install-file ".dstask-zsh-completions.sh" zsh-completion)))))))) + (list + #:install-source? #f + #:import-path "github.com/naggie/dstask" + #:build-flags + #~(list (string-append + "-ldflags=-X github.com/naggie/dstask.VERSION=" #$version + " -X github.com/naggie/dstask.GIT_COMMIT=" #$version)) + #:test-subdirs #~(list "pkg/..." ".") + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda arguments + (let ((path-prefix "github.com/naggie/dstask/cmd/")) + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path + ,(string-append path-prefix cmd)))) + (list "dstask-import" "dstask"))))) + ;; TODO: Completions may be generated on the fly with "dstask + ;; (bash|fish|zsh)-completion" but invocation of "dstask" requires + ;; creating $HOME/.dstask git repository, find out workaround and + ;; add fish completion as well. + (add-after 'install 'install-shell-completions + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (let* ((out #$output) + (share (string-append out "/share")) + (zsh-completion + (string-append share "/zsh/site-functions/_dstask")) + (bash-completion + (string-append out "/bash-completion/completions/_dstask"))) + (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 diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 0cf8ffdd12..eaad3932a3 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -97,7 +97,6 @@ #: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) @@ -994,7 +993,7 @@ minimalistic.") (define-public go-github-com-junegunn-fzf (package (name "go-github-com-junegunn-fzf") - (version "0.54.3") + (version "0.60.2") (source (origin (method git-fetch) @@ -1004,15 +1003,15 @@ minimalistic.") (file-name (git-file-name name version)) (sha256 (base32 - "0mdj3z7w2igkvy8r304k9rcr2l6xm459ifshdm55iy6mazd8cmci")))) + "1c18h9326i8g9ksbfrpzrxpz8xlym2a35fpjsi7dn1dv6rr3jayn")))) (build-system go-build-system) (arguments `(#:import-path "github.com/junegunn/fzf")) (inputs (list go-github-com-charlievieth-fastwalk go-github-com-gdamore-tcell-v2 + go-github-com-junegunn-go-shellwords go-github-com-mattn-go-isatty - go-github-com-mattn-go-shellwords go-github-com-rivo-uniseg go-golang-org-x-sys go-golang-org-x-term)) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 628813e364..61f0a78d20 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in> ;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se> +;;; Copyright © 2025 Marc Coquand <marc@coquand.email> ;;; ;;; This file is part of GNU Guix. ;;; @@ -457,7 +458,7 @@ competitive (as in keystroke count) with Vim.") (define-public kak-lsp (package (name "kak-lsp") - (version "18.1.1") + (version "18.1.3") (source (origin (method git-fetch) @@ -465,7 +466,7 @@ competitive (as in keystroke count) with Vim.") (url "https://github.com/kak-lsp/kak-lsp") (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (sha256 "1dinxd3h0dllws1v28l1igvns94j91kifv1bxjds6859q22yhhpd"))) + (sha256 "1wffw0whcjybjn7h1v83rjmga0qbzn0663ickfpx2l51wycz8c6s"))) (build-system cargo-build-system) (arguments `(#:install-source? #f diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index c886b009be..c72e9d9a76 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -1271,7 +1271,7 @@ formats (e.g. Bibtex, RIS, etc.) using a common XML intermediate.") (define-public goawk (package (name "goawk") - (version "1.29.0") + (version "1.29.1") (source (origin (method git-fetch) @@ -1280,7 +1280,7 @@ formats (e.g. Bibtex, RIS, etc.) using a common XML intermediate.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "11ha3wzpwl02g921vz5dvhblim7jf5wxd0gi4vn9jppxah1d5kgl")))) + (base32 "1dn4f8a8wp765v0112vmj2qq2brv7z2c8gr16rfpklxq5p4ml2rx")))) (build-system go-build-system) (arguments (list @@ -1496,7 +1496,7 @@ of a Unix terminal to HTML code.") (define-public vale (package (name "vale") - (version "3.9.4") + (version "3.9.5") (source (origin (method git-fetch) @@ -1504,7 +1504,7 @@ of a Unix terminal to HTML code.") (url "https://github.com/errata-ai/vale") (commit (string-append "v" version)))) (sha256 - (base32 "009gyrn2mi7bg10v6mqrr6c6ii5l2vbhs7mvh7g4xxgqhaqzpbhp")) + (base32 "119iiyh164rkj7jlghr2j1kbhc8k1bvfhsfvd972zs092fg7dh4p")) (file-name (git-file-name name version)))) (build-system go-build-system) (arguments diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm index 06729699cf..8f15058446 100644 --- a/gnu/packages/tor-browsers.scm +++ b/gnu/packages/tor-browsers.scm @@ -51,7 +51,7 @@ #: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-web) #:use-module (gnu packages gtk) #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index c1e8d4102d..f0a0e73eb0 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1077,7 +1077,7 @@ the date of the most recent commit that modified them (define-public git-spice (package (name "git-spice") - (version "0.9.0") + (version "0.11.0") (source (origin (method git-fetch) @@ -1086,76 +1086,73 @@ the date of the most recent commit that modified them (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1yvnd5a3ql905jrxh0sq9sdcfmyq38fsbqx0zbhxbd4rgs8hv5s3")))) + (base32 "0fgdi0gmax808aazmzl75wny2klfcz5gbs8v82zhifgiza01xzqy")))) (build-system go-build-system) (arguments (list - #:go go-1.23 + #:go go-1.24 #:import-path "go.abhg.dev/gs" #:install-source? #f + #:build-flags + #~(list (string-append "-ldflags=-X main._version=" #$version)) #:test-flags #~(list "-skip" (string-join - ;; XXX: Tests failing with various reasons; requiring + ;; 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" + (list "TestAuthenticationFlow_PAT/pat" + "TestDeviceFlowAuthenticator" "TestScript/auth_detect_forge" "TestScript/auth_explicit_forge" "TestScript/auth_insecure_storage" "TestScript/auth_prompt_forge" + "TestScript/branch_create_below_with_downstack_history" + "TestScript/branch_create_no_verify" + "TestScript/branch_onto_two_stacks_with_downstack_history" "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/branch_submit_.*" + "TestScript/commit_amend_no_verify" + "TestScript/commit_create_no_verify" + "TestScript/commit_split_no_verify" "TestScript/downstack_submit" - "TestScript/issue369_branch_.*_case_insensitive" - "TestScript/issue369_branch_.*_remote_update" + "TestScript/issue369_branch_submit_pr_template_cache_.*" "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/repo_sync_.*" + "TestScript/stack_edit_inserted_at_bottom_with_.*" "TestScript/stack_submit" - "TestScript/stack_submit_update_leave_draft" - "TestScript/stack_submit_web" - "TestScript/upstack_submit_main") - "|")))) + "TestScript/stack_submit_.*" + "TestScript/submit_update_only" + "TestScript/upstack_submit_main" + "TestSelectAuthenticator/oauth" + "TestSelectAuthenticator/oauth_public") + "|")) + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'install-shell-completion + (lambda _ + (let* ((out #$output) + (share (string-append out "/share")) + (gs (string-append out "/bin/gs")) + (bash-completions-dir + (string-append out "/etc/bash_completion.d/")) + (fish-completions-dir + (string-append share "/fish/vendor_completions.d")) + (zsh-completions-dir + (string-append share "/zsh/site-functions"))) + (for-each mkdir-p + (list bash-completions-dir + fish-completions-dir + zsh-completions-dir)) + (with-output-to-file + (string-append bash-completions-dir "/gs") + (lambda _ (invoke gs "shell" "completion" "bash"))) + (with-output-to-file + (string-append fish-completions-dir "/gs.fish") + (lambda _ (invoke gs "shell" "completion" "fish"))) + (with-output-to-file + (string-append zsh-completions-dir "/_gs") + (lambda _ (invoke gs "shell" "completion" "zsh"))))))))) (native-inputs (list git-minimal ; for tests in testdata/scripts go-github-com-alecthomas-kong @@ -1168,16 +1165,16 @@ the date of the most recent commit that modified them 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-rogpeppe-go-internal-1.14 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-gitlab-com-gitlab-org-api-client-go + go-go-abhg-dev-io-ioutil 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 @@ -1196,7 +1193,7 @@ provides an integration with GitHub and GitLab.") (define-public got (package (name "got") - (version "0.111") + (version "0.112") (source (origin (method url-fetch) (uri @@ -1205,7 +1202,7 @@ provides an integration with GitHub and GitLab.") version ".tar.gz")) (sha256 (base32 - "1kkqv2lrd6wwjgsb02bgw5nqlkxrq90rdbzv486xs057j5pgg5nh")))) + "12gx59ki610a9iydscg9jf3m7qcnyx34wmsah26by4hix57njdp3")))) (inputs (list libevent `(,util-linux "lib") @@ -4041,33 +4038,6 @@ the smallest possible conflicts and to allow a merge to be saved, tested, interrupted, published, and collaborated on while in progress.") (license license:gpl2+))) -(define-public go-github-com-git-lfs-pktline - (let ((commit "06e9096e28253ba5c7825cbba43f469e4efd10f0") - (revision "0")) - (package - (name "go-github-com-git-lfs-pktline") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/git-lfs/pktline") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "02sn3v8vrl7qjnagbnrbrjnyjvzq8cwkxmc922zyc9b2hg187kpz")))) - (build-system go-build-system) - (arguments `(#:import-path "github.com/git-lfs/pktline")) - (propagated-inputs (list go-github-com-stretchr-testify - go-github-com-pmezard-go-difflib - go-github-com-davecgh-go-spew)) - (home-page "https://github.com/git-lfs/pktline") - (synopsis "Git pkt-line Go toolkit") - (description "This package is a Go language toolkit for reading and -writing files using the Git pkt-line format used in various Git operations.") -(license license:expat)))) - (define-public go-github-com-git-lfs-wildmatch-v2 (package (name "go-github-com-git-lfs-wildmatch-v2") @@ -4124,7 +4094,7 @@ will reconstruct the object along its delta-base chain and return it.") (define-public git-lfs (package (name "git-lfs") - (version "3.6.0") + (version "3.6.1") (source (origin (method git-fetch) (uri (git-reference @@ -4133,7 +4103,7 @@ will reconstruct the object along its delta-base chain and return it.") (file-name (git-file-name name version)) (sha256 (base32 - "09ry2nq5bpdxk446dyhc0d6d85wy5x2i5ckwwg9r00a3zdp5v4ry")))) + "02819i3sd9qjw89lcpv6rmhfqaxkz1pddqw8havw3ysmcmhmb7yd")))) (build-system go-build-system) (arguments (list @@ -4150,51 +4120,50 @@ will reconstruct the object along its delta-base chain and return it.") (search-input-file inputs "bin/sh"))))) ;; Only build the man pages if ruby-asciidoctor is available. #$@(if (this-package-native-input "ruby-asciidoctor") - #~((add-before 'build 'man-gen - ;; Without this, the binary generated in 'build - ;; phase won't have any embedded usage-text. - (lambda _ - (with-directory-excursion "src/github.com/git-lfs/git-lfs" - (invoke "make" "mangen")))) - (add-after 'build 'build-man-pages - (lambda _ - (with-directory-excursion "src/github.com/git-lfs/git-lfs" - (invoke "make" "man")))) - (add-after 'install 'install-man-pages - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion "src/github.com/git-lfs/git-lfs/man" - (for-each - (lambda (manpage) - (install-file manpage - (string-append #$output "/share/man/man1"))) - (find-files "." "^git-lfs.*\\.1$")))))) - #~())))) - ;; make `ronn` available during build for man page generation + #~((add-before 'build 'man-gen + ;; Without this, the binary generated in 'build + ;; phase won't have any embedded usage-text. + (lambda _ + (with-directory-excursion "src/github.com/git-lfs/git-lfs" + (invoke "make" "mangen")))) + (add-after 'build 'build-man-pages + (lambda _ + (with-directory-excursion "src/github.com/git-lfs/git-lfs" + (invoke "make" "man")))) + (add-after 'install 'install-man-pages + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/github.com/git-lfs/git-lfs/man" + (for-each + (lambda (manpage) + (install-file manpage + (string-append #$output "/share/man/man1"))) + (find-files "." "^git-lfs.*\\.1$")))))) + #~())))) (native-inputs - (append (list git-minimal) + (append (list git-minimal + go-github-com-avast-retry-go + go-github-com-dpotapov-go-spnego + 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-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) + ;; make `ronn` available during build for man page generation (if (supported-package? ruby-asciidoctor) - (list ronn-ng ruby-asciidoctor) - '()))) - (propagated-inputs - (list go-github-com-avast-retry-go - go-github-com-dpotapov-go-spnego - 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-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)) + (list ronn-ng ruby-asciidoctor) + '()))) (home-page "https://git-lfs.github.com/") (synopsis "Git extension for versioning large files") (description @@ -4774,7 +4743,16 @@ developer workflow, and project and release management.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14cia976i2jdzyzw4wk9fhkh6zqgmb09ryf31ys24smmfcdfxyf1")))) + (base32 "14cia976i2jdzyzw4wk9fhkh6zqgmb09ryf31ys24smmfcdfxyf1")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; XXX: Module name has been changed upstream, it's already + ;; adjusted on master, consider to remove in the next refresh + ;; cycle. + (substitute* (find-files "." "\\.go$") + (("git.sr.ht/~emersion/go-scfg") + "codeberg.org/emersion/go-scfg")))))) (build-system go-build-system) (arguments (list @@ -4795,7 +4773,7 @@ developer workflow, and project and release management.") (native-inputs (list scdoc)) (inputs - (list go-git-sr-ht-emersion-go-scfg + (list go-codeberg-org-emersion-go-scfg go-git-sr-ht-emersion-gqlclient go-github-com-dustin-go-humanize go-github-com-google-shlex diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9cf5afe113..7e72b4b2b5 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -154,7 +154,6 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnunet) #:use-module (gnu packages gnupg) - #:use-module (gnu packages golang) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages haskell-xyz) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 28dd3202df..c6656d9f47 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2317,7 +2317,7 @@ main monitor/GPU.") (invoke "make" "install" "install-bash" "install-man" (string-append "PREFIX=" out))))))))) (native-inputs - (list go-github-com-go-md2man pkg-config)) + (list go-md2man pkg-config)) (inputs (list libseccomp)) (synopsis "Open container initiative runtime") @@ -2394,7 +2394,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") (build-system gnu-build-system) (native-inputs (list go-1.22 - go-github-com-go-md2man + go-md2man pkg-config)) (inputs (list bash-minimal @@ -2413,8 +2413,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") "PREFIX=" (string-append "DESTDIR=" #$output) "GOGCFLAGS=-trimpath" - (string-append "GOMD2MAN=" - #$go-github-com-go-md2man "/bin/go-md2man")) + (string-append "GOMD2MAN=" #$go-md2man "/bin/go-md2man")) #:tests? #f ; The tests require Docker #:test-target "test-unit" #:imported-modules diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 0b62e8c7cf..c11f245044 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -72,8 +72,9 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) diff --git a/gnu/packages/weather.scm b/gnu/packages/weather.scm index 2651c05035..18f392ccf5 100644 --- a/gnu/packages/weather.scm +++ b/gnu/packages/weather.scm @@ -25,7 +25,6 @@ #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages qt) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 1313d1f41a..14892c4ef7 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -300,14 +300,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.58") + (version "2.4.63") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "1id45r2ccgkbjm9i998997ch32lvicpyynyx8x6aa4420wmdf5ps")))) + "1as69kwk53zmjn5wwkg6a5szsapc12h4jzfy92r68a4vp5m27z48")))) (build-system gnu-build-system) (native-inputs (list `(,pcre "bin"))) ;for 'pcre-config' (inputs (list apr apr-util libxcrypt openssl perl)) ; needed to run bin/apxs @@ -5382,8 +5382,8 @@ Cloud.") (license license:expat))) (define-public guix-data-service - (let ((commit "cf912ed933a79e2c3a616dd3f4cae5945fd738d9") - (revision "67")) + (let ((commit "dfbfc846d60195ae62526de13d0c662375c09b43") + (revision "68")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -5395,7 +5395,7 @@ Cloud.") (file-name (git-file-name name version)) (sha256 (base32 - "08iw534hv4liab7lips9d1vlgfkl9a1j00mk8zph8axwc286g1dr")))) + "0mq04i1f9wlny6mmvn163i34573a32pq4acc966vqcvypa82q51v")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 6985a2635f..90bdbcba61 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -159,6 +159,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages tcl) #:use-module (gnu packages terminals) + #:use-module (gnu packages video) #:use-module (gnu packages xml) #:use-module (gnu packages wm) #:use-module (gnu packages webkit) @@ -2913,22 +2914,32 @@ temperature of the screen.") (define-public xsecurelock (package (name "xsecurelock") - (version "1.8.0") + (version "1.9.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/google/xsecurelock/releases" - "/download/v" version "/xsecurelock-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/xsecurelock") + (commit (string-append "v" version)))) (sha256 - (base32 "1i7vhzysirr5kra15vd501b79k0jgs11lkb9ck3hx6vicxm204d3")))) + (base32 + "0knafjzdzxjh2b1mrrxbcqvg76ia6vazv8shklb6ggp6kj5srxiq")))) (build-system gnu-build-system) (arguments - '(#:configure-flags - '("--with-pam-service-name=login" + (list + #:make-flags + #~(list (string-append "GIT_VERSION=v" #$(package-version this-package))) + #:configure-flags + #~(list + "--with-pam-service-name=login" "--with-xkb" - "--with-default-authproto-module=/run/privileged/bin/authproto_pam"))) + "--with-default-authproto-module=/run/privileged/bin/authproto_pam" + (string-append "--with-mpv=" + #$(this-package-input "mpv") "/bin/mpv") + (string-append "--with-xscreensaver=" + #$(this-package-input "xscreensaver") + "/libexec/xscreensaver")))) (native-inputs - (list pandoc pkg-config)) + (list autoconf automake pandoc pkg-config)) (inputs (list fontconfig libx11 @@ -2939,11 +2950,14 @@ temperature of the screen.") libxmu libxrandr libxscrnsaver - linux-pam)) + linux-pam + mpv + xscreensaver)) (home-page "https://github.com/google/xsecurelock") (synopsis "X11 screen lock utility with the primary goal of security") - (description "@code{xsecurelock} is an X11 screen locker which uses -a modular design to avoid the usual pitfalls of screen locking utility design. + (description + "@code{xsecurelock} is an X11 screen locker which uses a modular design +to avoid the usual pitfalls of screen locking utility design. As a consequence of this design, you shouldn't use the usual screen locker service with @code{xsecurelock}. Instead, add a helper binary to your diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 70ff880db8..3142c61623 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -182,8 +182,11 @@ dependencies, so it should be self-contained." ;; that Guix targets. (setenv "GOARCH" (or goarch (getenv "GOHOSTARCH"))) - (setenv "GOOS" (or goos - (getenv "GOHOSTOS"))) + (setenv "GOOS" (cond ((and goos + (string=? "mingw" goos)) + "windows") + (goos goos) + (else (getenv "GOHOSTOS")))) (match goarch ("arm" (setenv "GOARM" "7")) |
