Subject: [bug#51989] [PATCH 00/12] Add aws-vault and missing dependent packages

From: "Collin J. Doering" <[email-masked]>
Date: Mon, 27 Dec 2021 14:30:16 -0500

Hi Ludovic,

Apologies, I realized after the fact that you not only wanted formatting applied, but also adjust made for the upcoming big change (as noted on the guix blog). As such, please disregard my last patch set. The one below is appropriately formatted with the style command as suggested.

Kind regards,

>From 592d9b3f6858b93c682e7d38832d435600e15eac Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:03:56 -0500
Subject: [PATCH 01/13] gnu: Add go-github-com-percent

* gnu/packages/golang.scm (go-github-com-percent): New Variable.
---
 gnu/packages/golang.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 50d03516cf..60da5166ee 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8843,3 +8843,26 @@ (define-public go-github-com-arceliar-ironwood
 @url{https://github.com/yggdrasil-network/yggdrasil-go,Yggdrasil}, but it may
 be useful for other network applications.")
     (license license:mpl2.0)))
+
+(define-public go-github-com-percent
+  (package
+    (name "go-github-com-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)))
-- 
2.34.0

>From be3b68c388b08696c3ffc016875637c65db65665 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:06:06 -0500
Subject: [PATCH 02/13] gnu: Add go-github-com-go-libsecret

* gnu/packages/golang.scm (go-github-com-go-libsecret): New variable.
---
 gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 60da5166ee..50185549f4 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8866,3 +8866,32 @@ (define-public go-github-com-percent
      "Package percent escapes strings using percent-encoding.")
     (home-page "https://github.com/mtibben/percent")
     (license license:expat)))
+
+(define-public go-github-com-go-libsecret
+  (let ((commit "a6f4afe4910cad8688db3e0e9b9ac92ad22d54e1")
+        (revision "0"))
+    (package
+      (name "go-github-com-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
+       (list 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))))
-- 
2.34.0

>From 108cff9904419a4439dc6c8c81a6670a8c12965d Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:48:28 -0500
Subject: [PATCH 03/13] gnu: Add go-github-com-99designs-go-keyring

* gnu/packages/golang.scm (go-github-com-99designs-go-keyring): New variable.
---
 gnu/packages/golang.scm | 44 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 50185549f4..ff15691fc8 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -64,8 +64,10 @@ (define-module (gnu packages golang)
   #:use-module ((gnu packages bootstrap) #:select (glibc-dynamic-linker))
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages lua)
   #: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)
@@ -8895,3 +8897,45 @@ (define-public go-github-com-go-libsecret
 Service DBus API")
       (home-page "https://github.com/gsterjov/go-libsecret")
       (license license:expat))))
+
+(define-public go-github-com-99designs-go-keyring
+  (package
+    (name "go-github-com-99designs-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
+     (list go-golang-org-x-crypto
+           go-golang-org-x-sys
+           go-github-com-percent
+           go-github-com-mitchellh-go-homedir
+           go-github-com-dvsekhvalnov-jose2go
+           go-github-com-godbus-dbus
+           go-github-com-go-libsecret
+           password-store
+           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 for various 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)))
-- 
2.34.0

>From 789857c88e4719e82b9bae72d0c51b6f277026cf Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:36:17 -0500
Subject: [PATCH 04/13] gnu: Add go-github-com-androiddnsfix

* gnu/packages/golang.scm (go-github-com-androiddnsfix): New variable.
---
 gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index ff15691fc8..bc7053f17a 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8939,3 +8939,27 @@ (define-public go-github-com-99designs-go-keyring
 pcredential store, Pass, Secret Service, KDE Wallet, Encrypted File.")
     (home-page "https://github.com/99designs/keyring")
     (license license:expat)))
+
+(define-public go-github-com-androiddnsfix
+  (package
+    (name "go-github-com-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)))
+
-- 
2.34.0

>From 15bea2e06870a929d23045e0fe46e30b16b69827 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:37:12 -0500
Subject: [PATCH 05/13] gnu: Add go-github-com-aws-aws-sdk-go

* gnu/packages/golang.scm (go-github-com-aws-aws-sdk-go): New variable.
---
 gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index bc7053f17a..9cdc17fdff 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8963,3 +8963,28 @@ (define-public go-github-com-androiddnsfix
     (home-page "https://github.com/mtibben/androiddnsfix")
     (license license:expat)))
 
+(define-public go-github-com-aws-aws-sdk-go
+  (package
+    (name "go-github-com-aws-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
+     (list go-github-com-jmespath-go-jmespath))
+    (arguments
+     '(#:import-path "github.com/aws/aws-sdk-go"
+       #:phases %standard-phases))
+    (synopsis "The official AWS SDK for the Go programming language")
+    (description
+     "The official AWS SDK for the Go programming language.")
+    (home-page "https://github.com/aws/aws-sdk-go")
+    (license license:asl2.0)))
+
-- 
2.34.0

>From 0a3fb03000d242882934ddb1c4f6f67d0113a74c Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Fri, 19 Nov 2021 17:56:39 -0500
Subject: [PATCH 06/13] gnu: Add go-github-com-dvsekhvalnov-jose2go

* gnu/packages/golang.scm (go-github-com-dvsekhvalnov-jose2go): New variable.
---
 gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 9cdc17fdff..d912a49e98 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8988,3 +8988,29 @@ (define-public go-github-com-aws-aws-sdk-go
     (home-page "https://github.com/aws/aws-sdk-go")
     (license license:asl2.0)))
 
+(define-public go-github-com-dvsekhvalnov-jose2go
+  (package
+    (name "go-github-com-dvsekhvalnov-jose2go")
+    (version "1.5.0")
+    (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
+                "1pzfmv2dxb3m455bi1ks4q3i0dcw1sazxk8k96wrgpkwgglyxj3n"))))
+    (build-system go-build-system)
+    (native-inputs
+     (list go-gopkg-in-check-v1))
+    (arguments
+     '(#:import-path "github.com/dvsekhvalnov/jose2go"
+       #:phases %standard-phases))
+    (synopsis "Go implementation of Javascript Object Signing and Encryption spec")
+    (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)))
+
-- 
2.34.0

>From 4c69eecf34748880f6faf5dfdbdd0aa7409f3954 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:44:05 -0500
Subject: [PATCH 07/13] gnu: Add go-ini

* gnu/packages/golang.scm (go-gopkg-in-ini): New variable.
---
 gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d912a49e98..e6b60e1141 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -62,6 +62,7 @@ (define-module (gnu packages golang)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module ((gnu packages bootstrap) #:select (glibc-dynamic-linker))
+  #:use-module (gnu packages check)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
@@ -9014,3 +9015,28 @@ (define-public go-github-com-dvsekhvalnov-jose2go
     (home-page "https://github.com/dvsekhvalnov/jose2go")
     (license license:expat)))
 
+(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)))
+
-- 
2.34.0

