unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#30214] [PATCH]: Add mongo-tools.
@ 2018-01-22 20:51 Christopher Baines
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                   ` (3 more replies)
  0 siblings, 4 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 20:51 UTC (permalink / raw)
  To: 30214

[-- Attachment #1: Type: text/plain, Size: 758 bytes --]


Christopher Baines (10):
  gnu: Add go-golang.org-x-crypto-ssh-terminal.
  gnu: Add go-github.com-howeyc-gopass.
  gnu: Add go-github.com-jessevdk-go-flags.
  gnu: Add go-gopkg.in-check.v1.
  gnu: Add daemontools.
  gnu: Add go-gopkg.in-mgo.v2.
  gnu: Add go-gopkg.in-tomb.v2.
  gnu: Add go-github.com-mattn-go-runewidth.
  gnu: Add go-github.com-nsf-termbox-go.
  gnu: Add mongo-tools.

 gnu/packages/admin.scm     |  43 +++++++++++++
 gnu/packages/check.scm     |  25 ++++++++
 gnu/packages/databases.scm | 147 +++++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/golang.scm    |  59 ++++++++++++++++++
 gnu/packages/terminals.scm |  96 +++++++++++++++++++++++++++++
 gnu/packages/textutils.scm |  33 ++++++++++
 6 files changed, 403 insertions(+)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-22 20:51 [bug#30214] [PATCH]: Add mongo-tools Christopher Baines
@ 2018-01-22 21:08 ` Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
                     ` (9 more replies)
  2018-01-22 21:51 ` [bug#30214] [PATCH]: Add mongo-tools Leo Famulari
                   ` (2 subsequent siblings)
  3 siblings, 10 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
  variable.
---
 gnu/packages/terminals.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 68507cf64..37b222e93 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -31,6 +31,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -572,3 +573,40 @@ eye-candy, customizable, and reasonably lightweight.")
 It's a terminal emulator with few dependencies, so you don't need a full GNOME
 desktop installed to have a decent terminal emulator.")
     (license license:gpl2)))
+
+(define-public go-golang.org-x-crypto-ssh-terminal
+  (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
+        (revision "0"))
+    (package
+      (name "go-golang.org-x-crypto-ssh-terminal")
+      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/crypto/ssh/terminal"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                     (string-append (assoc-ref outputs "out")
+                                    "/src/golang.org/x/crypto/ed25519/testdata")
+                     ".*\\.gz$"))
+               #t)))))
+      (synopsis "Support functions for dealing with terminals in Go")
+      (description "@code{terminal} provides support functions for dealing
+with terminals in Go.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:53     ` Leo Famulari
  2018-01-22 21:08   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
                     ` (8 subsequent siblings)
  9 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.
---
 gnu/packages/terminals.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 37b222e93..8740356a1 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -610,3 +610,31 @@ desktop installed to have a decent terminal emulator.")
 with terminals in Go.")
       (home-page "https://go.googlesource.com/crypto/")
       (license license:bsd-3))))
+
+(define-public go-github.com-howeyc-gopass
+  (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
+        (revision "0"))
+    (package
+      (name "go-github.com-howeyc-gopass")
+      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/howeyc/gopass.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/howeyc/gopass"))
+      (native-inputs
+       `(("go-golang.org-x-crypto-ssh-terminal"
+          ,go-golang.org-x-crypto-ssh-terminal)))
+      (synopsis "Retrieve password from a terminal or piped input in Go")
+      (description
+       "@code{gopass} is a Go package for retrieving a password from user
+terminal or piped input.")
+      (home-page "https://github.com/howeyc/gopass")
+      (license license:isc))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:54     ` Leo Famulari
  2018-01-22 21:08   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
                     ` (7 subsequent siblings)
  9 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

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

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 202183ff2..514b347a5 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -446,3 +446,37 @@ interfaces in Go.  The goal is to enable developers to write fast and
 distributable command line applications in an expressive way.")
       (home-page "https://github.com/davidjpeacock/cli")
       (license license:expat))))
+
+(define-public go-github.com-jessevdk-go-flags
+  (package
+    (name "go-github.com-jessevdk-go-flags")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/jessevdk/go-flags/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0dmvsxsq2s6jx17c8snpw8b2hixy5m03wp8qwvsjsjzavd5gkyg0"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:unpack-path "github.com/jessevdk"
+       #:import-path "github.com/jessevdk/go-flags"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/github.com/jessevdk/go-flags-" version)
+              "src/github.com/jessevdk/go-flags")
+             #t)))))
+    (synopsis "Go library for parsing command line arguments")
+    (description
+     "The @code{flags} package provides a command line option parser.  The
+functionality is similar to the go builtin @code{flag} package, but
+@code{flags} provides more options and uses reflection to provide a succinct
+way of specifying command line options.")
+    (home-page "https://github.com/jessevdk/go-flags")
+    (license license:bsd-3)))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
                     ` (6 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/check.scm (go-gopkg.in-check.v1): New variable.
---
 gnu/packages/check.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 1585948b3..a5c528f7f 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -59,6 +59,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 
@@ -283,6 +284,30 @@ normally do not detect.  The goal is to detect only real errors in the code
 (i.e. have zero false positives).")
     (license license:gpl3+)))
 
+(define-public go-gopkg.in-check.v1
+  (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
+        (revision "0"))
+    (package
+      (name "go-gopkg.in-check.v1")
+      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/go-check/check.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/check.v1"))
+      (synopsis "Rich testing extension for Go's testing package")
+      (description
+       "@code{check} is a rich testing extension for Go's testing package.")
+      (home-page "https://github.com/go-check/check")
+      (license license:bsd-2))))
+
 (define-public googletest
   (package
     (name "googletest")
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 05/10] gnu: Add daemontools.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (2 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:57     ` Leo Famulari
  2018-01-22 21:08   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
                     ` (5 subsequent siblings)
  9 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/admin.scm (daemontools): New variable.
---
 gnu/packages/admin.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3d3c62619..7c7c457f5 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -187,6 +187,49 @@ interface and is based on GNU Guile.")
     (home-page "https://www.gnu.org/software/shepherd/")
     (properties '((ftp-server . "alpha.gnu.org")))))
 
+(define-public daemontools
+  (package
+    (name "daemontools")
+    (version "0.76")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://cr.yp.to/" name "/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;; No tests as far as I can tell.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir ,(string-append  name "-" version))))
+         (delete 'configure)
+         (add-before 'build 'patch
+           (lambda _
+             (substitute* "src/error.h"
+               (("extern int errno;")
+                "#include <errno.h>"))))
+         (replace 'build
+           (lambda _
+             (invoke "package/compile")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (for-each (lambda (file)
+                           (install-file file bin))
+                         (find-files "command"))))))))
+    (synopsis "Tools for managing UNIX style services")
+    (description
+     "@code{daemontools} is a collection of tools for managing UNIX
+services.")
+    (license license:public-domain)
+    (home-page "https://cr.yp.to/daemontools.html")))
+
 (define-public dfc
   (package
    (name "dfc")
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (3 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
                     ` (4 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/databases.scm (go-gopkg.in-mgo.v2): New variable.
---
 gnu/packages/databases.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index c0cf41a5b..8f5f639cc 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -49,6 +49,7 @@
 
 (define-module (gnu packages databases)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
@@ -94,6 +95,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #: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 build-system ruby)
@@ -173,6 +175,56 @@ store key/value pairs in a file in a manner similar to the Unix dbm library
 and provides interfaces to the traditional file format.")
     (license license:gpl3+)))
 
+(define-public go-gopkg.in-mgo.v2
+  (package
+    (name "go-gopkg.in-mgo.v2")
+    (version "2016.08.01")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/go-mgo/mgo/archive/r"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "09li3qc5c5idw4qldy0yzfh1vwac3hpslnq96g3s3mld9wwpnmg2"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "gopkg.in/mgo.v2"
+       #:unpack-path "gopkg.in"
+       ;; TODO: Starting mongo for running the tests currently fails
+       ;; Error parsing command line: unrecognised option '--chunkSize'
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/gopkg.in/mgo-r" version)
+              "src/gopkg.in/mgo.v2")
+             #t))
+         (add-before 'check 'start-mongodb
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (with-directory-excursion "src/gopkg.in/mgo.v2"
+                   (invoke "make" "startdb")))))
+         (add-after 'check 'stop'mongodb
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (with-directory-excursion "src/gopkg.in/mgo.v2"
+                   (invoke "make" "stopdb"))))))))
+    (native-inputs
+     `(("go-gopkg.in-check.v1" ,go-gopkg.in-check.v1)
+       ("mongodb" ,mongodb)
+       ("daemontools" ,daemontools)))
+    (synopsis "@code{mgo} offers a rich MongoDB driver for Go.")
+    (description
+     "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.
+It implements a rich selection of features under a simple API following
+standard Go idioms.")
+    (home-page "http://labix.org/mgo")
+    (license license:bsd-2)))
+
 (define-public bdb
   (package
     (name "bdb")
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (4 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
                     ` (3 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/golang.scm (go-gopkg.in-tomb.v2): 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 514b347a5..5565a0965 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -480,3 +480,28 @@ functionality is similar to the go builtin @code{flag} package, but
 way of specifying command line options.")
     (home-page "https://github.com/jessevdk/go-flags")
     (license license:bsd-3)))
