rekahsoft-guix/rekahsoft-gnu/packages/golang.scm
Collin J. Doering abffdcff72
rekahsoft-gnu/packages/golang.scm: aws-vault improvements
- Do no use a 'v' in the version
- Add fish completions
- Put completions in correct place (they were slightly off before)
- Return #t from phases to avoid warnings
2021-01-01 18:48:25 -05:00

495 lines
20 KiB
Scheme

;;; Copyright © 2020 Collin J. Doering <collin@rekahsoft.ca>
;;;
;;; This file is part of the GNU Guix channel rekahsoft-guix
;;;
;;; The rekahsoft-guix channel for GNU Guix is free software; you can
;;; redistribute it and/or modify it under the terms of the GNU General Public
;;; License as published by the Free Software Foundation; either version 3 of
;;; the License, or (at your option) any later version.
;;;
;;; The rekahsoft-guix channel for GNU Guix is distributed in the hope that it
;;; will be useful, but WITHOUT ANY WARRANTY; without even the implied
;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License along
;;; with the rekahsoft-guix channel for GNU Guix. If not, see
;;; <http://www.gnu.org/licenses/>.
(define-module (rekahsoft-gnu packages golang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix build-system go)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages gcc)
#:use-module (gnu packages golang)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pcre)
#:use-module (gnu packages glib)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages lua)
#:use-module (gnu packages mp3)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public go-github-com-mattn-go-runewidth
(package
(name "go-runewidth")
(version "0.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/go-runewidth")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mattn/go-runewidth"))
(synopsis "Provides functions to get fixed width of the character or string")
(description
"Provides functions to get fixed width of the character or string.")
(home-page "https://github.com/mattn/go-runewidth")
(license license:expat)))
(define-public go-github-com-mitchellh-gox
(package
(name "go-gox")
(version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mitchellh/gox")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0mkh81hd7kn45dz7b6yhzqsg2mvg1g6pwx89jjigxrnqhyg9vrl7"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mitchellh/gox"
#:phases (modify-phases %standard-phases
(delete 'check))))
(synopsis "Dead simple, no frills Go cross compile tool")
(description
"Gox is a simple, no-frills tool for Go cross compilation that behaves a
lot like standard go build. Gox will parallelize builds for multiple
platforms. Gox will also build the cross-compilation toolchain for you.")
(home-page "https://github.com/mitchellh/gox")
(license license:mpl2.0)))
(define-public go-github-com-androiddnsfix
(package
(name "go-androiddnsfix")
(version "ff02804463540c36e3a148dcf4b009d003cf2a31")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mtibben/androiddnsfix")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1pcbjs793kd0yg3dcp79agfxm7xm3sldx2r7v66ipzpcq0j2npi2"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mtibben/androiddnsfix"
#:phases %standard-phases))
(synopsis "Hack to get around the issues building on android")
(description
"Hack around the issues in https://github.com/golang/go/issues/8877.")
(home-page "https://github.com/mtibben/androiddnsfix")
(license license:expat)))
(define-public aws-vault
(package
(name "aws-vault")
(version "6.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/99designs/aws-vault")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0892fhjmxnms09bfbjnngnnnli2d4nkwq44fw98yb3d5lbpa1j1j"))))
(build-system go-build-system)
(native-inputs
`(("go-keyring" ,go-keyring)
("go-github-com-androiddnsfix" ,go-github-com-androiddnsfix)
("go-github-com-percent" ,go-github-com-percent)
("go-github-com-jmespath-go-jmespath" ,go-github-com-jmespath-go-jmespath)
("go-github-com-aws-aws-sdk-go" ,go-github-com-aws-aws-sdk-go)
("go-github-com-dvsekhvalnov-jose2go" ,go-github-com-dvsekhvalnov-jose2go)
("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
("go-github-com-go-libsecret" ,go-github-com-go-libsecret)
("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
("go-golang-org-x-sys" ,go-golang-org-x-sys)
("go-gopkg-in-ini" ,go-gopkg-in-ini)
("go-github-com-skratchdot-open-golang" ,go-github-com-skratchdot-open-golang)
("go-github-com-kingpin" ,go-github-com-kingpin)
("go-github-com-alecthomas-template" ,go-github-com-alecthomas-template)
("go-github-com-alecthomas-units" ,go-github-com-alecthomas-units)))
(arguments
`(#:import-path "github.com/99designs/aws-vault"
#:install-source? #f
#: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 outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(zsh-site-dir (string-append out "/share/zsh/site-functions"))
(bash-completion-dir (string-append out "/share/bash-completion/completions"))
(fish-completion-dir (string-append out "/share/fish/completions")))
(for-each mkdir-p `(,zsh-site-dir ,bash-completion-dir ,fish-completion-dir))
(with-directory-excursion "src/github.com/99designs/aws-vault/contrib/completions"
(copy-file "zsh/aws-vault.zsh"
(string-append zsh-site-dir "/_aws-vault"))
(copy-file "bash/aws-vault.bash"
(string-append bash-completion-dir "/aws-vault"))
(copy-file "fish/aws-vault.fish"
(string-append fish-completion-dir "/aws-vault.fish")))
#t))))))
(synopsis
"Vault for securely storing and accessing AWS credentials in
development environments")
(description
"AWS Vault is a tool to securely store and access AWS credentials
in a development environment.
AWS Vault stores IAM credentials in your operating system's secure keystore and
then generates temporary credentials from those to expose to your shell and
applications. It's designed to be complementary to the AWS CLI tools, and is
aware of your profiles and configuration in ~/.aws/config.")
(home-page "https://github.com/99designs/aws-vault")
(license license:expat)))
(define-public go-github-com-percent
(package
(name "go-percent")
(version "v0.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mtibben/percent")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1iqivw8pigj259rj5yifibbvic70f9hb7k24a4sa967s4fj6agb6"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mtibben/percent"
#:phases %standard-phases))
(synopsis "Package percent escapes strings using percent-encoding")
(description
"Package percent escapes strings using percent-encoding.")
(home-page "https://github.com/mtibben/percent")
(license license:expat)))
(define-public go-keyring
(package
(name "go-keyring")
(version "v1.1.6")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/99designs/keyring")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"08rcdqpxaa9n348q10fw40q4gxpjajkyrighykk71i7mxzwkcgwn"))))
(build-system go-build-system)
(native-inputs
`(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
("go-golang-org-x-sys" ,go-golang-org-x-sys)
("go-github-com-percent" ,go-github-com-percent)
("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
("go-github-com-dvsekhvalnov-jose2go" ,go-github-com-dvsekhvalnov-jose2go)
("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
("go-github-com-go-libsecret" ,go-github-com-go-libsecret)
("password-store" ,password-store)
("gnupg" ,gnupg)))
(arguments
'(#:import-path "github.com/99designs/keyring"
#:phases (modify-phases %standard-phases
;; Tests require vagrant
(delete 'check))))
(synopsis "Go library providing a uniform interface across a range of
secure credential stores")
(description
"Keyring provides utility functions for and a common interface to a range
of secure credential storage services. Originally developed as part of AWS
Vault, a command line tool for securely managing AWS access from developer
workstations.
Currently Keyring supports the following backends: macOS/OSX Keychain, Windows
pcredential store, Pass, Secret Service, KDE Wallet, Encrypted File.")
(home-page "https://github.com/99designs/keyring")
(license license:expat)))
(define-public go-github-com-dvsekhvalnov-jose2go
(package
(name "go-jose2go")
(version "1.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dvsekhvalnov/jose2go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1nzwvk6nqi7nm2wq4mr2q6k5p0qzsl0kmwx7kgkqsg1zh53250ld"))))
(build-system go-build-system)
(native-inputs
`(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
(arguments
'(#:import-path "github.com/dvsekhvalnov/jose2go"
#:phases %standard-phases))
(synopsis "Go implementation of Javascript Object Signing and Encryption specification")
(description
"Pure Golang (GO) library for generating, decoding and encrypting JSON Web
Tokens. Zero dependency, relies only on standard library.")
(home-page "https://github.com/dvsekhvalnov/jose2go")
(license license:expat)))
(define-public go-github-com-godbus-dbus
(package
(name "go-dbus")
(version "5.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/godbus/dbus")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1c107893nbdfc297i9y0smljmqs167mw26i24509qd09dmvr998y"))))
(build-system go-build-system)
(native-inputs
`(("dbus" ,dbus)))
(arguments
'(#:import-path "github.com/godbus/dbus"
#:tests? #f ; Tests currently fail for unknown reasons
#:phases %standard-phases))
(synopsis "Native Go bindings for D-Bus")
(description
"Dbus is a simple library that implements native Go client bindings for
the D-Bus message bus system.")
(home-page "https://github.com/godbus/dbus")
(license license:bsd-2)))
(define-public go-github-com-go-libsecret
(let ((commit "a6f4afe4910cad8688db3e0e9b9ac92ad22d54e1")
(revision "0"))
(package
(name "go-libsecret")
(version "5.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gsterjov/go-libsecret")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"09zaiadnll83vs22ib89agg7anj0blw5fywvmckxllsgif6ak6v7"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)))
(arguments
'(#:import-path "github.com/gsterjov/go-libsecret"
#:phases %standard-phases))
(synopsis "Go library that manages secrets via the
freedesktop.org Secret Service DBus API")
(description
"Native go library that manages secrets via the freedesktop.org Secret
Service DBus API")
(home-page "https://github.com/gsterjov/go-libsecret")
(license license:expat))))
(define-public go-github-com-aws-aws-sdk-go
(package
(name "go-aws-sdk-go")
(version "1.36.18")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aws/aws-sdk-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"169mkkw1cff1px6326krwvfpfj07sb4y5rbn003gi4bk176h6ry9"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-jmespath-go-jmespath" ,go-github-com-jmespath-go-jmespath)))
(arguments
'(#:import-path "github.com/aws/aws-sdk-go"
#:phases %standard-phases))
(synopsis "aws-sdk-go is the official AWS SDK for the Go programming language")
(description
"aws-sdk-go is the official AWS SDK for the Go programming language.")
(home-page "https://github.com/aws/aws-sdk-go")
(license license:asl2.0)))
(define-public go-gopkg-in-ini
(package
(name "go-ini")
(version "v1.62.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gopkg.in/ini.v1")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1dm9ydqyflasp5li22kb0w73s6kp2swii8naqfhnz64v171gmm5v"))))
(build-system go-build-system)
(native-inputs
`(("go-github.com-smartystreets-goconvey" ,go-github.com-smartystreets-goconvey)))
(arguments
'(#:import-path "gopkg.in/ini.v1"
#:phases %standard-phases))
(synopsis "Provides INI file read and write functionality in Go")
(description
"Provides INI file read and write functionality in Go.")
(home-page "https://gopkg.in/ini.v1")
(license license:asl2.0)))
(define-public go-github-com-skratchdot-open-golang
(let ((commit "79abb63cd66e41cb1473e26d11ebdcd68b04c8e5")
(revision "0"))
(package
(name "go-open-golang")
(version "1.42.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/skratchdot/open-golang.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0jc13jn8cj7p14n79zhav2nwga6kf9rqs01ic5k7j7agwzzly3ww"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/skratchdot/open-golang"
#:phases (modify-phases %standard-phases
(delete 'build)
(delete 'check))))
(synopsis "Open a file, directory, or URI using the OS's default application")
(description
"Open a file, directory, or URI using the OS's default application for
that object type. Optionally, you can specify an application to use.
This is a proxy for the following commands: OSX - open, Windows - start,
Linux/Other - xdg-open")
(home-page "https://github.com/skratchdot/open-golang")
(license license:expat))))
(define-public go-github-com-kingpin
(package
(name "go-kingpin")
(version "2.2.6")
(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
"0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-alecthomas-template" ,go-github-com-alecthomas-template)
("go-github-com-alecthomas-units" ,go-github-com-alecthomas-units)
("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
(arguments
'(#:import-path "github.com/alecthomas/kingpin"
#:phases %standard-phases))
(synopsis "Go library provides utilities for building command line interfaces")
(description
"Go library provides utilities for building command line interfaces.")
(home-page "https://github.com/alecthomas/kingpin")
(license license:expat)))
(define-public go-github-com-alecthomas-template
(let ((commit "a0175ee3bccc567396460bf5acd36800cb10c49c")
(revision "0"))
(package
(name "go-alecthomas-template")
(version "0.0.0")
(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
'(#:import-path "github.com/alecthomas/template"
#:phases %standard-phases))
(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.")
(home-page "https://github.com/alecthomas/template")
(license license:bsd-3))))
(define-public go-github-com-alecthomas-units
(let ((commit "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a")
(revision "0"))
(package
(name "go-alecthomas-units")
(version "0.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alecthomas/units")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
(arguments
'(#:import-path "github.com/alecthomas/units"
#:phases %standard-phases))
(synopsis "Helpful unit multipliers and functions for Go")
(description
"Helpful unit multipliers and functions for Go")
(home-page "https://github.com/alecthomas/units")
(license license:expat))))