unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* gnu: Add syncthing.
@ 2016-12-11  0:38 Petter
  2016-12-11 11:25 ` Hartmut Goebel
  0 siblings, 1 reply; 11+ messages in thread
From: Petter @ 2016-12-11  0:38 UTC (permalink / raw)
  To: guix-devel

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

Hi,

Syncthing is the first project to use the recently added Go build
system. It's in a minimal state to aid in developing the build system
and because it's a considerable job to add descriptions, synopsises
and homepages to all these packages (55). Licenses are probably
incorrect, unless correct by coincidence. Help with this would be most
appreciated!

Tar archives are currently unsupported.

Best,
Petter

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-syncthing.patch --]
[-- Type: text/x-diff; name=0001-gnu-Add-syncthing.patch, Size: 47225 bytes --]

From f195168e04fd31bc0c72c279ff3b96a272fe8183 Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Sun, 11 Dec 2016 01:33:59 +0100
Subject: [PATCH] gnu: Add syncthing.

* gnu/packages/syncthing.scm: New file.
---
 gnu/packages/syncthing.scm | 1242 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1242 insertions(+)
 create mode 100644 gnu/packages/syncthing.scm

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
new file mode 100644
index 0000000..74847f0
--- /dev/null
+++ b/gnu/packages/syncthing.scm
@@ -0,0 +1,1242 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Petter <petter@mykolab.ch>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages syncthing)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages golang))
+
+(define-public syncthing
+  (package
+    (name "syncthing")
+    (version "0.14.13")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/syncthing/syncthing/")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0gq218f1rhzjrqh2gjyvqksa7a1agwhm8rfqf5jw58pncblrn6v4"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/AudriusButkevicius/go-nat-pmp"
+        ,github-com-audriusbutkevicius-go-nat-pmp)
+       ("github.com/vitrun/qart/coding" ,github-com-vitrun-qart-coding)
+       ("github.com/vitrun/qart/gf256" ,github-com-vitrun-qart-gf256)
+       ("github.com/vitrun/qart/qr" ,github-com-vitrun-qart-qr)
+       ("github.com/thejerf/suture" ,github-com-thejerf-suture)
+       ("github.com/syndtr/goleveldb" ,github-com-syndtr-goleveldb)
+       ("github.com/sasha-s/go-deadlock" ,github-com-sasha-s-go-deadlock)
+       ("github.com/rcrowley/go-metrics" ,github-com-rcrowley-go-metrics)
+       ("github.com/minio/sha256-simd" ,github-com-minio-sha256-simd)
+       ("github.com/kardianos/osext" ,github-com-kardianos-osext)
+       ("github.com/juju/ratelimit" ,github-com-juju-ratelimit)
+       ("github.com/jackpal/gateway" ,github-com-jackpal-gateway)
+       ("github.com/gogo/protobuf" ,github-com-gogo-protobuf)
+       ("github.com/gobwas/glob" ,github-com-gobwas-glob)
+       ("github.com/calmh/xdr" ,github-com-calmh-xdr)
+       ("github.com/calmh/luhn" ,github-com-calmh-luhn)
+       ("github.com/calmh/du" ,github-com-calmh-du)
+       ("github.com/bkaradzic/go-lz4" ,github-com-bkaradzic-go-lz4)
+       ("github.com/golang/snappy" ,github-com-golang-snappy)
+       ("golang.org/x/crypto/bcrypt" ,golang-org-x-crypto-bcrypt)
+       ("golang.org/x/crypto/blowfish" ,golang-org-x-crypto-blowfish)
+       ("golang.org/x/text/transform" ,golang-org-x-text-transform)
+       ("golang.org/x/text/unicode/norm" ,golang-org-x-text-unicode-norm)
+       ("golang.org/x/net/proxy" ,golang-org-x-net-proxy)
+       ("golang.org/x/net/bpf" ,golang-org-x-net-bpf)
+       ("golang.org/x/net/ipv6" ,golang-org-x-net-ipv6)
+       ("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+       ("golang.org/x/net/internal/netreflect"
+        ,golang-org-x-net-internal-netreflect)))
+    
+    (arguments
+     `(#:import-path "github.com/syncthing/syncthing"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'delete-files
+           (lambda _
+             (delete-file-recursively "src/github.com/syncthing/syncthing/vendor")))
+
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "src/github.com/syncthing/syncthing"
+               (zero? (system* "go" "run" "build.go" "install" "syncthing" "-no-upgrade")))))
+
+         (replace 'install
+           (lambda _
+             (copy-recursively "src/github.com/syncthing/syncthing/bin/"
+                               (string-append (assoc-ref %outputs "out") "/bin"))
+             (copy-recursively "pkg"
+                               (string-append (assoc-ref %outputs "out") "/pkg"))
+             (copy-recursively "src"
+                               (string-append (assoc-ref %outputs "out") "/src")))))))
+
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license gpl3+)))
+
+(define-public github-com-audriusbutkevicius-go-nat-pmp
+  (package
+    (name "github-com-audriusbutkevicius-go-nat-pmp")
+    (version "452c97")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/AudriusButkevicius/go-nat-pmp")
+                    (commit "452c97607362b2ab5a7839b8d1704f0396b640ca")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-bkaradzic-go-lz4
+  (package
+    (name "github-com-bkaradzic-go-lz4")
+    (version "74ddf8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bkaradzic/go-lz4")
+                    (commit "74ddf82598bc4745b965729e9c6a463bedd33049")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1vdid8v0c2v2qhrg9rzn3l7ya1h34jirrxfnir7gv7w6s4ivdvc1"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/bkaradzic/go-lz4"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-calmh-du
+  (package
+    (name "github-com-calmh-du")
+    (version "3c0690")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/calmh/du"))
+                    (commit "3c0690cca16228b97741327b1b6781397afbdb24")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1mv6mkbslfc8giv47kyl97ny0igb3l7jya5hc75sm54xi6g205wa"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/du"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-calmh-luhn
+  (package
+    (name "github-com-calmh-luhn")
+    (version "0c8388")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/calmh/luhn"))
+                    (commit "0c8388ff95fa92d4094011e5a04fc99dea3d1632")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1hfj1lx7wdpifn16zqrl4xml6cj5gxbn6hfz1f46g2a6bdf0gcvs"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/luhn"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-calmh-xdr
+  (package
+    (name "github-com-calmh-xdr")
+    (version "f9b9f8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/calmh/xdr"))
+                    (commit "f9b9f8f7aa27725f5cabb699bd9099ca7ce09143")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0l1w1l9iy4b4054v260jysqvl16hylr7hvkimlfgr0ng9m6r1vz0"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/xdr"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-b
+  (package
+    (name "github-com-cznic-b")
+    (version "bcff30")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/b"))
+                    (commit "bcff30a622dbdcb425aba904792de1df606dab7c")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0lw0d926wqxfn32yhvl5c5wh36glgdvsm5v01w4xys18cgcliasr"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/b"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-bufs
+  (package
+    (name "github-com-cznic-bufs")
+    (version "3dcccb")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/bufs"))
+                    (commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0w75wc15k0gayvj6fhnqgap1y2rhq51zvslhp3v4y1vcb11mbdw9"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/bufs"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-fileutil
+  (package
+    (name "github-com-cznic-fileutil")
+    (version "1c9c88")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/fileutil"))
+                    (commit "1c9c88fbf552b3737c7b97e1f243860359687976")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1imk4wjgfhyb4m8dm8qbm5lz263lyb27602v3mx8j3dzqjpagg8g"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/fileutil"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-internal-buffer
+  (package
+    (name "github-com-cznic-internal-buffer")
+    (version "cef02a")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/internal"))
+                    (commit "cef02a853c3a93623c42eacd574e7ea05f55531b")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/cznic/mathutil" ,github-com-cznic-mathutil)))
+    (arguments
+     `(#:import-path "github.com/cznic/internal/buffer"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-internal-file
+  (package
+    (name "github-com-cznic-internal-file")
+    (version "cef02a")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/internal"))
+                    (commit "cef02a853c3a93623c42eacd574e7ea05f55531b")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/internal/file"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-internal-slice
+  (package
+    (name "github-com-cznic-internal-slice")
+    (version "cef02a")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/internal"))
+                    (commit "cef02a853c3a93623c42eacd574e7ea05f55531b")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/internal/slice"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-lldb
+  (package
+    (name "github-com-cznic-lldb")
+    (version "7376b3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/lldb"))
+                    (commit "7376b3bed3d27a7b640e264bfaf278d6d5232550")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1f3jwc1zimcip52zkaj2pscginmxy9a9il8pi7w74z578ibqb1bv"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/lldb"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-mathutil
+  (package
+    (name "github-com-cznic-mathutil")
+    (version "78ad7f")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/mathutil"))
+                    (commit "78ad7f262603437f0ecfebc835d80094f89c8f54")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0c5fcjvkp8czqgwpgbvd2vngw1c8w8b38yvvl7fzppq81dm298lz"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/mathutil"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-ql
+  (package
+    (name "github-com-cznic-ql")
+    (version "c81467")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/ql"))
+                    (commit "c81467d34c630800dd4ba81033e234a8159ff2e3")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1klqjqbxyw71y8i2wq9wdrjjjp19vckqi5j6wc4n0nidq78lsjry"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/ql"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-sortutil
+  (package
+    (name "github-com-cznic-sortutil")
+    (version "4c7342")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/sortutil"))
+                    (commit "4c7342852e65c2088c981288f2c5610d10b9f7f4")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1i46kdwnh8p54sp0jkybd3ayc599hdy37kvwqrxlg746flz5inyl"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/sortutil"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-cznic-strutil
+  (package
+    (name "github-com-cznic-strutil")
+    (version "1eb03e")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/strutil"))
+                    (commit "1eb03e3cc9d345307a45ec82bd3016cde4bd4464")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0n4ib4ixpxh4fah145s2ikbzyqxbax8gj44081agg8jkzs74cnvm"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/strutil"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+
+(define-public github-com-cznic-zappy
+  (package
+    (name "github-com-cznic-zappy")
+    (version "2533cb")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/zappy"))
+                    (commit "2533cb5b45cc6c07421468ce262899ddc9d53fb7")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0mhldcqi0sqbyqs75b28cskz96iz51ymdsrx6m3i60wi94ym89yc"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/cznic/internal/buffer" ,github-com-cznic-internal-buffer)
+       ("github.com/cznic/mathutil" ,github-com-cznic-mathutil)))
+    (arguments
+     `(#:import-path "github.com/cznic/zappy"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public github-com-d4l3k-messagediff
+  (package
+    (name "github-com-d4l3k-messagediff")
+    (version "7b7069")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/d4l3k/messagediff"))
+                    (commit "7b706999d935b04cf2dbc71a5a5afcbd288aeb48")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0z64dwqk4xdwkj3f8bpqw0db87vgfamxzc65wn8lm6rfq3qjy1v5"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/d4l3k/messagediff"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+
+(define-public github-com-edsrzf-mmap-go
+  (package
+    (name "github-com-edsrzf-mmap-go")
+    (version "935e0e")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/edsrzf/mmap-go")
+                    (commit "935e0e8a636ca4ba70b713f3e38a19e1b77739e8")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "11a63wrjwfnchjhwqjp6yd5j0370ysppjgv31l5bmvvwps7whq9d"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/edsrzf/mmap-go"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-gobwas-glob
+  (package
+    (name "github-com-gobwas-glob")
+    (version "bea32b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gobwas/glob")
+                    (commit "bea32b9cd2d6f55753d94a28e959b13f0244797a")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0dx0f293v1a0d8qi7ik5hdl26dapd8xm0hj9a9gc620vhj7khi9q"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/gobwas/glob"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-gobwas-glob
+  (package
+    (name "github-com-gobwas-glob")
+    (version "bea32b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gobwas/glob")
+                    (commit "bea32b9cd2d6f55753d94a28e959b13f0244797a")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0dx0f293v1a0d8qi7ik5hdl26dapd8xm0hj9a9gc620vhj7khi9q"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/gobwas/glob"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-gogo-protobuf
+  (package
+    (name "github-com-gogo-protobuf")
+    (version "7883e1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gogo/protobuf")
+                    (commit "7883e1468d48d969e1c3ce4bcde89b6a7dd4adc4")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "16ja7lqq96q0pnzgnbwnh0j8qzvqgns1nfk8ndxgkg4sg93bg372"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/gogo/protobuf/proto"
+       #:unpack-path "github.com/gogo/protobuf"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-golang-groupcache-lru
+  (package
+    (name "github-com-golang-groupcache-lru")
+    (version "02826c")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/golang/groupcache")
+                    (commit "02826c3e79038b59d737d3b1c0a1d937f71a4433")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/golang/groupcache/lru"
+       #:unpack-path "github.com/golang/groupcache"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-golang-snappy
+  (package
+    (name "github-com-golang-snappy")
+    (version "5f1c01")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/golang/snappy")
+                    (commit "5f1c01d9f64b941dd9582c638279d046eda6ca31")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0qyhbgdjy2gf93y9c1n54a6ql75vinvwdqn6i4fi8i773j0vdjvf"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/golang/snappy"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-jackpal-gateway
+  (package
+    (name "github-com-jackpal-gateway")
+    (version "3e3339")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackpal/gateway")
+                    (commit "3e333950771011fed13be63e62b9f473c5e0d9bf")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1bsml9kx49ihsnlq5k8cw7875ar4vmh9q15kpxn0dlvpafmma1bi"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/jackpal/gateway"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-juju-ratelimit
+  (package
+    (name "github-com-juju-ratelimit")
+    (version "bea32b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/juju/ratelimit")
+                    (commit "77ed1c8a01217656d2080ad51981f6e99adaa177")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1r7xdl3bpdzny4d05fpm229864ipghqwv5lplv5im5b4vhv9ryp7"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/juju/ratelimit"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-kardianos-osext
+  (package
+    (name "github-com-kardianos-osext")
+    (version "29ae4f")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/kardianos/osext")
+                    (commit "29ae4ffbc9a6fe9fb2bc5029050ce6996ea1d3bc")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1mawalaz84i16njkz6f9fd5jxhcbxkbsjnav3cmqq2dncv2hyv8a"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/kardianos/osext"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-lib-pq
+  (package
+    (name "github-com-lib-pq")
+    (version "ee1442")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/lib/pq")
+                    (commit "ee1442bda7bd1b6a84e913bdb421cb1874ec629d")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "09nvbls0ka9v6bla9b2ls3cnjm2fsynzlbn4d2a3p0rmqnha35g7"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/lib/pq"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-minio-sha256-simd
+  (package
+    (name "github-com-minio-sha256-simd")
+    (version "672e7b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/minio/sha256-simd")
+                    (commit "672e7bc9f3482375df73741cf57a157fe187ec26")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1a94cp0czir03w6ag12a7wnvs4cg9956i8mjm18pmgkx4c13qkwq"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/minio/sha256-simd"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-onsi-ginkgo
+  (package
+    (name "github-com-onsi-ginkgo")
+    (version "ac3d45")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/onsi/ginkgo")
+                    (commit "ac3d45ddd7ef5c4d7fc4d037b615a81f4d67981e")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1kq82l8x1ky03hcv8zdllvzqddf8i1yxajj76w21cchd1akzqr78"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/onsi/ginkgo"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-onsi-gomega
+  (package
+    (name "github-com-onsi-gomega")
+    (version "a1094b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/onsi/gomega")
+                    (commit "a1094b2db2d4845621602c667bd4ccf09834544e")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0gwwb50jn9yz6aac8pdgidffnnr5h7whz75fmd9r78m6lpljvks0"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/onsi/gomega"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-oschwald-geoip2-golang
+  (package
+    (name "github-com-oschwald-geoip2-golang")
+    (version "51714a")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/oschwald/geoip2-golang")
+                    (commit "51714a0e79df40e00a94ae5086ec2a5532c9ee57")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1clcyv6wc79n9wckmwv21x7d8jkgrikr9pa159aml492gknpw2y8"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/oschwald/geoip2-golang"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-oschwald-maxminddb-golang
+  (package
+    (name "github-com-oschwald-maxminddb-golang")
+    (version "a26428")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/oschwald/maxminddb-golang")
+                    (commit "a26428e0305b837e06fe69221489819126a346c8")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0d5a2bqsanxy57bfgwl9dwd230agi3fd14vay0jhb2fmhpw3bb73"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/oschwald/maxminddb-golang"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-rcrowley-go-metrics
+  (package
+    (name "github-com-rcrowley-go-metrics")
+    (version "eeba7b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/rcrowley/go-metrics")
+                    (commit "eeba7bd0dd01ace6e690fa833b3f22aaec29af43")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "18jissbw1226vzqmqpgk3f3qdgwi9cb1i8x9hhq28bc9zv0c4j79"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/rcrowley/go-metrics"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-sasha-s-go-deadlock
+  (package
+    (name "github-com-sasha-s-go-deadlock")
+    (version "09aefc")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sasha-s/go-deadlock")
+                    (commit "09aefc0ac06ad74d91ca31acdb11fc981c159149")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "193cdmd6vrnl6vdv6pr3671cpl1nwapdawqs462xmqkf16mggjfz"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/sasha-s/go-deadlock"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-stathat-go
+  (package
+    (name "github-com-stathat-go")
+    (version "91dfa3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/stathat/go")
+                    (commit "91dfa3a59c5b233fef9a346a1460f6e2bc889d93")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "105ql5v8r4hqcsq0ag7asdxqg9n7rvf83y1q1dj2nfjyn4manv6r"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/rcrowley/go-metrics" ,github-com-rcrowley-go-metrics)
+       ("githubbb.com/sasha-s/go-deadlock" ,github-com-sasha-s-go-deadlock)))
+    (arguments
+     `(#:import-path "github.com/stathat/go"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-syndtr-goleveldb
+  (package
+    (name "github-com-syndtr-goleveldb")
+    (version "6ae179")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/syndtr/goleveldb")
+                    (commit "6ae1797c0b42b9323fc27ff7dcf568df88f2f33d")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0cxsm8zlf3c53z2gk73walqrp0gl8bn49fb0dlap4kgwqd6p5dx8"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/golang/snappy" ,github-com-golang-snappy)))
+    (arguments
+     `(#:import-path "github.com/syndtr/goleveldb/leveldb"
+       #:unpack-path "github.com/syndtr/goleveldb"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-thejerf-suture
+  (package
+    (name "github-com-thejerf-suture")
+    (version "fe1c0d")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/thejerf/suture")
+                    (commit "fe1c0d795ff7a7e54fc54ef6afb36ee0adf0c276")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "082j4rd1l52djm4sv63f3rh2r5nwzvpdvnyps85qjw1i1cd8c7sn"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/thejerf/suture"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-vitrun-qart-coding
+  (package
+    (name "github-com-vitrun-qart-coding")
+    (version "ccb109")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vitrun/qart")
+                    (commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0")))
+              (file-name (string-append "github-com-vitrun-qart-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/vitrun/qart/coding"
+       #:unpack-path "github.com/vitrun/qart"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-vitrun-qart-gf256
+  (package
+    (name "github-com-vitrun-qart-gf256")
+    (version "ccb109")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vitrun/qart")
+                    (commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0")))
+              (file-name (string-append "github-com-vitrun-qart-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/vitrun/qart/gf256"
+       #:unpack-path "github.com/vitrun/qart"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public github-com-vitrun-qart-qr
+  (package
+    (name "github-com-vitrun-qart-qr")
+    (version "ccb109")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vitrun/qart")
+                    (commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0")))
+              (file-name (string-append "github-com-vitrun-qart-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/vitrun/qart/qr"
+       #:unpack-path "github.com/vitrun/qart"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-crypto-bcrypt
+  (package
+    (name "golang-org-x-crypto-bcrypt")
+    (version "e31123")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/crypto")
+                    (commit "e311231e83195f401421a286060d65643f9c9d40")))
+              (file-name (string-append "go.googlesource.com-crypto-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1n3p77z0x9rifvymifpvnmfcfzxnly9da2zghrhb3jrkvjvjc2mw"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/crypto/bcrypt"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+
+(define-public golang-org-x-crypto-blowfish
+  (package
+    (name "golang-org-x-crypto-blowfish")
+    (version "e31123")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/crypto")
+                    (commit "e311231e83195f401421a286060d65643f9c9d40")))
+              (file-name (string-append "go.googlesource.com-crypto-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1n3p77z0x9rifvymifpvnmfcfzxnly9da2zghrhb3jrkvjvjc2mw"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/crypto/blowfish"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-net-bpf
+  (package
+    (name "golang-org-x-net-bpf")
+    (version "e31123")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+    (build-system go-build-system)
+    (inputs
+     `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+       ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+    (arguments
+     `(#:import-path "golang.org/x/net/bpf"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+
+(define-public golang-org-x-net-context
+  (package
+    (name "golang-org-x-net-context")
+    (version "749a50")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+    (build-system go-build-system)
+    (inputs
+     `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+       ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+    (arguments
+     `(#:import-path "golang.org/x/net/context"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-net-internal-iana
+  (package
+    (name "golang-org-x-net-internal-iana")
+    (version "08f168")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "08f168e593b5aab61849054b77981de812666697")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1vmzs4gqj0jlg1313gkisnp0c6914qn3781lnbzmbnjfs8paflr7"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/net/internal/iana"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-net-internal-netreflect
+  (package
+    (name "golang-org-x-net-internal-netreflect")
+    (version "749a50")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/net/internal/netreflect"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-net-ipv6
+  (package
+    (name "golang-org-x-net-ipv6")
+    (version "749a50")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/net/ipv6"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-net-proxy
+  (package
+    (name "golang-org-x-net-proxy")
+    (version "749a50")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+    (build-system go-build-system)
+    (inputs
+     `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+       ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+    (arguments
+     `(#:import-path "golang.org/x/net/internal/proxy"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-net-route
+  (package
+    (name "golang-org-x-net-route")
+    (version "749a50")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/net")
+                    (commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe")))
+              (file-name (string-append "go.googlesource.com-net-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/net/route"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-sys-unix
+  (package
+    (name "golang-org-x-sys-unix")
+    (version "a40850")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/sys")
+                    (commit "a408501be4d17ee978c04a618e7a1b22af058c0e")))
+              (file-name (string-append "go.googlesource.com-sys-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1nwvs594wrzwk1bnhdsna6n8665vzlzms171sw0mkmfb713phl8q"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/sys/unix"
+       #:unpack-path "golang.org/x/sys"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-sys-windows
+  (package
+    (name "golang-org-x-sys-windows")
+    (version "a40850")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/sys")
+                    (commit "a408501be4d17ee978c04a618e7a1b22af058c0e")))
+              (file-name (string-append "go.googlesource.com-sys-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1nwvs594wrzwk1bnhdsna6n8665vzlzms171sw0mkmfb713phl8q"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/sys/windows"
+       #:unpack-path "golang.org/x/sys"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+(define-public golang-org-x-text-transform
+  (package
+    (name "golang-org-x-text-transform")
+    (version "a71fd1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://go.googlesource.com/text"))
+                    (commit "a71fd10341b064c10f4a81ceac72bcf70f26ea34")))
+              (file-name (string-append "go.googlesource.com-text-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/text/transform"
+       #:unpack-path "golang.org/x/text"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license unlicense)))
+
+(define-public golang-org-x-text-unicode-norm
+  (package
+    (name "golang-org-x-text-unicode-norm")
+    (version "a71fd1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://go.googlesource.com/text")
+                    (commit "a71fd10341b064c10f4a81ceac72bcf70f26ea34")))
+              (file-name (string-append "go.googlesource.com-text-"
+                                        version "-checkout"))
+              (sha256
+               (base32 "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "golang.org/x/text/unicode/norm"
+       #:unpack-path "golang.org/x/text"))
+    (synopsis "")
+    (description "")
+    (home-page "")
+    (license asl2.0)))
+
+
-- 
2.10.1


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

* Re: gnu: Add syncthing.
  2016-12-11  0:38 Petter
@ 2016-12-11 11:25 ` Hartmut Goebel
  2016-12-11 11:35   ` Hartmut Goebel
  2016-12-11 19:09   ` Leo Famulari
  0 siblings, 2 replies; 11+ messages in thread
From: Hartmut Goebel @ 2016-12-11 11:25 UTC (permalink / raw)
  To: guix-devel

Am 11.12.2016 um 01:38 schrieb Petter:
> +(define-public github-com-audriusbutkevicius-go-nat-pmp
> +  (package
> +    (name "github-com-audriusbutkevicius-go-nat-pmp")

I suggest that all `go` packages kill get a prefix like other languages
have. I propose using "golang" and prefix, as Debina does, sicne "go" is
to short and ambiguous.



-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

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

* Re: gnu: Add syncthing.
  2016-12-11 11:25 ` Hartmut Goebel
@ 2016-12-11 11:35   ` Hartmut Goebel
  2016-12-11 19:09   ` Leo Famulari
  1 sibling, 0 replies; 11+ messages in thread
From: Hartmut Goebel @ 2016-12-11 11:35 UTC (permalink / raw)
  To: guix-devel@gnu.org >> guix-devel

Am 11.12.2016 um 12:25 schrieb Hartmut Goebel:
> I suggest that all `go` packages kill get a prefix like other languages

s/kill/will/

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

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

* Re: gnu: Add syncthing.
  2016-12-11 11:25 ` Hartmut Goebel
  2016-12-11 11:35   ` Hartmut Goebel
@ 2016-12-11 19:09   ` Leo Famulari
  2016-12-11 22:21     ` ng0
  1 sibling, 1 reply; 11+ messages in thread
From: Leo Famulari @ 2016-12-11 19:09 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

On Sun, Dec 11, 2016 at 12:25:31PM +0100, Hartmut Goebel wrote:
> Am 11.12.2016 um 01:38 schrieb Petter:
> > +(define-public github-com-audriusbutkevicius-go-nat-pmp
> > +  (package
> > +    (name "github-com-audriusbutkevicius-go-nat-pmp")
> 
> I suggest that all `go` packages kill get a prefix like other languages
> have. I propose using "golang" and prefix, as Debina does, sicne "go" is
> to short and ambiguous.

+1 for libraries, excluding user-facing applications like Syncthing.

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

* Re: gnu: Add syncthing.
  2016-12-11 19:09   ` Leo Famulari
@ 2016-12-11 22:21     ` ng0
  2016-12-13  6:58       ` Chris Marusich
  0 siblings, 1 reply; 11+ messages in thread
From: ng0 @ 2016-12-11 22:21 UTC (permalink / raw)
  To: guix-devel

Leo Famulari <leo@famulari.name> writes:

> On Sun, Dec 11, 2016 at 12:25:31PM +0100, Hartmut Goebel wrote:
>> Am 11.12.2016 um 01:38 schrieb Petter:
>> > +(define-public github-com-audriusbutkevicius-go-nat-pmp
>> > +  (package
>> > +    (name "github-com-audriusbutkevicius-go-nat-pmp")
>> 
>> I suggest that all `go` packages kill get a prefix like other languages
>> have. I propose using "golang" and prefix, as Debina does, sicne "go" is
>> to short and ambiguous.
>
> +1 for libraries, excluding user-facing applications like Syncthing.

I'm in support of this naming convention.
-- 
♥Ⓐ  ng0  | ng0.chaosnet.org

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

* Re: gnu: Add syncthing.
  2016-12-11 22:21     ` ng0
@ 2016-12-13  6:58       ` Chris Marusich
  0 siblings, 0 replies; 11+ messages in thread
From: Chris Marusich @ 2016-12-13  6:58 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

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

ng0 <ng0@libertad.pw> writes:

> Leo Famulari <leo@famulari.name> writes:
>
>> On Sun, Dec 11, 2016 at 12:25:31PM +0100, Hartmut Goebel wrote:
>>> Am 11.12.2016 um 01:38 schrieb Petter:
>>> > +(define-public github-com-audriusbutkevicius-go-nat-pmp
>>> > +  (package
>>> > +    (name "github-com-audriusbutkevicius-go-nat-pmp")
>>> 
>>> I suggest that all `go` packages kill get a prefix like other languages
>>> have. I propose using "golang" and prefix, as Debina does, sicne "go" is
>>> to short and ambiguous.
>>
>> +1 for libraries, excluding user-facing applications like Syncthing.
>
> I'm in support of this naming convention.

Yeah, that seems good to me, too.

-- 
Chris

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

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

* Re: gnu: Add syncthing.
@ 2016-12-15 21:06 Petter
  2016-12-16  1:52 ` Leo Famulari
  0 siblings, 1 reply; 11+ messages in thread
From: Petter @ 2016-12-15 21:06 UTC (permalink / raw)
  To: guix-devel

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

Hi again,

I've prefixed most of the packages with "golang-" now. However, there 
are some
packages already starting with "golang-", f.ex. 
"golang-org-x-text-unicode-norm",
and I left those alone. It's inconsistent, but I felt this was 
preferable to
names like "golang-golang-org-x-text-unicode-norm". What do you think?

Also, all the packages have meta-data now: synopsis, description, 
home-page and
license. And the (version) field have been adapted to the Guix 
guidelines.

Also also, a new version of Syncthing with some security fixes was just 
released,
and I've updated the recipe to this version (0.14.14).

Finally, there's a telemetry configuration in Syncthing. It is opt-in; 
but it
will ask the user after a few hours if they want to join. The plan is to 
disable
the question, however I suspect I've messed up the build system in that 
area, so
this takes some more looking in to.

Best,
Petter

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-Syncthing.patch --]
[-- Type: text/x-diff; name=0001-gnu-Add-Syncthing.patch, Size: 59336 bytes --]

From f6b8324f4200c2dc89967b5f097fc8e28292bd5a Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Thu, 15 Dec 2016 21:42:03 +0100
Subject: [PATCH] gnu: Add Syncthing.

* gnu/packages/syncthing.scm: New file.
---
 gnu/packages/syncthing.scm | 1257 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1257 insertions(+)
 create mode 100644 gnu/packages/syncthing.scm

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
new file mode 100644
index 0000000..c4da737
--- /dev/null
+++ b/gnu/packages/syncthing.scm
@@ -0,0 +1,1257 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Petter <petter@mykolab.ch>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages syncthing)
+  #:use-module (guix build-system go)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages golang))
+
+(define-public syncthing
+  (package
+    (name "syncthing")
+    (version "0.14.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/syncthing/syncthing/")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1c9x7j6pbbd3i34nvisw70v2l3llp3dhw5cvd72jgx3gm0j3v31y"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/AudriusButkevicius/go-nat-pmp"
+        ,golang-github-com-audriusbutkevicius-go-nat-pmp)
+       ("github.com/vitrun/qart/coding" ,golang-github-com-vitrun-qart-coding)
+       ("github.com/vitrun/qart/gf256" ,golang-github-com-vitrun-qart-gf256)
+       ("github.com/vitrun/qart/qr" ,golang-github-com-vitrun-qart-qr)
+       ("github.com/thejerf/suture" ,golang-github-com-thejerf-suture)
+       ("github.com/syndtr/goleveldb" ,golang-github-com-syndtr-goleveldb)
+       ("github.com/sasha-s/go-deadlock" ,golang-github-com-sasha-s-go-deadlock)
+       ("github.com/rcrowley/go-metrics" ,golang-github-com-rcrowley-go-metrics)
+       ("github.com/minio/sha256-simd" ,golang-github-com-minio-sha256-simd)
+       ("github.com/kardianos/osext" ,golang-github-com-kardianos-osext)
+       ("github.com/juju/ratelimit" ,golang-github-com-juju-ratelimit)
+       ("github.com/jackpal/gateway" ,golang-github-com-jackpal-gateway)
+       ("github.com/gogo/protobuf" ,golang-github-com-gogo-protobuf)
+       ("github.com/gobwas/glob" ,golang-github-com-gobwas-glob)
+       ("github.com/calmh/xdr" ,golang-github-com-calmh-xdr)
+       ("github.com/calmh/luhn" ,golang-github-com-calmh-luhn)
+       ("github.com/calmh/du" ,golang-github-com-calmh-du)
+       ("github.com/bkaradzic/go-lz4" ,golang-github-com-bkaradzic-go-lz4)
+       ("github.com/golang/snappy" ,golang-github-com-golang-snappy)
+       ("golang.org/x/crypto/bcrypt" ,golang-org-x-crypto-bcrypt)
+       ("golang.org/x/crypto/blowfish" ,golang-org-x-crypto-blowfish)
+       ("golang.org/x/text/transform" ,golang-org-x-text-transform)
+       ("golang.org/x/text/unicode/norm" ,golang-org-x-text-unicode-norm)
+       ("golang.org/x/net/proxy" ,golang-org-x-net-proxy)
+       ("golang.org/x/net/bpf" ,golang-org-x-net-bpf)
+       ("golang.org/x/net/ipv6" ,golang-org-x-net-ipv6)
+       ("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+       ("golang.org/x/net/internal/netreflect"
+        ,golang-org-x-net-internal-netreflect)))
+    (arguments
+     `(#:import-path "github.com/syncthing/syncthing"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'delete-files
+           (lambda _
+             (delete-file-recursively "src/github.com/syncthing/syncthing/vendor")))
+
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "src/github.com/syncthing/syncthing"
+               (zero? (system* "go" "run" "build.go" "install" "syncthing" "-no-upgrade")))))
+
+         (replace 'install
+           (lambda _
+             (copy-recursively "src/github.com/syncthing/syncthing/bin/"
+                               (string-append (assoc-ref %outputs "out") "/bin"))
+             (copy-recursively "pkg"
+                               (string-append (assoc-ref %outputs "out") "/pkg"))
+             (copy-recursively "src"
+                               (string-append (assoc-ref %outputs "out") "/src")))))))
+
+    (synopsis "Continuous File Synchronization")
+    (description "This is the Syncthing project which pursues the following goals:
+
+    1. Define a protocol for synchronization of a folder between a number of collaborating devices. This protocol should be well defined, unambiguous, easily understood, free to use, efficient, secure and language neutral. This is called the Block Exchange Protocol.
+
+    2. Provide the reference implementation to demonstrate the usability of said protocol. This is the syncthing utility. We hope that alternative, compatible implementations of the protocol will arise.
+
+The two are evolving together; the protocol is not to be considered stable until Syncthing 1.0 is released, at which point it is locked down for incompatible changes")
+    (home-page "https://github.com/syncthing/syncthing")
+    (license mpl2.0)))
+
+(define-public golang-github-com-audriusbutkevicius-go-nat-pmp
+  (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca"))
+    (package
+      (name "golang-github-com-audriusbutkevicius-go-nat-pmp")
+      (version (string-append "20160522" (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/AudriusButkevicius/go-nat-pmp")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
+      (synopsis "Port mapping and discovery of the external IP address")
+      (description "Go client for the NAT-PMP internet protocol for port mapping and discovering the external IP address of a firewall")
+      (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
+      (license asl2.0))))
+
+(define-public golang-github-com-bkaradzic-go-lz4
+  (package
+    (name "golang-github-com-bkaradzic-go-lz4")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bkaradzic/go-lz4")
+                    (commit "74ddf82598bc4745b965729e9c6a463bedd33049")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1vdid8v0c2v2qhrg9rzn3l7ya1h34jirrxfnir7gv7w6s4ivdvc1"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/bkaradzic/go-lz4"))
+    (synopsis "Port of LZ4 lossless compression algorithm")
+    (description "go-lz4 is port of LZ4 lossless compression algorithm to Go")
+    (home-page "https://github.com/bkaradzic/go-lz4")
+    (license bsd-2)))
+
+(define-public golang-github-com-calmh-du
+  (package
+    (name "golang-github-com-calmh-du")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/calmh/du")
+                    (commit "3c0690cca16228b97741327b1b6781397afbdb24")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1mv6mkbslfc8giv47kyl97ny0igb3l7jya5hc75sm54xi6g205wa"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/du"))
+    (synopsis "Get total and available disk space on a given volume")
+    (description "Get disk usage information like how much space is available, free, and used")
+    (home-page "https://github.com/calmh/du")
+    (license public-domain)))
+
+(define-public golang-github-com-calmh-luhn
+  (package
+    (name "golang-github-com-calmh-luhn")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/calmh/luhn")
+                    (commit "0c8388ff95fa92d4094011e5a04fc99dea3d1632")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1hfj1lx7wdpifn16zqrl4xml6cj5gxbn6hfz1f46g2a6bdf0gcvs"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/luhn"))
+    (synopsis "Luhn-mod-N implementation in Go")
+    (description "Luhn-mod-N implementation in Go")
+    (home-page "https://github.com/calmh/luhn")
+    (license x11)))
+
+(define-public golang-github-com-calmh-xdr
+  (let ((commit "f9b9f8f7aa27725f5cabb699bd9099ca7ce09143")
+        (revision "1"))
+    (package
+      (name "golang-github-com-calmh-xdr")
+      (version (string-append "2.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/calmh/xdr")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0l1w1l9iy4b4054v260jysqvl16hylr7hvkimlfgr0ng9m6r1vz0"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/calmh/xdr"))
+      (synopsis "XDR marshalling/unmarshalling library")
+      (description "XDR marshalling/unmarshalling library. It uses code generation and not reflection")
+      (home-page "https://github.com/calmh/xdr")
+      (license x11))))
+
+(define-public golang-github-com-cznic-b
+  (let ((commit "bcff30a622dbdcb425aba904792de1df606dab7c"))
+    (package
+      (name "golang-github-com-cznic-b")
+      (version (string-append "20160716." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/b")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0lw0d926wqxfn32yhvl5c5wh36glgdvsm5v01w4xys18cgcliasr"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/b"))
+      (synopsis "Implements a B+tree")
+      (description "Implements a B+tree")
+      (home-page "https://github.com/cznic/b")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-bufs
+  (let ((commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51"))
+    (package
+      (name "golang-github-com-cznic-bufs")
+      (version (string-append "20160818." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/bufs")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0w75wc15k0gayvj6fhnqgap1y2rhq51zvslhp3v4y1vcb11mbdw9"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/bufs"))
+      (synopsis "Implements a simple buffer cache")
+      (description "Implements a simple buffer cache")
+      (home-page "https://github.com/cznic/bufs")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-fileutil
+  (let ((commit "1c9c88fbf552b3737c7b97e1f243860359687976"))
+    (package
+      (name "golang-github-com-cznic-fileutil")
+      (version (string-append "20180708." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/fileutil")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1imk4wjgfhyb4m8dm8qbm5lz263lyb27602v3mx8j3dzqjpagg8g"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/fileutil"))
+      (synopsis "Collects some file utility functions")
+      (description "Collects some file utility functions")
+      (home-page "https://github.com/cznic/fileutil")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-internal-buffer
+  (package
+    (name "golang-github-com-cznic-internal-buffer")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/internal")
+                    (commit "cef02a853c3a93623c42eacd574e7ea05f55531b")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/cznic/mathutil" ,golang-github-com-cznic-mathutil)))
+    (arguments
+     `(#:import-path "github.com/cznic/internal/buffer"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "Things that cannot be imported by 3rd party packages")
+    (description "Things that cannot be imported by 3rd party packages. Package buffer implements a pool of pointers to byte slices")
+    (home-page "https://github.com/cznic/internal/")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-internal-file
+  (package
+    (name "golang-github-com-cznic-internal-file")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/internal")
+                    (commit "cef02a853c3a93623c42eacd574e7ea05f55531b")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/internal/file"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "Things that cannot be imported by 3rd party packages")
+    (description "Things that cannot be imported by 3rd party packages. Package file provides an os.File-like interface of a memory mapped file")
+    (home-page "https://github.com/cznic/internal/")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-internal-slice
+  (package
+    (name "golang-github-com-cznic-internal-slice")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/internal"))
+                    (commit "cef02a853c3a93623c42eacd574e7ea05f55531b")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/internal/slice"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "Things that cannot be imported by 3rd party packages")
+    (description "Things that cannot be imported by 3rd party packages. Package slice implements pools of pointers to slices")
+    (home-page "")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-lldb
+  (package
+    (name "golang-github-com-cznic-lldb")
+    (version "1.0.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/lldb"))
+                    (commit "7376b3bed3d27a7b640e264bfaf278d6d5232550")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1f3jwc1zimcip52zkaj2pscginmxy9a9il8pi7w74z578ibqb1bv"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/lldb"))
+    (synopsis "Package lldb implements a low level database engine")
+    (description "Package lldb implements a low level database engine")
+    (home-page "https://github.com/cznic/lldb")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-mathutil
+  (let ((commit "78ad7f262603437f0ecfebc835d80094f89c8f54"))
+    (package
+      (name "golang-github-com-cznic-mathutil")
+      (version (string-append "20161012." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://github.com/cznic/mathutil"))
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0c5fcjvkp8czqgwpgbvd2vngw1c8w8b38yvvl7fzppq81dm298lz"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/mathutil"))
+      (synopsis "Utilities supplemental to the Go standard \"rand\" and \"math\" packages")
+      (description "Utilities supplemental to the Go standard \"rand\" and \"math\" packages")
+      (home-page "https://github.com/cznic/mathutil")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-ql
+  (package
+    (name "golang-github-com-cznic-ql")
+    (version "1.0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/cznic/ql"))
+                    (commit "c81467d34c630800dd4ba81033e234a8159ff2e3")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1klqjqbxyw71y8i2wq9wdrjjjp19vckqi5j6wc4n0nidq78lsjry"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/ql"))
+    (synopsis "Package ql is a pure Go embedded SQL database")
+    (description "Package ql is a pure Go embedded SQL database")
+    (home-page "https://github.com/cznic/ql")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-sortutil
+  (let ((commit "4c7342852e65c2088c981288f2c5610d10b9f7f4"))
+    (package
+      (name "golang-github-com-cznic-sortutil")
+      (version (string-append "20160617." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://github.com/cznic/sortutil"))
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1i46kdwnh8p54sp0jkybd3ayc599hdy37kvwqrxlg746flz5inyl"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/sortutil"))
+      (synopsis "Utilities supplemental to the Go standard \"sort\" package")
+      (description "Utilities supplemental to the Go standard \"sort\" package")
+      (home-page "https://github.com/cznic/sortutil")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-strutil
+  (let ((commit "1eb03e3cc9d345307a45ec82bd3016cde4bd4464"))
+    (package
+      (name "golang-github-com-cznic-strutil")
+      (version (string-append "20160430." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://github.com/cznic/strutil"))
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0n4ib4ixpxh4fah145s2ikbzyqxbax8gj44081agg8jkzs74cnvm"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/strutil"))
+      (synopsis "Package strutil collects utils supplemental to the standard strings package")
+      (description "Package strutil collects utils supplemental to the standard strings package")
+      (home-page "https://github.com/cznic/strutil")
+      (license bsd-3))))
+
+
+(define-public golang-github-com-cznic-zappy
+  (let ((commit "2533cb5b45cc6c07421468ce262899ddc9d53fb7"))
+    (package
+      (name "golang-github-com-cznic-zappy")
+      (version (string-append "20160623." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://github.com/cznic/zappy"))
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0mhldcqi0sqbyqs75b28cskz96iz51ymdsrx6m3i60wi94ym89yc"))))
+      (build-system go-build-system)
+      (inputs
+       `(("github.com/cznic/internal/buffer" ,golang-github-com-cznic-internal-buffer)
+         ("github.com/cznic/mathutil" ,golang-github-com-cznic-mathutil)))
+      (arguments
+       `(#:import-path "github.com/cznic/zappy"))
+      (synopsis "Package zappy implements the zappy block-based compression format")
+      (description "Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression.")
+      (home-page "https://github.com/cznic/zappy")
+      (license bsd-3))))
+
+(define-public golang-github-com-d4l3k-messagediff
+  (package
+    (name "golang-github-com-d4l3k-messagediff")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/d4l3k/messagediff"))
+                    (commit "7b706999d935b04cf2dbc71a5a5afcbd288aeb48")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0z64dwqk4xdwkj3f8bpqw0db87vgfamxzc65wn8lm6rfq3qjy1v5"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/d4l3k/messagediff"))
+    (synopsis "A library for doing diffs of arbitrary Golang structs")
+    (description "A library for doing diffs of arbitrary Golang structs")
+    (home-page "https://github.com/d4l3k/messagediff")
+    (license x11)))
+
+(define-public golang-github-com-edsrzf-mmap-go
+  (let ((commit "935e0e8a636ca4ba70b713f3e38a19e1b77739e8"))
+    (package
+      (name "golang-github-com-edsrzf-mmap-go")
+      (version (string-append "20160512." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/edsrzf/mmap-go")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "11a63wrjwfnchjhwqjp6yd5j0370ysppjgv31l5bmvvwps7whq9d"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/edsrzf/mmap-go"))
+      (synopsis "Portable mmap package for Go")
+      (description "Portable mmap package for Go")
+      (home-page "https://github.com/edsrzf/mmap-go")
+      (license bsd-3))))
+
+(define-public golang-github-com-gobwas-glob
+  (package
+    (name "golang-github-com-gobwas-glob")
+    (version "0.2.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gobwas/glob")
+                    (commit "bea32b9cd2d6f55753d94a28e959b13f0244797a")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0dx0f293v1a0d8qi7ik5hdl26dapd8xm0hj9a9gc620vhj7khi9q"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/gobwas/glob"))
+    (synopsis "Go Globbing Library")
+    (description "Go Globbing Library")
+    (home-page "https://github.com/gobwas/glob")
+    (license x11)))
+
+(define-public golang-github-com-gogo-protobuf
+  (let ((commit "7883e1468d48d969e1c3ce4bcde89b6a7dd4adc4"))
+    (package
+      (name "golang-github-com-gogo-protobuf")
+      (version (string-append "0.2-1." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/gogo/protobuf")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "16ja7lqq96q0pnzgnbwnh0j8qzvqgns1nfk8ndxgkg4sg93bg372"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/gogo/protobuf/proto"
+         #:unpack-path "github.com/gogo/protobuf"))
+      (synopsis "Protocol Buffers for Go with Gadgets")
+      (description "gogoprotobuf is a fork of golang/protobuf with extra code generation features.
+
+This code generation is used to achieve:
+
+    fast marshalling and unmarshalling
+    more canonical Go structures
+    goprotobuf compatibility
+    less typing by optionally generating extra helper code
+    peace of mind by optionally generating test and benchmark code
+    other serialization formats
+")
+      (home-page "https://github.com/gogo/protobuf")
+      (license asl2.0))))
+
+(define-public golang-github-com-golang-groupcache-lru
+  (let ((commit "02826c3e79038b59d737d3b1c0a1d937f71a4433"))
+    (package
+      (name "golang-github-com-golang-groupcache-lru")
+      (version (string-append "20160516." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/golang/groupcache")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/golang/groupcache/lru"
+         #:unpack-path "github.com/golang/groupcache"))
+      (synopsis "groupcache is a caching and cache-filling library")
+      (description "groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases")
+      (home-page "https://github.com/golang/groupcache")
+      (license asl2.0))))
+
+(define-public golang-github-com-golang-snappy
+  (let ((commit "5f1c01d9f64b941dd9582c638279d046eda6ca31"))
+    (package
+      (name "golang-github-com-golang-snappy")
+      (version (string-append "20160304." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/golang/snappy")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0qyhbgdjy2gf93y9c1n54a6ql75vinvwdqn6i4fi8i773j0vdjvf"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/golang/snappy"))
+      (synopsis "Snappy compression format in the Go programming language")
+      (description "Snappy compression format in the Go programming language")
+      (home-page "https://github.com/golang/snappy")
+      (license bsd-3))))
+
+(define-public golang-github-com-jackpal-gateway
+  (package
+    (name "golang-github-com-jackpal-gateway")
+    (version "1.0.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackpal/gateway")
+                    (commit "3e333950771011fed13be63e62b9f473c5e0d9bf")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1bsml9kx49ihsnlq5k8cw7875ar4vmh9q15kpxn0dlvpafmma1bi"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/jackpal/gateway"))
+    (synopsis "Library for discovering the address of a LAN gateway")
+    (description "Library for discovering the address of a LAN gateway")
+    (home-page "https://github.com/jackpal/gateway")
+    (license bsd-3)))
+
+(define-public golang-github-com-juju-ratelimit
+  (let ((commit "77ed1c8a01217656d2080ad51981f6e99adaa177"))
+    (package
+      (name "golang-github-com-juju-ratelimit")
+      (version (string-append "20151125." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/juju/ratelimit")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1r7xdl3bpdzny4d05fpm229864ipghqwv5lplv5im5b4vhv9ryp7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/juju/ratelimit"))
+      (synopsis "Token-bucket-based rate limiter package")
+      (description "Token-bucket-based rate limiter package")
+      (home-page "https://github.com/juju/ratelimit")
+      (license lgpl3))))
+
+(define-public golang-github-com-kardianos-osext
+  (let ((commit "29ae4ffbc9a6fe9fb2bc5029050ce6996ea1d3bc"))
+    (package
+      (name "golang-github-com-kardianos-osext")
+      (version (string-append "20151222." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/kardianos/osext")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1mawalaz84i16njkz6f9fd5jxhcbxkbsjnav3cmqq2dncv2hyv8a"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/kardianos/osext"))
+      (synopsis "Extensions to the standard \"os\" package. Executable and ExecutableFolder")
+      (description "Extensions to the standard \"os\" package. Executable and ExecutableFolder")
+      (home-page "https://github.com/kardianos/osext")
+      (license bsd-3))))
+
+(define-public golang-github-com-lib-pq
+  (let ((commit "ee1442bda7bd1b6a84e913bdb421cb1874ec629d")
+        (revision "1"))
+    (package
+      (name "golang-github-com-lib-pq")
+      (version (string-append "go1.0-cutoff-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/lib/pq")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "09nvbls0ka9v6bla9b2ls3cnjm2fsynzlbn4d2a3p0rmqnha35g7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/lib/pq"))
+      (synopsis "Pure Go Postgres driver for database/sql")
+      (description "Pure Go Postgres driver for database/sql")
+      (home-page "https://github.com/lib/pq")
+      (license x11))))
+
+(define-public golang-github-com-minio-sha256-simd
+  (let ((commit "672e7bc9f3482375df73741cf57a157fe187ec26"))
+    (package
+      (name "golang-github-com-minio-sha256-simd")
+      (version (string-append "20160907." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/minio/sha256-simd")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1a94cp0czir03w6ag12a7wnvs4cg9956i8mjm18pmgkx4c13qkwq"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/minio/sha256-simd"))
+      (synopsis "Pure Go implementation of SHA256 using SIMD instructions for Intel and ARM")
+      (description "Pure Go implementation of SHA256 using SIMD instructions for Intel and ARM")
+      (home-page "https://github.com/minio/sha256-simd")
+      (license asl2.0))))
+
+(define-public golang-github-com-onsi-ginkgo
+  (let ((commit "ac3d45ddd7ef5c4d7fc4d037b615a81f4d67981e")
+        (revision "1"))
+    (package
+      (name "golang-github-com-onsi-ginkgo")
+      (version (string-append "1.2.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/onsi/ginkgo")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1kq82l8x1ky03hcv8zdllvzqddf8i1yxajj76w21cchd1akzqr78"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/onsi/ginkgo"))
+      (synopsis "BDD Testing Framework for Go")
+      (description "BDD Testing Framework for Go")
+      (home-page "https://github.com/onsi/ginkgo")
+      (license x11))))
+
+(define-public golang-github-com-onsi-gomega
+  (let ((commit "a1094b2db2d4845621602c667bd4ccf09834544e")
+        (revision "1"))
+    (package
+      (name "golang-github-com-onsi-gomega")
+      (version (string-append "1.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/onsi/gomega")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0gwwb50jn9yz6aac8pdgidffnnr5h7whz75fmd9r78m6lpljvks0"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/onsi/gomega"))
+      (synopsis "Ginkgo's Preferred Matcher Library")
+      (description "Ginkgo's Preferred Matcher Library")
+      (home-page "https://github.com/onsi/gomega")
+      (license x11))))
+
+(define-public golang-github-com-oschwald-geoip2-golang
+  (let ((commit "51714a0e79df40e00a94ae5086ec2a5532c9ee57")
+        (revision "1"))
+    (package
+      (name "golang-github-com-oschwald-geoip2-golang")
+      (version (string-append "0.1.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/oschwald/geoip2-golang")
+                      (commit "51714a0e79df40e00a94ae5086ec2a5532c9ee57")))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1clcyv6wc79n9wckmwv21x7d8jkgrikr9pa159aml492gknpw2y8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/oschwald/geoip2-golang"))
+      (synopsis "Unofficial MaxMind GeoIP2 Reader for Go")
+      (description "Unofficial MaxMind GeoIP2 Reader for Go")
+      (home-page "https://github.com/oschwald/geoip2-golang")
+      (license isc))))
+
+(define-public golang-github-com-oschwald-maxminddb-golang
+  (let ((commit "a26428e0305b837e06fe69221489819126a346c8")
+        (revision "1"))
+    (package
+      (name "golang-github-com-oschwald-maxminddb-golang")
+      (version (string-append "0.2.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/oschwald/maxminddb-golang")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0d5a2bqsanxy57bfgwl9dwd230agi3fd14vay0jhb2fmhpw3bb73"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/oschwald/maxminddb-golang"))
+      (synopsis "MaxMind DB Reader for Go")
+      (description "MaxMind DB Reader for Go")
+      (home-page "https://github.com/oschwald/maxminddb-golang")
+      (license isc))))
+
+(define-public golang-github-com-rcrowley-go-metrics
+  (let ((commit "eeba7bd0dd01ace6e690fa833b3f22aaec29af43"))
+    (package
+      (name "golang-github-com-rcrowley-go-metrics")
+      (version (string-append "20160226." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/rcrowley/go-metrics")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "18jissbw1226vzqmqpgk3f3qdgwi9cb1i8x9hhq28bc9zv0c4j79"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/rcrowley/go-metrics"))
+      (synopsis "Go port of Coda Hale's Metrics library")
+      (description "Go port of Coda Hale's Metrics library")
+      (home-page "https://github.com/rcrowley/go-metrics")
+      (license bsd-2))))
+
+(define-public golang-github-com-sasha-s-go-deadlock
+  (package
+    (name "golang-github-com-sasha-s-go-deadlock")
+    (version "0.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sasha-s/go-deadlock")
+                    (commit "09aefc0ac06ad74d91ca31acdb11fc981c159149")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "193cdmd6vrnl6vdv6pr3671cpl1nwapdawqs462xmqkf16mggjfz"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/sasha-s/go-deadlock"))
+    (synopsis "Online deadlock detection in go")
+    (description "Online deadlock detection in go")
+    (home-page "https://github.com/sasha-s/go-deadlock")
+    (license asl2.0)))
+
+(define-public golang-github-com-stathat-go
+  (let ((commit "91dfa3a59c5b233fef9a346a1460f6e2bc889d93"))
+    (package
+      (name "golang-github-com-stathat-go")
+      (version (string-append "20160304." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/stathat/go")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "105ql5v8r4hqcsq0ag7asdxqg9n7rvf83y1q1dj2nfjyn4manv6r"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/stathat/go"))
+      (synopsis "This is a Go package for posting stats to your StatHat account")
+      (description "This is a Go package for posting stats to your StatHat account")
+      (home-page "https://github.com/stathat/go")
+      (license x11))))
+
+(define-public golang-github-com-syndtr-goleveldb
+  (let ((commit "6ae1797c0b42b9323fc27ff7dcf568df88f2f33d"))
+    (package
+      (name "golang-github-com-syndtr-goleveldb")
+      (version (string-append "20160825." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/syndtr/goleveldb")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0cxsm8zlf3c53z2gk73walqrp0gl8bn49fb0dlap4kgwqd6p5dx8"))))
+      (build-system go-build-system)
+      (inputs
+       `(("github.com/golang/snappy" ,golang-github-com-golang-snappy)))
+      (arguments
+       `(#:import-path "github.com/syndtr/goleveldb/leveldb"
+         #:unpack-path "github.com/syndtr/goleveldb"))
+      (synopsis "LevelDB key/value database in Go")
+      (description "This is an implementation of the LevelDB key/value database in the Go programming language")
+      (home-page "https://github.com/syndtr/goleveldb")
+      (license bsd-2))))
+
+(define-public golang-github-com-thejerf-suture
+  (package
+    (name "golang-github-com-thejerf-suture")
+    (version "2.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/thejerf/suture")
+                    (commit "fe1c0d795ff7a7e54fc54ef6afb36ee0adf0c276")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "082j4rd1l52djm4sv63f3rh2r5nwzvpdvnyps85qjw1i1cd8c7sn"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/thejerf/suture"))
+    (synopsis "Supervisor trees for Go")
+    (description "Suture provides Erlang-ish supervisor trees for Go. \"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together when it's trying to die.
+
+This library has hit maturity, and isn't expected to be changed radically. This can also be imported via gopkg.in/thejerf/suture.v1 .
+
+It is intended to deal gracefully with the real failure cases that can occur with supervision trees (such as burning all your CPU time endlessly restarting dead services), while also making no unnecessary demands on the \"service\" code, and providing hooks to perform adequate logging with in a production environment")
+    (home-page "https://github.com/thejerf/suture")
+    (license x11)))
+
+(define-public golang-github-com-vitrun-qart-coding
+  (let ((commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0"))
+    (package
+      (name "golang-github-com-vitrun-qart-coding")
+      (version (string-append "20160420." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vitrun/qart")
+                      (commit commit)))
+                (file-name (string-append "golang-github-com-vitrun-qart-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/vitrun/qart/coding"
+         #:unpack-path "github.com/vitrun/qart"))
+      (synopsis "Package coding implements low-level QR coding details")
+      (description "Instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart engineers the encoded values to create the picture in a code with no inherent errors. Package coding implements low-level QR coding details")
+      (home-page "https://github.com/vitrun/qart/")
+      (license bsd-3))))
+
+(define-public golang-github-com-vitrun-qart-gf256
+  (let ((commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0"))
+    (package
+      (name "golang-github-com-vitrun-qart-gf256")
+      (version (string-append "20160420." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vitrun/qart")
+                      (commit commit)))
+                (file-name (string-append "golang-github-com-vitrun-qart-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/vitrun/qart/gf256"
+         #:unpack-path "github.com/vitrun/qart"))
+      (synopsis "Package gf256 implements arithmetic over the Galois Field GF(256)")
+      (description "Instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart engineers the encoded values to create the picture in a code with no inherent errors. Package gf256 implements arithmetic over the Galois Field GF(256)")
+      (home-page "https://github.com/vitrun/qart")
+      (license bsd-3))))
+
+(define-public golang-github-com-vitrun-qart-qr
+  (let ((commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0"))
+    (package
+      (name "golang-github-com-vitrun-qart-qr")
+      (version (string-append "20160420." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vitrun/qart")
+                      (commit commit)))
+                (file-name (string-append "golang-github-com-vitrun-qart-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/vitrun/qart/qr"
+         #:unpack-path "github.com/vitrun/qart"))
+      (synopsis "Qart generates not-so-ugly qr codes")
+      (description "Instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart engineers the encoded values to create the picture in a code with no inherent errors.")
+      (home-page "https://github.com/vitrun/qart")
+      (license bsd-3))))
+
+(define-public golang-org-x-crypto-bcrypt
+  (let ((commit "e311231e83195f401421a286060d65643f9c9d40"))
+    (package
+      (name "golang-org-x-crypto-bcrypt")
+      (version (string-append "20160912." (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 "1n3p77z0x9rifvymifpvnmfcfzxnly9da2zghrhb3jrkvjvjc2mw"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/bcrypt"
+         #:unpack-path "golang.org/x/crypto"))
+      (synopsis "Go supplementary cryptography libraries")
+      (description "Go supplementary cryptography libraries")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license bsd-3))))
+
+
+(define-public golang-org-x-crypto-blowfish
+  (let ((commit "e311231e83195f401421a286060d65643f9c9d40"))
+    (package
+      (name "golang-org-x-crypto-blowfish")
+      (version (string-append "20160912." (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 "1n3p77z0x9rifvymifpvnmfcfzxnly9da2zghrhb3jrkvjvjc2mw"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/blowfish"
+         #:unpack-path "golang.org/x/crypto"))
+      (synopsis "Go supplementary cryptography libraries")
+      (description "Go supplementary cryptography libraries")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-bpf
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-bpf")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (inputs
+       `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+         ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+      (arguments
+       `(#:import-path "golang.org/x/net/bpf"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-context
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-context")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (inputs
+       `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+         ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+      (arguments
+       `(#:import-path "golang.org/x/net/context"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-internal-iana
+  (let ((commit "08f168e593b5aab61849054b77981de812666697"))
+    (package
+      (name "golang-org-x-net-internal-iana")
+      (version (string-append "20160226." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1vmzs4gqj0jlg1313gkisnp0c6914qn3781lnbzmbnjfs8paflr7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/iana"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-internal-netreflect
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-internal-netreflect")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/netreflect"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-ipv6
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-ipv6")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/ipv6"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-proxy
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-proxy")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (inputs
+       `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+         ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/proxy"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-route
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-route")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/route"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-sys-unix
+  (let ((commit "a408501be4d17ee978c04a618e7a1b22af058c0e"))
+    (package
+      (name "golang-org-x-sys-unix")
+      (version (string-append "20160704." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/sys")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-sys-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1nwvs594wrzwk1bnhdsna6n8665vzlzms171sw0mkmfb713phl8q"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/sys/unix"
+         #:unpack-path "golang.org/x/sys"))
+      (synopsis "Go packages for low-level interaction with the operating system")
+      (description "Go packages for low-level interaction with the operating system")
+      (home-page "https://go.googlesource.com/sys")
+      (license bsd-3))))
+
+(define-public golang-org-x-text-transform
+  (let ((commit "a71fd10341b064c10f4a81ceac72bcf70f26ea34"))
+    (package
+      (name "golang-org-x-text-transform")
+      (version (string-append "20160215." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/text")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-text-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/text/transform"
+         #:unpack-path "golang.org/x/text"))
+      (synopsis "Go text processing support")
+      (description "Go text processing support")
+      (home-page "https://go.googlesource.com/text")
+      (license bsd-3))))
+
+(define-public golang-org-x-text-unicode-norm
+  (let ((commit "a71fd10341b064c10f4a81ceac72bcf70f26ea34"))
+    (package
+      (name "golang-org-x-text-unicode-norm")
+      (version (string-append "20160215." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/text")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-text-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/text/unicode/norm"
+         #:unpack-path "golang.org/x/text"))
+      (synopsis "Go text processing support")
+      (description "Go text processing support")
+      (home-page "https://go.googlesource.com/text")
+      (license bsd-3))))
-- 
2.10.1


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

* Re: gnu: Add syncthing.
  2016-12-15 21:06 gnu: Add syncthing Petter
@ 2016-12-16  1:52 ` Leo Famulari
  2016-12-16 12:48   ` Petter
  0 siblings, 1 reply; 11+ messages in thread
From: Leo Famulari @ 2016-12-16  1:52 UTC (permalink / raw)
  To: Petter; +Cc: guix-devel

On Thu, Dec 15, 2016 at 10:06:59PM +0100, Petter wrote:
> Hi again,
> 
> I've prefixed most of the packages with "golang-" now. However, there are
> some
> packages already starting with "golang-", f.ex.
> "golang-org-x-text-unicode-norm",
> and I left those alone. It's inconsistent, but I felt this was preferable to
> names like "golang-golang-org-x-text-unicode-norm". What do you think?

That's the right way. It fits the package naming guidelines:

https://www.gnu.org/software/guix/manual/html_node/Package-Naming.html

> Finally, there's a telemetry configuration in Syncthing. It is opt-in;
> but it will ask the user after a few hours if they want to join. The
> plan is to disable the question, however I suspect I've messed up the
> build system in that area, so this takes some more looking in to.

Personally, I'm fine with the upstream "opt-in" nag warning. It only
shows up when you open the Syncthing web interface; it's not an
intrusive desktop "notification". Once the user has said "yes" or "no",
it doesn't appear again until Syncthing makes a change to what
information they collect.

But, if people think our package should never ask, I don't mind if we
disable the request, as long as we share our changes with the Syncthing
project and they don't notice anything broken.

Many of my comments below are about tedious things. Let us know if you
are getting sick of working on these packages, and I will help :) This
includes improving the descriptions.

> Date: Thu, 15 Dec 2016 21:42:03 +0100
> Subject: [PATCH] gnu: Add Syncthing.
> 
> * gnu/packages/syncthing.scm: New file.

Cool!

> +(define-public syncthing

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

We should use the Syncthing release tarball:

https://github.com/syncthing/syncthing/releases/download/v0.14.14/syncthing-source-v0.14.14.tar.gz

> +    (arguments
> +     `(#:import-path "github.com/syncthing/syncthing"

What do you think about having the go-build-system try to automatically
generate the import-path based on the source URL, with the option for
the packager to set it manually, as shown here?

For many of the packages in this patch (which will eventually be split
into one package per patch ;) ), that auto-generated import-path
could be correct.

I think that an (arguments) field indicates that the package's build
scripts have deviated from the standard. If a Guix build system requires
all of its packages to do something in (arguments), the build system
should be extended :)

> +       #:phases
> +       (modify-phases %standard-phases
> +         (replace 'delete-files
> +           (lambda _
> +             (delete-file-recursively "src/github.com/syncthing/syncthing/vendor")))
> +
> +         (replace 'build
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (with-directory-excursion "src/github.com/syncthing/syncthing"
> +               (zero? (system* "go" "run" "build.go" "install" "syncthing" "-no-upgrade")))))
> +
> +         (replace 'install
> +           (lambda _
> +             (copy-recursively "src/github.com/syncthing/syncthing/bin/"
> +                               (string-append (assoc-ref %outputs "out") "/bin"))
> +             (copy-recursively "pkg"
> +                               (string-append (assoc-ref %outputs "out") "/pkg"))
> +             (copy-recursively "src"
> +                               (string-append (assoc-ref %outputs "out") "/src")))))))
> +

Does this package need to use custom build and install phases?

> +(define-public golang-github-com-audriusbutkevicius-go-nat-pmp
> +  (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca"))

Don't forget the revision counter :)

> +(define-public golang-github-com-bkaradzic-go-lz4
> +  (package
> +    (name "golang-github-com-bkaradzic-go-lz4")
> +    (version "1.0.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/bkaradzic/go-lz4")
> +                    (commit "74ddf82598bc4745b965729e9c6a463bedd33049")))

For packages that we build from a Git tag (rather than an untagged
commit), you should do (commit (string-append "v" version)).

Although, if there is a release tarball, it's preferable to use it.

> +(define-public golang-github-com-calmh-xdr
> +  (let ((commit "f9b9f8f7aa27725f5cabb699bd9099ca7ce09143")
> +        (revision "1"))
> +    (package
> +      (name "golang-github-com-calmh-xdr")
> +      (version (string-append "2.0.0-" revision "." (string-take commit 7)))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/calmh/xdr")
> +                      (commit commit)))

You could also fetch this one with the Git tag, or use the tarball.

> +(define-public golang-github-com-cznic-bufs
> +  (let ((commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51"))
> +    (package
> +      (name "golang-github-com-cznic-bufs")
> +      (version (string-append "20160818." (string-take commit 7)))

Is this string '20160818' the date of the commit? If the package has no
releases, we use '0.0.0' in place of the version.

> +    (arguments
> +     `(#:import-path "github.com/cznic/internal/slice"
> +       #:unpack-path "github.com/cznic/internal"))

Is it too much to wonder if both the import-path and the unpack-path
could be auto-generated in cases like this? :)

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

* Re: gnu: Add syncthing.
  2016-12-16  1:52 ` Leo Famulari
@ 2016-12-16 12:48   ` Petter
  2016-12-17  0:24     ` Leo Famulari
  2017-01-25  4:53     ` Leo Famulari
  0 siblings, 2 replies; 11+ messages in thread
From: Petter @ 2016-12-16 12:48 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

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

On 2016-12-16 02:52, Leo Famulari wrote:
> On Thu, Dec 15, 2016 at 10:06:59PM +0100, Petter wrote:
>> Hi again,
>> 
>> I've prefixed most of the packages with "golang-" now. However, there 
>> are
>> some
>> packages already starting with "golang-", f.ex.
>> "golang-org-x-text-unicode-norm",
>> and I left those alone. It's inconsistent, but I felt this was 
>> preferable to
>> names like "golang-golang-org-x-text-unicode-norm". What do you think?
> 
> That's the right way. It fits the package naming guidelines:
> 
> https://www.gnu.org/software/guix/manual/html_node/Package-Naming.html

I'm able to interpret your answer both ways, should I make it
"golang-golang-org-x-text-unicode-norm"?

>> Finally, there's a telemetry configuration in Syncthing. It is opt-in;
>> but it will ask the user after a few hours if they want to join. The
>> plan is to disable the question, however I suspect I've messed up the
>> build system in that area, so this takes some more looking in to.
> 
> Personally, I'm fine with the upstream "opt-in" nag warning. It only
> shows up when you open the Syncthing web interface; it's not an
> intrusive desktop "notification". Once the user has said "yes" or "no",
> it doesn't appear again until Syncthing makes a change to what
> information they collect.
> 
> But, if people think our package should never ask, I don't mind if we
> disable the request, as long as we share our changes with the Syncthing
> project and they don't notice anything broken.

I'll make an attempt at this while the jury is out, primarily to
retrieve the ability to edit files. (Either I broke it, or I need to
learn how to use (snippet).

> Many of my comments below are about tedious things. Let us know if you
> are getting sick of working on these packages, and I will help :) This
> includes improving the descriptions.

Yes! Help please. The meta-data part is tricky and time consuming, I'd
rather spend my Guix time on the build system than descriptions
etc. Synopsis and descriptions are just stuff i found on their
home-page.

>> Date: Thu, 15 Dec 2016 21:42:03 +0100
>> Subject: [PATCH] gnu: Add Syncthing.
>> 
>> * gnu/packages/syncthing.scm: New file.
> 
> Cool!
> 
>> +(define-public syncthing
> 
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "https://github.com/syncthing/syncthing/")
>> +                    (commit (string-append "v" version))))
>> +              (file-name (string-append name "-" version 
>> "-checkout"))
> 
> We should use the Syncthing release tarball:
> 
> https://github.com/syncthing/syncthing/releases/download/v0.14.14/syncthing-source-v0.14.14.tar.gz

Totally agree! However, tarballs are currently unsupported... due to,
hm, let's say "because very good reasons noone can be blamed for,
particularly and especially not me".

Ok, I messed up the build system :P Removed too much code
apparently. I'm working on getting this back.

>> +    (arguments
>> +     `(#:import-path "github.com/syncthing/syncthing"
> 
> What do you think about having the go-build-system try to automatically
> generate the import-path based on the source URL, with the option for
> the packager to set it manually, as shown here?
> 
> For many of the packages in this patch (which will eventually be split
> into one package per patch ;) ), that auto-generated import-path
> could be correct.
> 
> I think that an (arguments) field indicates that the package's build
> scripts have deviated from the standard. If a Guix build system 
> requires
> all of its packages to do something in (arguments), the build system
> should be extended :)

This is my goal, and I tried to accomplish this initially, because as
you can see for git checkouts most of the time import-path is url
minus scheme://. But I was unable to retrieve the url in the build
phases. So I did it like this instead, to get something that worked;
also something like #:import-path is required where import-path can't
be derived from the url.

I would need concrete help with this, that is getting the url and
perhaps what (method) was used.

>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (replace 'delete-files
>> +           (lambda _
>> +             (delete-file-recursively 
>> "src/github.com/syncthing/syncthing/vendor")))
>> +
>> +         (replace 'build
>> +           (lambda* (#:key inputs #:allow-other-keys)
>> +             (with-directory-excursion 
>> "src/github.com/syncthing/syncthing"
>> +               (zero? (system* "go" "run" "build.go" "install" 
>> "syncthing" "-no-upgrade")))))
>> +
>> +         (replace 'install
>> +           (lambda _
>> +             (copy-recursively 
>> "src/github.com/syncthing/syncthing/bin/"
>> +                               (string-append (assoc-ref %outputs 
>> "out") "/bin"))
>> +             (copy-recursively "pkg"
>> +                               (string-append (assoc-ref %outputs 
>> "out") "/pkg"))
>> +             (copy-recursively "src"
>> +                               (string-append (assoc-ref %outputs 
>> "out") "/src")))))))
>> +
> 
> Does this package need to use custom build and install phases?

Yes. They use their own build program (build.go) and arguments. And
the resulting binary is put in a non-standard location,
"src/github.com/syncthing/syncthing/bin". If they had put it in "bin/"
overriding this phase wouldn't be necessary.

>> +(define-public golang-github-com-audriusbutkevicius-go-nat-pmp
>> +  (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca"))
> 
> Don't forget the revision counter :)

Oh, I didn't see the need for it, with version being:
"20160522.452c976".

Should version really be: "20160522-1.452c976"? I don't see revision
here contributing any value.

>> +(define-public golang-github-com-bkaradzic-go-lz4
>> +  (package
>> +    (name "golang-github-com-bkaradzic-go-lz4")
>> +    (version "1.0.0")
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "https://github.com/bkaradzic/go-lz4")
>> +                    (commit 
>> "74ddf82598bc4745b965729e9c6a463bedd33049")))
> 
> For packages that we build from a Git tag (rather than an untagged
> commit), you should do (commit (string-append "v" version)).

Right. I've attached an updated patch with this.

> Although, if there is a release tarball, it's preferable to use it.

Sure, we can use tarballs when this is supported :P

>> +(define-public golang-github-com-calmh-xdr
>> +  (let ((commit "f9b9f8f7aa27725f5cabb699bd9099ca7ce09143")
>> +        (revision "1"))
>> +    (package
>> +      (name "golang-github-com-calmh-xdr")
>> +      (version (string-append "2.0.0-" revision "." (string-take 
>> commit 7)))
>> +      (source (origin
>> +                (method git-fetch)
>> +                (uri (git-reference
>> +                      (url "https://github.com/calmh/xdr")
>> +                      (commit commit)))
> 
> You could also fetch this one with the Git tag, or use the tarball.
> 
>> +(define-public golang-github-com-cznic-bufs
>> +  (let ((commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51"))
>> +    (package
>> +      (name "golang-github-com-cznic-bufs")
>> +      (version (string-append "20160818." (string-take commit 7)))
> 
> Is this string '20160818' the date of the commit? If the package has no
> releases, we use '0.0.0' in place of the version.

Yes. I figure this is best because some later project we'll package
may be pinned to an earlier commit of a library, and then what?
Incrementing the revision number would suggest this was of newer date,
when it's not, and make the older commit appear as the newest version
of the two to Guix.

Projects not pinned to a library version will then use whatever commit
was added last rather than the newest.

>> +    (arguments
>> +     `(#:import-path "github.com/cznic/internal/slice"
>> +       #:unpack-path "github.com/cznic/internal"))
> 
> Is it too much to wonder if both the import-path and the unpack-path
> could be auto-generated in cases like this? :)

We should consider this together with the url:
(url (string-append "https://github.com/cznic/internal"))

"slice" is here a directory/package in the repository. For github.com
we could probably assume that the repo is github.com/account/repo, but
other domains may have different layouts. Also keeping in mind that
the requested package could be a subpackage,
"github.com/cznic/internal/slice/tricks".

For github.com this would suggest we use url of the subpackage in the
recipe, otherwise we don't have the import-path, but this url is not
retreivable (404 Not Found). And then we would need for (git-fetch) to
cut the url after the repo part. At this point I think we're at a
place we don't want to be.

I think the best we can do is only to skip #:unpack-path in these
scenarios, and unpack according to domain and path of the url, as long
as domain and path matches the start of the import-path. But as
mentioned earlier, I don't know how to access the url in the build
phases.

I like that you're looking for simplifying the recipes, this is my
goal too. And I'm sure we can automate more.


Thanks for this thorough review! :)

On 2016-12-16 02:52, Leo Famulari wrote:
> On Thu, Dec 15, 2016 at 10:06:59PM +0100, Petter wrote:
>> Hi again,
>> 
>> I've prefixed most of the packages with "golang-" now. However, there 
>> are
>> some
>> packages already starting with "golang-", f.ex.
>> "golang-org-x-text-unicode-norm",
>> and I left those alone. It's inconsistent, but I felt this was 
>> preferable to
>> names like "golang-golang-org-x-text-unicode-norm". What do you think?
> 
> That's the right way. It fits the package naming guidelines:
> 
> https://www.gnu.org/software/guix/manual/html_node/Package-Naming.html
> 
>> Finally, there's a telemetry configuration in Syncthing. It is opt-in;
>> but it will ask the user after a few hours if they want to join. The
>> plan is to disable the question, however I suspect I've messed up the
>> build system in that area, so this takes some more looking in to.
> 
> Personally, I'm fine with the upstream "opt-in" nag warning. It only
> shows up when you open the Syncthing web interface; it's not an
> intrusive desktop "notification". Once the user has said "yes" or "no",
> it doesn't appear again until Syncthing makes a change to what
> information they collect.
> 
> But, if people think our package should never ask, I don't mind if we
> disable the request, as long as we share our changes with the Syncthing
> project and they don't notice anything broken.
> 
> Many of my comments below are about tedious things. Let us know if you
> are getting sick of working on these packages, and I will help :) This
> includes improving the descriptions.
> 
>> Date: Thu, 15 Dec 2016 21:42:03 +0100
>> Subject: [PATCH] gnu: Add Syncthing.
>> 
>> * gnu/packages/syncthing.scm: New file.
> 
> Cool!
> 
>> +(define-public syncthing
> 
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "https://github.com/syncthing/syncthing/")
>> +                    (commit (string-append "v" version))))
>> +              (file-name (string-append name "-" version 
>> "-checkout"))
> 
> We should use the Syncthing release tarball:
> 
> https://github.com/syncthing/syncthing/releases/download/v0.14.14/syncthing-source-v0.14.14.tar.gz
> 
>> +    (arguments
>> +     `(#:import-path "github.com/syncthing/syncthing"
> 
> What do you think about having the go-build-system try to automatically
> generate the import-path based on the source URL, with the option for
> the packager to set it manually, as shown here?
> 
> For many of the packages in this patch (which will eventually be split
> into one package per patch ;) ), that auto-generated import-path
> could be correct.
> 
> I think that an (arguments) field indicates that the package's build
> scripts have deviated from the standard. If a Guix build system 
> requires
> all of its packages to do something in (arguments), the build system
> should be extended :)
> 
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (replace 'delete-files
>> +           (lambda _
>> +             (delete-file-recursively 
>> "src/github.com/syncthing/syncthing/vendor")))
>> +
>> +         (replace 'build
>> +           (lambda* (#:key inputs #:allow-other-keys)
>> +             (with-directory-excursion 
>> "src/github.com/syncthing/syncthing"
>> +               (zero? (system* "go" "run" "build.go" "install" 
>> "syncthing" "-no-upgrade")))))
>> +
>> +         (replace 'install
>> +           (lambda _
>> +             (copy-recursively 
>> "src/github.com/syncthing/syncthing/bin/"
>> +                               (string-append (assoc-ref %outputs 
>> "out") "/bin"))
>> +             (copy-recursively "pkg"
>> +                               (string-append (assoc-ref %outputs 
>> "out") "/pkg"))
>> +             (copy-recursively "src"
>> +                               (string-append (assoc-ref %outputs 
>> "out") "/src")))))))
>> +
> 
> Does this package need to use custom build and install phases?
> 
>> +(define-public golang-github-com-audriusbutkevicius-go-nat-pmp
>> +  (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca"))
> 
> Don't forget the revision counter :)
> 
>> +(define-public golang-github-com-bkaradzic-go-lz4
>> +  (package
>> +    (name "golang-github-com-bkaradzic-go-lz4")
>> +    (version "1.0.0")
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "https://github.com/bkaradzic/go-lz4")
>> +                    (commit 
>> "74ddf82598bc4745b965729e9c6a463bedd33049")))
> 
> For packages that we build from a Git tag (rather than an untagged
> commit), you should do (commit (string-append "v" version)).
> 
> Although, if there is a release tarball, it's preferable to use it.
> 
>> +(define-public golang-github-com-calmh-xdr
>> +  (let ((commit "f9b9f8f7aa27725f5cabb699bd9099ca7ce09143")
>> +        (revision "1"))
>> +    (package
>> +      (name "golang-github-com-calmh-xdr")
>> +      (version (string-append "2.0.0-" revision "." (string-take 
>> commit 7)))
>> +      (source (origin
>> +                (method git-fetch)
>> +                (uri (git-reference
>> +                      (url "https://github.com/calmh/xdr")
>> +                      (commit commit)))
> 
> You could also fetch this one with the Git tag, or use the tarball.
> 
>> +(define-public golang-github-com-cznic-bufs
>> +  (let ((commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51"))
>> +    (package
>> +      (name "golang-github-com-cznic-bufs")
>> +      (version (string-append "20160818." (string-take commit 7)))
> 
> Is this string '20160818' the date of the commit? If the package has no
> releases, we use '0.0.0' in place of the version.
> 
>> +    (arguments
>> +     `(#:import-path "github.com/cznic/internal/slice"
>> +       #:unpack-path "github.com/cznic/internal"))
> 
> Is it too much to wonder if both the import-path and the unpack-path
> could be auto-generated in cases like this? :)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-Syncthing.patch --]
[-- Type: text/x-diff; name=0001-gnu-Add-Syncthing.patch, Size: 59013 bytes --]

From 761f4c6f8221d7f08959158e2ca18663065b8fad Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Fri, 16 Dec 2016 13:08:42 +0100
Subject: [PATCH] gnu: Add Syncthing.

* gnu/packages/syncthing.scm: New file.
---
 gnu/packages/syncthing.scm | 1257 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1257 insertions(+)
 create mode 100644 gnu/packages/syncthing.scm

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
new file mode 100644
index 0000000..2a861e5
--- /dev/null
+++ b/gnu/packages/syncthing.scm
@@ -0,0 +1,1257 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Petter <petter@mykolab.ch>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages syncthing)
+  #:use-module (guix build-system go)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages golang))
+
+(define-public syncthing
+  (package
+    (name "syncthing")
+    (version "0.14.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/syncthing/syncthing/")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1c9x7j6pbbd3i34nvisw70v2l3llp3dhw5cvd72jgx3gm0j3v31y"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/AudriusButkevicius/go-nat-pmp"
+        ,golang-github-com-audriusbutkevicius-go-nat-pmp)
+       ("github.com/vitrun/qart/coding" ,golang-github-com-vitrun-qart-coding)
+       ("github.com/vitrun/qart/gf256" ,golang-github-com-vitrun-qart-gf256)
+       ("github.com/vitrun/qart/qr" ,golang-github-com-vitrun-qart-qr)
+       ("github.com/thejerf/suture" ,golang-github-com-thejerf-suture)
+       ("github.com/syndtr/goleveldb" ,golang-github-com-syndtr-goleveldb)
+       ("github.com/sasha-s/go-deadlock" ,golang-github-com-sasha-s-go-deadlock)
+       ("github.com/rcrowley/go-metrics" ,golang-github-com-rcrowley-go-metrics)
+       ("github.com/minio/sha256-simd" ,golang-github-com-minio-sha256-simd)
+       ("github.com/kardianos/osext" ,golang-github-com-kardianos-osext)
+       ("github.com/juju/ratelimit" ,golang-github-com-juju-ratelimit)
+       ("github.com/jackpal/gateway" ,golang-github-com-jackpal-gateway)
+       ("github.com/gogo/protobuf" ,golang-github-com-gogo-protobuf)
+       ("github.com/gobwas/glob" ,golang-github-com-gobwas-glob)
+       ("github.com/calmh/xdr" ,golang-github-com-calmh-xdr)
+       ("github.com/calmh/luhn" ,golang-github-com-calmh-luhn)
+       ("github.com/calmh/du" ,golang-github-com-calmh-du)
+       ("github.com/bkaradzic/go-lz4" ,golang-github-com-bkaradzic-go-lz4)
+       ("github.com/golang/snappy" ,golang-github-com-golang-snappy)
+       ("golang.org/x/crypto/bcrypt" ,golang-org-x-crypto-bcrypt)
+       ("golang.org/x/crypto/blowfish" ,golang-org-x-crypto-blowfish)
+       ("golang.org/x/text/transform" ,golang-org-x-text-transform)
+       ("golang.org/x/text/unicode/norm" ,golang-org-x-text-unicode-norm)
+       ("golang.org/x/net/proxy" ,golang-org-x-net-proxy)
+       ("golang.org/x/net/bpf" ,golang-org-x-net-bpf)
+       ("golang.org/x/net/ipv6" ,golang-org-x-net-ipv6)
+       ("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+       ("golang.org/x/net/internal/netreflect"
+        ,golang-org-x-net-internal-netreflect)))
+    (arguments
+     `(#:import-path "github.com/syncthing/syncthing"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'delete-files
+           (lambda _
+             (delete-file-recursively "src/github.com/syncthing/syncthing/vendor")))
+
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "src/github.com/syncthing/syncthing"
+               (zero? (system* "go" "run" "build.go" "install" "syncthing" "-no-upgrade")))))
+
+         (replace 'install
+           (lambda _
+             (copy-recursively "src/github.com/syncthing/syncthing/bin/"
+                               (string-append (assoc-ref %outputs "out") "/bin"))
+             (copy-recursively "pkg"
+                               (string-append (assoc-ref %outputs "out") "/pkg"))
+             (copy-recursively "src"
+                               (string-append (assoc-ref %outputs "out") "/src")))))))
+
+    (synopsis "Continuous File Synchronization")
+    (description "This is the Syncthing project which pursues the following goals:
+
+    1. Define a protocol for synchronization of a folder between a number of collaborating devices. This protocol should be well defined, unambiguous, easily understood, free to use, efficient, secure and language neutral. This is called the Block Exchange Protocol.
+
+    2. Provide the reference implementation to demonstrate the usability of said protocol. This is the syncthing utility. We hope that alternative, compatible implementations of the protocol will arise.
+
+The two are evolving together; the protocol is not to be considered stable until Syncthing 1.0 is released, at which point it is locked down for incompatible changes")
+    (home-page "https://github.com/syncthing/syncthing")
+    (license mpl2.0)))
+
+(define-public golang-github-com-audriusbutkevicius-go-nat-pmp
+  (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca"))
+    (package
+      (name "golang-github-com-audriusbutkevicius-go-nat-pmp")
+      (version (string-append "20160522" (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/AudriusButkevicius/go-nat-pmp")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
+      (synopsis "Port mapping and discovery of the external IP address")
+      (description "Go client for the NAT-PMP internet protocol for port mapping and discovering the external IP address of a firewall")
+      (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
+      (license asl2.0))))
+
+(define-public golang-github-com-bkaradzic-go-lz4
+  (package
+    (name "golang-github-com-bkaradzic-go-lz4")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bkaradzic/go-lz4")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1vdid8v0c2v2qhrg9rzn3l7ya1h34jirrxfnir7gv7w6s4ivdvc1"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/bkaradzic/go-lz4"))
+    (synopsis "Port of LZ4 lossless compression algorithm")
+    (description "go-lz4 is port of LZ4 lossless compression algorithm to Go")
+    (home-page "https://github.com/bkaradzic/go-lz4")
+    (license bsd-2)))
+
+(define-public golang-github-com-calmh-du
+  (package
+    (name "golang-github-com-calmh-du")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/calmh/du")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1mv6mkbslfc8giv47kyl97ny0igb3l7jya5hc75sm54xi6g205wa"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/du"))
+    (synopsis "Get total and available disk space on a given volume")
+    (description "Get disk usage information like how much space is available, free, and used")
+    (home-page "https://github.com/calmh/du")
+    (license public-domain)))
+
+(define-public golang-github-com-calmh-luhn
+  (package
+    (name "golang-github-com-calmh-luhn")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/calmh/luhn")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1hfj1lx7wdpifn16zqrl4xml6cj5gxbn6hfz1f46g2a6bdf0gcvs"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/calmh/luhn"))
+    (synopsis "Luhn-mod-N implementation in Go")
+    (description "Luhn-mod-N implementation in Go")
+    (home-page "https://github.com/calmh/luhn")
+    (license x11)))
+
+(define-public golang-github-com-calmh-xdr
+  (let ((commit "f9b9f8f7aa27725f5cabb699bd9099ca7ce09143")
+        (revision "1"))
+    (package
+      (name "golang-github-com-calmh-xdr")
+      (version (string-append "2.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/calmh/xdr")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0l1w1l9iy4b4054v260jysqvl16hylr7hvkimlfgr0ng9m6r1vz0"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/calmh/xdr"))
+      (synopsis "XDR marshalling/unmarshalling library")
+      (description "XDR marshalling/unmarshalling library. It uses code generation and not reflection")
+      (home-page "https://github.com/calmh/xdr")
+      (license x11))))
+
+(define-public golang-github-com-cznic-b
+  (let ((commit "bcff30a622dbdcb425aba904792de1df606dab7c"))
+    (package
+      (name "golang-github-com-cznic-b")
+      (version (string-append "20160716." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/b")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0lw0d926wqxfn32yhvl5c5wh36glgdvsm5v01w4xys18cgcliasr"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/b"))
+      (synopsis "Implements a B+tree")
+      (description "Implements a B+tree")
+      (home-page "https://github.com/cznic/b")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-bufs
+  (let ((commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51"))
+    (package
+      (name "golang-github-com-cznic-bufs")
+      (version (string-append "20160818." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/bufs")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0w75wc15k0gayvj6fhnqgap1y2rhq51zvslhp3v4y1vcb11mbdw9"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/bufs"))
+      (synopsis "Implements a simple buffer cache")
+      (description "Implements a simple buffer cache")
+      (home-page "https://github.com/cznic/bufs")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-fileutil
+  (let ((commit "1c9c88fbf552b3737c7b97e1f243860359687976"))
+    (package
+      (name "golang-github-com-cznic-fileutil")
+      (version (string-append "20180708." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/fileutil")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1imk4wjgfhyb4m8dm8qbm5lz263lyb27602v3mx8j3dzqjpagg8g"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/fileutil"))
+      (synopsis "Collects some file utility functions")
+      (description "Collects some file utility functions")
+      (home-page "https://github.com/cznic/fileutil")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-internal-buffer
+  (package
+    (name "golang-github-com-cznic-internal-buffer")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/internal")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (inputs
+     `(("github.com/cznic/mathutil" ,golang-github-com-cznic-mathutil)))
+    (arguments
+     `(#:import-path "github.com/cznic/internal/buffer"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "Things that cannot be imported by 3rd party packages")
+    (description "Things that cannot be imported by 3rd party packages. Package buffer implements a pool of pointers to byte slices")
+    (home-page "https://github.com/cznic/internal/")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-internal-file
+  (package
+    (name "golang-github-com-cznic-internal-file")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/internal")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/internal/file"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "Things that cannot be imported by 3rd party packages")
+    (description "Things that cannot be imported by 3rd party packages. Package file provides an os.File-like interface of a memory mapped file")
+    (home-page "https://github.com/cznic/internal/")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-internal-slice
+  (package
+    (name "golang-github-com-cznic-internal-slice")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/internal")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "06zrlm94kq21q795pyhqqxlh3p8v6wahnkj4c1nsydg65bnh9c76"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/internal/slice"
+       #:unpack-path "github.com/cznic/internal"))
+    (synopsis "Things that cannot be imported by 3rd party packages")
+    (description "Things that cannot be imported by 3rd party packages. Package slice implements pools of pointers to slices")
+    (home-page "")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-lldb
+  (package
+    (name "golang-github-com-cznic-lldb")
+    (version "1.0.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/lldb")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1f3jwc1zimcip52zkaj2pscginmxy9a9il8pi7w74z578ibqb1bv"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/lldb"))
+    (synopsis "Package lldb implements a low level database engine")
+    (description "Package lldb implements a low level database engine")
+    (home-page "https://github.com/cznic/lldb")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-mathutil
+  (let ((commit "78ad7f262603437f0ecfebc835d80094f89c8f54"))
+    (package
+      (name "golang-github-com-cznic-mathutil")
+      (version (string-append "20161012." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/mathutil")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0c5fcjvkp8czqgwpgbvd2vngw1c8w8b38yvvl7fzppq81dm298lz"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/mathutil"))
+      (synopsis "Utilities supplemental to the Go standard \"rand\" and \"math\" packages")
+      (description "Utilities supplemental to the Go standard \"rand\" and \"math\" packages")
+      (home-page "https://github.com/cznic/mathutil")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-ql
+  (package
+    (name "golang-github-com-cznic-ql")
+    (version "1.0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cznic/ql")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1klqjqbxyw71y8i2wq9wdrjjjp19vckqi5j6wc4n0nidq78lsjry"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/cznic/ql"))
+    (synopsis "Package ql is a pure Go embedded SQL database")
+    (description "Package ql is a pure Go embedded SQL database")
+    (home-page "https://github.com/cznic/ql")
+    (license bsd-3)))
+
+(define-public golang-github-com-cznic-sortutil
+  (let ((commit "4c7342852e65c2088c981288f2c5610d10b9f7f4"))
+    (package
+      (name "golang-github-com-cznic-sortutil")
+      (version (string-append "20160617." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/sortutil")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1i46kdwnh8p54sp0jkybd3ayc599hdy37kvwqrxlg746flz5inyl"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/sortutil"))
+      (synopsis "Utilities supplemental to the Go standard \"sort\" package")
+      (description "Utilities supplemental to the Go standard \"sort\" package")
+      (home-page "https://github.com/cznic/sortutil")
+      (license bsd-3))))
+
+(define-public golang-github-com-cznic-strutil
+  (let ((commit "1eb03e3cc9d345307a45ec82bd3016cde4bd4464"))
+    (package
+      (name "golang-github-com-cznic-strutil")
+      (version (string-append "20160430." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/strutil")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0n4ib4ixpxh4fah145s2ikbzyqxbax8gj44081agg8jkzs74cnvm"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/cznic/strutil"))
+      (synopsis "Package strutil collects utils supplemental to the standard strings package")
+      (description "Package strutil collects utils supplemental to the standard strings package")
+      (home-page "https://github.com/cznic/strutil")
+      (license bsd-3))))
+
+
+(define-public golang-github-com-cznic-zappy
+  (let ((commit "2533cb5b45cc6c07421468ce262899ddc9d53fb7"))
+    (package
+      (name "golang-github-com-cznic-zappy")
+      (version (string-append "20160623." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cznic/zappy")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0mhldcqi0sqbyqs75b28cskz96iz51ymdsrx6m3i60wi94ym89yc"))))
+      (build-system go-build-system)
+      (inputs
+       `(("github.com/cznic/internal/buffer" ,golang-github-com-cznic-internal-buffer)
+         ("github.com/cznic/mathutil" ,golang-github-com-cznic-mathutil)))
+      (arguments
+       `(#:import-path "github.com/cznic/zappy"))
+      (synopsis "Package zappy implements the zappy block-based compression format")
+      (description "Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression.")
+      (home-page "https://github.com/cznic/zappy")
+      (license bsd-3))))
+
+(define-public golang-github-com-d4l3k-messagediff
+  (package
+    (name "golang-github-com-d4l3k-messagediff")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/d4l3k/messagediff")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0z64dwqk4xdwkj3f8bpqw0db87vgfamxzc65wn8lm6rfq3qjy1v5"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/d4l3k/messagediff"))
+    (synopsis "A library for doing diffs of arbitrary Golang structs")
+    (description "A library for doing diffs of arbitrary Golang structs")
+    (home-page "https://github.com/d4l3k/messagediff")
+    (license x11)))
+
+(define-public golang-github-com-edsrzf-mmap-go
+  (let ((commit "935e0e8a636ca4ba70b713f3e38a19e1b77739e8"))
+    (package
+      (name "golang-github-com-edsrzf-mmap-go")
+      (version (string-append "20160512." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/edsrzf/mmap-go")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "11a63wrjwfnchjhwqjp6yd5j0370ysppjgv31l5bmvvwps7whq9d"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/edsrzf/mmap-go"))
+      (synopsis "Portable mmap package for Go")
+      (description "Portable mmap package for Go")
+      (home-page "https://github.com/edsrzf/mmap-go")
+      (license bsd-3))))
+
+(define-public golang-github-com-gobwas-glob
+  (package
+    (name "golang-github-com-gobwas-glob")
+    (version "0.2.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gobwas/glob")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "0dx0f293v1a0d8qi7ik5hdl26dapd8xm0hj9a9gc620vhj7khi9q"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/gobwas/glob"))
+    (synopsis "Go Globbing Library")
+    (description "Go Globbing Library")
+    (home-page "https://github.com/gobwas/glob")
+    (license x11)))
+
+(define-public golang-github-com-gogo-protobuf
+  (let ((commit "7883e1468d48d969e1c3ce4bcde89b6a7dd4adc4"))
+    (package
+      (name "golang-github-com-gogo-protobuf")
+      (version (string-append "0.2-1." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/gogo/protobuf")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "16ja7lqq96q0pnzgnbwnh0j8qzvqgns1nfk8ndxgkg4sg93bg372"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/gogo/protobuf/proto"
+         #:unpack-path "github.com/gogo/protobuf"))
+      (synopsis "Protocol Buffers for Go with Gadgets")
+      (description "gogoprotobuf is a fork of golang/protobuf with extra code generation features.
+
+This code generation is used to achieve:
+
+    fast marshalling and unmarshalling
+    more canonical Go structures
+    goprotobuf compatibility
+    less typing by optionally generating extra helper code
+    peace of mind by optionally generating test and benchmark code
+    other serialization formats
+")
+      (home-page "https://github.com/gogo/protobuf")
+      (license asl2.0))))
+
+(define-public golang-github-com-golang-groupcache-lru
+  (let ((commit "02826c3e79038b59d737d3b1c0a1d937f71a4433"))
+    (package
+      (name "golang-github-com-golang-groupcache-lru")
+      (version (string-append "20160516." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/golang/groupcache")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/golang/groupcache/lru"
+         #:unpack-path "github.com/golang/groupcache"))
+      (synopsis "groupcache is a caching and cache-filling library")
+      (description "groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases")
+      (home-page "https://github.com/golang/groupcache")
+      (license asl2.0))))
+
+(define-public golang-github-com-golang-snappy
+  (let ((commit "5f1c01d9f64b941dd9582c638279d046eda6ca31"))
+    (package
+      (name "golang-github-com-golang-snappy")
+      (version (string-append "20160304." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/golang/snappy")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0qyhbgdjy2gf93y9c1n54a6ql75vinvwdqn6i4fi8i773j0vdjvf"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/golang/snappy"))
+      (synopsis "Snappy compression format in the Go programming language")
+      (description "Snappy compression format in the Go programming language")
+      (home-page "https://github.com/golang/snappy")
+      (license bsd-3))))
+
+(define-public golang-github-com-jackpal-gateway
+  (package
+    (name "golang-github-com-jackpal-gateway")
+    (version "1.0.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackpal/gateway")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "1bsml9kx49ihsnlq5k8cw7875ar4vmh9q15kpxn0dlvpafmma1bi"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/jackpal/gateway"))
+    (synopsis "Library for discovering the address of a LAN gateway")
+    (description "Library for discovering the address of a LAN gateway")
+    (home-page "https://github.com/jackpal/gateway")
+    (license bsd-3)))
+
+(define-public golang-github-com-juju-ratelimit
+  (let ((commit "77ed1c8a01217656d2080ad51981f6e99adaa177"))
+    (package
+      (name "golang-github-com-juju-ratelimit")
+      (version (string-append "20151125." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/juju/ratelimit")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1r7xdl3bpdzny4d05fpm229864ipghqwv5lplv5im5b4vhv9ryp7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/juju/ratelimit"))
+      (synopsis "Token-bucket-based rate limiter package")
+      (description "Token-bucket-based rate limiter package")
+      (home-page "https://github.com/juju/ratelimit")
+      (license lgpl3))))
+
+(define-public golang-github-com-kardianos-osext
+  (let ((commit "29ae4ffbc9a6fe9fb2bc5029050ce6996ea1d3bc"))
+    (package
+      (name "golang-github-com-kardianos-osext")
+      (version (string-append "20151222." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/kardianos/osext")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1mawalaz84i16njkz6f9fd5jxhcbxkbsjnav3cmqq2dncv2hyv8a"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/kardianos/osext"))
+      (synopsis "Extensions to the standard \"os\" package. Executable and ExecutableFolder")
+      (description "Extensions to the standard \"os\" package. Executable and ExecutableFolder")
+      (home-page "https://github.com/kardianos/osext")
+      (license bsd-3))))
+
+(define-public golang-github-com-lib-pq
+  (let ((commit "ee1442bda7bd1b6a84e913bdb421cb1874ec629d")
+        (revision "1"))
+    (package
+      (name "golang-github-com-lib-pq")
+      (version (string-append "go1.0-cutoff-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/lib/pq")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "09nvbls0ka9v6bla9b2ls3cnjm2fsynzlbn4d2a3p0rmqnha35g7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/lib/pq"))
+      (synopsis "Pure Go Postgres driver for database/sql")
+      (description "Pure Go Postgres driver for database/sql")
+      (home-page "https://github.com/lib/pq")
+      (license x11))))
+
+(define-public golang-github-com-minio-sha256-simd
+  (let ((commit "672e7bc9f3482375df73741cf57a157fe187ec26"))
+    (package
+      (name "golang-github-com-minio-sha256-simd")
+      (version (string-append "20160907." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/minio/sha256-simd")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1a94cp0czir03w6ag12a7wnvs4cg9956i8mjm18pmgkx4c13qkwq"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/minio/sha256-simd"))
+      (synopsis "Pure Go implementation of SHA256 using SIMD instructions for Intel and ARM")
+      (description "Pure Go implementation of SHA256 using SIMD instructions for Intel and ARM")
+      (home-page "https://github.com/minio/sha256-simd")
+      (license asl2.0))))
+
+(define-public golang-github-com-onsi-ginkgo
+  (let ((commit "ac3d45ddd7ef5c4d7fc4d037b615a81f4d67981e")
+        (revision "1"))
+    (package
+      (name "golang-github-com-onsi-ginkgo")
+      (version (string-append "1.2.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/onsi/ginkgo")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1kq82l8x1ky03hcv8zdllvzqddf8i1yxajj76w21cchd1akzqr78"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/onsi/ginkgo"))
+      (synopsis "BDD Testing Framework for Go")
+      (description "BDD Testing Framework for Go")
+      (home-page "https://github.com/onsi/ginkgo")
+      (license x11))))
+
+(define-public golang-github-com-onsi-gomega
+  (let ((commit "a1094b2db2d4845621602c667bd4ccf09834544e")
+        (revision "1"))
+    (package
+      (name "golang-github-com-onsi-gomega")
+      (version (string-append "1.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/onsi/gomega")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0gwwb50jn9yz6aac8pdgidffnnr5h7whz75fmd9r78m6lpljvks0"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/onsi/gomega"))
+      (synopsis "Ginkgo's Preferred Matcher Library")
+      (description "Ginkgo's Preferred Matcher Library")
+      (home-page "https://github.com/onsi/gomega")
+      (license x11))))
+
+(define-public golang-github-com-oschwald-geoip2-golang
+  (let ((commit "51714a0e79df40e00a94ae5086ec2a5532c9ee57")
+        (revision "1"))
+    (package
+      (name "golang-github-com-oschwald-geoip2-golang")
+      (version (string-append "0.1.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/oschwald/geoip2-golang")
+                      (commit "51714a0e79df40e00a94ae5086ec2a5532c9ee57")))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "1clcyv6wc79n9wckmwv21x7d8jkgrikr9pa159aml492gknpw2y8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/oschwald/geoip2-golang"))
+      (synopsis "Unofficial MaxMind GeoIP2 Reader for Go")
+      (description "Unofficial MaxMind GeoIP2 Reader for Go")
+      (home-page "https://github.com/oschwald/geoip2-golang")
+      (license isc))))
+
+(define-public golang-github-com-oschwald-maxminddb-golang
+  (let ((commit "a26428e0305b837e06fe69221489819126a346c8")
+        (revision "1"))
+    (package
+      (name "golang-github-com-oschwald-maxminddb-golang")
+      (version (string-append "0.2.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/oschwald/maxminddb-golang")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0d5a2bqsanxy57bfgwl9dwd230agi3fd14vay0jhb2fmhpw3bb73"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/oschwald/maxminddb-golang"))
+      (synopsis "MaxMind DB Reader for Go")
+      (description "MaxMind DB Reader for Go")
+      (home-page "https://github.com/oschwald/maxminddb-golang")
+      (license isc))))
+
+(define-public golang-github-com-rcrowley-go-metrics
+  (let ((commit "eeba7bd0dd01ace6e690fa833b3f22aaec29af43"))
+    (package
+      (name "golang-github-com-rcrowley-go-metrics")
+      (version (string-append "20160226." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/rcrowley/go-metrics")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "18jissbw1226vzqmqpgk3f3qdgwi9cb1i8x9hhq28bc9zv0c4j79"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/rcrowley/go-metrics"))
+      (synopsis "Go port of Coda Hale's Metrics library")
+      (description "Go port of Coda Hale's Metrics library")
+      (home-page "https://github.com/rcrowley/go-metrics")
+      (license bsd-2))))
+
+(define-public golang-github-com-sasha-s-go-deadlock
+  (package
+    (name "golang-github-com-sasha-s-go-deadlock")
+    (version "0.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sasha-s/go-deadlock")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "193cdmd6vrnl6vdv6pr3671cpl1nwapdawqs462xmqkf16mggjfz"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/sasha-s/go-deadlock"))
+    (synopsis "Online deadlock detection in go")
+    (description "Online deadlock detection in go")
+    (home-page "https://github.com/sasha-s/go-deadlock")
+    (license asl2.0)))
+
+(define-public golang-github-com-stathat-go
+  (let ((commit "91dfa3a59c5b233fef9a346a1460f6e2bc889d93"))
+    (package
+      (name "golang-github-com-stathat-go")
+      (version (string-append "20160304." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/stathat/go")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "105ql5v8r4hqcsq0ag7asdxqg9n7rvf83y1q1dj2nfjyn4manv6r"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/stathat/go"))
+      (synopsis "This is a Go package for posting stats to your StatHat account")
+      (description "This is a Go package for posting stats to your StatHat account")
+      (home-page "https://github.com/stathat/go")
+      (license x11))))
+
+(define-public golang-github-com-syndtr-goleveldb
+  (let ((commit "6ae1797c0b42b9323fc27ff7dcf568df88f2f33d"))
+    (package
+      (name "golang-github-com-syndtr-goleveldb")
+      (version (string-append "20160825." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/syndtr/goleveldb")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32 "0cxsm8zlf3c53z2gk73walqrp0gl8bn49fb0dlap4kgwqd6p5dx8"))))
+      (build-system go-build-system)
+      (inputs
+       `(("github.com/golang/snappy" ,golang-github-com-golang-snappy)))
+      (arguments
+       `(#:import-path "github.com/syndtr/goleveldb/leveldb"
+         #:unpack-path "github.com/syndtr/goleveldb"))
+      (synopsis "LevelDB key/value database in Go")
+      (description "This is an implementation of the LevelDB key/value database in the Go programming language")
+      (home-page "https://github.com/syndtr/goleveldb")
+      (license bsd-2))))
+
+(define-public golang-github-com-thejerf-suture
+  (package
+    (name "golang-github-com-thejerf-suture")
+    (version "2.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/thejerf/suture")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32 "082j4rd1l52djm4sv63f3rh2r5nwzvpdvnyps85qjw1i1cd8c7sn"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/thejerf/suture"))
+    (synopsis "Supervisor trees for Go")
+    (description "Suture provides Erlang-ish supervisor trees for Go. \"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together when it's trying to die.
+
+This library has hit maturity, and isn't expected to be changed radically. This can also be imported via gopkg.in/thejerf/suture.v1 .
+
+It is intended to deal gracefully with the real failure cases that can occur with supervision trees (such as burning all your CPU time endlessly restarting dead services), while also making no unnecessary demands on the \"service\" code, and providing hooks to perform adequate logging with in a production environment")
+    (home-page "https://github.com/thejerf/suture")
+    (license x11)))
+
+(define-public golang-github-com-vitrun-qart-coding
+  (let ((commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0"))
+    (package
+      (name "golang-github-com-vitrun-qart-coding")
+      (version (string-append "20160420." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vitrun/qart")
+                      (commit commit)))
+                (file-name (string-append "golang-github-com-vitrun-qart-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/vitrun/qart/coding"
+         #:unpack-path "github.com/vitrun/qart"))
+      (synopsis "Package coding implements low-level QR coding details")
+      (description "Instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart engineers the encoded values to create the picture in a code with no inherent errors. Package coding implements low-level QR coding details")
+      (home-page "https://github.com/vitrun/qart/")
+      (license bsd-3))))
+
+(define-public golang-github-com-vitrun-qart-gf256
+  (let ((commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0"))
+    (package
+      (name "golang-github-com-vitrun-qart-gf256")
+      (version (string-append "20160420." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vitrun/qart")
+                      (commit commit)))
+                (file-name (string-append "golang-github-com-vitrun-qart-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/vitrun/qart/gf256"
+         #:unpack-path "github.com/vitrun/qart"))
+      (synopsis "Package gf256 implements arithmetic over the Galois Field GF(256)")
+      (description "Instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart engineers the encoded values to create the picture in a code with no inherent errors. Package gf256 implements arithmetic over the Galois Field GF(256)")
+      (home-page "https://github.com/vitrun/qart")
+      (license bsd-3))))
+
+(define-public golang-github-com-vitrun-qart-qr
+  (let ((commit "ccb109cf25f0cd24474da73b9fee4e7a3e8a8ce0"))
+    (package
+      (name "golang-github-com-vitrun-qart-qr")
+      (version (string-append "20160420." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vitrun/qart")
+                      (commit commit)))
+                (file-name (string-append "golang-github-com-vitrun-qart-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "0bhp768b8ha6f25dmhwn9q8m2lkbn4qnjf8n7pizk25jn5zjdvc8"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/vitrun/qart/qr"
+         #:unpack-path "github.com/vitrun/qart"))
+      (synopsis "Qart generates not-so-ugly qr codes")
+      (description "Instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart engineers the encoded values to create the picture in a code with no inherent errors.")
+      (home-page "https://github.com/vitrun/qart")
+      (license bsd-3))))
+
+(define-public golang-org-x-crypto-bcrypt
+  (let ((commit "e311231e83195f401421a286060d65643f9c9d40"))
+    (package
+      (name "golang-org-x-crypto-bcrypt")
+      (version (string-append "20160912." (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 "1n3p77z0x9rifvymifpvnmfcfzxnly9da2zghrhb3jrkvjvjc2mw"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/bcrypt"
+         #:unpack-path "golang.org/x/crypto"))
+      (synopsis "Go supplementary cryptography libraries")
+      (description "Go supplementary cryptography libraries")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license bsd-3))))
+
+
+(define-public golang-org-x-crypto-blowfish
+  (let ((commit "e311231e83195f401421a286060d65643f9c9d40"))
+    (package
+      (name "golang-org-x-crypto-blowfish")
+      (version (string-append "20160912." (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 "1n3p77z0x9rifvymifpvnmfcfzxnly9da2zghrhb3jrkvjvjc2mw"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/blowfish"
+         #:unpack-path "golang.org/x/crypto"))
+      (synopsis "Go supplementary cryptography libraries")
+      (description "Go supplementary cryptography libraries")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-bpf
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-bpf")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (inputs
+       `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+         ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+      (arguments
+       `(#:import-path "golang.org/x/net/bpf"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-context
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-context")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (inputs
+       `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+         ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+      (arguments
+       `(#:import-path "golang.org/x/net/context"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-internal-iana
+  (let ((commit "08f168e593b5aab61849054b77981de812666697"))
+    (package
+      (name "golang-org-x-net-internal-iana")
+      (version (string-append "20160226." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1vmzs4gqj0jlg1313gkisnp0c6914qn3781lnbzmbnjfs8paflr7"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/iana"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net/")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-internal-netreflect
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-internal-netreflect")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/netreflect"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-ipv6
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-ipv6")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/ipv6"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-proxy
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-proxy")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (inputs
+       `(("golang.org/x/net/internal/iana" ,golang-org-x-net-internal-iana)
+         ("golang.org/x/net/internal/netreflect" ,golang-org-x-net-internal-netreflect)))
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/proxy"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-net-route
+  (let ((commit "749a502dd1eaf3e5bfd4f8956748c502357c0bbe"))
+    (package
+      (name "golang-org-x-net-route")
+      (version (string-append "20160912." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "18z4iqprpaf6264cac9g3jp8qdx4i4p0w724rqgglx8dfj78dx9v"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/route"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go supplementary network libraries")
+      (description "Go supplementary network libraries")
+      (home-page "https://go.googlesource.com/net")
+      (license bsd-3))))
+
+(define-public golang-org-x-sys-unix
+  (let ((commit "a408501be4d17ee978c04a618e7a1b22af058c0e"))
+    (package
+      (name "golang-org-x-sys-unix")
+      (version (string-append "20160704." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/sys")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-sys-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1nwvs594wrzwk1bnhdsna6n8665vzlzms171sw0mkmfb713phl8q"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/sys/unix"
+         #:unpack-path "golang.org/x/sys"))
+      (synopsis "Go packages for low-level interaction with the operating system")
+      (description "Go packages for low-level interaction with the operating system")
+      (home-page "https://go.googlesource.com/sys")
+      (license bsd-3))))
+
+(define-public golang-org-x-text-transform
+  (let ((commit "a71fd10341b064c10f4a81ceac72bcf70f26ea34"))
+    (package
+      (name "golang-org-x-text-transform")
+      (version (string-append "20160215." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/text")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-text-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/text/transform"
+         #:unpack-path "golang.org/x/text"))
+      (synopsis "Go text processing support")
+      (description "Go text processing support")
+      (home-page "https://go.googlesource.com/text")
+      (license bsd-3))))
+
+(define-public golang-org-x-text-unicode-norm
+  (let ((commit "a71fd10341b064c10f4a81ceac72bcf70f26ea34"))
+    (package
+      (name "golang-org-x-text-unicode-norm")
+      (version (string-append "20160215." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/text")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-text-"
+                                          version "-checkout"))
+                (sha256
+                 (base32 "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/text/unicode/norm"
+         #:unpack-path "golang.org/x/text"))
+      (synopsis "Go text processing support")
+      (description "Go text processing support")
+      (home-page "https://go.googlesource.com/text")
+      (license bsd-3))))
-- 
2.10.1


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

* Re: gnu: Add syncthing.
  2016-12-16 12:48   ` Petter
@ 2016-12-17  0:24     ` Leo Famulari
  2017-01-25  4:53     ` Leo Famulari
  1 sibling, 0 replies; 11+ messages in thread
From: Leo Famulari @ 2016-12-17  0:24 UTC (permalink / raw)
  To: Petter; +Cc: guix-devel

On Fri, Dec 16, 2016 at 01:48:57PM +0100, Petter wrote:
> On 2016-12-16 02:52, Leo Famulari wrote:
> > On Thu, Dec 15, 2016 at 10:06:59PM +0100, Petter wrote:
> > > I've prefixed most of the packages with "golang-" now. However,
> > > there are
> > > some
> > > packages already starting with "golang-", f.ex.
> > > "golang-org-x-text-unicode-norm",
> > > and I left those alone. It's inconsistent, but I felt this was
> > > preferable to
> > > names like "golang-golang-org-x-text-unicode-norm". What do you think?
> > 
> > That's the right way. It fits the package naming guidelines:
> > 
> > https://www.gnu.org/software/guix/manual/html_node/Package-Naming.html
> 
> I'm able to interpret your answer both ways, should I make it
> "golang-golang-org-x-text-unicode-norm"?

I'm sorry to be unclear :)

I meant to say that the package should be called "golang-org-x-text-unicode-norm".

This matches what we do for Python packages:

If a project already contains the word python, we drop this; for
instance, the module python-dateutil is packaged under the names
python-dateutil and python2-dateutil. If the project name starts with py
(e.g. pytz), we keep it and prefix it as described above. 

https://www.gnu.org/software/guix/manual/html_node/Python-Modules.html

> > > Finally, there's a telemetry configuration in Syncthing. It is opt-in;
> > > but it will ask the user after a few hours if they want to join. The
> > > plan is to disable the question, however I suspect I've messed up the
> > > build system in that area, so this takes some more looking in to.
> > 
> > Personally, I'm fine with the upstream "opt-in" nag warning. It only
> > shows up when you open the Syncthing web interface; it's not an
> > intrusive desktop "notification". Once the user has said "yes" or "no",
> > it doesn't appear again until Syncthing makes a change to what
> > information they collect.
> > 
> > But, if people think our package should never ask, I don't mind if we
> > disable the request, as long as we share our changes with the Syncthing
> > project and they don't notice anything broken.
> 
> I'll make an attempt at this while the jury is out, primarily to
> retrieve the ability to edit files. (Either I broke it, or I need to
> learn how to use (snippet).

I applied the following diff to my package, and it made Syncthing
generate new configuration files with telemetry disabled. However, this
requires some of the tests to be adjusted. This caveat makes me wonder
if it's the right place to make the change, although I didn't find
another place with my limited Go knowledge.

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 0ef38fcae..c67e85039 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -61,6 +61,13 @@
              (setenv "GOBIN" (assoc-ref outputs "out"))
              #t))
 
+         (add-after 'unpack 'disable-telemetry
+           (lambda _
+             (with-directory-excursion "src/github.com/syncthing/syncthing"
+               (substitute* "lib/config/optionsconfiguration.go"
+                 (("json:\\\"urAccepted\\\"")
+                   "json:\"urAccepted\" default:\"-1\"")))))
+
          (add-before 'build 'increase-test-timeout
            (lambda _
              (substitute* "src/github.com/syncthing/syncthing/build.go"

> Yes! Help please. The meta-data part is tricky and time consuming, I'd
> rather spend my Guix time on the build system than descriptions
> etc. Synopsis and descriptions are just stuff i found on their
> home-page.

Okay, I'll work on this and put it on a Git branch somewhere.

> > Don't forget the revision counter :)
> 
> Oh, I didn't see the need for it, with version being:
> "20160522.452c976".
> 
> Should version really be: "20160522-1.452c976"? I don't see revision
> here contributing any value.

[...]

> > > +(define-public golang-github-com-cznic-bufs
> > > +  (let ((commit "3dcccbd7064a1689f9c093a988ea11ac00e21f51"))
> > > +    (package
> > > +      (name "golang-github-com-cznic-bufs")
> > > +      (version (string-append "20160818." (string-take commit 7)))
> > 
> > Is this string '20160818' the date of the commit? If the package has no
> > releases, we use '0.0.0' in place of the version.
> 
> Yes. I figure this is best because some later project we'll package
> may be pinned to an earlier commit of a library, and then what?
> Incrementing the revision number would suggest this was of newer date,
> when it's not, and make the older commit appear as the newest version
> of the two to Guix.

We didn't really make a decision in the previous discussion:

https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00422.html

If Go packages have to use specific commits of their dependencies, then
we'll need to specify that version each time we use the package.

If we decide to use the date anyways, remember that commit timestamps
tend not to be chronologically ordered. The "push" timestamp would be
more meaningful.

I don't know the best way to get this timestamp, but you can see them
with:
git reflog --date=local origin/master

> > > +    (arguments
> > > +     `(#:import-path "github.com/cznic/internal/slice"
> > > +       #:unpack-path "github.com/cznic/internal"))
> > 
> > Is it too much to wonder if both the import-path and the unpack-path
> > could be auto-generated in cases like this? :)
> 
> We should consider this together with the url:
> (url (string-append "https://github.com/cznic/internal"))
> 
> "slice" is here a directory/package in the repository. For github.com
> we could probably assume that the repo is github.com/account/repo, but
> other domains may have different layouts. Also keeping in mind that
> the requested package could be a subpackage,
> "github.com/cznic/internal/slice/tricks".
> 
> For github.com this would suggest we use url of the subpackage in the
> recipe, otherwise we don't have the import-path, but this url is not
> retreivable (404 Not Found). And then we would need for (git-fetch) to
> cut the url after the repo part. At this point I think we're at a
> place we don't want to be.
> 
> I think the best we can do is only to skip #:unpack-path in these
> scenarios, and unpack according to domain and path of the url, as long
> as domain and path matches the start of the import-path. But as
> mentioned earlier, I don't know how to access the url in the build
> phases.
> 
> I like that you're looking for simplifying the recipes, this is my
> goal too. And I'm sure we can automate more.

Okay, hopefully somebody else has some advice here!

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

* Re: gnu: Add syncthing.
  2016-12-16 12:48   ` Petter
  2016-12-17  0:24     ` Leo Famulari
@ 2017-01-25  4:53     ` Leo Famulari
  1 sibling, 0 replies; 11+ messages in thread
From: Leo Famulari @ 2017-01-25  4:53 UTC (permalink / raw)
  To: Petter; +Cc: guix-devel

On Fri, Dec 16, 2016 at 01:48:57PM +0100, Petter wrote:
> On 2016-12-16 02:52, Leo Famulari wrote:
> > On Thu, Dec 15, 2016 at 10:06:59PM +0100, Petter wrote:
> > > +    (arguments
> > > +     `(#:import-path "github.com/syncthing/syncthing"
> > 
> > What do you think about having the go-build-system try to automatically
> > generate the import-path based on the source URL, with the option for
> > the packager to set it manually, as shown here?
> > 
> > For many of the packages in this patch (which will eventually be split
> > into one package per patch ;) ), that auto-generated import-path
> > could be correct.
> > 
> > I think that an (arguments) field indicates that the package's build
> > scripts have deviated from the standard. If a Guix build system requires
> > all of its packages to do something in (arguments), the build system
> > should be extended :)
> 
> This is my goal, and I tried to accomplish this initially, because as
> you can see for git checkouts most of the time import-path is url
> minus scheme://. But I was unable to retrieve the url in the build
> phases. So I did it like this instead, to get something that worked;
> also something like #:import-path is required where import-path can't
> be derived from the url.
> 
> I would need concrete help with this, that is getting the url and
> perhaps what (method) was used.

Does anyone have any advice here?

The issue is that the Go build tools typically want the source code to
be unpacked in a directory structure based on the URL of the Git repo.
We can set it "by hand" in the package definition, which is what the
current go-build-system patches do, but it would be great to have a
default that worked most of the time.

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

end of thread, other threads:[~2017-01-25  4:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-15 21:06 gnu: Add syncthing Petter
2016-12-16  1:52 ` Leo Famulari
2016-12-16 12:48   ` Petter
2016-12-17  0:24     ` Leo Famulari
2017-01-25  4:53     ` Leo Famulari
  -- strict thread matches above, loose matches on Subject: below --
2016-12-11  0:38 Petter
2016-12-11 11:25 ` Hartmut Goebel
2016-12-11 11:35   ` Hartmut Goebel
2016-12-11 19:09   ` Leo Famulari
2016-12-11 22:21     ` ng0
2016-12-13  6:58       ` Chris Marusich

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).