+
+(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.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/tomb.v2"))
+      (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))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (5 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
                     ` (2 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/textutils.scm (go-github.com-mattn-go-runewidth): New variable.
---
 gnu/packages/textutils.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 1f5fe6aba..6cf7c2165 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -37,6 +37,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
@@ -660,3 +661,35 @@ source code.")
        "This library simply implements Levenshtein distance algorithm with C++
 and Cython.")
       (license license:expat))))
+
+(define-public go-github.com-mattn-go-runewidth
+  (package
+    (name "go-github.com-mattn-go-runewidth")
+    (version "0.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/mattn/go-runewidth/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0xmhjpzdsy01apxl0s9kd0x7v3slahdg4njsygs9m0nz3x038xvc"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/mattn/go-runewidth"
+       #:unpack-path "github.com/mattn"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/github.com/mattn/go-runewidth-" version)
+              "src/github.com/mattn/go-runewidth")
+             #t)))))
+    (synopsis "@code{runewidth} provides Go functions to work with string widths")
+    (description
+     "The @code{runewidth} library provides Go functions for padding,
+measuring and checking the width of strings, with support east asian text.")
+    (home-page "https://github.com/jessevdk/go-flags")
+    (license license:expat)))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (6 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 21:08   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
  2018-01-22 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-github.com-nsf-termbox-go): New variable.
---
 gnu/packages/terminals.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 8740356a1..f90ae96e2 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -53,6 +53,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages wm)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -574,6 +575,35 @@ It's a terminal emulator with few dependencies, so you don't need a full GNOME
 desktop installed to have a decent terminal emulator.")
     (license license:gpl2)))
 
+(define-public go-github.com-nsf-termbox-go
+  (let ((commit "4ed959e0540971545eddb8c75514973d670cf739")
+        (revision "0"))
+    (package
+      (name "go-github.com-nsf-termbox-go")
+      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nsf/termbox-go.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1vx64i1mg660if3wwm81p4b7lzxfb3qbr39i7misdyld3fc486p9"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/nsf/termbox-go"))
+      (propagated-inputs
+       `(("go-github.com-mattn-go-runewidth"
+          ,go-github.com-mattn-go-runewidth)))
+      (synopsis "@code{termbox} provides a minimal API for text-based user
+interfaces")
+      (description
+       "Termbox is a library that provides a minimalistic API which allows the
+programmer to write text-based user interfaces.")
+      (home-page "https://github.com/nsf/termbox-go")
+      (license license:expat))))
+
 (define-public go-golang.org-x-crypto-ssh-terminal
   (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
         (revision "0"))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (7 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
@ 2018-01-22 21:08   ` Christopher Baines
  2018-01-22 22:01     ` Leo Famulari
  2018-01-22 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
  9 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-22 21:08 UTC (permalink / raw)
  To: 30214

* gnu/packages/databases.scm (mongo-tools): New variable.
---
 gnu/packages/databases.scm | 95 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 8f5f639cc..0c1bc9ea3 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libevent)
@@ -87,6 +88,8 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages terminals)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml)
@@ -2607,3 +2610,95 @@ transforms idiomatic python function calls to well-formed SQL queries.")
 
 (define-public python2-sql
   (package-with-python2 python-sql))
