summary refs log tree commit diff
path: root/gnu/packages/golang.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/golang.scm')
-rw-r--r--gnu/packages/golang.scm93
1 files changed, 80 insertions, 13 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e7c2d228cc..f11cc76d9c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -196,10 +197,10 @@
     (home-page "https://golang.org/")
     (synopsis "Compiler and libraries for Go, a statically-typed language")
     (description "Go, also commonly referred to as golang, is an imperative
-programming language.  Designed primarily for systems programming, it is a
-compiled, statically typed language in the tradition of C and C++, with
-garbage collection, various safety features and in the style of communicating
-sequential processes (CSP) concurrent programming features added.")
+programming language designed primarily for systems programming.  Go is a
+compiled, statically typed language in the tradition of C and C++, but adds
+garbage collection, various safety features, and concurrent programming features
+in the style of communicating sequential processes (@dfn{CSP}).")
     (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
     (license license:bsd-3)))
 
@@ -207,7 +208,7 @@ sequential processes (CSP) concurrent programming features added.")
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.9.2")
+    (version "1.9.4")
     (source
      (origin
        (method url-fetch)
@@ -215,7 +216,7 @@ sequential processes (CSP) concurrent programming features added.")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "1p23n4xzbknl3bbhlckbvxbhpxknd5rn0i2szmn9i2dcz15ihpv6"))))
+         "01nw8rfvf10naja0wq0kabsm012sbqq76hd4b8c7g28n6ggshwq5"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -300,13 +301,6 @@ sequential processes (CSP) concurrent programming features added.")
                  (substitute* "../misc/cgo/testcarchive/carchive_test.go"
                    (("#!/usr/bin/env") (string-append "#!" (which "env"))))
 
-                 ;; Escape braces in test data to workaround test failure. For
-                 ;; more information:
-                 ;; https://github.com/golang/go/issues/20007
-                 ;; FIXME: remove this once we upgrade to 1.9
-                 (substitute* "cmd/vet/testdata/copylock_func.go"
-                   (("struct\\{lock sync.Mutex\\}") "struct\\{lock sync.Mutex\\}"))
-
                  (substitute* "net/lookup_unix.go"
                    (("/etc/protocols") (string-append net-base "/etc/protocols")))
                  (substitute* "net/port_unix.go"
@@ -452,3 +446,76 @@ 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)))
+
+(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))))
+
+(define-public go-github.com-jtolds-gls
+  (package
+    (name "go-github.com-jtolds-gls")
+    (version "4.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jtolds/gls")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/jtolds/gls"))
+    (synopsis "@code{gls} provides Goroutine local storage")
+    (description
+     "The @code{gls} package provides a way to store a retrieve values
+per-goroutine.")
+    (home-page "https://github.com/jtolds/gls")
+    (license license:expat)))