X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/19be547c47c846778698bcf1375687dda1e41fb5..0609713120011956093876901652beda6fc1af45:/gnu/packages/golang.scm diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 93e431ff0f..9e0175e15a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner ;;; Copyright © 2016 Matthew Jordan ;;; Copyright © 2016 Andy Wingo ;;; Copyright © 2016, 2019 Ludovic Courtès @@ -7,7 +7,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari ;;; Copyright © 2017 Sergei Trofimovich ;;; Copyright © 2017 Alex Vong -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Christopher Baines ;;; Copyright © 2018 Tomáš Čech ;;; Copyright © 2018 Pierre-Antoine Rouby @@ -23,6 +23,8 @@ ;;; Copyright © 2020 Marius Bakke ;;; Copyright © 2020 raingloom ;;; Copyright © 2020 Martin Becze +;;; Copyright © 2021 Ricardo Wurmus +;;; Copyright © 2021 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,14 +52,15 @@ #:use-module (guix build-system go) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages base) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) - #:use-module (gnu packages base) - #:use-module (gnu packages perl) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages pcre) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) + #: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 textutils) #:use-module (gnu packages tls) #:use-module (gnu packages web) @@ -234,7 +237,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.4) (name "go") - (version "1.14.10") + (version "1.14.15") (source (origin (method git-fetch) @@ -244,7 +247,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (file-name (git-file-name name version)) (sha256 (base32 - "0h1nmqzjc0xxpn6n2hjq7692gdqkznagzdmiq9490yzkrrii2lgk")))) + "1crh90qkvhlx23hwsi4wxy3l3h8973lr18135y6h1nnzzwr3n3ps")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:system system) @@ -284,7 +287,10 @@ in the style of communicating sequential processes (@dfn{CSP}).") "cmd/go/testdata/script/cover_cgo.txt" "cmd/go/testdata/script/cover_cgo_xtest.txt" "cmd/go/testdata/script/cover_cgo_extra_test.txt" - "cmd/go/testdata/script/cover_cgo_extra_file.txt")) + "cmd/go/testdata/script/cover_cgo_extra_file.txt" + "cmd/go/testdata/script/cgo_path_space.txt" + "cmd/go/testdata/script/ldflag.txt" + "cmd/go/testdata/script/cgo_path.txt")) (for-each make-file-writable (find-files ".")) @@ -487,6 +493,100 @@ jar struct to manage the cookies added to the cookie jar.") (home-page "https://github.com/aki237/nscjar") (license license:expat)))) +(define-public go-github-com-golangplus-fmt + (package + (name "go-github-com-golangplus-fmt") + (version "1.0.0") + (home-page "https://github.com/golangplus/fmt") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/golangplus/fmt")) + (synopsis "Additions to Go's standard @code{fmt} package") + (description "This package provides additions to Go's stdlib @code{fmt}.") + (license license:bsd-3))) + +(define-public go-github-com-motemen-go-colorine + (let ((commit "45d19169413a019e4e2be69629dde5c7d92f8706") + (revision "0")) + (package + (name "go-github-com-motemen-go-colorine") + (version (git-version "0.0.0" revision commit)) + (home-page "https://github.com/motemen/go-colorine") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/motemen/go-colorine")) + (propagated-inputs + `(("github.com/daviddengcn/go-colortext" ,go-github-com-daviddengcn-go-colortext))) + (synopsis "Simple colorized console logger for golang") + (description + "This package provides simple colorized console logger for golang.") + (license license:expat)))) + +(define-public go-github-com-daviddengcn-go-colortext + (package + (name "go-github-com-daviddengcn-go-colortext") + (version "1.0.0") + (home-page "https://github.com/daviddengcn/go-colortext") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j5ldwg3a768d3nniiglghr9axj4p87k7f7asqxa1a688xvcms48")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/daviddengcn/go-colortext")) + (native-inputs + `(("go-github-com-golangplus-testing" ,go-github-com-golangplus-testing))) + (synopsis "Change the color of console text and background") + (description + "This is a package to change the color of the text and background in the +console, working both under Windows and other systems. + +Under Windows, the console APIs are used. Otherwise, ANSI texts are output.") + ;; dual-licensed + (license (list license:bsd-3 license:expat)))) + +(define-public go-github-com-golangplus-testing + (package + (name "go-github-com-golangplus-testing") + (version "1.0.0") + (home-page "https://github.com/golangplus/testing") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/golangplus/testing")) + (propagated-inputs + `(("go-github-com-golangplus-fmt" ,go-github-com-golangplus-fmt))) + (synopsis "Additions to Go's standard testing package") + (description "This package provides additions to Go's stdlib testing.") + (license license:bsd-3))) + (define-public go-github-com-leodido-go-urn (package (name "go-github-com-leodido-go-urn") @@ -969,6 +1069,18 @@ for the Go language.") (home-page "https://go.googlesource.com/net") (license license:bsd-3)))) +(define-public go-golang-org-x-net-html + (package + (inherit go-golang-org-x-net) + (name "go-golang.org-x-net-html") + (arguments + '(#:import-path "golang.org/x/net/html" + #:unpack-path "golang.org/x/net")) + (synopsis "HTML5-compliant tokenizer and parser") + (description + "This package provides an HTML5-compliant tokenizer and parser.") + (home-page "https://godoc.org/golang.org/x/net/html"))) + (define-public go-golang-org-x-image (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d") (revision "1")) @@ -1363,7 +1475,7 @@ optimized for performance yet simple to use.") (define-public go-github-com-tomnomnom-gron (package (name "gron") - (version "0.6.0") + (version "0.6.1") (home-page "https://github.com/tomnomnom/gron") (source (origin @@ -1373,7 +1485,7 @@ optimized for performance yet simple to use.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "05f3w4zr15wd7xk75l12y5kip4gnv719a2x9w2hy23q3pnss9wk0")))) + (base32 "0qmzawkhg0qn9kxxrssbdjni2khvamhrcklv3yxc0ljmh77mh61m")))) (build-system go-build-system) (arguments (let ((import-path "github.com/tomnomnom/gron")) @@ -1987,7 +2099,7 @@ application's http.Handlers.") (define-public go-github-com-sirupsen-logrus (package (name "go-github-com-sirupsen-logrus") - (version "1.0.5") + (version "1.8.1") (source (origin (method git-fetch) @@ -1997,17 +2109,16 @@ application's http.Handlers.") (file-name (git-file-name name version)) (sha256 (base32 - "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz")))) + "0rvqzic2zz7fpxyizmqxwmhv1m52ii9bgxnqa6km8wsa0l08wh42")))) (build-system go-build-system) (propagated-inputs - `(("go-golang-org-x-crypto" - ,go-golang-org-x-crypto) - ("go-github-com-stretchr-testify" - ,go-github-com-stretchr-testify) + `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew) + ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib) + ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) ("go-golang-org-x-sys" ,go-golang-org-x-sys))) (arguments - '(#:tests? #f ;FIXME missing dependencies - #:import-path "github.com/sirupsen/logrus")) + '(#:import-path "github.com/sirupsen/logrus")) (home-page "https://github.com/sirupsen/logrus") (synopsis "Structured, pluggable logging for Go") (description "Logrus is a structured logger for Go, completely API @@ -3494,6 +3605,23 @@ building command line apps in Go. The goal is to enable developers to write fast and distributable command line applications in an expressive way.") (license license:expat))) +(define-public go-github-com-urfave-cli-v2 + (package + (inherit go-github-com-urfave-cli) + (name "go-github-com-urfave-cli-v2") + (version "2.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08pvn7gyfznni72xrxfh2x6xxa8ykr7l1ka278js8g8qkh71bj8l")))) + (arguments + '(#:import-path "github.com/urfave/cli/v2")))) + (define-public go-github-com-go-md2man (package (name "go-github-com-go-md2man") @@ -3837,7 +3965,7 @@ without requiring a real database connection.") (home-page "https://github.com/go-sql-driver/mysql") (synopsis "MySQL driver for golang") (description - "This is a pure Go implementaton of the MySQL API, compatible with + "This is a pure Go implementation of the MySQL API, compatible with golang's database/sql package.") (license license:mpl2.0))) @@ -4726,6 +4854,28 @@ data serialization format.") directories. It is optimized for filewalking. ") (license license:expat))) +(define-public go-github-com-mattn-go-sqlite3 + (package + (name "go-github-com-mattn-go-sqlite3") + (version "1.14.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-sqlite3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04anvqkc37mmc3z1dy4xfa6cas67zlxnnab0ywii7sylk864mhxz")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/mattn/go-sqlite3")) + (home-page "https://github.com/mattn/go-sqlite3") + (synopsis "Sqlite3 driver for Go") + (description "This package provides a Sqlite3 driver for Go using +@code{database/sql}.") + (license license:expat))) + (define-public go-github-com-willf-bitset (package (name "go-github-com-willf-bitset") @@ -5354,7 +5504,7 @@ the parse trees produced by the html package.") (build-system go-build-system) (arguments `(#:import-path "github.com/PuerkitoBio/goquery")) - (native-inputs + (propagated-inputs `(("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia) ("go-golang-org-x-net" ,go-golang-org-x-net))) (home-page "https://github.com/PuerkitoBio/goquery") @@ -5677,7 +5827,7 @@ which produce colorized output using github.com/fatih/color.") (synopsis "Write handsome command-line tools with glamour") (description "@code{glamour} lets you render markdown documents and templates on ANSI compatible terminals. You can create your own stylesheet or -use one of our glamourous default themes.") +use one of our glamorous default themes.") (license license:expat))) (define-public go-github-com-coreos-go-semver @@ -6484,6 +6634,68 @@ systems can import this package to enable running programs as services without modifying them.") (license license:zlib))) +(define-public go-github-com-goccy-yaml + (package + (name "go-github-com-goccy-yaml") + (version "1.8.0") + (home-page "https://github.com/goccy/go-yaml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nps58dwkd915mx35h5f0dc05b880b4fdl6dcjxpfmmbzyinvg38")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/goccy/go-yaml")) + (propagated-inputs + `(("go-github-com-fatih-color" ,go-github-com-fatih-color) + ("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors))) + (native-inputs + `(("go-gopkg-in-go-playground-validator-v9" + ,go-gopkg-in-go-playground-validator-v9))) + (synopsis "YAML support for the Go language") + (description + "This package provides features beyond the +@uref{https://github.com/go-yaml/yaml, defacto YAML library} including: + +@itemize +@item Pretty format for error notifications +@item Support Scanner or Lexer or Parser as public API +@item Support Anchor and Alias to Marshaler +@item Allow referencing elements declared in another file via anchors +@item Extract value or AST by YAMLPath (YAMLPath is like a JSONPath) +@end itemize") + (license license:expat))) + +(define-public go-github-com-tekwizely-go-parsing + (let ((commit "1548cfb17df54d365ce9febed0677c06a40a8ceb") + (revision "0")) + (package + (name "go-github-com-tekwizely-go-parsing") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tekwizely/go-parsing") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bv5amka8hb9crc7qvlzi2kbycqrnh9d46b9wgcs8wqzl0z7w609")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/tekwizely/go-parsing")) + (home-page "https://github.com/tekwizely/go-parsing") + (synopsis "Text parsing, with lexers, parsers, and related tools") + (description + "This package provides Go modules focused on text parsing, with lexers, +parsers, and related tools.") + (license license:expat)))) + (define-public go-github.com-ulikunitz-xz (package (name "go-github.com-ulikunitz-xz") @@ -6505,3 +6717,319 @@ modifying them.") compressed streams in Go.") (home-page "https://github.com/ulikunitz/xz") (license license:bsd-3))) + +(define-public go-github-com-songmu-gitconfig + (package + (name "go-github-com-songmu-gitconfig") + (version "0.1.0") + (home-page "https://github.com/songmu/gitconfig") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y01h496a7pfj1g2bclls5b0nl3vnj7nz610jj1dzq9kxrwxk7fk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/Songmu/gitconfig" + ;; Package's tests appear to be hardcoded to the author's gitconfig + ;; and require network access. + #:tests? #f)) + (propagated-inputs + `(("go-github-com-goccy-yaml" ,go-github-com-goccy-yaml))) + (synopsis "Go library to get configuration values from gitconfig") + (description "@{gitconfig} is a package to get configuration values from gitconfig.") + (license license:expat))) + +(define-public go-github-com-operatorfoundation-ed25519 + (let ((commit "b22b4bd3ddef042eec45f3ee135cd40281fde2b4") + (revision "0")) + (package + (name "go-github-com-operatorfoundation-ed25519") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OperatorFoundation/ed25519") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xrzqrjlghkgd1cy5rj4khryn4f59vas2vzrxc6d8jpj5ijf3xkv")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/OperatorFoundation/ed25519" + #:phases + (modify-phases %standard-phases + (add-before 'install 'remove-test-data + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/testdata")) + #t))))) + (home-page "https://github.com/OperatorFoundation/ed25519") + (synopsis "Ed25519 for go") + (description "Package ed25519 implements the Ed25519 signature +algorithm.") + (license license:bsd-3)))) + +(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 + `(("pulseaudio" ,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 + `(("pkg-config" ,pkg-config) + ("pulseaudio" ,pulseaudio))) + (arguments + '(#:import-path "github.com/mesilliac/pulse-simple")) + (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-pborman-getopt + (package + (name "go-github-com-pborman-getopt") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pborman/getopt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sacv6g8cxfibxd3gnfjnzp7fynrnc4s2aaz5wbxivqqhvflc22l")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/pborman/getopt")) + (home-page "https://github.com/pborman/getopt") + (synopsis "Getopt style option parsing for Go") + (description + "This package provides traditional getopt processing for implementing +programs that use traditional command lines.") + (license license:bsd-3))) + +(define-public go-go-uber-org-atomic + (package + (name "go-go-uber-org-atomic") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uber-go/atomic") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yxvb5sixh76cl9j8dpa97gznj0p8pmg2cdw0ypfwhd3ipx9wph1")))) + (build-system go-build-system) + (arguments + '(#:import-path "go.uber.org/atomic")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify) + ("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew))) + (home-page "https://go.uber.org/atomic") + (synopsis "Wrapper types for sync/atomic") + (description + "This package provides simple wrappers for primitive types to enforce +atomic access.") + (license license:expat))) + +(define-public go-go-uber-org-multierr + (package + (name "go-go-uber-org-multierr") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uber-go/multierr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "162941s8f6a9x2w04qm4qa3zz0zylwag9149hywrj9ibp2nzcsqz")))) + (build-system go-build-system) + (arguments + '(#:import-path "go.uber.org/multierr")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-go-uber-org-atomic" ,go-go-uber-org-atomic))) + (home-page "https://go.uber.org/multierr") + (synopsis "Error combination for Go") + (description + "@code{multierr} allows combining one or more Go errors together.") + (license license:expat))) + +(define-public go-golang-org-x-lint + (let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445") + (revision "0")) + (package + (name "go-golang-org-x-lint") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/lint") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3")))) + (build-system go-build-system) + (arguments + '(#:import-path "golang.org/x/lint" + #:tests? #f)) ;; TODO: Fix tests + (propagated-inputs + `(("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (home-page "https://golang.org/x/lint") + (synopsis "Linter for Go source code") + (description + "This is a linter for Go source code. Unlike gofmt, it doesn't +reformat the source code, it only prints out style mistakes.") + (license license:bsd-3)))) + +(define-public go-github-com-kisielk-gotool + (package + (name "go-github-com-kisielk-gotool") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kisielk/gotool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/kisielk/gotool")) + (home-page "https://github.com/kisielk/gotool") + (synopsis "Go library of utility functions") + (description + "This package contains utility functions used to implement the standard +@code{cmd/go} tool, provided as a convenience to developers who want to write +tools with similar semantics.") + (license license:expat))) + +(define-public go-honnef-co-go-tools + (package + (name "go-honnef-co-go-tools") + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dominikh/go-tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17li8jbw3cpn59kpcl3j3r2an4wkx3fc81xn0j4xgbjpkxh9493n")))) + (build-system go-build-system) + (arguments + `(#:import-path "honnef.co/go/tools" + #:tests? #f + ;; Source-only package + #:phases + (modify-phases %standard-phases + (delete 'build)))) + (propagated-inputs + `(("go-golang-org-x-tools" ,go-golang-org-x-tools) + ("go-github-com-kisielk-gotool",go-github-com-kisielk-gotool) + ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml))) + (home-page "https://honnef.co/go/tools") + (synopsis "Staticcheck advanced Go linter") + (description + "Staticcheck is a state of the art linter for the Go programming language. +Using static analysis, it finds bugs and performance issues, offers +simplifications, and enforces style rules.") + (license license:expat))) + +(define-public go-go-uber-org-zap + (package + (name "go-go-uber-org-zap") + (version "1.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uber-go/zap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05ix5wg1r8pgi7fb6084lg4x7mrkvzkh1nxa7zj337w5b9xj0myr")))) + (build-system go-build-system) + (arguments + '(#:import-path "go.uber.org/zap" + #:tests? #f)) ; TODO: Fix tests + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify) + ("go-golang-org-x-lint" ,go-golang-org-x-lint) + ("go-honnef-co-go-tools" ,go-honnef-co-go-tools))) + (propagated-inputs + `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors) + ("go-go-uber-org-atomic" ,go-go-uber-org-atomic) + ("go-go-uber-org-multierr" ,go-go-uber-org-multierr) + ("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2))) + (home-page "https://go.uber.org/zap") + (synopsis "Logging library for Go") + (description + "This package provides a library for fast, structured, leveled logging in +Go.") + (license license:expat)))