+
+(define-public mongo-tools
+  (package
+    (name "mongo-tools")
+    (version "3.4.0")
+    (source
+     (origin (method url-fetch)
+             (uri (string-append "https://github.com/mongodb/mongo-tools"
+                                 "/archive/r" version ".tar.gz"))
+             (file-name (string-append name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "095nc57k4m4iyim0x3fgpw681qba123iyl4qz7xysbv5ngbr19mc"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:tests? #f
+       #:unpack-path "github.com/mongodb"
+       #:import-path "github.com/mongodb/mongo-tools"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/github.com/mongodb/mongo-tools-r" version)
+              "src/github.com/mongodb/mongo-tools")
+             #t))
+
+         (add-after 'rename-archive 'delete-bundled-source-code
+           (lambda _
+             (delete-file-recursively
+              "src/github.com/mongodb/mongo-tools/vendor")
+             #t))
+
+         ;; We don't need to install the source code for end-user application
+         (delete 'install-source)
+
+         (replace 'build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((bash (which "bash"))
+                   (out (assoc-ref outputs "out")))
+                (let build ((tools
+                             '("bsondump" "mongodump" "mongoexport" "mongofiles"
+                               "mongoimport" "mongooplog" "mongorestore"
+                               "mongostat" "mongotop")))
+                  (if (null? tools)
+                      #t
+                      (if (let* ((tool (car tools))
+                                 (command
+                                  `("go" "install" "-v"
+                                    "-tags=\"ssl sasl\""
+                                    "-ldflags"
+                                    "-extldflags=-Wl,-z,now,-z,relro"
+                                    ,(string-append
+                                      "src/github.com/mongodb/mongo-tools/"
+                                      tool "/main/" tool ".go"))))
+                            (simple-format #t "build: running ~A\n"
+                                           (string-join command))
+                            (zero? (apply system* command)))
+                          (build (cdr tools))
+                          #f)))))))))
+    (native-inputs
+     `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
+       ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
+       ("go-golang.org-x-crypto-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal)
+       ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
+       ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
+       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
+    (home-page "https://github.com/mongodb/mongo-tools")
+    (synopsis "Various tools for interacting with MongoDB and BSON")
+    (description
+     "This package includes a collection of tools related to MongoDB.
+@table @code
+@item bsondump
+Display BSON files in a human-readable format
+@item mongoimport
+Convert data from JSON, TSV or CSV and insert them into a collection
+@item mongoexport
+Write an existing collection to CSV or JSON format
+@item mongodump/mongorestore
+Dump MongoDB backups to disk in the BSON format
+@item mongorestore
+Read MongoDB backups in the BSON format, and restore them to a live database
+@item mongostat
+Monitor live MongoDB servers, replica sets, or sharded clusters
+@item mongofiles
+Read, write, delete, or update files in GridFS
+@item mongooplog
+Replay oplog entries between MongoDB servers
+@item mongotop
+Monitor read/write activity on a mongo server
+@end table")
+    (license license:asl2.0)))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH]: Add mongo-tools.
  2018-01-22 20:51 [bug#30214] [PATCH]: Add mongo-tools Christopher Baines
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
@ 2018-01-22 21:51 ` Leo Famulari
  2018-01-23 19:41   ` Christopher Baines
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  3 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-22 21:51 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 702 bytes --]

On Mon, Jan 22, 2018 at 08:51:39PM +0000, Christopher Baines wrote:
> 
> Christopher Baines (10):
>   gnu: Add go-golang.org-x-crypto-ssh-terminal.
>   gnu: Add go-github.com-howeyc-gopass.
>   gnu: Add go-github.com-jessevdk-go-flags.
>   gnu: Add go-gopkg.in-check.v1.
>   gnu: Add daemontools.
>   gnu: Add go-gopkg.in-mgo.v2.
>   gnu: Add go-gopkg.in-tomb.v2.
>   gnu: Add go-github.com-mattn-go-runewidth.
>   gnu: Add go-github.com-nsf-termbox-go.
>   gnu: Add mongo-tools.

Cool! Please feel free to provide feeback on the go-build-system. The
current implementation is sort of primitive and may need to change to
accomodate the way the Go community develops with Go libraries.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (8 preceding siblings ...)
  2018-01-22 21:08   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
@ 2018-01-22 21:52   ` Leo Famulari
  2018-01-23 19:42     ` Christopher Baines
  9 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-22 21:52 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 905 bytes --]

On Mon, Jan 22, 2018 at 09:08:21PM +0000, Christopher Baines wrote:
> * gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
>   variable.

> +(define-public go-golang.org-x-crypto-ssh-terminal
> +  (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
> +        (revision "0"))
> +    (package
> +      (name "go-golang.org-x-crypto-ssh-terminal")
> +      (version (string-append "0.0.0-" revision "." (string-take commit 7)))

Can you use (git-version "0.0.0" revision commit) here?

> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://go.googlesource.com/crypto")
> +                      (commit commit)))
> +                (file-name (string-append "go.googlesource.com-crypto-"
> +                                          version "-checkout"))

And here, (git-file-name name version)?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-22 21:08   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
@ 2018-01-22 21:53     ` Leo Famulari
  2018-01-23 19:45       ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-22 21:53 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 368 bytes --]

On Mon, Jan 22, 2018 at 09:08:22PM +0000, Christopher Baines wrote:
> * gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.

> +      (native-inputs
> +       `(("go-golang.org-x-crypto-ssh-terminal"
> +          ,go-golang.org-x-crypto-ssh-terminal)))

Is it really just a native-input? Or could it need this library later,
at run-time? 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-22 21:08   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
@ 2018-01-22 21:54     ` Leo Famulari
  2018-01-23 19:51       ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-22 21:54 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 684 bytes --]

On Mon, Jan 22, 2018 at 09:08:23PM +0000, Christopher Baines wrote:
> * gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): New variable.

> +         (add-after 'unpack 'rename-archive
> +           (lambda _
> +             (rename-file
> +              ,(string-append "src/github.com/jessevdk/go-flags-" version)
> +              "src/github.com/jessevdk/go-flags")
> +             #t)))))

I notice a few of these changes in your patch series. Can you give some
detail about what's going on?

If someone were developing with this library in the typical Go way,
outside of Guix, would they have a problem here?

Should the go-build-system try to handle this automatically?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 05/10] gnu: Add daemontools.
  2018-01-22 21:08   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
@ 2018-01-22 21:57     ` Leo Famulari
  2018-01-23 19:54       ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-22 21:57 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 614 bytes --]

On Mon, Jan 22, 2018 at 09:08:25PM +0000, Christopher Baines wrote:
> * gnu/packages/admin.scm (daemontools): New variable.

Cool!

> +    (name "daemontools")
> +    (version "0.76")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://cr.yp.to/" name "/"
> +                    name "-" version ".tar.gz"))

Can you check if there are any important patches (security or other bug
fixes) floating around? This release is 16 years young...

For example, you might look at Debian's diff.gz:

https://packages.debian.org/stretch/daemontools

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
  2018-01-22 21:08   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
@ 2018-01-22 22:01     ` Leo Famulari
  2018-01-23 19:59       ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-22 22:01 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1802 bytes --]

On Mon, Jan 22, 2018 at 09:08:30PM +0000, Christopher Baines wrote:
> * gnu/packages/databases.scm (mongo-tools): New variable.

Can you add some comments explaining the following section?

> +         (replace 'build
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let ((bash (which "bash"))
> +                   (out (assoc-ref outputs "out")))
> +                (let build ((tools
> +                             '("bsondump" "mongodump" "mongoexport" "mongofiles"
> +                               "mongoimport" "mongooplog" "mongorestore"
> +                               "mongostat" "mongotop")))
> +                  (if (null? tools)
> +                      #t
> +                      (if (let* ((tool (car tools))
> +                                 (command
> +                                  `("go" "install" "-v"
> +                                    "-tags=\"ssl sasl\""
> +                                    "-ldflags"

This -ldflags argument avoids the go-build-system's default ldflags,
which strip the debugging symbols. Okay if that's what you intended.

> +                                    "-extldflags=-Wl,-z,now,-z,relro"
> +                                    ,(string-append
> +                                      "src/github.com/mongodb/mongo-tools/"
> +                                      tool "/main/" tool ".go"))))
> +                            (simple-format #t "build: running ~A\n"
> +                                           (string-join command))
> +                            (zero? (apply system* command)))
> +                          (build (cdr tools))
> +                          #f)))))))))

Do you think the go-build-system should accept some sort of #:make-flags
argument to simplify this sort of thing?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH]: Add mongo-tools.
  2018-01-22 21:51 ` [bug#30214] [PATCH]: Add mongo-tools Leo Famulari
@ 2018-01-23 19:41   ` Christopher Baines
  0 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 19:41 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 906 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Mon, Jan 22, 2018 at 08:51:39PM +0000, Christopher Baines wrote:
>> 
>> Christopher Baines (10):
>>   gnu: Add go-golang.org-x-crypto-ssh-terminal.
>>   gnu: Add go-github.com-howeyc-gopass.
>>   gnu: Add go-github.com-jessevdk-go-flags.
>>   gnu: Add go-gopkg.in-check.v1.
>>   gnu: Add daemontools.
>>   gnu: Add go-gopkg.in-mgo.v2.
>>   gnu: Add go-gopkg.in-tomb.v2.
>>   gnu: Add go-github.com-mattn-go-runewidth.
>>   gnu: Add go-github.com-nsf-termbox-go.
>>   gnu: Add mongo-tools.
>
> Cool! Please feel free to provide feeback on the go-build-system. The
> current implementation is sort of primitive and may need to change to
> accomodate the way the Go community develops with Go libraries.

Thanks for writing it :) I've got no real experience with Go, but I am
interested in packaging a few bits of software written in Go.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-22 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
@ 2018-01-23 19:42     ` Christopher Baines
  0 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 19:42 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Mon, Jan 22, 2018 at 09:08:21PM +0000, Christopher Baines wrote:
>> * gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
>>   variable.
>
>> +(define-public go-golang.org-x-crypto-ssh-terminal
>> +  (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
>> +        (revision "0"))
>> +    (package
>> +      (name "go-golang.org-x-crypto-ssh-terminal")
>> +      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
>
> Can you use (git-version "0.0.0" revision commit) here?
>
>> +      (source (origin
>> +                (method git-fetch)
>> +                (uri (git-reference
>> +                      (url "https://go.googlesource.com/crypto")
>> +                      (commit commit)))
>> +                (file-name (string-append "go.googlesource.com-crypto-"
>> +                                          version "-checkout"))
>
> And here, (git-file-name name version)?

Sure, those sound like useful helpers.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-22 21:53     ` Leo Famulari
@ 2018-01-23 19:45       ` Christopher Baines
  2018-01-23 20:51         ` Leo Famulari
  0 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 19:45 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 770 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Mon, Jan 22, 2018 at 09:08:22PM +0000, Christopher Baines wrote:
>> * gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.
>
>> +      (native-inputs
>> +       `(("go-golang.org-x-crypto-ssh-terminal"
>> +          ,go-golang.org-x-crypto-ssh-terminal)))
>
> Is it really just a native-input? Or could it need this library later,
> at run-time?

Well, the package doesn't build without it, and as far as I can tell the
store output doesn't reference it. I believe that
go-golang.org-x-crypto-ssh-terminal is a dependency of
go-github.com-howeyc-gopass, so if you're using
go-github.com-howeyc-gopass, then you'll need
go-golang.org-x-crypto-ssh-terminal. Maybe it should be a propagated
input instead?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-22 21:54     ` Leo Famulari
@ 2018-01-23 19:51       ` Christopher Baines
  2018-01-23 20:29         ` Leo Famulari
  0 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 19:51 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1574 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Mon, Jan 22, 2018 at 09:08:23PM +0000, Christopher Baines wrote:
>> * gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): New variable.
>
>> +         (add-after 'unpack 'rename-archive
>> +           (lambda _
>> +             (rename-file
>> +              ,(string-append "src/github.com/jessevdk/go-flags-" version)
>> +              "src/github.com/jessevdk/go-flags")
>> +             #t)))))
>
> I notice a few of these changes in your patch series. Can you give some
> detail about what's going on?
>
> If someone were developing with this library in the typical Go way,
> outside of Guix, would they have a problem here?
>
> Should the go-build-system try to handle this automatically?

I believe this might be connected with what is in the source
tarball. Without this stage, the go-flags directory is called
go-flags-1.3.0, and this causes the build to fail [2].

I'm not sure about the wider context, but it would be good to handle
this automatically.

1:
→ ls /tmp/guix-build-go-github.com-jessevdk-go-flags-1.3.0.drv-0/src/github.com/jessevdk/
go-flags-1.3.0

2:
starting phase `build'
can't load package: package github.com/jessevdk/go-flags: cannot find package "github.com/jessevdk/go-flags" in any of:
	/gnu/store/9xvc0ml2dfgb58vlbc4sl6mv360jyh84-go-1.9.2/src/github.com/jessevdk/go-flags (from $GOROOT)
	/tmp/guix-build-go-github.com-jessevdk-go-flags-1.3.0.drv-0/src/github.com/jessevdk/go-flags (from $GOPATH)
Building 'github.com/jessevdk/go-flags' failed.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 05/10] gnu: Add daemontools.
  2018-01-22 21:57     ` Leo Famulari
@ 2018-01-23 19:54       ` Christopher Baines
  2018-01-23 20:30         ` Leo Famulari
  0 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 19:54 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1225 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Mon, Jan 22, 2018 at 09:08:25PM +0000, Christopher Baines wrote:
>> * gnu/packages/admin.scm (daemontools): New variable.
>
> Cool!
>
>> +    (name "daemontools")
>> +    (version "0.76")
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append
>> +                    "https://cr.yp.to/" name "/"
>> +                    name "-" version ".tar.gz"))
>
> Can you check if there are any important patches (security or other bug
> fixes) floating around? This release is 16 years young...
>
> For example, you might look at Debian's diff.gz:
>
> https://packages.debian.org/stretch/daemontools

It looks like Debian has 3 patches for this [1]. I used one of them in
the form of substitute* to get the package to build. I can include all
the patches if that is helpful, but I was actually hesitant to send this
patch at all.

I packaged it when trying to get the test suite for go-gopkg.in-mgo.v2
to pass as it uses utilities from daemontools, but I got stuck getting
mongodb to start. I left all of the stuff I did around the tests in
place, but just disabled them.

1: https://sources.debian.org/src/daemontools/1:0.76-6.1/debian/diff/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
  2018-01-22 22:01     ` Leo Famulari
@ 2018-01-23 19:59       ` Christopher Baines
  2018-01-23 20:44         ` Leo Famulari
  0 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 19:59 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 2471 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Mon, Jan 22, 2018 at 09:08:30PM +0000, Christopher Baines wrote:
>> * gnu/packages/databases.scm (mongo-tools): New variable.
>
> Can you add some comments explaining the following section?
>
>> +         (replace 'build
>> +           (lambda* (#:key inputs outputs #:allow-other-keys)
>> +             (let ((bash (which "bash"))

bash here is unused, I forget where it came from. I'll remove it.

>> +                   (out (assoc-ref outputs "out")))
>> +                (let build ((tools
>> +                             '("bsondump" "mongodump" "mongoexport" "mongofiles"
>> +                               "mongoimport" "mongooplog" "mongorestore"
>> +                               "mongostat" "mongotop")))
>> +                  (if (null? tools)
>> +                      #t
>> +                      (if (let* ((tool (car tools))
>> +                                 (command
>> +                                  `("go" "install" "-v"
>> +                                    "-tags=\"ssl sasl\""
>> +                                    "-ldflags"
>
> This -ldflags argument avoids the go-build-system's default ldflags,
> which strip the debugging symbols. Okay if that's what you intended.

The build phase is a bit of guesswork from me, plus some prior art in
the mongo-tools README [1] and the Debian package rules file [2]. I
think I got the -ldflags from the latter. It sounds like stripping debug
symbols is a good default behaviour, but I'm only guessing as to what
this means.

1: https://github.com/mongodb/mongo-tools#building-tools
2: https://anonscm.debian.org/cgit/pkg-mongodb/mongo-tools.git/tree/debian/rules

>> +                                    "-extldflags=-Wl,-z,now,-z,relro"
>> +                                    ,(string-append
>> +                                      "src/github.com/mongodb/mongo-tools/"
>> +                                      tool "/main/" tool ".go"))))
>> +                            (simple-format #t "build: running ~A\n"
>> +                                           (string-join command))
>> +                            (zero? (apply system* command)))
>> +                          (build (cdr tools))
>> +                          #f)))))))))
>
> Do you think the go-build-system should accept some sort of #:make-flags
> argument to simplify this sort of thing?

