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.scm565
1 files changed, 565 insertions, 0 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 3640d7640b..445533b0c2 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,8 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages mp3)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
@@ -1793,3 +1796,565 @@ finding resources located relative to the executable file.")
 run programs as a service using a variety of supervisors, including systemd,
 SysVinit, and more.")
       (license license:zlib))))
+
+(define-public go-github-com-docker-distribution
+  (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
+        (revision "0"))
+    (package
+      (name "go-github-com-docker-distribution")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       ;; FIXME: This bundles many things, see
+       ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/docker/distribution")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("go-golang-org-x-sys-unix"
+          ,go-golang-org-x-sys-unix)
+         ("go-github-com-sirupsen-logrus"
+          ,go-github-com-sirupsen-logrus)
+         ("go-golang-org-x-crypto-ssh-terminal"
+          ,go-golang-org-x-crypto-ssh-terminal)))
+      (arguments
+       '(#:import-path "github.com/docker/distribution"
+         #: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
+                     (assoc-ref outputs "out")
+                     ".*\\.gz$"))
+               #t)))))
+      (home-page
+       "https://github.com/docker/distribution")
+      (synopsis "This package is Docker toolset to pack, ship, store, and
+deliver content")
+      (description "Docker Distribution is Docker toolset to pack, ship,
+store, and deliver content.  It's containe Docker Registry 2.0 and libraries
+to interacting with distribution components.")
+      (license license:asl2.0))))
+
+(define-public go-github-com-docker-go-connections
+  (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
+        (revision "0"))
+    (package
+      (name "go-github-com-docker-go-connections")
+      (version (git-version "0.0.0" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/docker/go-connections.git")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+              "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
+      (build-system go-build-system)
+      (arguments
+        '(#:import-path "github.com/docker/go-connections"))
+      (home-page "https://github.com/docker/go-connections")
+      (synopsis "Networking library for Go")
+      (description
+       "This packages provides a library to work with network connections in
+the Go language.  In particular it provides tools to deal with network address
+translation (NAT), proxies, sockets, and transport layer security (TLS).")
+      (license license:asl2.0))))
+
+(define-public go-github-com-docker-machine
+  (let ((commit "7b7a141da84480342357c51838be142bf183b095")
+        (revision "0"))
+    (package
+      (name "go-github-com-docker-machine")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/docker/machine.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/docker/machine"))
+      (home-page "https://github.com/docker/machine")
+      (synopsis "Machine management for a container-centric world")
+      (description
+       "@dfn{Machine} lets you create Docker hosts on your computer, on
+hosting providers, and inside your data center.  It creates servers, installs
+Docker on them, then configures the Docker client to talk to them.")
+      (license license:asl2.0))))
+
+(define-public go-github-com-gorhill-cronexpr
+  (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
+        (revision "0"))
+    (package
+      (name "go-github-com-gorhill-cronexpr")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gorhill/cronexpr.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/gorhill/cronexpr"))
+      (home-page "https://github.com/gorhill/cronexpr")
+      (synopsis "Cron expression parser in the Go language")
+      (description
+       "This package provides a cron expression parser in the Go language.
+Given a cron expression and a time stamp, you can get the next time stamp
+which satisfies the cron expression.")
+      (license (list license:gpl3+
+                     license:asl2.0)))))
+
+(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")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/check.v1"))
+      (home-page "https://gopkg.in/check.v1")
+      (synopsis "Test framework for the Go language")
+      (description
+       "This package provides a test library for the Go language.")
+      (license license:asl2.0))))
+
+(define-public go-gopkg-in-yaml-v2
+  (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
+        (revision "0"))
+    (package
+      (name "go-gopkg-in-yaml-v2")
+      (version (git-version "0.0.0" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://gopkg.in/yaml.v2.git")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+              "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/yaml.v2"))
+      (native-inputs
+       `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
+      (home-page "https://gopkg.in/yaml.v2")
+      (synopsis "YAML reader and writer for the Go language")
+      (description
+       "This package provides a Go library for encode and decode YAML
+values.")
+      (license license:asl2.0))))
+
+(define-public go-github-com-mattn-go-isatty
+  (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
+        (revision "0"))
+    (package
+      (name "go-github-com-mattn-go-isatty")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mattn/go-isatty")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/mattn/go-isatty"))
+      (home-page "https://github.com/mattn/go-isatty")
+      (synopsis "Provide @code{isatty} for Golang")
+      (description "This package provides @code{isatty}, a Go module that can
+tell you whether a file descriptor points to a terminal and the type of the
+terminal.")
+      (license license:expat))))
+
+(define-public go-github-com-mattn-go-colorable
+  (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
+        (revision "0"))
+    (package
+      (name "go-github-com-mattn-go-colorable")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mattn/go-colorable")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("go-github-com-mattn-go-isatty"
+          ,go-github-com-mattn-go-isatty)))
+      (arguments
+       '(#:import-path "github.com/mattn/go-colorable"))
+      (home-page "https://github.com/mattn/go-colorable")
+      (synopsis "Handle ANSI color escapes on Windows")
+      (description "This package provides @code{colorable}, a module that
+makes it possible to handle ANSI color escapes on Windows.")
+      (license license:expat))))
+
+(define-public go-github-com-mgutz-ansi
+  (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
+        (revision "0"))
+    (package
+      (name "go-github-com-mgutz-ansi")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/mgutz/ansi")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("go-github-com-mattn-go-isatty"
+          ,go-github-com-mattn-go-isatty)
+         ("go-github-com-mattn-go-colorable"
+          ,go-github-com-mattn-go-colorable)))
+      (arguments
+       '(#:import-path "github.com/mgutz/ansi"))
+      (home-page "https://github.com/mgutz/ansi")
+      (synopsis "Small, fast library to create ANSI colored strings and codes")
+      (description "This package provides @code{ansi}, a Go module that can
+generate ANSI colored strings.")
+      (license license:expat))))
+
+(define-public go-github-com-aarzilli-golua
+  (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
+        (revision "0"))
+    (package
+      (name "go-github-com-aarzilli-golua")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/aarzilli/golua")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("lua" ,lua)))
+      (arguments
+       `(#:unpack-path "github.com/aarzilli/golua"
+         #:import-path "github.com/aarzilli/golua/lua"
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'build
+             (lambda* (#:key import-path #:allow-other-keys)
+               (invoke "go" "install"
+                       "-v"  ; print the name of packages as they are compiled
+                       "-x"  ; print each command as it is invoked
+                       "-ldflags=-s -w" ; strip the symbol table and debug
+                       "-tags" "llua" ; Latest Lua on Guix does not have a version number.
+                       import-path)))
+           (replace 'check
+             (lambda* (#:key import-path #:allow-other-keys)
+               (invoke "go" "test"
+                       "-tags" "llua" ; Latest Lua on Guix does not have a version number.
+                       import-path))))))
+      (home-page "https://github.com/aarzilli/golua")
+      (synopsis "Go Bindings for the Lua C API")
+      (description "This package provides @code{lua}, a Go module that can
+run a Lua virtual machine.")
+      (license license:expat))))
+
+(define-public go-gitlab-com-ambrevar-golua-unicode
+  (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
+        (revision "0"))
+    (package
+      (name "go-gitlab-com-ambrevar-golua-unicode")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://gitlab.com/ambrevar/golua")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("lua" ,lua)
+         ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
+      (arguments
+       `(#:unpack-path "gitlab.com/ambrevar/golua"
+         #:import-path "gitlab.com/ambrevar/golua/unicode"
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda* (#:key import-path #:allow-other-keys)
+               (setenv "USER" "homeless-dude")
+               (invoke "go" "test" import-path))))))
+      (home-page "https://gitlab.com/ambrevar/golua")
+      (synopsis "Add Unicode support to Golua")
+      (description "This extension to Arzilli's Golua adds Unicode support to
+all functions from the Lua string library.  Lua patterns are replaced by Go
+regexps.  This breaks compatibility with Lua, but Unicode support breaks it
+anyways and Go regexps are more powerful.")
+      (license license:expat))))
+
+(define-public go-github-com-yookoala-realpath
+  (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
+        (revision "0"))
+    (package
+      (name "go-github-com-yookoala-realpath")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/yookoala/realpath")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/yookoala/realpath"))
+      (home-page "https://github.com/yookoala/realpath")
+      (synopsis "@code{realpath} for Golang")
+      (description "This package provides @code{realpath}, a Go module that
+when provided with a valid relative path / alias path, it will return you with
+a string of its real absolute path in the system.")
+      (license license:expat))))
+
+(define-public go-gitlab-com-ambrevar-damerau
+  (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
+        (revision "0"))
+    (package
+      (name "go-gitlab-com-ambrevar-damerau")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://gitlab.com/ambrevar/damerau")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "gitlab.com/ambrevar/damerau"))
+      (home-page "https://gitlab.com/ambrevar/damerau")
+      (synopsis "Damerau-Levenshtein distance for Golang")
+      (description "This is a spelling corrector implementing the
+Damerau-Levenshtein distance.  Takes a string value input from the user.
+Looks for an identical word on a list of words, if none is found, look for a
+similar word.")
+      (license license:expat))))
+
+(define-public go-github-com-stevedonovan-luar
+  (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
+        (revision "0"))
+    (package
+      (name "go-github-com-stevedonovan-luar")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/stevedonovan/luar")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
+      (arguments
+       `(#:tests? #f                    ; Upstream tests are broken.
+         #:import-path "github.com/stevedonovan/luar"))
+      (home-page "https://github.com/stevedonovan/luar")
+      (synopsis "Lua reflection bindings for Go")
+      (description "Luar is designed to make using Lua from Go more
+convenient.  Go structs, slices and maps can be automatically converted to Lua
+tables and vice-versa.  The resulting conversion can either be a copy or a
+proxy.  In the latter case, any change made to the result will reflect on the
+source.
+
+Any Go function can be made available to Lua scripts, without having to write
+C-style wrappers.
+
+Luar support cyclic structures (lists, etc.).
+
+User-defined types can be made available to Lua as well: their exported
+methods can be called and usual operations such as indexing or arithmetic can
+be performed.")
+      (license license:expat))))
+
+(define-public go-github-com-kr-text
+  (let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f")
+        (revision "0"))
+    (package
+      (name "go-github-com-kr-text")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/kr/text")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/kr/text"))
+      (home-page "https://github.com/kr/text")
+      (synopsis "Go package for manipulating paragraphs of text")
+      (description "Package @code{text} provides manipulation Go functions for
+paragraphs of text.")
+      (license license:expat))))
+
+(define-public go-github-com-michiwend-golang-pretty
+  (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
+        (revision "0"))
+    (package
+      (name "go-github-com-michiwend-golang-pretty")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/michiwend/golang-pretty")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("go-github-com-kr-text" ,go-github-com-kr-text)))
+      (arguments
+       `(#:tests? #f                    ; Upstream tests seem to be broken.
+         #:import-path "github.com/michiwend/golang-pretty"))
+      (home-page "https://github.com/michiwend/golang-pretty")
+      (synopsis "Pretty printing for Go values")
+      (description "Package @code{pretty} provides pretty-printing for Go
+values.  This is useful during debugging, to avoid wrapping long output lines
+in the terminal.
+
+It provides a function, @code{Formatter}, that can be used with any function
+that accepts a format string.  It also provides convenience wrappers for
+functions in packages @code{fmt} and @code{log}.")
+      (license license:expat))))
+
+(define-public go-github-com-michiwend-gomusicbrainz
+  (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
+        (revision "0"))
+    (package
+      (name "go-github-com-michiwend-gomusicbrainz")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/michiwend/gomusicbrainz")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
+         ("go-github-com-kr-text" ,go-github-com-kr-text)))
+      (arguments
+       `(#:import-path "github.com/michiwend/gomusicbrainz"))
+      (home-page "https://github.com/michiwend/gomusicbrainz")
+      (synopsis "MusicBrainz WS2 client library for Golang")
+      (description "Currently GoMusicBrainz provides methods to perform search
+and lookup requests.  Browse requests are not supported yet.")
+      (license license:expat))))
+
+(define-public go-github-com-wtolson-go-taglib
+  (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
+        (revision "0"))
+    (package
+      (name "go-github-com-wtolson-go-taglib")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://github.com/wtolson/go-taglib")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
+      (build-system go-build-system)
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("taglib" ,taglib)))
+      (arguments
+       `(#:import-path "github.com/wtolson/go-taglib"))
+      (home-page "https://github.com/wtolson/go-taglib")
+      (synopsis "Go wrapper for taglib")
+      (description "Go wrapper for taglib")
+      (license license:unlicense))))