>From f416132754c25ddf9b5fc93841766ef14ceed01d Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Mon, 27 Dec 2021 14:21:53 -0500
Subject: [PATCH 08/13] gnu: Add go-gopkg-in-ini

* gnu/packages/golang.scm (go-gopkg-in-ini): New variable.
---
 gnu/packages/golang.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e6b60e1141..0fff5c0d18 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9017,7 +9017,7 @@ (define-public go-github-com-dvsekhvalnov-jose2go
 
 (define-public go-gopkg-in-ini
   (package
-    (name "go-ini")
+    (name "go-gopkg-in-ini")
     (version "v1.62.0")
     (source (origin
               (method git-fetch)
@@ -9030,7 +9030,7 @@ (define-public go-gopkg-in-ini
                 "1dm9ydqyflasp5li22kb0w73s6kp2swii8naqfhnz64v171gmm5v"))))
     (build-system go-build-system)
     (native-inputs
-     `(("go-github.com-smartystreets-goconvey" ,go-github.com-smartystreets-goconvey)))
+     (list go-github.com-smartystreets-goconvey))
     (arguments
      '(#:import-path "gopkg.in/ini.v1"
        #:phases %standard-phases))
-- 
2.34.0

>From 9ea278e391728d93bd8112bede2d3e7f4199d3f1 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Fri, 19 Nov 2021 18:05:30 -0500
Subject: [PATCH 09/13] gnu: Add go-open-golang

* gnu/packages/golang.scm (go-open-golang): New variable.
---
 gnu/packages/golang.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 0fff5c0d18..088d02a426 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9040,3 +9040,34 @@ (define-public go-gopkg-in-ini
     (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-github-com-skratchdot-open-golang")
+      (version "1.42.0")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/skratchdot/open-golang")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0jc13jn8cj7p14n79zhav2nwga6kf9rqs01ic5k7j7agwzzly3ww"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/skratchdot/open-golang"
+         #:phases (modify-phases %standard-phases
+                    (delete 'build)
+                    (delete 'check))))
+      (synopsis "Open a file, directory, or URI using the 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))))
+
-- 
2.34.0

>From d6df62f6379b6913d3392c3d791afd443f4ee335 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Fri, 19 Nov 2021 18:06:02 -0500
Subject: [PATCH 10/13] gnu: Add go-github-com-alecthomas-template

* gnu/packages/golang.scm (go-github-com-alecthomas-template): New variable.
---
 gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 088d02a426..f8c5a239a6 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9071,3 +9071,30 @@ (define-public go-github-com-skratchdot-open-golang
       (home-page "https://github.com/skratchdot/open-golang")
       (license license:expat))))
 
+(define-public go-github-com-alecthomas-template
+  (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
+       '(#: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))))
+
-- 
2.34.0

>From 5fbc75dac346ffc5073752799ee3a24e23045713 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Fri, 19 Nov 2021 18:06:33 -0500
Subject: [PATCH 11/13] gnu: Add go-github-com-alecthomas-units

* gnu/packages/golang.scm (go-github-com-alecthomas-units): New variable.
---
 gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index f8c5a239a6..0a4376a418 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9098,3 +9098,29 @@ (define-public go-github-com-alecthomas-template
       (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-github-com-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
+       (list 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))))
-- 
2.34.0

>From 871e2be6fefa7c720a7bf2d644338c1bf76a74b8 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Fri, 19 Nov 2021 18:06:56 -0500
Subject: [PATCH 12/13] gnu: Add go-github-com-kingpin

* gnu/packages/golang.scm (go-github-com-kingpin): New variable.
---
 gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 0a4376a418..4c3c45c89b 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9071,6 +9071,32 @@ (define-public go-github-com-skratchdot-open-golang
       (home-page "https://github.com/skratchdot/open-golang")
       (license license:expat))))
 
+(define-public go-github-com-kingpin
+  (package
+    (name "go-github-com-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
+     (list go-github-com-alecthomas-template go-github-com-alecthomas-units
+           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"))
-- 
2.34.0

>From 9866b7429f3a0a896e8645ff31d8781d4d4c5104 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <[email-masked]>
Date: Sun, 26 Dec 2021 22:46:07 -0500
Subject: [PATCH 13/13] gnu: Add aws-vault

* gnu/packages/golang.scm (aws-vault): New variable.
---
 gnu/packages/golang.scm | 72 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 4c3c45c89b..38e1f7595f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8870,6 +8870,78 @@ (define-public go-github-com-percent
     (home-page "https://github.com/mtibben/percent")
     (license license:expat)))
 
+(define-public aws-vault
+  (package
+    (name "aws-vault")
+    (version "6.3.1")
+    (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
+                "02zw0kl77yr56mw1fbvr51c4mz2265c9al2nzvnqqzdx5aha7nf8"))))
+    (build-system go-build-system)
+    (native-inputs
+     (list go-github-com-99designs-go-keyring
+           go-github-com-androiddnsfix
+           go-github-com-percent
+           go-github-com-jmespath-go-jmespath
+           go-github-com-aws-aws-sdk-go
+           go-github-com-dvsekhvalnov-jose2go
+           go-github-com-godbus-dbus
+           go-github-com-go-libsecret
+           go-github-com-mitchellh-go-homedir
+           go-golang-org-x-crypto
+           go-golang-org-x-sys
+           go-gopkg-in-ini
+           go-github-com-skratchdot-open-golang
+           go-github-com-kingpin
+           go-github-com-alecthomas-template
+           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")
+    (description
+     "AWS Vault is a tool to securely store and access AWS credentials.
+
+AWS Vault stores IAM credentials in your operating system's secure keystore and
+then generates temporary credentials from those to expose to your shell and
+applications.  It's designed to be complementary to the AWS CLI tools, and is
+aware of your profiles and configuration in ~/.aws/config.")
+    (home-page "https://github.com/99designs/aws-vault")
+    (license license:expat)))
+
 (define-public go-github-com-go-libsecret
   (let ((commit "a6f4afe4910cad8688db3e0e9b9ac92ad22d54e1")
         (revision "0"))
-- 
2.34.0

On 27 Dec 2021 at 11:19, "Collin J. Doering" <[email-masked]> wrote:

> Hi Ludovic,
>
> Thank you for getting back to me.
>
>> Hi Collin,
>>
>> "Collin J. Doering" <[email-masked]> skribis:
>>
>>> aws-vault is a tool to securely store and use aws credentials. This patch set packages aws-vault as well as missing dependencies.
>>>
>>> Note: perhaps gnu/packages/golang.scm is not the best fit for these changes. Any suggestions for a better spot appreciated.
>>
>> Hmm not sure; most of the dependencies are at home in golang.scm IMO.
>> I’d leave it as is.
>>
>>> Collin J. Doering (12):
>>>   gnu: Add go-keyring
>>>   gnu: Add go-androidnsfix
>>>   gnu: Add go-percent
>>>   gnu: Add go-aws-sdk-go
>>>   gnu: Add go-jose2go
>>>   gnu: Add go-libsecret
>>>   gnu: Add go-ini
>>>   gnu: Add go-open-golang
>>>   gnu: Add go-alecthomas-template
>>>   gnu: Add go-alecthomas-units
>>>   gnu: Add go-kingpin
>>>   gnu: Add aws-vault
>>
>> I tried to apply those (overall it LGTM), but the order is incorrect:
>> for instance ‘go-keyring’ depends on ‘go-percent’ and ‘go-libsecret’.
>>
>> So I have the following queries:
>>
>>   1. Do you think you could send them in the “right order”?
>>
>
> Done (see new patch set attached to this email).
>
>>   2. As you go, could you pass them to:
>>
>>       ./pre-inst-env guix style PKG
>>
>>      ?
>>
>
> I actually had issues doing this. The above command would segfault. After running the `clean`
> and `clean-go` make targets, it would no longer segfault, but would then complain about ABI
> compatibility. I didn't debug further instead ran the `etc/indent-code.el` source file,
> commiting as necessary. However, I did find that after rebasing my changes onto the tip of
> master, the `guix style` command started to work as expected.
>
> Another note: I use emacs and did load the `.dir-locals.el` file when making these changes,
> so I would have expected formatting to be fine already. Must be something on my end that is
> affecting auto-formatting in emacs.
>
>>   3. Last, it would be perfect if you could provide the conventional
>>      commit logs.
>>
>
> Done. Please let me know if the new logs provided match the expected conventions.
>
>> Thanks in advance, and sorry for the delay!
>>
>> Ludo’.
>
> Thank you again for your consideration and time reviewing this patchset.
>
> Kind regards,
>
> [2. text/x-patch; aws-vault-and-deps.patch]...

-- 
Collin J. Doering

http://rekahsoft.ca
http://blog.rekahsoft.ca
http://git.rekahsoft.ca