Maybe, but I'm not sure of how many other packages will be similar to
mongo-tools.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-22 20:51 [bug#30214] [PATCH]: Add mongo-tools Christopher Baines
  2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-22 21:51 ` [bug#30214] [PATCH]: Add mongo-tools Leo Famulari
@ 2018-01-23 20:21 ` Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
                     ` (8 more replies)
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  3 siblings, 9 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
  variable.
---
 gnu/packages/terminals.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 68507cf64..3baaf6612 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -31,6 +31,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -572,3 +573,39 @@ eye-candy, customizable, and reasonably lightweight.")
 It's a terminal emulator with few dependencies, so you don't need a full GNOME
 desktop installed to have a decent terminal emulator.")
     (license license:gpl2)))
+
+(define-public go-golang.org-x-crypto-ssh-terminal
+  (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
+        (revision "0"))
+    (package
+      (name "go-golang.org-x-crypto-ssh-terminal")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/crypto/ssh/terminal"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                     (string-append (assoc-ref outputs "out")
+                                    "/src/golang.org/x/crypto/ed25519/testdata")
+                     ".*\\.gz$"))
+               #t)))))
+      (synopsis "Support functions for dealing with terminals in Go")
+      (description "@code{terminal} provides support functions for dealing
+with terminals in Go.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
@ 2018-01-23 20:21   ` Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.
---
 gnu/packages/terminals.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 3baaf6612..687cfc3f4 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -609,3 +609,31 @@ desktop installed to have a decent terminal emulator.")
 with terminals in Go.")
       (home-page "https://go.googlesource.com/crypto/")
       (license license:bsd-3))))
+
+(define-public go-github.com-howeyc-gopass
+  (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
+        (revision "0"))
+    (package
+      (name "go-github.com-howeyc-gopass")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/howeyc/gopass.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/howeyc/gopass"))
+      (native-inputs
+       `(("go-golang.org-x-crypto-ssh-terminal"
+          ,go-golang.org-x-crypto-ssh-terminal)))
+      (synopsis "Retrieve password from a terminal or piped input in Go")
+      (description
+       "@code{gopass} is a Go package for retrieving a password from user
+terminal or piped input.")
+      (home-page "https://github.com/howeyc/gopass")
+      (license license:isc))))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
@ 2018-01-23 20:21   ` Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
                     ` (6 subsequent siblings)
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

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

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 202183ff2..f972e5058 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -446,3 +446,37 @@ interfaces in Go.  The goal is to enable developers to write fast and
 distributable command line applications in an expressive way.")
       (home-page "https://github.com/davidjpeacock/cli")
       (license license:expat))))
+
+(define-public go-github.com-jessevdk-go-flags
+  (package
+    (name "go-github.com-jessevdk-go-flags")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/jessevdk/go-flags/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+              (sha256
+               (base32
+                "0dmvsxsq2s6jx17c8snpw8b2hixy5m03wp8qwvsjsjzavd5gkyg0"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:unpack-path "github.com/jessevdk"
+       #:import-path "github.com/jessevdk/go-flags"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/github.com/jessevdk/go-flags-" version)
+              "src/github.com/jessevdk/go-flags")
+             #t)))))
+    (synopsis "Go library for parsing command line arguments")
+    (description
+     "The @code{flags} package provides a command line option parser.  The
+functionality is similar to the go builtin @code{flag} package, but
+@code{flags} provides more options and uses reflection to provide a succinct
+way of specifying command line options.")
+    (home-page "https://github.com/jessevdk/go-flags")
+    (license license:bsd-3)))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
@ 2018-01-23 20:21   ` Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
                     ` (5 subsequent siblings)
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

* gnu/packages/check.scm (go-gopkg.in-check.v1): New variable.
---
 gnu/packages/check.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 1585948b3..564b75f8d 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -59,6 +59,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 
@@ -283,6 +284,30 @@ normally do not detect.  The goal is to detect only real errors in the code
 (i.e. have zero false positives).")
     (license license:gpl3+)))
 
+(define-public go-gopkg.in-check.v1
+  (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
+        (revision "0"))
+    (package
+      (name "go-gopkg.in-check.v1")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/go-check/check.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/check.v1"))
+      (synopsis "Rich testing extension for Go's testing package")
+      (description
+       "@code{check} is a rich testing extension for Go's testing package.")
+      (home-page "https://github.com/go-check/check")
+      (license license:bsd-2))))
+
 (define-public googletest
   (package
     (name "googletest")
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 05/10] gnu: Add daemontools.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (2 preceding siblings ...)
  2018-01-23 20:21   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
@ 2018-01-23 20:21   ` Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
                     ` (4 subsequent siblings)
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

* gnu/packages/admin.scm (daemontools): New variable.
---
 gnu/packages/admin.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3d3c62619..7c7c457f5 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -187,6 +187,49 @@ interface and is based on GNU Guile.")
     (home-page "https://www.gnu.org/software/shepherd/")
     (properties '((ftp-server . "alpha.gnu.org")))))
 
+(define-public daemontools
+  (package
+    (name "daemontools")
+    (version "0.76")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://cr.yp.to/" name "/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;; No tests as far as I can tell.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir ,(string-append  name "-" version))))
+         (delete 'configure)
+         (add-before 'build 'patch
+           (lambda _
+             (substitute* "src/error.h"
+               (("extern int errno;")
+                "#include <errno.h>"))))
+         (replace 'build
+           (lambda _
+             (invoke "package/compile")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (for-each (lambda (file)
+                           (install-file file bin))
+                         (find-files "command"))))))))
+    (synopsis "Tools for managing UNIX style services")
+    (description
+     "@code{daemontools} is a collection of tools for managing UNIX
+services.")
+    (license license:public-domain)
+    (home-page "https://cr.yp.to/daemontools.html")))
+
 (define-public dfc
   (package
    (name "dfc")
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (3 preceding siblings ...)
  2018-01-23 20:21   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
@ 2018-01-23 20:21   ` Christopher Baines
  2018-01-23 20:21   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
                     ` (3 subsequent siblings)
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

* gnu/packages/databases.scm (go-gopkg.in-mgo.v2): New variable.
---
 gnu/packages/databases.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index c0cf41a5b..bc22fed37 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -49,6 +49,7 @@
 
 (define-module (gnu packages databases)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
@@ -94,6 +95,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #: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 build-system ruby)
@@ -173,6 +175,56 @@ store key/value pairs in a file in a manner similar to the Unix dbm library
 and provides interfaces to the traditional file format.")
     (license license:gpl3+)))
 
+(define-public go-gopkg.in-mgo.v2
+  (package
+    (name "go-gopkg.in-mgo.v2")
+    (version "2016.08.01")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/go-mgo/mgo/archive/r"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09li3qc5c5idw4qldy0yzfh1vwac3hpslnq96g3s3mld9wwpnmg2"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "gopkg.in/mgo.v2"
+       #:unpack-path "gopkg.in"
+       ;; TODO: Starting mongo for running the tests currently fails
+       ;; Error parsing command line: unrecognised option '--chunkSize'
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/gopkg.in/mgo-r" version)
+              "src/gopkg.in/mgo.v2")
+             #t))
+         (add-before 'check 'start-mongodb
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (with-directory-excursion "src/gopkg.in/mgo.v2"
+                   (invoke "make" "startdb")))))
+         (add-after 'check 'stop'mongodb
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (with-directory-excursion "src/gopkg.in/mgo.v2"
+                   (invoke "make" "stopdb"))))))))
+    (native-inputs
+     `(("go-gopkg.in-check.v1" ,go-gopkg.in-check.v1)
+       ("mongodb" ,mongodb)
+       ("daemontools" ,daemontools)))
+    (synopsis "@code{mgo} offers a rich MongoDB driver for Go.")
+    (description
+     "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.
+It implements a rich selection of features under a simple API following
+standard Go idioms.")
+    (home-page "http://labix.org/mgo")
+    (license license:bsd-2)))
+
 (define-public bdb
   (package
     (name "bdb")
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (4 preceding siblings ...)
  2018-01-23 20:21   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
@ 2018-01-23 20:21   ` Christopher Baines
  2018-01-23 20:22   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
                     ` (2 subsequent siblings)
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:21 UTC (permalink / raw)
  To: 30214

* gnu/packages/golang.scm (go-gopkg.in-tomb.v2): 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 f972e5058..93d414625 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -480,3 +480,28 @@ functionality is similar to the go builtin @code{flag} package, but
 way of specifying command line options.")
     (home-page "https://github.com/jessevdk/go-flags")
     (license license:bsd-3)))
+
+(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.git")
+                      (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"))
+      (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))))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (5 preceding siblings ...)
  2018-01-23 20:21   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
@ 2018-01-23 20:22   ` Christopher Baines
  2018-01-23 20:22   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
  2018-01-23 20:22   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:22 UTC (permalink / raw)
  To: 30214

* gnu/packages/textutils.scm (go-github.com-mattn-go-runewidth): New variable.
---
 gnu/packages/textutils.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 1f5fe6aba..2e7051ee2 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -37,6 +37,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
@@ -660,3 +661,35 @@ source code.")
        "This library simply implements Levenshtein distance algorithm with C++
 and Cython.")
       (license license:expat))))
+
+(define-public go-github.com-mattn-go-runewidth
+  (package
+    (name "go-github.com-mattn-go-runewidth")
+    (version "0.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/mattn/go-runewidth/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xmhjpzdsy01apxl0s9kd0x7v3slahdg4njsygs9m0nz3x038xvc"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/mattn/go-runewidth"
+       #:unpack-path "github.com/mattn"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/github.com/mattn/go-runewidth-" version)
+              "src/github.com/mattn/go-runewidth")
+             #t)))))
+    (synopsis "@code{runewidth} provides Go functions to work with string widths")
+    (description
+     "The @code{runewidth} library provides Go functions for padding,
+measuring and checking the width of strings, with support east asian text.")
+    (home-page "https://github.com/jessevdk/go-flags")
+    (license license:expat)))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (6 preceding siblings ...)
  2018-01-23 20:22   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
@ 2018-01-23 20:22   ` Christopher Baines
  2018-01-23 20:22   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:22 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-github.com-nsf-termbox-go): New variable.
---
 gnu/packages/terminals.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 687cfc3f4..ca84cdf6a 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -53,6 +53,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages wm)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -574,6 +575,35 @@ It's a terminal emulator with few dependencies, so you don't need a full GNOME
 desktop installed to have a decent terminal emulator.")
     (license license:gpl2)))
 
+(define-public go-github.com-nsf-termbox-go
+  (let ((commit "4ed959e0540971545eddb8c75514973d670cf739")
+        (revision "0"))
+    (package
+      (name "go-github.com-nsf-termbox-go")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nsf/termbox-go.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1vx64i1mg660if3wwm81p4b7lzxfb3qbr39i7misdyld3fc486p9"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/nsf/termbox-go"))
+      (propagated-inputs
+       `(("go-github.com-mattn-go-runewidth"
+          ,go-github.com-mattn-go-runewidth)))
+      (synopsis "@code{termbox} provides a minimal API for text-based user
+interfaces")
+      (description
+       "Termbox is a library that provides a minimalistic API which allows the
+programmer to write text-based user interfaces.")
+      (home-page "https://github.com/nsf/termbox-go")
+      (license license:expat))))
+
 (define-public go-golang.org-x-crypto-ssh-terminal
   (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
         (revision "0"))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (7 preceding siblings ...)
  2018-01-23 20:22   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
@ 2018-01-23 20:22   ` Christopher Baines
  8 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:22 UTC (permalink / raw)
  To: 30214

* gnu/packages/databases.scm (mongo-tools): New variable.
---
 gnu/packages/databases.scm | 93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index bc22fed37..fd25d204d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libevent)
@@ -87,6 +88,8 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages terminals)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml)
@@ -2607,3 +2610,93 @@ transforms idiomatic python function calls to well-formed SQL queries.")
 
 (define-public python2-sql
   (package-with-python2 python-sql))
+
+(define-public mongo-tools
+  (package
+    (name "mongo-tools")
+    (version "3.4.0")
+    (source
+     (origin (method url-fetch)
+             (uri (string-append "https://github.com/mongodb/mongo-tools"
+                                 "/archive/r" version ".tar.gz"))
+             (file-name (string-append name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "095nc57k4m4iyim0x3fgpw681qba123iyl4qz7xysbv5ngbr19mc"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:tests? #f
+       #:unpack-path "github.com/mongodb"
+       #:import-path "github.com/mongodb/mongo-tools"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rename-archive
+           (lambda _
+             (rename-file
+              ,(string-append "src/github.com/mongodb/mongo-tools-r" version)
+              "src/github.com/mongodb/mongo-tools")
+             #t))
+
+         (add-after 'rename-archive 'delete-bundled-source-code
+           (lambda _
+             (delete-file-recursively
+              "src/github.com/mongodb/mongo-tools/vendor")
+             #t))
+
+         ;; We don't need to install the source code for end-user application
+         (delete 'install-source)
+
+         (replace 'build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let build ((tools
+                          '("bsondump" "mongodump" "mongoexport" "mongofiles"
+                            "mongoimport" "mongooplog" "mongorestore"
+                            "mongostat" "mongotop")))
+               (if (null? tools)
+                   #t
+                   (if (let* ((tool (car tools))
+                              (command
+                               `("go" "install" "-v"
+                                 "-tags=\"ssl sasl\""
+                                 "-ldflags"
+                                 "-extldflags=-Wl,-z,now,-z,relro"
+                                 ,(string-append
+                                   "src/github.com/mongodb/mongo-tools/"
+                                   tool "/main/" tool ".go"))))
+                         (simple-format #t "build: running ~A\n"
+                                        (string-join command))
+                         (zero? (apply system* command)))
+                       (build (cdr tools))
+                       #f))))))))
+    (native-inputs
+     `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
+       ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
+       ("go-golang.org-x-crypto-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal)
+       ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
+       ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
+       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
+    (home-page "https://github.com/mongodb/mongo-tools")
+    (synopsis "Various tools for interacting with MongoDB and BSON")
+    (description
+     "This package includes a collection of tools related to MongoDB.
+@table @code
+@item bsondump
+Display BSON files in a human-readable format
+@item mongoimport
+Convert data from JSON, TSV or CSV and insert them into a collection
+@item mongoexport
+Write an existing collection to CSV or JSON format
+@item mongodump/mongorestore
+Dump MongoDB backups to disk in the BSON format
+@item mongorestore
+Read MongoDB backups in the BSON format, and restore them to a live database
+@item mongostat
+Monitor live MongoDB servers, replica sets, or sharded clusters
+@item mongofiles
+Read, write, delete, or update files in GridFS
+@item mongooplog
+Replay oplog entries between MongoDB servers
+@item mongotop
+Monitor read/write activity on a mongo server
+@end table")
+    (license license:asl2.0)))
-- 
2.16.0

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-23 19:51       ` Christopher Baines
@ 2018-01-23 20:29         ` Leo Famulari
  2018-01-23 20:34           ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-23 20:29 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1175 bytes --]

On Tue, Jan 23, 2018 at 07:51:06PM +0000, Christopher Baines wrote:
> Leo Famulari <leo@famulari.name> writes:
> > On Mon, Jan 22, 2018 at 09:08:23PM +0000, Christopher Baines wrote:
> >> * gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): New variable.
> >
> >> +         (add-after 'unpack 'rename-archive
> >> +           (lambda _
> >> +             (rename-file
> >> +              ,(string-append "src/github.com/jessevdk/go-flags-" version)
> >> +              "src/github.com/jessevdk/go-flags")
> >> +             #t)))))
> >
> > Should the go-build-system try to handle this automatically?
> 
> I believe this might be connected with what is in the source
> tarball. Without this stage, the go-flags directory is called
> go-flags-1.3.0, and this causes the build to fail [2].

Oh right, Go expects you to use Git checkouts instead of release
tarballs. I bet it works if you do that. That kind of tarball is
automatically created by GitHub per tag, and can't be disabled.

> I'm not sure about the wider context, but it would be good to handle
> this automatically.

So, I think the build system doesn't need to handle this case.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 05/10] gnu: Add daemontools.
  2018-01-23 19:54       ` Christopher Baines
@ 2018-01-23 20:30         ` Leo Famulari
  0 siblings, 0 replies; 53+ messages in thread
From: Leo Famulari @ 2018-01-23 20:30 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1390 bytes --]

On Tue, Jan 23, 2018 at 07:54:23PM +0000, Christopher Baines wrote:
> 
> Leo Famulari <leo@famulari.name> writes:
> 
> > On Mon, Jan 22, 2018 at 09:08:25PM +0000, Christopher Baines wrote:
> >> * gnu/packages/admin.scm (daemontools): New variable.
> >
> > Cool!
> >
> >> +    (name "daemontools")
> >> +    (version "0.76")
> >> +    (source (origin
> >> +              (method url-fetch)
> >> +              (uri (string-append
> >> +                    "https://cr.yp.to/" name "/"
> >> +                    name "-" version ".tar.gz"))
> >
> > Can you check if there are any important patches (security or other bug
> > fixes) floating around? This release is 16 years young...
> >
> > For example, you might look at Debian's diff.gz:
> >
> > https://packages.debian.org/stretch/daemontools
> 
> It looks like Debian has 3 patches for this [1]. I used one of them in
> the form of substitute* to get the package to build. I can include all
> the patches if that is helpful, but I was actually hesitant to send this
> patch at all.
> 
> I packaged it when trying to get the test suite for go-gopkg.in-mgo.v2
> to pass as it uses utilities from daemontools, but I got stuck getting
> mongodb to start. I left all of the stuff I did around the tests in
> place, but just disabled them.

Okay, it's up to you whether or not to add the daemontools package.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-23 20:29         ` Leo Famulari
@ 2018-01-23 20:34           ` Christopher Baines
  2018-01-23 20:44             ` Leo Famulari
  0 siblings, 1 reply; 53+ messages in thread
From: Christopher Baines @ 2018-01-23 20:34 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1363 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Tue, Jan 23, 2018 at 07:51:06PM +0000, Christopher Baines wrote:
>> Leo Famulari <leo@famulari.name> writes:
>> > On Mon, Jan 22, 2018 at 09:08:23PM +0000, Christopher Baines wrote:
>> >> * gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): New variable.
>> >
>> >> +         (add-after 'unpack 'rename-archive
>> >> +           (lambda _
>> >> +             (rename-file
>> >> +              ,(string-append "src/github.com/jessevdk/go-flags-" version)
>> >> +              "src/github.com/jessevdk/go-flags")
>> >> +             #t)))))
>> >
>> > Should the go-build-system try to handle this automatically?
>> 
>> I believe this might be connected with what is in the source
>> tarball. Without this stage, the go-flags directory is called
>> go-flags-1.3.0, and this causes the build to fail [2].
>
> Oh right, Go expects you to use Git checkouts instead of release
> tarballs. I bet it works if you do that. That kind of tarball is
> automatically created by GitHub per tag, and can't be disabled.
>
>> I'm not sure about the wider context, but it would be good to handle
>> this automatically.
>
> So, I think the build system doesn't need to handle this case.

Ok, would it be more appropriate to use a git checkout, rather than a
tar archive for these packages then?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
  2018-01-23 19:59       ` Christopher Baines
@ 2018-01-23 20:44         ` Leo Famulari
  0 siblings, 0 replies; 53+ messages in thread
From: Leo Famulari @ 2018-01-23 20:44 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 373 bytes --]

On Tue, Jan 23, 2018 at 07:59:53PM +0000, Christopher Baines wrote:
> Leo Famulari <leo@famulari.name> writes:
> > Do you think the go-build-system should accept some sort of #:make-flags
> > argument to simplify this sort of thing?
> 
> Maybe, but I'm not sure of how many other packages will be similar to
> mongo-tools.

Okay, we'll reserve judgment for now :)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-23 20:34           ` Christopher Baines
@ 2018-01-23 20:44             ` Leo Famulari
  2018-01-27 15:15               ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-23 20:44 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1579 bytes --]

On Tue, Jan 23, 2018 at 08:34:23PM +0000, Christopher Baines wrote:
> 
> Leo Famulari <leo@famulari.name> writes:
> 
> > On Tue, Jan 23, 2018 at 07:51:06PM +0000, Christopher Baines wrote:
> >> Leo Famulari <leo@famulari.name> writes:
> >> > On Mon, Jan 22, 2018 at 09:08:23PM +0000, Christopher Baines wrote:
> >> >> * gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): New variable.
> >> >
> >> >> +         (add-after 'unpack 'rename-archive
> >> >> +           (lambda _
> >> >> +             (rename-file
> >> >> +              ,(string-append "src/github.com/jessevdk/go-flags-" version)
> >> >> +              "src/github.com/jessevdk/go-flags")
> >> >> +             #t)))))
> >> >
> >> > Should the go-build-system try to handle this automatically?
> >> 
> >> I believe this might be connected with what is in the source
> >> tarball. Without this stage, the go-flags directory is called
> >> go-flags-1.3.0, and this causes the build to fail [2].
> >
> > Oh right, Go expects you to use Git checkouts instead of release
> > tarballs. I bet it works if you do that. That kind of tarball is
> > automatically created by GitHub per tag, and can't be disabled.
> >
> >> I'm not sure about the wider context, but it would be good to handle
> >> this automatically.
> >
> > So, I think the build system doesn't need to handle this case.
> 
> Ok, would it be more appropriate to use a git checkout, rather than a
> tar archive for these packages then?

Yeah, I bet you can avoid the rename-archive phases if you use a Git
checkout.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-23 19:45       ` Christopher Baines
@ 2018-01-23 20:51         ` Leo Famulari
  2018-01-27 15:16           ` Christopher Baines
  0 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-23 20:51 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1614 bytes --]

On Tue, Jan 23, 2018 at 07:45:12PM +0000, Christopher Baines wrote:
> 
> Leo Famulari <leo@famulari.name> writes:
> 
> > On Mon, Jan 22, 2018 at 09:08:22PM +0000, Christopher Baines wrote:
> >> * gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.
> >
> >> +      (native-inputs
> >> +       `(("go-golang.org-x-crypto-ssh-terminal"
> >> +          ,go-golang.org-x-crypto-ssh-terminal)))
> >
> > Is it really just a native-input? Or could it need this library later,
> > at run-time?
> 
> Well, the package doesn't build without it, and as far as I can tell the
> store output doesn't reference it. I believe that
> go-golang.org-x-crypto-ssh-terminal is a dependency of
> go-github.com-howeyc-gopass, so if you're using
> go-github.com-howeyc-gopass, then you'll need
> go-golang.org-x-crypto-ssh-terminal. Maybe it should be a propagated
> input instead?

Go looks for dependencies by first looking for their source code (this
is why the go-build-system installs the source code by default). Once it
finds the source code, then it looks up the compiled objects.

Finally, when building the end-user application (not just some library)
it links everything together in what's basically a static archive.

If everything seems to work even though x-crypto-ssh-terminal is a
native-input, then I bet that whatever is using howeyc-gopass does not
exercise the part of howeyc-gopass's code using x-crypto-ssh-terminal.

I think it's more correct here to propagate, unless
x-crypto-ssh-terminal is only used for howeyc-gopass's test suite or
something like that.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-22 20:51 [bug#30214] [PATCH]: Add mongo-tools Christopher Baines
                   ` (2 preceding siblings ...)
  2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
@ 2018-01-27 15:00 ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
                     ` (9 more replies)
  3 siblings, 10 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
  variable.
---
 gnu/packages/terminals.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 68507cf64..3baaf6612 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -31,6 +31,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -572,3 +573,39 @@ eye-candy, customizable, and reasonably lightweight.")
 It's a terminal emulator with few dependencies, so you don't need a full GNOME
 desktop installed to have a decent terminal emulator.")
     (license license:gpl2)))
+
+(define-public go-golang.org-x-crypto-ssh-terminal
+  (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
+        (revision "0"))
+    (package
+      (name "go-golang.org-x-crypto-ssh-terminal")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/crypto/ssh/terminal"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                     (string-append (assoc-ref outputs "out")
+                                    "/src/golang.org/x/crypto/ed25519/testdata")
+                     ".*\\.gz$"))
+               #t)))))
+      (synopsis "Support functions for dealing with terminals in Go")
+      (description "@code{terminal} provides support functions for dealing
+with terminals in Go.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
                     ` (8 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.
---
 gnu/packages/terminals.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 3baaf6612..b480844c3 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -609,3 +609,31 @@ desktop installed to have a decent terminal emulator.")
 with terminals in Go.")
       (home-page "https://go.googlesource.com/crypto/")
       (license license:bsd-3))))
+
+(define-public go-github.com-howeyc-gopass
+  (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
+        (revision "0"))
+    (package
+      (name "go-github.com-howeyc-gopass")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/howeyc/gopass.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/howeyc/gopass"))
+      (propagated-inputs
+       `(("go-golang.org-x-crypto-ssh-terminal"
+          ,go-golang.org-x-crypto-ssh-terminal)))
+      (synopsis "Retrieve password from a terminal or piped input in Go")
+      (description
+       "@code{gopass} is a Go package for retrieving a password from user
+terminal or piped input.")
+      (home-page "https://github.com/howeyc/gopass")
+      (license license:isc))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
                     ` (7 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): 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 f21149a0f..323786c6d 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -446,3 +446,28 @@ interfaces in Go.  The goal is to enable developers to write fast and
 distributable command line applications in an expressive way.")
       (home-page "https://github.com/davidjpeacock/cli")
       (license license:expat))))
+
+(define-public go-github.com-jessevdk-go-flags
+  (package
+    (name "go-github.com-jessevdk-go-flags")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jessevdk/go-flags")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/jessevdk/go-flags"))
+    (synopsis "Go library for parsing command line arguments")
+    (description
+     "The @code{flags} package provides a command line option parser.  The
+functionality is similar to the go builtin @code{flag} package, but
+@code{flags} provides more options and uses reflection to provide a succinct
+way of specifying command line options.")
+    (home-page "https://github.com/jessevdk/go-flags")
+    (license license:bsd-3)))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
                     ` (6 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/check.scm (go-gopkg.in-check.v1): New variable.
---
 gnu/packages/check.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 1585948b3..564b75f8d 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -59,6 +59,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 
@@ -283,6 +284,30 @@ normally do not detect.  The goal is to detect only real errors in the code
 (i.e. have zero false positives).")
     (license license:gpl3+)))
 
+(define-public go-gopkg.in-check.v1
+  (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
+        (revision "0"))
+    (package
+      (name "go-gopkg.in-check.v1")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/go-check/check.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/check.v1"))
+      (synopsis "Rich testing extension for Go's testing package")
+      (description
+       "@code{check} is a rich testing extension for Go's testing package.")
+      (home-page "https://github.com/go-check/check")
+      (license license:bsd-2))))
+
 (define-public googletest
   (package
     (name "googletest")
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 05/10] gnu: Add daemontools.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (2 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
                     ` (5 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/admin.scm (daemontools): New variable.
---
 gnu/packages/admin.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3d3c62619..7c7c457f5 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -187,6 +187,49 @@ interface and is based on GNU Guile.")
     (home-page "https://www.gnu.org/software/shepherd/")
     (properties '((ftp-server . "alpha.gnu.org")))))
 
+(define-public daemontools
+  (package
+    (name "daemontools")
+    (version "0.76")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://cr.yp.to/" name "/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;; No tests as far as I can tell.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir ,(string-append  name "-" version))))
+         (delete 'configure)
+         (add-before 'build 'patch
+           (lambda _
+             (substitute* "src/error.h"
+               (("extern int errno;")
+                "#include <errno.h>"))))
+         (replace 'build
+           (lambda _
+             (invoke "package/compile")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (for-each (lambda (file)
+                           (install-file file bin))
+                         (find-files "command"))))))))
+    (synopsis "Tools for managing UNIX style services")
+    (description
+     "@code{daemontools} is a collection of tools for managing UNIX
+services.")
+    (license license:public-domain)
+    (home-page "https://cr.yp.to/daemontools.html")))
+
 (define-public dfc
   (package
    (name "dfc")
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (3 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
                     ` (4 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/databases.scm (go-gopkg.in-mgo.v2): New variable.
---
 gnu/packages/databases.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 4b2bdb6d3..fabfbfe5b 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -49,6 +49,7 @@
 
 (define-module (gnu packages databases)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
@@ -94,6 +95,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #: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 build-system ruby)
@@ -173,6 +175,48 @@ store key/value pairs in a file in a manner similar to the Unix dbm library
 and provides interfaces to the traditional file format.")
     (license license:gpl3+)))
 
+(define-public go-gopkg.in-mgo.v2
+  (package
+    (name "go-gopkg.in-mgo.v2")
+    (version "2016.08.01")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-mgo/mgo")
+                    (commit (string-append "r" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0rwbi1z63w43b0z9srm8m7iz1fdwx7bq7n2mz862d6liiaqa59jd"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "gopkg.in/mgo.v2"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'reset-gzip-timestamps)
+         (add-before 'check 'start-mongodb
+           (lambda* (#:key tests? #:allow-other-keys)
+             (or (not tests?)
+                 (with-directory-excursion "src/gopkg.in/mgo.v2"
+                   (invoke "make" "startdb")))))
+         (add-after 'check 'stop'mongodb
+           (lambda* (#:key tests? #:allow-other-keys)
+             (or (not tests?)
+                 (with-directory-excursion "src/gopkg.in/mgo.v2"
+                   (invoke "make" "stopdb"))))))))
+    (native-inputs
+     `(("go-gopkg.in-check.v1" ,go-gopkg.in-check.v1)
+       ("mongodb" ,mongodb)
+       ("daemontools" ,daemontools)))
+    (synopsis "@code{mgo} offers a rich MongoDB driver for Go.")
+    (description
+     "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.
+It implements a rich selection of features under a simple API following
+standard Go idioms.")
+    (home-page "http://labix.org/mgo")
+    (license license:bsd-2)))
+
 (define-public bdb
   (package
     (name "bdb")
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (4 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
                     ` (3 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/golang.scm (go-gopkg.in-tomb.v2): 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 323786c6d..b8eb90ed9 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -471,3 +471,28 @@ functionality is similar to the go builtin @code{flag} package, but
 way of specifying command line options.")
     (home-page "https://github.com/jessevdk/go-flags")
     (license license:bsd-3)))
+
+(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.git")
+                      (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"))
+      (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))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (5 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
                     ` (2 subsequent siblings)
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

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

diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 1f5fe6aba..3284be243 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -37,6 +37,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
@@ -660,3 +661,26 @@ source code.")
        "This library simply implements Levenshtein distance algorithm with C++
 and Cython.")
       (license license:expat))))
+
+(define-public go-github.com-mattn-go-runewidth
+  (package
+    (name "go-github.com-mattn-go-runewidth")
+    (version "0.0.2")
+    (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
+                "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/mattn/go-runewidth"))
+    (synopsis "@code{runewidth} provides Go functions to work with string widths")
+    (description
+     "The @code{runewidth} library provides Go functions for padding,
+measuring and checking the width of strings, with support east asian text.")
+    (home-page "https://github.com/jessevdk/go-flags")
+    (license license:expat)))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (6 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-27 15:00   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
  2018-01-29 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/terminals.scm (go-github.com-nsf-termbox-go): New variable.
---
 gnu/packages/terminals.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index b480844c3..13d162e1a 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -53,6 +53,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages wm)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -574,6 +575,35 @@ It's a terminal emulator with few dependencies, so you don't need a full GNOME
 desktop installed to have a decent terminal emulator.")
     (license license:gpl2)))
 
+(define-public go-github.com-nsf-termbox-go
+  (let ((commit "4ed959e0540971545eddb8c75514973d670cf739")
+        (revision "0"))
+    (package
+      (name "go-github.com-nsf-termbox-go")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nsf/termbox-go.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1vx64i1mg660if3wwm81p4b7lzxfb3qbr39i7misdyld3fc486p9"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/nsf/termbox-go"))
+      (propagated-inputs
+       `(("go-github.com-mattn-go-runewidth"
+          ,go-github.com-mattn-go-runewidth)))
+      (synopsis "@code{termbox} provides a minimal API for text-based user
+interfaces")
+      (description
+       "Termbox is a library that provides a minimalistic API which allows the
+programmer to write text-based user interfaces.")
+      (home-page "https://github.com/nsf/termbox-go")
+      (license license:expat))))
+
 (define-public go-golang.org-x-crypto-ssh-terminal
   (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
         (revision "0"))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (7 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
@ 2018-01-27 15:00   ` Christopher Baines
  2018-01-29 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
  9 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:00 UTC (permalink / raw)
  To: 30214

* gnu/packages/databases.scm (mongo-tools): New variable.
---
 gnu/packages/databases.scm | 87 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index fabfbfe5b..8004a44dd 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libevent)
@@ -87,6 +88,8 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages terminals)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml)
@@ -2599,3 +2602,87 @@ transforms idiomatic python function calls to well-formed SQL queries.")
 
 (define-public python2-sql
   (package-with-python2 python-sql))
+
+(define-public mongo-tools
+  (package
+    (name "mongo-tools")
+    (version "3.4.0")
+    (source
+     (origin (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/mongodb/mongo-tools")
+                   (commit (string-append "r" version))))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "095nc57k4m4iyim0x3fgpw681qba123iyl4qz7xysbv5ngbr19mc"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:tests? #f
+       #:unpack-path "github.com/mongodb"
+       #:import-path "github.com/mongodb/mongo-tools"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-bundled-source-code
+           (lambda _
+             (delete-file-recursively
+              "src/github.com/mongodb/mongo-tools/vendor")
+             #t))
+
+         ;; We don't need to install the source code for end-user application
+         (delete 'install-source)
+
+         (replace 'build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let build ((tools
+                          '("bsondump" "mongodump" "mongoexport" "mongofiles"
+                            "mongoimport" "mongooplog" "mongorestore"
+                            "mongostat" "mongotop")))
+               (if (null? tools)
+                   #t
+                   (if (let* ((tool (car tools))
+                              (command
+                               `("go" "install" "-v"
+                                 "-tags=\"ssl sasl\""
+                                 "-ldflags"
+                                 "-extldflags=-Wl,-z,now,-z,relro"
+                                 ,(string-append
+                                   "src/github.com/mongodb/mongo-tools/"
+                                   tool "/main/" tool ".go"))))
+                         (simple-format #t "build: running ~A\n"
+                                        (string-join command))
+                         (zero? (apply system* command)))
+                       (build (cdr tools))
+                       #f))))))))
+    (native-inputs
+     `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
+       ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
+       ("go-golang.org-x-crypto-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal)
+       ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
+       ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
+       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
+    (home-page "https://github.com/mongodb/mongo-tools")
+    (synopsis "Various tools for interacting with MongoDB and BSON")
+    (description
+     "This package includes a collection of tools related to MongoDB.
+@table @code
+@item bsondump
+Display BSON files in a human-readable format
+@item mongoimport
+Convert data from JSON, TSV or CSV and insert them into a collection
+@item mongoexport
+Write an existing collection to CSV or JSON format
+@item mongodump/mongorestore
+Dump MongoDB backups to disk in the BSON format
+@item mongorestore
+Read MongoDB backups in the BSON format, and restore them to a live database
+@item mongostat
+Monitor live MongoDB servers, replica sets, or sharded clusters
+@item mongofiles
+Read, write, delete, or update files in GridFS
+@item mongooplog
+Replay oplog entries between MongoDB servers
+@item mongotop
+Monitor read/write activity on a mongo server
+@end table")
+    (license license:asl2.0)))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags.
  2018-01-23 20:44             ` Leo Famulari
@ 2018-01-27 15:15               ` Christopher Baines
  0 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:15 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1739 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Tue, Jan 23, 2018 at 08:34:23PM +0000, Christopher Baines wrote:
>> 
>> Leo Famulari <leo@famulari.name> writes:
>> 
>> > On Tue, Jan 23, 2018 at 07:51:06PM +0000, Christopher Baines wrote:
>> >> Leo Famulari <leo@famulari.name> writes:
>> >> > On Mon, Jan 22, 2018 at 09:08:23PM +0000, Christopher Baines wrote:
>> >> >> * gnu/packages/golang.scm (go-github.com-jessevdk-go-flags): New variable.
>> >> >
>> >> >> +         (add-after 'unpack 'rename-archive
>> >> >> +           (lambda _
>> >> >> +             (rename-file
>> >> >> +              ,(string-append "src/github.com/jessevdk/go-flags-" version)
>> >> >> +              "src/github.com/jessevdk/go-flags")
>> >> >> +             #t)))))
>> >> >
>> >> > Should the go-build-system try to handle this automatically?
>> >> 
>> >> I believe this might be connected with what is in the source
>> >> tarball. Without this stage, the go-flags directory is called
>> >> go-flags-1.3.0, and this causes the build to fail [2].
>> >
>> > Oh right, Go expects you to use Git checkouts instead of release
>> > tarballs. I bet it works if you do that. That kind of tarball is
>> > automatically created by GitHub per tag, and can't be disabled.
>> >
>> >> I'm not sure about the wider context, but it would be good to handle
>> >> this automatically.
>> >
>> > So, I think the build system doesn't need to handle this case.
>> 
>> Ok, would it be more appropriate to use a git checkout, rather than a
>> tar archive for these packages then?
>
> Yeah, I bet you can avoid the rename-archive phases if you use a Git
> checkout.

I've done this now for all the packages, and sent a new set of patches.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass.
  2018-01-23 20:51         ` Leo Famulari
@ 2018-01-27 15:16           ` Christopher Baines
  0 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-27 15:16 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 1800 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Tue, Jan 23, 2018 at 07:45:12PM +0000, Christopher Baines wrote:
>> 
>> Leo Famulari <leo@famulari.name> writes:
>> 
>> > On Mon, Jan 22, 2018 at 09:08:22PM +0000, Christopher Baines wrote:
>> >> * gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable.
>> >
>> >> +      (native-inputs
>> >> +       `(("go-golang.org-x-crypto-ssh-terminal"
>> >> +          ,go-golang.org-x-crypto-ssh-terminal)))
>> >
>> > Is it really just a native-input? Or could it need this library later,
>> > at run-time?
>> 
>> Well, the package doesn't build without it, and as far as I can tell the
>> store output doesn't reference it. I believe that
>> go-golang.org-x-crypto-ssh-terminal is a dependency of
>> go-github.com-howeyc-gopass, so if you're using
>> go-github.com-howeyc-gopass, then you'll need
>> go-golang.org-x-crypto-ssh-terminal. Maybe it should be a propagated
>> input instead?
>
> Go looks for dependencies by first looking for their source code (this
> is why the go-build-system installs the source code by default). Once it
> finds the source code, then it looks up the compiled objects.
>
> Finally, when building the end-user application (not just some library)
> it links everything together in what's basically a static archive.
>
> If everything seems to work even though x-crypto-ssh-terminal is a
> native-input, then I bet that whatever is using howeyc-gopass does not
> exercise the part of howeyc-gopass's code using x-crypto-ssh-terminal.
>
> I think it's more correct here to propagate, unless
> x-crypto-ssh-terminal is only used for howeyc-gopass's test suite or
> something like that.

Ok, I've made it a propagated input, as I think it's more than a build
time dependency.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
                     ` (8 preceding siblings ...)
  2018-01-27 15:00   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
@ 2018-01-29 21:52   ` Leo Famulari
  2018-01-30  7:49     ` bug#30214: " Christopher Baines
  9 siblings, 1 reply; 53+ messages in thread
From: Leo Famulari @ 2018-01-29 21:52 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 30214

[-- Attachment #1: Type: text/plain, Size: 255 bytes --]

On Sat, Jan 27, 2018 at 03:00:18PM +0000, Christopher Baines wrote:
> * gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
>   variable.

Assuming this is all working for you, I think you should feel confident
to push the patch series.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* bug#30214: [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal.
  2018-01-29 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
@ 2018-01-30  7:49     ` Christopher Baines
  0 siblings, 0 replies; 53+ messages in thread
From: Christopher Baines @ 2018-01-30  7:49 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 30214-done

[-- Attachment #1: Type: text/plain, Size: 374 bytes --]


Leo Famulari <leo@famulari.name> writes:

> On Sat, Jan 27, 2018 at 03:00:18PM +0000, Christopher Baines wrote:
>> * gnu/packages/terminals.scm (go-golang.org-x-crypto-ssh-terminal): New
>>   variable.
>
> Assuming this is all working for you, I think you should feel confident
> to push the patch series.

Great, I've now pushed these patches. Thanks for your comments :)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2018-01-30  7:50 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-22 20:51 [bug#30214] [PATCH]: Add mongo-tools Christopher Baines
2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
2018-01-22 21:53     ` Leo Famulari
2018-01-23 19:45       ` Christopher Baines
2018-01-23 20:51         ` Leo Famulari
2018-01-27 15:16           ` Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
2018-01-22 21:54     ` Leo Famulari
2018-01-23 19:51       ` Christopher Baines
2018-01-23 20:29         ` Leo Famulari
2018-01-23 20:34           ` Christopher Baines
2018-01-23 20:44             ` Leo Famulari
2018-01-27 15:15               ` Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
2018-01-22 21:57     ` Leo Famulari
2018-01-23 19:54       ` Christopher Baines
2018-01-23 20:30         ` Leo Famulari
2018-01-22 21:08   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
2018-01-22 22:01     ` Leo Famulari
2018-01-23 19:59       ` Christopher Baines
2018-01-23 20:44         ` Leo Famulari
2018-01-22 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
2018-01-23 19:42     ` Christopher Baines
2018-01-22 21:51 ` [bug#30214] [PATCH]: Add mongo-tools Leo Famulari
2018-01-23 19:41   ` Christopher Baines
2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
2018-01-23 20:22   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
2018-01-23 20:22   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
2018-01-23 20:22   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
2018-01-29 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
2018-01-30  7:49     ` bug#30214: " Christopher Baines

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).