You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2335 lines
96 KiB

  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
  3. ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
  4. ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
  5. ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
  6. ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
  7. ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
  8. ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
  9. ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
  10. ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
  11. ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
  12. ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
  13. ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
  14. ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
  15. ;;;
  16. ;;; This file is part of GNU Guix.
  17. ;;;
  18. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  19. ;;; under the terms of the GNU General Public License as published by
  20. ;;; the Free Software Foundation; either version 3 of the License, or (at
  21. ;;; your option) any later version.
  22. ;;;
  23. ;;; GNU Guix is distributed in the hope that it will be useful, but
  24. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  25. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  26. ;;; GNU General Public License for more details.
  27. ;;;
  28. ;;; You should have received a copy of the GNU General Public License
  29. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  30. (define-module (gnu packages golang)
  31. #:use-module ((guix licenses) #:prefix license:)
  32. #:use-module (guix utils)
  33. #:use-module (guix download)
  34. #:use-module (guix git-download)
  35. #:use-module (guix packages)
  36. #:use-module (guix build-system gnu)
  37. #:use-module (guix build-system go)
  38. #:use-module (gnu packages admin)
  39. #:use-module (gnu packages gcc)
  40. #:use-module (gnu packages base)
  41. #:use-module (gnu packages perl)
  42. #:use-module (gnu packages pkg-config)
  43. #:use-module (gnu packages pcre)
  44. #:use-module (gnu packages lua)
  45. #:use-module (gnu packages mp3)
  46. #:use-module (ice-9 match)
  47. #:use-module (srfi srfi-1))
  48. ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
  49. ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
  50. ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
  51. ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
  52. ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
  53. ;; gccgo-5. Mips is not officially supported, but it should work if it is
  54. ;; bootstrapped.
  55. (define-public go-1.4
  56. (package
  57. (name "go")
  58. (version "1.4.3")
  59. (source (origin
  60. (method url-fetch)
  61. (uri (string-append "https://storage.googleapis.com/golang/"
  62. name version ".src.tar.gz"))
  63. (sha256
  64. (base32
  65. "0na9yqilzpvq0bjndbibfp07wr796gf252y471cip10bbdqgqiwr"))))
  66. (build-system gnu-build-system)
  67. (outputs '("out"
  68. "doc"
  69. "tests"))
  70. (arguments
  71. `(#:modules ((ice-9 match)
  72. (guix build gnu-build-system)
  73. (guix build utils)
  74. (srfi srfi-1))
  75. #:tests? #f ; Tests are run by the all.bash script.
  76. #:phases
  77. (modify-phases %standard-phases
  78. (delete 'configure)
  79. (add-after 'patch-generated-file-shebangs 'chdir
  80. (lambda _
  81. (chdir "src")
  82. #t))
  83. (add-before 'build 'prebuild
  84. (lambda* (#:key inputs outputs #:allow-other-keys)
  85. (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
  86. (ld (string-append (assoc-ref inputs "libc") "/lib"))
  87. (loader (car (find-files ld "^ld-linux.+")))
  88. (net-base (assoc-ref inputs "net-base"))
  89. (tzdata-path
  90. (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
  91. (output (assoc-ref outputs "out")))
  92. ;; Removing net/ tests, which fail when attempting to access
  93. ;; network resources not present in the build container.
  94. (for-each delete-file
  95. '("net/multicast_test.go" "net/parse_test.go"
  96. "net/port_test.go"))
  97. ;; Add libgcc to the RUNPATH.
  98. (substitute* "cmd/go/build.go"
  99. (("cgoldflags := \\[\\]string\\{\\}")
  100. (string-append "cgoldflags := []string{"
  101. "\"-rpath=" gcclib "\"}"))
  102. (("ldflags := buildLdflags")
  103. (string-append
  104. "ldflags := buildLdflags\n"
  105. "ldflags = append(ldflags, \"-r\")\n"
  106. "ldflags = append(ldflags, \"" gcclib "\")\n")))
  107. (substitute* "os/os_test.go"
  108. (("/usr/bin") (getcwd))
  109. (("/bin/pwd") (which "pwd")))
  110. ;; Disable failing tests: these tests attempt to access
  111. ;; commands or network resources which are neither available or
  112. ;; necessary for the build to succeed.
  113. (for-each
  114. (match-lambda
  115. ((file regex)
  116. (substitute* file
  117. ((regex all before test_name)
  118. (string-append before "Disabled" test_name)))))
  119. '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
  120. ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
  121. ("os/os_test.go" "(.+)(TestHostname.+)")
  122. ("time/format_test.go" "(.+)(TestParseInSydney.+)")
  123. ;; Tzdata 2016g changed the name of the time zone used in this
  124. ;; test, and the patch for Go 1.7 does not work for 1.4.3:
  125. ;; https://github.com/golang/go/issues/17545
  126. ;; https://github.com/golang/go/issues/17276
  127. ("time/time_test.go" "(.+)(TestLoadFixed.+)")
  128. ("time/format_test.go" "(.+)(TestParseInLocation.+)")
  129. ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
  130. ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
  131. ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
  132. ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
  133. ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
  134. ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
  135. ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
  136. ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
  137. ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
  138. (substitute* "net/lookup_unix.go"
  139. (("/etc/protocols") (string-append net-base "/etc/protocols")))
  140. (substitute* "time/zoneinfo_unix.go"
  141. (("/usr/share/zoneinfo/") tzdata-path))
  142. (substitute* (find-files "cmd" "asm.c")
  143. (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
  144. #t)))
  145. (replace 'build
  146. (lambda* (#:key inputs outputs #:allow-other-keys)
  147. ;; FIXME: Some of the .a files are not bit-reproducible.
  148. (let* ((output (assoc-ref outputs "out")))
  149. (setenv "CC" (which "gcc"))
  150. (setenv "GOOS" "linux")
  151. (setenv "GOROOT" (dirname (getcwd)))
  152. (setenv "GOROOT_FINAL" output)
  153. ;; Go 1.4's cgo will not work with binutils >= 2.27:
  154. ;; https://github.com/golang/go/issues/16906
  155. (setenv "CGO_ENABLED" "0")
  156. (invoke "sh" "all.bash"))))
  157. (replace 'install
  158. (lambda* (#:key outputs inputs #:allow-other-keys)
  159. (let* ((output (assoc-ref outputs "out"))
  160. (doc_out (assoc-ref outputs "doc"))
  161. (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
  162. (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
  163. (tests (string-append
  164. (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
  165. (mkdir-p tests)
  166. (copy-recursively "../test" (string-append tests "/test"))
  167. (delete-file-recursively "../test")
  168. (mkdir-p docs)
  169. (copy-recursively "../api" (string-append docs "/api"))
  170. (delete-file-recursively "../api")
  171. (copy-recursively "../doc" (string-append docs "/doc"))
  172. (delete-file-recursively "../doc")
  173. (for-each (lambda (file)
  174. (let ((file (string-append "../" file)))
  175. (install-file file docs)
  176. (delete-file file)))
  177. '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
  178. "LICENSE" "VERSION" "robots.txt"))
  179. (copy-recursively "../" output)
  180. #t))))))
  181. (inputs
  182. `(("tzdata" ,tzdata)
  183. ("pcre" ,pcre)
  184. ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
  185. ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
  186. ;; the race doesn't seem to be present:
  187. ;; https://github.com/golang/go/issues/24046
  188. ("gcc:lib" ,gcc-6 "lib")))
  189. (native-inputs
  190. `(("pkg-config" ,pkg-config)
  191. ("which" ,which)
  192. ("net-base" ,net-base)
  193. ("perl" ,perl)))
  194. (home-page "https://golang.org/")
  195. (synopsis "Compiler and libraries for Go, a statically-typed language")
  196. (description "Go, also commonly referred to as golang, is an imperative
  197. programming language designed primarily for systems programming. Go is a
  198. compiled, statically typed language in the tradition of C and C++, but adds
  199. garbage collection, various safety features, and concurrent programming features
  200. in the style of communicating sequential processes (@dfn{CSP}).")
  201. (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
  202. (license license:bsd-3)))
  203. (define-public go-1.9
  204. (package
  205. (inherit go-1.4)
  206. (name "go")
  207. (version "1.9.7")
  208. (source
  209. (origin
  210. (method url-fetch)
  211. (uri (string-append "https://storage.googleapis.com/golang/"
  212. name version ".src.tar.gz"))
  213. (sha256
  214. (base32
  215. "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
  216. (arguments
  217. (substitute-keyword-arguments (package-arguments go-1.4)
  218. ((#:phases phases)
  219. `(modify-phases ,phases
  220. (replace 'prebuild
  221. ;; TODO: Most of this could be factorized with Go 1.4.
  222. (lambda* (#:key inputs outputs #:allow-other-keys)
  223. (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
  224. (ld (string-append (assoc-ref inputs "libc") "/lib"))
  225. (loader (car (find-files ld "^ld-linux.+")))
  226. (net-base (assoc-ref inputs "net-base"))
  227. (tzdata-path
  228. (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
  229. (output (assoc-ref outputs "out")))
  230. ;; Removing net/ tests, which fail when attempting to access
  231. ;; network resources not present in the build container.
  232. (for-each delete-file
  233. '("net/listen_test.go"
  234. "net/parse_test.go"
  235. "net/cgo_unix_test.go"))
  236. (substitute* "os/os_test.go"
  237. (("/usr/bin") (getcwd))
  238. (("/bin/pwd") (which "pwd"))
  239. (("/bin/sh") (which "sh")))
  240. ;; Add libgcc to runpath
  241. (substitute* "cmd/link/internal/ld/lib.go"
  242. (("!rpath.set") "true"))
  243. (substitute* "cmd/go/internal/work/build.go"
  244. (("cgoldflags := \\[\\]string\\{\\}")
  245. (string-append "cgoldflags := []string{"
  246. "\"-rpath=" gcclib "\""
  247. "}"))
  248. (("ldflags = setextld\\(ldflags, compiler\\)")
  249. (string-append
  250. "ldflags = setextld(ldflags, compiler)\n"
  251. "ldflags = append(ldflags, \"-r\")\n"
  252. "ldflags = append(ldflags, \"" gcclib "\")\n"))
  253. (("\"-lgcc_s\", ")
  254. (string-append
  255. "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
  256. ;; Disable failing tests: these tests attempt to access
  257. ;; commands or network resources which are neither available
  258. ;; nor necessary for the build to succeed.
  259. (for-each
  260. (match-lambda
  261. ((file regex)
  262. (substitute* file
  263. ((regex all before test_name)
  264. (string-append before "Disabled" test_name)))))
  265. '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
  266. ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
  267. ("os/os_test.go" "(.+)(TestHostname.+)")
  268. ("time/format_test.go" "(.+)(TestParseInSydney.+)")
  269. ("time/format_test.go" "(.+)(TestParseInLocation.+)")
  270. ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
  271. ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
  272. ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
  273. ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
  274. ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
  275. ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
  276. ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
  277. ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
  278. ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
  279. ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
  280. ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
  281. ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
  282. ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
  283. ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
  284. ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
  285. ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
  286. ("syscall/exec_linux_test.go"
  287. "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
  288. (substitute* "../misc/cgo/testsanitizers/test.bash"
  289. (("(CC=)cc" all var) (string-append var "gcc")))
  290. ;; fix shebang for testar script
  291. ;; note the target script is generated at build time.
  292. (substitute* "../misc/cgo/testcarchive/carchive_test.go"
  293. (("#!/usr/bin/env") (string-append "#!" (which "env"))))
  294. (substitute* "net/lookup_unix.go"
  295. (("/etc/protocols") (string-append net-base "/etc/protocols")))
  296. (substitute* "net/port_unix.go"
  297. (("/etc/services") (string-append net-base "/etc/services")))
  298. (substitute* "time/zoneinfo_unix.go"
  299. (("/usr/share/zoneinfo/") tzdata-path))
  300. (substitute* (find-files "cmd" "\\.go")
  301. (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
  302. #t)))
  303. (add-before 'build 'set-bootstrap-variables
  304. (lambda* (#:key outputs inputs #:allow-other-keys)
  305. ;; Tell the build system where to find the bootstrap Go.
  306. (let ((go (assoc-ref inputs "go"))
  307. (out (assoc-ref outputs "out")))
  308. (setenv "GOROOT_BOOTSTRAP" go)
  309. (setenv "PATH"
  310. (string-append out "/bin:"
  311. (dirname (getcwd)) "/bin:"
  312. (getenv "PATH")))
  313. ;; XXX: The following variables seem unrelated.
  314. (setenv "GOGC" "400")
  315. (setenv "GO_TEST_TIMEOUT_SCALE" "9999")
  316. #t)))
  317. (replace 'build
  318. (lambda* (#:key inputs outputs #:allow-other-keys)
  319. ;; FIXME: Some of the .a files are not bit-reproducible.
  320. (let* ((output (assoc-ref outputs "out")))
  321. (setenv "CC" (which "gcc"))
  322. (setenv "GOOS" "linux")
  323. (setenv "GOROOT" (dirname (getcwd)))
  324. (setenv "GOROOT_FINAL" output)
  325. (setenv "CGO_ENABLED" "1")
  326. (invoke "sh" "all.bash"))))
  327. (replace 'install
  328. ;; TODO: Most of this could be factorized with Go 1.4.
  329. (lambda* (#:key outputs #:allow-other-keys)
  330. (let* ((output (assoc-ref outputs "out"))
  331. (doc_out (assoc-ref outputs "doc"))
  332. (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
  333. (src (string-append
  334. (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
  335. (delete-file-recursively "../pkg/bootstrap")
  336. (mkdir-p src)
  337. (copy-recursively "../test" (string-append src "/test"))
  338. (delete-file-recursively "../test")
  339. (mkdir-p docs)
  340. (copy-recursively "../api" (string-append docs "/api"))
  341. (delete-file-recursively "../api")
  342. (copy-recursively "../doc" (string-append docs "/doc"))
  343. (delete-file-recursively "../doc")
  344. (for-each
  345. (lambda (file)
  346. (let* ((filein (string-append "../" file))
  347. (fileout (string-append docs "/" file)))
  348. (copy-file filein fileout)
  349. (delete-file filein)))
  350. ;; Note the slightly different file names compared to 1.4.
  351. '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
  352. "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
  353. (copy-recursively "../" output)
  354. #t)))))))
  355. (native-inputs
  356. `(("go" ,go-1.4)
  357. ,@(package-native-inputs go-1.4)))
  358. (supported-systems %supported-systems)))
  359. (define-public go-1.10
  360. (package
  361. (inherit go-1.9)
  362. (name "go")
  363. (version "1.10.3")
  364. (source
  365. (origin
  366. (method url-fetch)
  367. (uri (string-append "https://storage.googleapis.com/golang/"
  368. name version ".src.tar.gz"))
  369. (sha256
  370. (base32
  371. "1wjmw65nfkkzz084695gdgn13sbjcaafy2y5370d214pdk31qysn"))))
  372. (arguments
  373. (substitute-keyword-arguments (package-arguments go-1.9)
  374. ((#:phases phases)
  375. `(modify-phases ,phases
  376. (replace 'prebuild
  377. (lambda* (#:key inputs outputs #:allow-other-keys)
  378. (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
  379. (ld (string-append (assoc-ref inputs "libc") "/lib"))
  380. (loader (car (find-files ld "^ld-linux.+")))
  381. (net-base (assoc-ref inputs "net-base"))
  382. (tzdata-path
  383. (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
  384. (output (assoc-ref outputs "out")))
  385. ;; Removing net/ tests, which fail when attempting to access
  386. ;; network resources not present in the build container.
  387. (for-each delete-file
  388. '("net/listen_test.go"
  389. "net/parse_test.go"
  390. "net/cgo_unix_test.go"))
  391. (substitute* "os/os_test.go"
  392. (("/usr/bin") (getcwd))
  393. (("/bin/pwd") (which "pwd"))
  394. (("/bin/sh") (which "sh")))
  395. ;; Add libgcc to runpath
  396. (substitute* "cmd/link/internal/ld/lib.go"
  397. (("!rpath.set") "true"))
  398. (substitute* "cmd/go/internal/work/gccgo.go"
  399. (("cgoldflags := \\[\\]string\\{\\}")
  400. (string-append "cgoldflags := []string{"
  401. "\"-rpath=" gcclib "\""
  402. "}"))
  403. (("\"-lgcc_s\", ")
  404. (string-append
  405. "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
  406. (substitute* "cmd/go/internal/work/gc.go"
  407. (("ldflags = setextld\\(ldflags, compiler\\)")
  408. (string-append
  409. "ldflags = setextld(ldflags, compiler)\n"
  410. "ldflags = append(ldflags, \"-r\")\n"
  411. "ldflags = append(ldflags, \"" gcclib "\")\n")))
  412. ;; Disable failing tests: these tests attempt to access
  413. ;; commands or network resources which are neither available
  414. ;; nor necessary for the build to succeed.
  415. (for-each
  416. (match-lambda
  417. ((file regex)
  418. (substitute* file
  419. ((regex all before test_name)
  420. (string-append before "Disabled" test_name)))))
  421. '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
  422. ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
  423. ("os/os_test.go" "(.+)(TestHostname.+)")
  424. ("time/format_test.go" "(.+)(TestParseInSydney.+)")
  425. ("time/format_test.go" "(.+)(TestParseInLocation.+)")
  426. ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
  427. ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
  428. ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
  429. ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
  430. ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
  431. ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
  432. ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
  433. ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
  434. ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
  435. ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
  436. ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
  437. ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
  438. ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
  439. ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
  440. ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
  441. ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
  442. ("syscall/exec_linux_test.go"
  443. "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
  444. ;; fix shebang for testar script
  445. ;; note the target script is generated at build time.
  446. (substitute* "../misc/cgo/testcarchive/carchive_test.go"
  447. (("#!/usr/bin/env") (string-append "#!" (which "env"))))
  448. (substitute* "net/lookup_unix.go"
  449. (("/etc/protocols") (string-append net-base "/etc/protocols")))
  450. (substitute* "net/port_unix.go"
  451. (("/etc/services") (string-append net-base "/etc/services")))
  452. (substitute* "time/zoneinfo_unix.go"
  453. (("/usr/share/zoneinfo/") tzdata-path))
  454. (substitute* (find-files "cmd" "\\.go")
  455. (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
  456. #t)))
  457. (replace 'set-bootstrap-variables
  458. (lambda* (#:key outputs inputs #:allow-other-keys)
  459. ;; Tell the build system where to find the bootstrap Go.
  460. (let ((go (assoc-ref inputs "go")))
  461. (setenv "GOROOT_BOOTSTRAP" go)
  462. (setenv "GOGC" "400")
  463. ;; Go 1.10 tries to write to $HOME in a test
  464. (setenv "HOME" "/tmp")
  465. #t)))))))))
  466. (define-public go go-1.9)
  467. (define-public go-github-com-alsm-ioprogress
  468. (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
  469. (revision "0"))
  470. (package
  471. (name "go-github-com-alsm-ioprogress")
  472. (version (git-version "0.0.0" revision commit))
  473. (source (origin
  474. (method git-fetch)
  475. (uri (git-reference
  476. (url "https://github.com/alsm/ioprogress.git")
  477. (commit commit)))
  478. (file-name (git-file-name name version))
  479. (sha256
  480. (base32
  481. "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
  482. (build-system go-build-system)
  483. (arguments
  484. '(#:import-path "github.com/alsm/ioprogress"))
  485. (synopsis "Textual progress bars in Go")
  486. (description "@code{ioprogress} is a Go library with implementations of
  487. @code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
  488. case for these are for command-line applications but alternate progress bar
  489. writers can be supplied for alternate environments.")
  490. (home-page "https://github.com/alsm/ioprogress")
  491. (license license:expat))))
  492. (define-public go-github-com-aki237-nscjar
  493. (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
  494. (revision "0"))
  495. (package
  496. (name "go-github-com-aki237-nscjar")
  497. (version (git-version "0.0.0" revision commit))
  498. (source (origin
  499. (method git-fetch)
  500. (uri (git-reference
  501. (url "https://github.com/aki237/nscjar.git")
  502. (commit commit)))
  503. (file-name (git-file-name name version))
  504. (sha256
  505. (base32
  506. "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
  507. (build-system go-build-system)
  508. (arguments
  509. '(#:import-path "github.com/aki237/nscjar"))
  510. (synopsis "Handle Netscape / Mozilla cookies")
  511. (description "@code{nscjar} is a Go library used to parse and output
  512. Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
  513. jar struct to manage the cookies added to the cookie jar.")
  514. (home-page "https://github.com/aki237/nscjar")
  515. (license license:expat))))
  516. (define-public go-github.com-jessevdk-go-flags
  517. (package
  518. (name "go-github.com-jessevdk-go-flags")
  519. (version "1.3.0")
  520. (source (origin
  521. (method git-fetch)
  522. (uri (git-reference
  523. (url "https://github.com/jessevdk/go-flags")
  524. (commit (string-append "v" version))))
  525. (file-name (git-file-name name version))
  526. (sha256
  527. (base32
  528. "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
  529. (build-system go-build-system)
  530. (arguments
  531. '(#:import-path "github.com/jessevdk/go-flags"))
  532. (synopsis "Go library for parsing command line arguments")
  533. (description
  534. "The @code{flags} package provides a command line option parser. The
  535. functionality is similar to the go builtin @code{flag} package, but
  536. @code{flags} provides more options and uses reflection to provide a succinct
  537. way of specifying command line options.")
  538. (home-page "https://github.com/jessevdk/go-flags")
  539. (license license:bsd-3)))
  540. (define-public go-gopkg.in-tomb.v2
  541. (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
  542. (revision "0"))
  543. (package
  544. (name "go-gopkg.in-tomb.v2")
  545. (version (string-append "0.0.0-" revision "." (string-take commit 7)))
  546. (source (origin
  547. (method git-fetch)
  548. (uri (git-reference
  549. (url "https://github.com/go-tomb/tomb.git")
  550. (commit commit)))
  551. (file-name (string-append name "-" version ".tar.gz"))
  552. (sha256
  553. (base32
  554. "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
  555. (build-system go-build-system)
  556. (arguments
  557. '(#:import-path "gopkg.in/tomb.v2"))
  558. (synopsis "@code{tomb} handles clean goroutine tracking and termination")
  559. (description
  560. "The @code{tomb} package handles clean goroutine tracking and
  561. termination.")
  562. (home-page "https://gopkg.in/tomb.v2")
  563. (license license:bsd-3))))
  564. (define-public go-github.com-jtolds-gls
  565. (package
  566. (name "go-github.com-jtolds-gls")
  567. (version "4.2.1")
  568. (source (origin
  569. (method git-fetch)
  570. (uri (git-reference
  571. (url "https://github.com/jtolds/gls")
  572. (commit (string-append "v" version))))
  573. (file-name (git-file-name name version))
  574. (sha256
  575. (base32
  576. "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
  577. (build-system go-build-system)
  578. (arguments
  579. '(#:import-path "github.com/jtolds/gls"))
  580. (synopsis "@code{gls} provides Goroutine local storage")
  581. (description
  582. "The @code{gls} package provides a way to store a retrieve values
  583. per-goroutine.")
  584. (home-page "https://github.com/jtolds/gls")
  585. (license license:expat)))
  586. (define-public go-github-com-tj-docopt
  587. (package
  588. (name "go-github-com-tj-docopt")
  589. (version "1.0.0")
  590. (source (origin
  591. (method git-fetch)
  592. (uri (git-reference
  593. (url "https://github.com/tj/docopt")
  594. (commit (string-append "v" version))))
  595. (file-name (git-file-name name version))
  596. (sha256
  597. (base32
  598. "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
  599. (build-system go-build-system)
  600. (arguments
  601. '(#:import-path "github.com/tj/docopt"))
  602. (synopsis "Go implementation of docopt")
  603. (description
  604. "This library allows the user to define a command-line interface from a
  605. program's help message rather than specifying it programatically with
  606. command-line parsers.")
  607. (home-page "https://github.com/tj/docopt")
  608. (license license:expat)))
  609. (define-public go-github-com-hashicorp-hcl
  610. (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
  611. (revision "0"))
  612. (package
  613. (name "go-github-com-hashicorp-hcl")
  614. (version (git-version "0.0.0" revision commit))
  615. (source (origin
  616. (method git-fetch)
  617. (uri (git-reference
  618. (url "https://github.com/hashicorp/hcl")
  619. (commit commit)))
  620. (file-name (git-file-name name version))
  621. (sha256
  622. (base32
  623. "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
  624. (build-system go-build-system)
  625. (arguments
  626. '(#:tests? #f
  627. #:import-path "github.com/hashicorp/hcl"))
  628. (synopsis "Go implementation of HashiCorp Configuration Language")
  629. (description
  630. "This package contains the main implementation of the @acronym{HCL,
  631. HashiCorp Configuration Language}. HCL is designed to be a language for
  632. expressing configuration which is easy for both humans and machines to read.")
  633. (home-page "https://github.com/hashicorp/hcl")
  634. (license license:mpl2.0))))
  635. (define-public go-golang-org-x-crypto-bcrypt
  636. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  637. (revision "1"))
  638. (package
  639. (name "go-golang-org-x-crypto-bcrypt")
  640. (version (git-version "0.0.0" revision commit))
  641. (source (origin
  642. (method git-fetch)
  643. (uri (git-reference
  644. (url "https://go.googlesource.com/crypto")
  645. (commit commit)))
  646. (file-name (string-append "go.googlesource.com-crypto-"
  647. version "-checkout"))
  648. (sha256
  649. (base32
  650. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  651. (build-system go-build-system)
  652. (arguments
  653. `(#:import-path "golang.org/x/crypto/bcrypt"
  654. #:unpack-path "golang.org/x/crypto"
  655. #:phases
  656. (modify-phases %standard-phases
  657. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  658. (lambda* (#:key outputs #:allow-other-keys)
  659. (map (lambda (file)
  660. (make-file-writable file))
  661. (find-files
  662. (string-append (assoc-ref outputs "out")
  663. "/src/golang.org/x/crypto/ed25519/testdata")
  664. ".*\\.gz$"))
  665. #t)))))
  666. (synopsis "Bcrypt in Go")
  667. (description "This package provides a Go implementation of the bcrypt
  668. password hashing function.")
  669. (home-page "https://go.googlesource.com/crypto/")
  670. (license license:bsd-3))))
  671. (define-public go-golang-org-x-crypto-blowfish
  672. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  673. (revision "1"))
  674. (package
  675. (name "go-golang-org-x-crypto-blowfish")
  676. (version (git-version "0.0.0" revision commit))
  677. (source (origin
  678. (method git-fetch)
  679. (uri (git-reference
  680. (url "https://go.googlesource.com/crypto")
  681. (commit commit)))
  682. (file-name (string-append "go.googlesource.com-crypto-"
  683. version "-checkout"))
  684. (sha256
  685. (base32
  686. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  687. (build-system go-build-system)
  688. (arguments
  689. `(#:import-path "golang.org/x/crypto/blowfish"
  690. #:unpack-path "golang.org/x/crypto"
  691. #:phases
  692. (modify-phases %standard-phases
  693. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  694. (lambda* (#:key outputs #:allow-other-keys)
  695. (map (lambda (file)
  696. (make-file-writable file))
  697. (find-files
  698. (string-append (assoc-ref outputs "out")
  699. "/src/golang.org/x/crypto/ed25519/testdata")
  700. ".*\\.gz$"))
  701. #t)))))
  702. (synopsis "Blowfish in Go")
  703. (description "This package provides a Go implementation of the Blowfish
  704. symmetric-key block cipher.")
  705. (home-page "https://go.googlesource.com/crypto/")
  706. (license license:bsd-3))))
  707. (define-public go-golang-org-x-crypto-pbkdf2
  708. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  709. (revision "1"))
  710. (package
  711. (name "go-golang-org-x-crypto-pbkdf2")
  712. (version (git-version "0.0.0" revision commit))
  713. (source (origin
  714. (method git-fetch)
  715. (uri (git-reference
  716. (url "https://go.googlesource.com/crypto")
  717. (commit commit)))
  718. (file-name (string-append "go.googlesource.com-crypto-"
  719. version "-checkout"))
  720. (sha256
  721. (base32
  722. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  723. (build-system go-build-system)
  724. (arguments
  725. `(#:import-path "golang.org/x/crypto/pbkdf2"
  726. #:unpack-path "golang.org/x/crypto"
  727. #:phases
  728. (modify-phases %standard-phases
  729. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  730. (lambda* (#:key outputs #:allow-other-keys)
  731. (map (lambda (file)
  732. (make-file-writable file))
  733. (find-files
  734. (string-append (assoc-ref outputs "out")
  735. "/src/golang.org/x/crypto/ed25519/testdata")
  736. ".*\\.gz$"))
  737. #t)))))
  738. (synopsis "PBKDF2 in Go")
  739. (description "This package provides a Go implementation of the PBKDF2 key
  740. derivation function.")
  741. (home-page "https://go.googlesource.com/crypto/")
  742. (license license:bsd-3))))
  743. (define-public go-golang-org-x-crypto-tea
  744. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  745. (revision "1"))
  746. (package
  747. (name "go-golang-org-x-crypto-tea")
  748. (version (git-version "0.0.0" revision commit))
  749. (source (origin
  750. (method git-fetch)
  751. (uri (git-reference
  752. (url "https://go.googlesource.com/crypto")
  753. (commit commit)))
  754. (file-name (string-append "go.googlesource.com-crypto-"
  755. version "-checkout"))
  756. (sha256
  757. (base32
  758. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  759. (build-system go-build-system)
  760. (arguments
  761. `(#:import-path "golang.org/x/crypto/tea"
  762. #:unpack-path "golang.org/x/crypto"
  763. #:phases
  764. (modify-phases %standard-phases
  765. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  766. (lambda* (#:key outputs #:allow-other-keys)
  767. (map (lambda (file)
  768. (make-file-writable file))
  769. (find-files
  770. (string-append (assoc-ref outputs "out")
  771. "/src/golang.org/x/crypto/ed25519/testdata")
  772. ".*\\.gz$"))
  773. #t)))))
  774. (synopsis "Tiny Encryption Algorithm (TEA) in Go")
  775. (description "This packages a Go implementation of the Tiny Encryption
  776. Algorithm (TEA) block cipher.")
  777. (home-page "https://go.googlesource.com/crypto/")
  778. (license license:bsd-3))))
  779. (define-public go-golang-org-x-crypto-salsa20
  780. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  781. (revision "1"))
  782. (package
  783. (name "go-golang-org-x-crypto-salsa20")
  784. (version (git-version "0.0.0" revision commit))
  785. (source (origin
  786. (method git-fetch)
  787. (uri (git-reference
  788. (url "https://go.googlesource.com/crypto")
  789. (commit commit)))
  790. (file-name (string-append "go.googlesource.com-crypto-"
  791. version "-checkout"))
  792. (sha256
  793. (base32
  794. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  795. (build-system go-build-system)
  796. (arguments
  797. `(#:import-path "golang.org/x/crypto/salsa20"
  798. #:unpack-path "golang.org/x/crypto"
  799. #:phases
  800. (modify-phases %standard-phases
  801. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  802. (lambda* (#:key outputs #:allow-other-keys)
  803. (map (lambda (file)
  804. (make-file-writable file))
  805. (find-files
  806. (string-append (assoc-ref outputs "out")
  807. "/src/golang.org/x/crypto/ed25519/testdata")
  808. ".*\\.gz$"))
  809. #t)))))
  810. (synopsis "Salsa20 in Go")
  811. (description "This packages provides a Go implementation of the Salsa20
  812. stream cipher.")
  813. (home-page "https://go.googlesource.com/crypto/")
  814. (license license:bsd-3))))
  815. (define-public go-golang-org-x-crypto-cast5
  816. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  817. (revision "1"))
  818. (package
  819. (name "go-golang-org-x-crypto-cast5")
  820. (version (git-version "0.0.0" revision commit))
  821. (source (origin
  822. (method git-fetch)
  823. (uri (git-reference
  824. (url "https://go.googlesource.com/crypto")
  825. (commit commit)))
  826. (file-name (string-append "go.googlesource.com-crypto-"
  827. version "-checkout"))
  828. (sha256
  829. (base32
  830. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  831. (build-system go-build-system)
  832. (arguments
  833. `(#:import-path "golang.org/x/crypto/cast5"
  834. #:unpack-path "golang.org/x/crypto"
  835. #:phases
  836. (modify-phases %standard-phases
  837. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  838. (lambda* (#:key outputs #:allow-other-keys)
  839. (map (lambda (file)
  840. (make-file-writable file))
  841. (find-files
  842. (string-append (assoc-ref outputs "out")
  843. "/src/golang.org/x/crypto/ed25519/testdata")
  844. ".*\\.gz$"))
  845. #t)))))
  846. (synopsis "Cast5 in Go")
  847. (description "This packages provides a Go implementation of the Cast5
  848. symmetric-key block cipher.")
  849. (home-page "https://go.googlesource.com/crypto/")
  850. (license license:bsd-3))))
  851. (define-public go-golang-org-x-crypto-twofish
  852. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  853. (revision "1"))
  854. (package
  855. (name "go-golang-org-x-crypto-twofish")
  856. (version (git-version "0.0.0" revision commit))
  857. (source (origin
  858. (method git-fetch)
  859. (uri (git-reference
  860. (url "https://go.googlesource.com/crypto")
  861. (commit commit)))
  862. (file-name (string-append "go.googlesource.com-crypto-"
  863. version "-checkout"))
  864. (sha256
  865. (base32
  866. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  867. (build-system go-build-system)
  868. (arguments
  869. `(#:import-path "golang.org/x/crypto/twofish"
  870. #:unpack-path "golang.org/x/crypto"
  871. #:phases
  872. (modify-phases %standard-phases
  873. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  874. (lambda* (#:key outputs #:allow-other-keys)
  875. (map (lambda (file)
  876. (make-file-writable file))
  877. (find-files
  878. (string-append (assoc-ref outputs "out")
  879. "/src/golang.org/x/crypto/ed25519/testdata")
  880. ".*\\.gz$"))
  881. #t)))))
  882. (synopsis "Twofish in Go")
  883. (description "This packages provides a Go implementation of the Twofish
  884. symmetric-key block cipher.")
  885. (home-page "https://go.googlesource.com/crypto/")
  886. (license license:bsd-3))))
  887. (define-public go-golang-org-x-crypto-xtea
  888. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  889. (revision "1"))
  890. (package
  891. (name "go-golang-org-x-crypto-xtea")
  892. (version (git-version "0.0.0" revision commit))
  893. (source (origin
  894. (method git-fetch)
  895. (uri (git-reference
  896. (url "https://go.googlesource.com/crypto")
  897. (commit commit)))
  898. (file-name (string-append "go.googlesource.com-crypto-"
  899. version "-checkout"))
  900. (sha256
  901. (base32
  902. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  903. (build-system go-build-system)
  904. (arguments
  905. `(#:import-path "golang.org/x/crypto/xtea"
  906. #:unpack-path "golang.org/x/crypto"
  907. #:phases
  908. (modify-phases %standard-phases
  909. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  910. (lambda* (#:key outputs #:allow-other-keys)
  911. (map (lambda (file)
  912. (make-file-writable file))
  913. (find-files
  914. (string-append (assoc-ref outputs "out")
  915. "/src/golang.org/x/crypto/ed25519/testdata")
  916. ".*\\.gz$"))
  917. #t)))))
  918. (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
  919. (description "This package provides a Go implementation of the eXtended
  920. Tiny Encryption Algorithm (XTEA) block cipher.")
  921. (home-page "https://go.googlesource.com/crypto/")
  922. (license license:bsd-3))))
  923. (define-public go-golang-org-x-net-ipv4
  924. (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
  925. (revision "1"))
  926. (package
  927. (name "go-golang-org-x-net-ipv4")
  928. (version (git-version "0.0.0" revision commit))
  929. (source (origin
  930. (method git-fetch)
  931. (uri (git-reference
  932. (url "https://go.googlesource.com/net")
  933. (commit commit)))
  934. (file-name (git-file-name name version))
  935. (sha256
  936. (base32
  937. "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
  938. (build-system go-build-system)
  939. (arguments
  940. `(#:import-path "golang.org/x/net/ipv4"
  941. #:unpack-path "golang.org/x/net"))
  942. (synopsis "Go IPv4 support")
  943. (description "This package provides @code{ipv4}, which implements IP-level
  944. socket options for the Internet Protocol version 4.")
  945. (home-page "https://go.googlesource.com/net")
  946. (license license:bsd-3))))
  947. (define-public go-golang-org-x-net-bpf
  948. (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
  949. (revision "1"))
  950. (package
  951. (name "go-golang-org-x-net-bpf")
  952. (version (git-version "0.0.0" revision commit))
  953. (source (origin
  954. (method git-fetch)
  955. (uri (git-reference
  956. (url "https://go.googlesource.com/net")
  957. (commit commit)))
  958. (file-name (string-append "go.googlesource.com-net-"
  959. version "-checkout"))
  960. (sha256
  961. (base32
  962. "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
  963. (build-system go-build-system)
  964. (arguments
  965. `(#:import-path "golang.org/x/net/bpf"
  966. #:unpack-path "golang.org/x/net"))
  967. (synopsis "Berkeley Packet Filters (BPF) in Go")
  968. (description "This packages provides a Go implementation of the Berkeley
  969. Packet Filter (BPF) virtual machine.")
  970. (home-page "https://go.googlesource.com/net/")
  971. (license license:bsd-3))))
  972. (define-public go-golang-org-x-net-context
  973. (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
  974. (revision "1"))
  975. (package
  976. (name "go-golang-org-x-net-context")
  977. (version (git-version "0.0.0" revision commit))
  978. (source (origin
  979. (method git-fetch)
  980. (uri (git-reference
  981. (url "https://go.googlesource.com/net")
  982. (commit commit)))
  983. (file-name (string-append "go.googlesource.com-net-"
  984. version "-checkout"))
  985. (sha256
  986. (base32
  987. "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
  988. (build-system go-build-system)
  989. (arguments
  990. `(#:import-path "golang.org/x/net/context"
  991. #:unpack-path "golang.org/x/net"))
  992. (synopsis "Golang Context type")
  993. (description "This packages provides @code{context}, which defines the
  994. Context type, which carries deadlines, cancelation signals, and other
  995. request-scoped values across API boundaries and between processes.")
  996. (home-page "https://go.googlesource.com/net/")
  997. (license license:bsd-3))))
  998. (define-public go-golang-org-x-net-internal-iana
  999. (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
  1000. (revision "1"))
  1001. (package
  1002. (name "go-golang-org-x-net-internal-iana")
  1003. (version (git-version "0.0.0" revision commit))
  1004. (source (origin
  1005. (method git-fetch)
  1006. (uri (git-reference
  1007. (url "https://go.googlesource.com/net")
  1008. (commit commit)))
  1009. (file-name (string-append "go.googlesource.com-net-"
  1010. version "-checkout"))
  1011. (sha256
  1012. (base32
  1013. "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
  1014. (build-system go-build-system)
  1015. (arguments
  1016. `(#:import-path "golang.org/x/net/internal/iana"
  1017. #:unpack-path "golang.org/x/net"))
  1018. (synopsis "Go support for assigned numbers (IANA)")
  1019. (description "This packages provides @code{iana}, which provides protocol
  1020. number resources managed by the Internet Assigned Numbers Authority (IANA).")
  1021. (home-page "https://go.googlesource.com/net/")
  1022. (license license:bsd-3))))
  1023. (define-public go-golang-org-x-net-ipv6
  1024. (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
  1025. (revision "1"))
  1026. (package
  1027. (name "go-golang-org-x-net-ipv6")
  1028. (version (git-version "0.0.0" revision commit))
  1029. (source (origin
  1030. (method git-fetch)
  1031. (uri (git-reference
  1032. (url "https://go.googlesource.com/net")
  1033. (commit commit)))
  1034. (file-name (string-append "go.googlesource.com-net-"
  1035. version "-checkout"))
  1036. (sha256
  1037. (base32
  1038. "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
  1039. (build-system go-build-system)
  1040. (arguments
  1041. `(#:import-path "golang.org/x/net/ipv6"
  1042. #:unpack-path "golang.org/x/net"))
  1043. (synopsis "Go IPv6 support")
  1044. (description "This packages provides @code{ipv6}, which implements
  1045. IP-level socket options for the Internet Protocol version 6.")
  1046. (home-page "https://go.googlesource.com/net")
  1047. (license license:bsd-3))))
  1048. (define-public go-golang-org-x-net-proxy
  1049. (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
  1050. (revision "1"))
  1051. (package
  1052. (name "go-golang-org-x-net-proxy")
  1053. (version (git-version "0.0.0" revision commit))
  1054. (source (origin
  1055. (method git-fetch)
  1056. (uri (git-reference
  1057. (url "https://go.googlesource.com/net")
  1058. (commit commit)))
  1059. (file-name (string-append "go.googlesource.com-net-"
  1060. version "-checkout"))
  1061. (sha256
  1062. (base32
  1063. "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
  1064. (build-system go-build-system)
  1065. (arguments
  1066. `(#:import-path "golang.org/x/net/proxy"
  1067. #:unpack-path "golang.org/x/net/"))
  1068. (synopsis "Go support for network proxies")
  1069. (description "This packages provides @code{proxy}, which provides support
  1070. for a variety of protocols to proxy network data.")
  1071. (home-page "https://go.googlesource.com/net")
  1072. (license license:bsd-3))))
  1073. (define-public go-golang-org-x-sys-unix
  1074. (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
  1075. (revision "1"))
  1076. (package
  1077. (name "go-golang-org-x-sys-unix")
  1078. (version (git-version "0.0.0" revision commit))
  1079. (source (origin
  1080. (method git-fetch)
  1081. (uri (git-reference
  1082. (url "https://go.googlesource.com/sys")
  1083. (commit commit)))
  1084. (file-name (git-file-name name version))
  1085. (sha256
  1086. (base32
  1087. "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
  1088. (build-system go-build-system)
  1089. (arguments
  1090. `(#:import-path "golang.org/x/sys/unix"
  1091. #:unpack-path "golang.org/x/sys"
  1092. #:phases
  1093. (modify-phases %standard-phases
  1094. (add-after 'unpack 'patch-tests
  1095. (lambda _
  1096. (pk (getcwd))
  1097. (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
  1098. (("/usr/bin") "/tmp"))
  1099. #t)))))
  1100. (synopsis "Go support for low-level system interaction")
  1101. (description "This package provides @code{unix}, which offers Go support
  1102. for low-level interaction with the operating system.")
  1103. (home-page "https://go.googlesource.com/sys")
  1104. (license license:bsd-3))))
  1105. (define-public go-golang-org-x-text-transform
  1106. (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
  1107. (revision "1"))
  1108. (package
  1109. (name "go-golang-org-x-text-transform")
  1110. (version (git-version "0.0.0" revision commit))
  1111. (source (origin
  1112. (method git-fetch)
  1113. (uri (git-reference
  1114. (url "https://go.googlesource.com/text")
  1115. (commit commit)))
  1116. (file-name (string-append "go.googlesource.com-text-"
  1117. version "-checkout"))
  1118. (sha256
  1119. (base32
  1120. "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
  1121. (build-system go-build-system)
  1122. (arguments
  1123. `(#:import-path "golang.org/x/text/transform"
  1124. #:unpack-path "golang.org/x/text"))
  1125. (synopsis "Go text transformation")
  1126. (description "This package provides @code{transform}, which provides
  1127. reader and writer wrappers that transform the bytes passing through. Example
  1128. transformations provided by other packages include normalization and conversion
  1129. between character sets.")
  1130. (home-page "https://go.googlesource.com/text")
  1131. (license license:bsd-3))))
  1132. (define-public go-golang-org-x-text-unicode-norm
  1133. (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
  1134. (revision "1"))
  1135. (package
  1136. (name "go-golang-org-x-text-unicode-norm")
  1137. (version (git-version "0.0.0" revision commit))
  1138. (source (origin
  1139. (method git-fetch)
  1140. (uri (git-reference
  1141. (url "https://go.googlesource.com/text")
  1142. (commit commit)))
  1143. (file-name (string-append "go.googlesource.com-text-"
  1144. version "-checkout"))
  1145. (sha256
  1146. (base32
  1147. "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
  1148. (build-system go-build-system)
  1149. (arguments
  1150. `(#:import-path "golang.org/x/text/unicode/norm"
  1151. #:unpack-path "golang.org/x/text"))
  1152. (synopsis "Unicode normalization in Go")
  1153. (description "This package provides @code{norm}, which contains types and
  1154. functions for normalizing Unicode strings.")
  1155. (home-page "https://go.googlesource.com/text")
  1156. (license license:bsd-3))))
  1157. (define-public go-golang-org-x-time-rate
  1158. (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
  1159. (revision "1"))
  1160. (package
  1161. (name "go-golang-org-x-time-rate")
  1162. (version (git-version "0.0.0" revision commit))
  1163. (source (origin
  1164. (method git-fetch)
  1165. (uri (git-reference
  1166. (url "https://go.googlesource.com/time")
  1167. (commit commit)))
  1168. (file-name (git-file-name name version))
  1169. (sha256
  1170. (base32
  1171. "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
  1172. (build-system go-build-system)
  1173. (arguments
  1174. `(#:import-path "golang.org/x/time/rate"
  1175. #:unpack-path "golang.org/x/time"))
  1176. (propagated-inputs
  1177. `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
  1178. (synopsis "Rate limiting in Go")
  1179. (description "This package provides @{rate}, which implements rate
  1180. limiting in Go.")
  1181. (home-page "https://godoc.org/golang.org/x/time/rate")
  1182. (license license:bsd-3))))
  1183. (define-public go-golang-org-x-crypto-ssh-terminal
  1184. (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
  1185. (revision "1"))
  1186. (package
  1187. (name "go-golang-org-x-crypto-ssh-terminal")
  1188. (version (git-version "0.0.0" revision commit))
  1189. (source (origin
  1190. (method git-fetch)
  1191. (uri (git-reference
  1192. (url "https://go.googlesource.com/crypto")
  1193. (commit commit)))
  1194. (file-name (string-append "go.googlesource.com-crypto-"
  1195. version "-checkout"))
  1196. (sha256
  1197. (base32
  1198. "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
  1199. (build-system go-build-system)
  1200. (inputs
  1201. `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
  1202. (arguments
  1203. `(#:import-path "golang.org/x/crypto/ssh/terminal"
  1204. #:unpack-path "golang.org/x/crypto"
  1205. #:phases
  1206. (modify-phases %standard-phases
  1207. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  1208. (lambda* (#:key outputs #:allow-other-keys)
  1209. (map (lambda (file)
  1210. (make-file-writable file))
  1211. (find-files
  1212. (string-append (assoc-ref outputs "out")
  1213. "/src/golang.org/x/crypto/ed25519/testdata")
  1214. ".*\\.gz$"))
  1215. #t)))))
  1216. (synopsis "Terminal functions for Go")
  1217. (description "This package provides @{terminal}, which implements
  1218. support functions for dealing with terminals, as commonly found on UNIX
  1219. systems.")
  1220. (home-page "https://go.googlesource.com/crypto/")
  1221. (license license:bsd-3))))
  1222. (define-public go-github-com-burntsushi-toml
  1223. (let ((commit
  1224. "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
  1225. (revision "0"))
  1226. (package
  1227. (name "go-github-com-burntsushi-toml")
  1228. (version (git-version "0.0.0" revision commit))
  1229. (source
  1230. (origin
  1231. (method git-fetch)
  1232. (uri (git-reference
  1233. (url "https://github.com/BurntSushi/toml.git")
  1234. (commit commit)))
  1235. (file-name (git-file-name name version))
  1236. (sha256
  1237. (base32
  1238. "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
  1239. (build-system go-build-system)
  1240. (arguments
  1241. '(#:import-path "github.com/BurntSushi/toml"))
  1242. (home-page "https://github.com/BurntSushi/toml")
  1243. (synopsis "Toml parser and encoder for Go")
  1244. (description "This package is toml parser and encoder for Go. The
  1245. interface is similar to Go's standard library @code{json} and @code{xml}
  1246. package.")
  1247. (license license:expat))))
  1248. (define-public go-github-com-getsentry-raven-go
  1249. (let ((commit
  1250. "dffeb57df75d6a911f00232155194e43d79d38d7")
  1251. (revision "0"))
  1252. (package
  1253. (name "go-github-com-getsentry-raven-go")
  1254. (version (git-version "0.0.0" revision commit))
  1255. (source
  1256. (origin
  1257. (method git-fetch)
  1258. (uri (git-reference
  1259. (url "https://github.com/getsentry/raven-go.git")
  1260. (commit commit)))
  1261. (file-name (git-file-name name version))
  1262. (sha256
  1263. (base32
  1264. "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
  1265. (build-system go-build-system)
  1266. (arguments
  1267. '(#:import-path "github.com/getsentry/raven-go"))
  1268. (home-page
  1269. "https://github.com/getsentry/raven-go")
  1270. (synopsis "Sentry client in Go")
  1271. (description "This package is Go client API for the Sentry event/error
  1272. logging system.")
  1273. (license license:bsd-3))))
  1274. (define-public go-github-com-hashicorp-go-version
  1275. (let ((commit
  1276. "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
  1277. (revision "0"))
  1278. (package
  1279. (name "go-github-com-hashicorp-go-version")
  1280. (version (git-version "0.0.0" revision commit))
  1281. (source
  1282. (origin
  1283. (method git-fetch)
  1284. (uri (git-reference
  1285. (url "https://github.com/hashicorp/go-version.git")
  1286. (commit commit)))
  1287. (file-name (git-file-name name version))
  1288. (sha256
  1289. (base32
  1290. "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
  1291. (build-system go-build-system)
  1292. (arguments
  1293. '(#:import-path "github.com/hashicorp/go-version"))
  1294. (home-page
  1295. "https://github.com/hashicorp/go-version")
  1296. (synopsis "Go library for parsing and verifying versions and version
  1297. constraints")
  1298. (description "This package is a library for parsing versions and version
  1299. constraints, and verifying versions against a set of constraints. It can sort
  1300. a collection of versions properly, handles prerelease/beta versions, can
  1301. increment versions.")
  1302. (license license:mpl2.0))))
  1303. (define-public go-github-com-jpillora-backoff
  1304. (let ((commit
  1305. "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
  1306. (revision "0"))
  1307. (package
  1308. (name "go-github-com-jpillora-backoff")
  1309. (version (git-version "0.0.0" revision commit))
  1310. (source
  1311. (origin
  1312. (method git-fetch)
  1313. (uri (git-reference
  1314. (url "https://github.com/jpillora/backoff.git")
  1315. (commit commit)))
  1316. (file-name (git-file-name name version))
  1317. (sha256
  1318. (base32
  1319. "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
  1320. (build-system go-build-system)
  1321. (arguments
  1322. '(#:import-path "github.com/jpillora/backoff"))
  1323. (home-page "https://github.com/jpillora/backoff")
  1324. (synopsis "Simple exponential backoff counter in Go")
  1325. (description "This package is a simple exponential backoff counter in
  1326. Go.")
  1327. (license license:expat))))
  1328. (define-public go-github-com-stretchr-testify
  1329. (let ((commit
  1330. "b1f989447a57594c728884458a39abf3a73447f7")
  1331. (revision "0"))
  1332. (package
  1333. (name "go-github-com-stretchr-testify")
  1334. (version (git-version "1.1.4" revision commit))
  1335. (source
  1336. (origin
  1337. (method git-fetch)
  1338. (uri (git-reference
  1339. (url "https://github.com/stretchr/testify.git")
  1340. (commit commit)))
  1341. (file-name (git-file-name name version))
  1342. (sha256
  1343. (base32
  1344. "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
  1345. (build-system go-build-system)
  1346. (arguments
  1347. '(#:import-path "github.com/stretchr/testify"))
  1348. (home-page "https://github.com/stretchr/testify")
  1349. (synopsis "Go helper library for tests and invariant checking")
  1350. (description "This package provide many tools for testifying that your
  1351. code will behave as you intend.
  1352. Features include:
  1353. @itemize
  1354. @item Easy assertions
  1355. @item Mocking
  1356. @item HTTP response trapping
  1357. @item Testing suite interfaces and functions.
  1358. @end itemize")
  1359. (license license:expat))))
  1360. (define-public go-github-com-tevino-abool
  1361. (let ((commit
  1362. "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
  1363. (revision "0"))
  1364. (package
  1365. (name "go-github-com-tevino-abool")
  1366. (version (git-version "0.0.0" revision commit))
  1367. (source
  1368. (origin
  1369. (method git-fetch)
  1370. (uri (git-reference
  1371. (url "https://github.com/tevino/abool.git")
  1372. (commit commit)))
  1373. (file-name (git-file-name name version))
  1374. (sha256
  1375. (base32
  1376. "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
  1377. (build-system go-build-system)
  1378. (arguments
  1379. '(#:import-path "github.com/tevino/abool"))
  1380. (home-page "https://github.com/tevino/abool")
  1381. (synopsis "Atomic boolean library for Go code")
  1382. (description "This package is atomic boolean library for Go code,
  1383. optimized for performance yet simple to use.")
  1384. (license license:expat))))
  1385. (define-public go-github-com-urfave-cli
  1386. (let ((commit "cfb38830724cc34fedffe9a2a29fb54fa9169cd1")
  1387. (revision "0"))
  1388. (package
  1389. (name "go-github-com-urfave-cli")
  1390. (version (git-version "0.0.0" revision commit))
  1391. (source
  1392. (origin
  1393. (method git-fetch)
  1394. (uri (git-reference
  1395. (url "https://github.com/urfave/cli.git")
  1396. (commit commit)))
  1397. (file-name (git-file-name name version))
  1398. (sha256
  1399. (base32
  1400. "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj"))))
  1401. (build-system go-build-system)
  1402. (arguments
  1403. '(#:import-path "github.com/urfave/cli"))
  1404. (home-page "https://github.com/urfave/cli")
  1405. (synopsis "Library for building command-line interfaces in Go")
  1406. (description "This package provides a library for building command-line
  1407. interfaces in Go.")
  1408. (license license:expat))))
  1409. (define-public go-github-com-blang-semver
  1410. (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
  1411. (revision "0"))
  1412. (package
  1413. (name "go-github-com-blang-semver")
  1414. (version (git-version "0.0.0" revision commit))
  1415. (source
  1416. (origin
  1417. (method git-fetch)
  1418. (uri (git-reference
  1419. (url "https://github.com/blang/semver.git")
  1420. (commit commit)))
  1421. (file-name (git-file-name name version))
  1422. (sha256
  1423. (base32
  1424. "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
  1425. (build-system go-build-system)
  1426. (arguments
  1427. '(#:import-path "github.com/blang/semver"))
  1428. (home-page "https://github.com/blang/semver")
  1429. (synopsis "Semantic versioning library written in Go")
  1430. (description "Semver is a library for Semantic versioning written in Go.")
  1431. (license license:expat))))
  1432. (define-public go-github-com-emicklei-go-restful
  1433. (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
  1434. (revision "0"))
  1435. (package
  1436. (name "go-github-com-emicklei-go-restful")
  1437. (version (git-version "0.0.0" revision commit))
  1438. (source
  1439. (origin
  1440. (method git-fetch)
  1441. (uri (git-reference
  1442. (url "https://github.com/emicklei/go-restful.git")
  1443. (commit commit)))
  1444. (file-name (git-file-name name version))
  1445. (sha256
  1446. (base32
  1447. "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
  1448. (build-system go-build-system)
  1449. (arguments
  1450. '(#:import-path "github.com/emicklei/go-restful"))
  1451. (home-page "https://github.com/emicklei/go-restful")
  1452. (synopsis "Build REST-style web services using Go")
  1453. (description "This package provides @code{go-restful}, which helps
  1454. developers to use @code{http} methods explicitly and in a way that's consistent
  1455. with the HTTP protocol definition.")
  1456. (license license:expat))))
  1457. (define-public go-github-com-google-cadvisor
  1458. (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
  1459. (revision "0"))
  1460. (package
  1461. (name "go-github-com-google-cadvisor")
  1462. (version (git-version "0.0.0" revision commit))
  1463. (source
  1464. (origin
  1465. (method git-fetch)
  1466. (uri (git-reference
  1467. (url "https://github.com/google/cadvisor.git")
  1468. (commit commit)))
  1469. (file-name (git-file-name name version))
  1470. (sha256
  1471. (base32
  1472. "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
  1473. (build-system go-build-system)
  1474. (arguments
  1475. '(#:import-path "github.com/google/cadvisor"))
  1476. (home-page "https://github.com/google/cadvisor")
  1477. (synopsis "Analyze resource usage of running containers")
  1478. (description "The package provides @code{cadvisor}, which provides
  1479. information about the resource usage and preformance characteristics of running
  1480. containers.")
  1481. (license license:asl2.0))))
  1482. (define-public go-github-com-google-gofuzz
  1483. (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
  1484. (revision "0"))
  1485. (package
  1486. (name "go-github-com-google-gofuzz")
  1487. (version (git-version "0.0.0" revision commit))
  1488. (source
  1489. (origin
  1490. (method git-fetch)
  1491. (uri (git-reference
  1492. (url "https://github.com/google/gofuzz.git")
  1493. (commit commit)))
  1494. (file-name (git-file-name name version))
  1495. (sha256
  1496. (base32
  1497. "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
  1498. (build-system go-build-system)
  1499. (arguments
  1500. '(#:import-path "github.com/google/gofuzz"))
  1501. (home-page "https://github.com/google/gofuzz")
  1502. (synopsis "Fuzz testing library for Go")
  1503. (description "Gofuzz is a library for populationg Go objects with random
  1504. values for the purpose of fuzz testing.")
  1505. (license license:asl2.0))))
  1506. (define-public go-github-com-gorilla-context
  1507. (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
  1508. (revision "0"))
  1509. (package
  1510. (name "go-github-com-gorilla-context")
  1511. (version (git-version "0.0.0" revision commit))
  1512. (source
  1513. (origin
  1514. (method git-fetch)
  1515. (uri (git-reference
  1516. (url "https://github.com/gorilla/context.git")
  1517. (commit commit)))
  1518. (file-name (git-file-name name version))
  1519. (sha256
  1520. (base32
  1521. "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
  1522. (build-system go-build-system)
  1523. (arguments
  1524. '(#:import-path "github.com/gorilla/context"))
  1525. (home-page "https://github.com/gorilla/context")
  1526. (synopsis "Go registry for request variables")
  1527. (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
  1528. (license license:bsd-3))))
  1529. (define-public go-github-com-gorilla-mux
  1530. (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
  1531. (revision "0"))
  1532. (package
  1533. (name "go-github-com-gorilla-mux")
  1534. (version (git-version "0.0.0" revision commit))
  1535. (source
  1536. (origin
  1537. (method git-fetch)
  1538. (uri (git-reference
  1539. (url "https://github.com/gorilla/mux.git")
  1540. (commit commit)))
  1541. (file-name (git-file-name name version))
  1542. (sha256
  1543. (base32
  1544. "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
  1545. (build-system go-build-system)
  1546. (arguments
  1547. '(#:import-path "github.com/gorilla/mux"))
  1548. (home-page "https://github.com/gorilla/mux")
  1549. (synopsis "URL router and dispatcher for Go")
  1550. (description
  1551. "Gorilla/Mux implements a request router and dispatcher for matching
  1552. incoming requests with their respective handler.")
  1553. (license license:bsd-3))))
  1554. (define-public go-github-com-jonboulle-clockwork
  1555. (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
  1556. (revision "0"))
  1557. (package
  1558. (name "go-github-com-jonboulle-clockwork")
  1559. (version (git-version "0.0.0" revision commit))
  1560. (source
  1561. (origin
  1562. (method git-fetch)
  1563. (uri (git-reference
  1564. (url "https://github.com/jonboulle/clockwork.git")
  1565. (commit commit)))
  1566. (file-name (git-file-name name version))
  1567. (sha256
  1568. (base32
  1569. "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
  1570. (build-system go-build-system)
  1571. (arguments
  1572. '(#:import-path "github.com/jonboulle/clockwork"))
  1573. (home-page "https://github.com/jonboulle/clockwork")
  1574. (synopsis "Fake clock library for Go")
  1575. (description
  1576. "Replace uses of the @code{time} package with the
  1577. @code{clockwork.Clock} interface instead.")
  1578. (license license:asl2.0))))
  1579. (define-public go-github-com-spf13-pflag
  1580. (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
  1581. (revision "0"))
  1582. (package
  1583. (name "go-github-com-spf13-pflag")
  1584. (version (git-version "0.0.0" revision commit))
  1585. (source
  1586. (origin
  1587. (method git-fetch)
  1588. (uri (git-reference
  1589. (url "https://github.com/spf13/pflag.git")
  1590. (commit commit)))
  1591. (file-name (git-file-name name version))
  1592. (sha256
  1593. (base32
  1594. "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
  1595. (build-system go-build-system)
  1596. (arguments
  1597. '(#:import-path "github.com/spf13/pflag"))
  1598. (home-page "https://github.com/spf13/pflag")
  1599. (synopsis "Replacement for Go's @code{flag} package")
  1600. (description
  1601. "Pflag is library to replace Go's @code{flag} package. It implements
  1602. POSIX/GNU-style command-line options with double hyphens. It is is compatible
  1603. with the
  1604. @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
  1605. GNU extensions} to the POSIX recommendations for command-line options.")
  1606. (license license:bsd-3))))
  1607. (define-public go-github-com-sirupsen-logrus
  1608. (package
  1609. (name "go-github-com-sirupsen-logrus")
  1610. (version "1.0.5")
  1611. (source
  1612. (origin
  1613. (method git-fetch)
  1614. (uri (git-reference
  1615. (url "https://github.com/sirupsen/logrus.git")
  1616. (commit (string-append "v" version))))
  1617. (sha256
  1618. (base32
  1619. "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
  1620. (build-system go-build-system)
  1621. (native-inputs
  1622. `(("go-golang-org-x-crypto-ssh-terminal"
  1623. ,go-golang-org-x-crypto-ssh-terminal)
  1624. ("go-github-com-stretchr-testify"
  1625. ,go-github-com-stretchr-testify)
  1626. ("go-golang-org-x-sys-unix"
  1627. ,go-golang-org-x-sys-unix)))
  1628. (arguments
  1629. '(#:tests? #f ;FIXME missing dependencies
  1630. #:import-path "github.com/sirupsen/logrus"))
  1631. (home-page "https://github.com/sirupsen/logrus")
  1632. (synopsis "Structured, pluggable logging for Go")
  1633. (description "Logrus is a structured logger for Go, completely API
  1634. compatible with the standard library logger.")
  1635. (license license:expat)))
  1636. (define-public go-github-com-kardianos-osext
  1637. (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
  1638. (revision "1"))
  1639. (package
  1640. (name "go-github-com-kardianos-osext")
  1641. (version (git-version "0.0.0" revision commit))
  1642. (source (origin
  1643. (method git-fetch)
  1644. (uri (git-reference
  1645. (url "https://github.com/kardianos/osext")
  1646. (commit commit)))
  1647. (file-name (git-file-name name version))
  1648. (sha256
  1649. (base32
  1650. "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
  1651. (build-system go-build-system)
  1652. (arguments
  1653. `(#:import-path "github.com/kardianos/osext"
  1654. ;; The tests are flaky:
  1655. ;; <https://github.com/kardianos/osext/issues/21>
  1656. #:tests? #f))
  1657. (synopsis "Find the running executable")
  1658. (description "Osext provides a method for finding the current executable
  1659. file that is running. This can be used for upgrading the current executable or
  1660. finding resources located relative to the executable file.")
  1661. (home-page "https://github.com/kardianos/osext")
  1662. (license license:bsd-3))))
  1663. (define-public go-github-com-ayufan-golang-kardianos-service
  1664. (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
  1665. (revision "0"))
  1666. (package
  1667. (name "go-github-com-ayufan-golang-kardianos-service")
  1668. (version (git-version "0.0.0" revision commit))
  1669. (source
  1670. (origin
  1671. (method git-fetch)
  1672. (uri (git-reference
  1673. (url
  1674. "https://github.com/ayufan/golang-kardianos-service.git")
  1675. (commit commit)))
  1676. (file-name (git-file-name name version))
  1677. (sha256
  1678. (base32
  1679. "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
  1680. (build-system go-build-system)
  1681. (native-inputs
  1682. `(("go-github-com-kardianos-osext"
  1683. ,go-github-com-kardianos-osext)))
  1684. (arguments
  1685. '(#:tests? #f ;FIXME tests fail: Service is not running.
  1686. #:import-path "github.com/ayufan/golang-kardianos-service"))
  1687. (home-page "https://github.com/ayufan/golang-kardianos-service")
  1688. (synopsis "Go interface to a variety of service supervisors")
  1689. (description "This package provides @code{service}, a Go module that can
  1690. run programs as a service using a variety of supervisors, including systemd,
  1691. SysVinit, and more.")
  1692. (license license:zlib))))
  1693. (define-public go-github-com-docker-distribution
  1694. (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
  1695. (revision "0"))
  1696. (package
  1697. (name "go-github-com-docker-distribution")
  1698. (version (git-version "0.0.0" revision commit))
  1699. (source
  1700. ;; FIXME: This bundles many things, see
  1701. ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
  1702. (origin
  1703. (method git-fetch)
  1704. (uri (git-reference
  1705. (url "https://github.com/docker/distribution")
  1706. (commit commit)))
  1707. (file-name (git-file-name name version))
  1708. (sha256
  1709. (base32
  1710. "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
  1711. (build-system go-build-system)
  1712. (native-inputs
  1713. `(("go-golang-org-x-sys-unix"
  1714. ,go-golang-org-x-sys-unix)
  1715. ("go-github-com-sirupsen-logrus"
  1716. ,go-github-com-sirupsen-logrus)
  1717. ("go-golang-org-x-crypto-ssh-terminal"
  1718. ,go-golang-org-x-crypto-ssh-terminal)))
  1719. (arguments
  1720. '(#:import-path "github.com/docker/distribution"
  1721. #:phases
  1722. (modify-phases %standard-phases
  1723. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  1724. (lambda* (#:key outputs #:allow-other-keys)
  1725. (map (lambda (file)
  1726. (make-file-writable file))
  1727. (find-files
  1728. (assoc-ref outputs "out")
  1729. ".*\\.gz$"))
  1730. #t)))))
  1731. (home-page
  1732. "https://github.com/docker/distribution")
  1733. (synopsis "This package is Docker toolset to pack, ship, store, and
  1734. deliver content")
  1735. (description "Docker Distribution is Docker toolset to pack, ship,
  1736. store, and deliver content. It's containe Docker Registry 2.0 and libraries
  1737. to interacting with distribution components.")
  1738. (license license:asl2.0))))
  1739. (define-public go-github-com-docker-go-connections
  1740. (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
  1741. (revision "0"))
  1742. (package
  1743. (name "go-github-com-docker-go-connections")
  1744. (version (git-version "0.0.0" revision commit))
  1745. (source
  1746. (origin
  1747. (method git-fetch)
  1748. (uri (git-reference
  1749. (url "https://github.com/docker/go-connections.git")
  1750. (commit commit)))
  1751. (file-name (git-file-name name version))
  1752. (sha256
  1753. (base32
  1754. "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
  1755. (build-system go-build-system)
  1756. (arguments
  1757. '(#:import-path "github.com/docker/go-connections"))
  1758. (home-page "https://github.com/docker/go-connections")
  1759. (synopsis "Networking library for Go")
  1760. (description
  1761. "This packages provides a library to work with network connections in
  1762. the Go language. In particular it provides tools to deal with network address
  1763. translation (NAT), proxies, sockets, and transport layer security (TLS).")
  1764. (license license:asl2.0))))
  1765. (define-public go-github-com-docker-machine
  1766. (let ((commit "7b7a141da84480342357c51838be142bf183b095")
  1767. (revision "0"))
  1768. (package
  1769. (name "go-github-com-docker-machine")
  1770. (version (git-version "0.0.0" revision commit))
  1771. (source
  1772. (origin
  1773. (method git-fetch)
  1774. (uri (git-reference
  1775. (url "https://github.com/docker/machine.git")
  1776. (commit commit)))
  1777. (file-name (git-file-name name version))
  1778. (sha256
  1779. (base32
  1780. "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
  1781. (build-system go-build-system)
  1782. (arguments
  1783. '(#:import-path "github.com/docker/machine"))
  1784. (home-page "https://github.com/docker/machine")
  1785. (synopsis "Machine management for a container-centric world")
  1786. (description
  1787. "@dfn{Machine} lets you create Docker hosts on your computer, on
  1788. hosting providers, and inside your data center. It creates servers, installs
  1789. Docker on them, then configures the Docker client to talk to them.")
  1790. (license license:asl2.0))))
  1791. (define-public go-github-com-gorhill-cronexpr
  1792. (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
  1793. (revision "0"))
  1794. (package
  1795. (name "go-github-com-gorhill-cronexpr")
  1796. (version (git-version "0.0.0" revision commit))
  1797. (source
  1798. (origin
  1799. (method git-fetch)
  1800. (uri (git-reference
  1801. (url "https://github.com/gorhill/cronexpr.git")
  1802. (commit commit)))
  1803. (file-name (git-file-name name version))
  1804. (sha256
  1805. (base32
  1806. "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
  1807. (build-system go-build-system)
  1808. (arguments
  1809. '(#:import-path "github.com/gorhill/cronexpr"))
  1810. (home-page "https://github.com/gorhill/cronexpr")
  1811. (synopsis "Cron expression parser in the Go language")
  1812. (description
  1813. "This package provides a cron expression parser in the Go language.
  1814. Given a cron expression and a time stamp, you can get the next time stamp
  1815. which satisfies the cron expression.")
  1816. (license (list license:gpl3+
  1817. license:asl2.0)))))
  1818. (define-public go-gopkg-in-check-v1
  1819. (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
  1820. (revision "0"))
  1821. (package
  1822. (name "go-gopkg-in-check-v1")
  1823. (version (git-version "0.0.0" revision commit))
  1824. (source
  1825. (origin
  1826. (method git-fetch)
  1827. (uri (git-reference
  1828. (url "https://github.com/go-check/check")
  1829. (commit commit)))
  1830. (file-name (git-file-name name version))
  1831. (sha256
  1832. (base32
  1833. "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
  1834. (build-system go-build-system)
  1835. (arguments
  1836. '(#:import-path "gopkg.in/check.v1"))
  1837. (home-page "https://gopkg.in/check.v1")
  1838. (synopsis "Test framework for the Go language")
  1839. (description
  1840. "This package provides a test library for the Go language.")
  1841. (license license:asl2.0))))
  1842. (define-public go-gopkg-in-yaml-v2
  1843. (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
  1844. (revision "0"))
  1845. (package
  1846. (name "go-gopkg-in-yaml-v2")
  1847. (version (git-version "0.0.0" revision commit))
  1848. (source
  1849. (origin
  1850. (method git-fetch)
  1851. (uri (git-reference
  1852. (url "https://gopkg.in/yaml.v2.git")
  1853. (commit commit)))
  1854. (file-name (git-file-name name version))
  1855. (sha256
  1856. (base32
  1857. "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
  1858. (build-system go-build-system)
  1859. (arguments
  1860. '(#:import-path "gopkg.in/yaml.v2"))
  1861. (native-inputs
  1862. `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
  1863. (home-page "https://gopkg.in/yaml.v2")
  1864. (synopsis "YAML reader and writer for the Go language")
  1865. (description
  1866. "This package provides a Go library for encode and decode YAML
  1867. values.")
  1868. (license license:asl2.0))))
  1869. (define-public go-github-com-mattn-go-isatty
  1870. (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
  1871. (revision "0"))
  1872. (package
  1873. (name "go-github-com-mattn-go-isatty")
  1874. (version (git-version "0.0.0" revision commit))
  1875. (source
  1876. (origin
  1877. (method git-fetch)
  1878. (uri (git-reference
  1879. (url "https://github.com/mattn/go-isatty")
  1880. (commit commit)))
  1881. (file-name (git-file-name name version))
  1882. (sha256
  1883. (base32
  1884. "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
  1885. (build-system go-build-system)
  1886. (arguments
  1887. '(#:import-path "github.com/mattn/go-isatty"))
  1888. (home-page "https://github.com/mattn/go-isatty")
  1889. (synopsis "Provide @code{isatty} for Golang")
  1890. (description "This package provides @code{isatty}, a Go module that can
  1891. tell you whether a file descriptor points to a terminal and the type of the
  1892. terminal.")
  1893. (license license:expat))))
  1894. (define-public go-github-com-mattn-go-colorable
  1895. (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
  1896. (revision "0"))
  1897. (package
  1898. (name "go-github-com-mattn-go-colorable")
  1899. (version (git-version "0.0.0" revision commit))
  1900. (source
  1901. (origin
  1902. (method git-fetch)
  1903. (uri (git-reference
  1904. (url "https://github.com/mattn/go-colorable")
  1905. (commit commit)))
  1906. (file-name (git-file-name name version))
  1907. (sha256
  1908. (base32
  1909. "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
  1910. (build-system go-build-system)
  1911. (native-inputs
  1912. `(("go-github-com-mattn-go-isatty"
  1913. ,go-github-com-mattn-go-isatty)))
  1914. (arguments
  1915. '(#:import-path "github.com/mattn/go-colorable"))
  1916. (home-page "https://github.com/mattn/go-colorable")
  1917. (synopsis "Handle ANSI color escapes on Windows")
  1918. (description "This package provides @code{colorable}, a module that
  1919. makes it possible to handle ANSI color escapes on Windows.")
  1920. (license license:expat))))
  1921. (define-public go-github-com-mgutz-ansi
  1922. (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
  1923. (revision "0"))
  1924. (package
  1925. (name "go-github-com-mgutz-ansi")
  1926. (version (git-version "0.0.0" revision commit))
  1927. (source
  1928. (origin
  1929. (method git-fetch)
  1930. (uri (git-reference
  1931. (url
  1932. "https://github.com/mgutz/ansi")
  1933. (commit commit)))
  1934. (file-name (git-file-name name version))
  1935. (sha256
  1936. (base32
  1937. "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
  1938. (build-system go-build-system)
  1939. (native-inputs
  1940. `(("go-github-com-mattn-go-isatty"
  1941. ,go-github-com-mattn-go-isatty)
  1942. ("go-github-com-mattn-go-colorable"
  1943. ,go-github-com-mattn-go-colorable)))
  1944. (arguments
  1945. '(#:import-path "github.com/mgutz/ansi"))
  1946. (home-page "https://github.com/mgutz/ansi")
  1947. (synopsis "Small, fast library to create ANSI colored strings and codes")
  1948. (description "This package provides @code{ansi}, a Go module that can
  1949. generate ANSI colored strings.")
  1950. (license license:expat))))
  1951. (define-public go-github-com-aarzilli-golua
  1952. (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
  1953. (revision "0"))
  1954. (package
  1955. (name "go-github-com-aarzilli-golua")
  1956. (version (git-version "0.0.0" revision commit))
  1957. (source
  1958. (origin
  1959. (method git-fetch)
  1960. (uri (git-reference
  1961. (url
  1962. "https://github.com/aarzilli/golua")
  1963. (commit commit)))
  1964. (file-name (git-file-name name version))
  1965. (sha256
  1966. (base32
  1967. "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
  1968. (build-system go-build-system)
  1969. (native-inputs
  1970. `(("lua" ,lua)))
  1971. (arguments
  1972. `(#:unpack-path "github.com/aarzilli/golua"
  1973. #:import-path "github.com/aarzilli/golua/lua"
  1974. #:phases
  1975. (modify-phases %standard-phases
  1976. (replace 'build
  1977. (lambda* (#:key import-path #:allow-other-keys)
  1978. (invoke "go" "install"
  1979. "-v" ; print the name of packages as they are compiled
  1980. "-x" ; print each command as it is invoked
  1981. "-ldflags=-s -w" ; strip the symbol table and debug
  1982. "-tags" "llua" ; Latest Lua on Guix does not have a version number.
  1983. import-path)))
  1984. (replace 'check
  1985. (lambda* (#:key import-path #:allow-other-keys)
  1986. (invoke "go" "test"
  1987. "-tags" "llua" ; Latest Lua on Guix does not have a version number.
  1988. import-path))))))
  1989. (home-page "https://github.com/aarzilli/golua")
  1990. (synopsis "Go Bindings for the Lua C API")
  1991. (description "This package provides @code{lua}, a Go module that can
  1992. run a Lua virtual machine.")
  1993. (license license:expat))))
  1994. (define-public go-gitlab-com-ambrevar-golua-unicode
  1995. (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
  1996. (revision "0"))
  1997. (package
  1998. (name "go-gitlab-com-ambrevar-golua-unicode")
  1999. (version (git-version "0.0.0" revision commit))
  2000. (source
  2001. (origin
  2002. (method git-fetch)
  2003. (uri (git-reference
  2004. (url
  2005. "https://gitlab.com/ambrevar/golua")
  2006. (commit commit)))
  2007. (file-name (git-file-name name version))
  2008. (sha256
  2009. (base32
  2010. "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
  2011. (build-system go-build-system)
  2012. (native-inputs
  2013. `(("lua" ,lua)
  2014. ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
  2015. (arguments
  2016. `(#:unpack-path "gitlab.com/ambrevar/golua"
  2017. #:import-path "gitlab.com/ambrevar/golua/unicode"
  2018. #:phases
  2019. (modify-phases %standard-phases
  2020. (replace 'check
  2021. (lambda* (#:key import-path #:allow-other-keys)
  2022. (setenv "USER" "homeless-dude")
  2023. (invoke "go" "test" import-path))))))
  2024. (home-page "https://gitlab.com/ambrevar/golua")
  2025. (synopsis "Add Unicode support to Golua")
  2026. (description "This extension to Arzilli's Golua adds Unicode support to
  2027. all functions from the Lua string library. Lua patterns are replaced by Go
  2028. regexps. This breaks compatibility with Lua, but Unicode support breaks it
  2029. anyways and Go regexps are more powerful.")
  2030. (license license:expat))))
  2031. (define-public go-github-com-yookoala-realpath
  2032. (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
  2033. (revision "0"))
  2034. (package
  2035. (name "go-github-com-yookoala-realpath")
  2036. (version (git-version "0.0.0" revision commit))
  2037. (source
  2038. (origin
  2039. (method git-fetch)
  2040. (uri (git-reference
  2041. (url
  2042. "https://github.com/yookoala/realpath")
  2043. (commit commit)))
  2044. (file-name (git-file-name name version))
  2045. (sha256
  2046. (base32
  2047. "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
  2048. (build-system go-build-system)
  2049. (arguments
  2050. `(#:import-path "github.com/yookoala/realpath"))
  2051. (home-page "https://github.com/yookoala/realpath")
  2052. (synopsis "@code{realpath} for Golang")
  2053. (description "This package provides @code{realpath}, a Go module that
  2054. when provided with a valid relative path / alias path, it will return you with
  2055. a string of its real absolute path in the system.")
  2056. (license license:expat))))
  2057. (define-public go-gitlab-com-ambrevar-damerau
  2058. (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
  2059. (revision "0"))
  2060. (package
  2061. (name "go-gitlab-com-ambrevar-damerau")
  2062. (version (git-version "0.0.0" revision commit))
  2063. (source
  2064. (origin
  2065. (method git-fetch)
  2066. (uri (git-reference
  2067. (url
  2068. "https://gitlab.com/ambrevar/damerau")
  2069. (commit commit)))
  2070. (file-name (git-file-name name version))
  2071. (sha256
  2072. (base32
  2073. "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
  2074. (build-system go-build-system)
  2075. (arguments
  2076. `(#:import-path "gitlab.com/ambrevar/damerau"))
  2077. (home-page "https://gitlab.com/ambrevar/damerau")
  2078. (synopsis "Damerau-Levenshtein distance for Golang")
  2079. (description "This is a spelling corrector implementing the
  2080. Damerau-Levenshtein distance. Takes a string value input from the user.
  2081. Looks for an identical word on a list of words, if none is found, look for a
  2082. similar word.")
  2083. (license license:expat))))
  2084. (define-public go-github-com-stevedonovan-luar
  2085. (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
  2086. (revision "0"))
  2087. (package
  2088. (name "go-github-com-stevedonovan-luar")
  2089. (version (git-version "0.0.0" revision commit))
  2090. (source
  2091. (origin
  2092. (method git-fetch)
  2093. (uri (git-reference
  2094. (url
  2095. "https://github.com/stevedonovan/luar")
  2096. (commit commit)))
  2097. (file-name (git-file-name name version))
  2098. (sha256
  2099. (base32
  2100. "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
  2101. (build-system go-build-system)
  2102. (native-inputs
  2103. `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
  2104. (arguments
  2105. `(#:tests? #f ; Upstream tests are broken.
  2106. #:import-path "github.com/stevedonovan/luar"))
  2107. (home-page "https://github.com/stevedonovan/luar")
  2108. (synopsis "Lua reflection bindings for Go")
  2109. (description "Luar is designed to make using Lua from Go more
  2110. convenient. Go structs, slices and maps can be automatically converted to Lua
  2111. tables and vice-versa. The resulting conversion can either be a copy or a
  2112. proxy. In the latter case, any change made to the result will reflect on the
  2113. source.
  2114. Any Go function can be made available to Lua scripts, without having to write
  2115. C-style wrappers.
  2116. Luar support cyclic structures (lists, etc.).
  2117. User-defined types can be made available to Lua as well: their exported
  2118. methods can be called and usual operations such as indexing or arithmetic can
  2119. be performed.")
  2120. (license license:expat))))
  2121. (define-public go-github-com-kr-text
  2122. (let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f")
  2123. (revision "0"))
  2124. (package
  2125. (name "go-github-com-kr-text")
  2126. (version (git-version "0.0.0" revision commit))
  2127. (source
  2128. (origin
  2129. (method git-fetch)
  2130. (uri (git-reference
  2131. (url
  2132. "https://github.com/kr/text")
  2133. (commit commit)))
  2134. (file-name (git-file-name name version))
  2135. (sha256
  2136. (base32
  2137. "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
  2138. (build-system go-build-system)
  2139. (arguments
  2140. `(#:import-path "github.com/kr/text"))
  2141. (home-page "https://github.com/kr/text")
  2142. (synopsis "Go package for manipulating paragraphs of text")
  2143. (description "Package @code{text} provides manipulation Go functions for
  2144. paragraphs of text.")
  2145. (license license:expat))))
  2146. (define-public go-github-com-michiwend-golang-pretty
  2147. (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
  2148. (revision "0"))
  2149. (package
  2150. (name "go-github-com-michiwend-golang-pretty")
  2151. (version (git-version "0.0.0" revision commit))
  2152. (source
  2153. (origin
  2154. (method git-fetch)
  2155. (uri (git-reference
  2156. (url
  2157. "https://github.com/michiwend/golang-pretty")
  2158. (commit commit)))
  2159. (file-name (git-file-name name version))
  2160. (sha256
  2161. (base32
  2162. "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
  2163. (build-system go-build-system)
  2164. (native-inputs
  2165. `(("go-github-com-kr-text" ,go-github-com-kr-text)))
  2166. (arguments
  2167. `(#:tests? #f ; Upstream tests seem to be broken.
  2168. #:import-path "github.com/michiwend/golang-pretty"))
  2169. (home-page "https://github.com/michiwend/golang-pretty")
  2170. (synopsis "Pretty printing for Go values")
  2171. (description "Package @code{pretty} provides pretty-printing for Go
  2172. values. This is useful during debugging, to avoid wrapping long output lines
  2173. in the terminal.
  2174. It provides a function, @code{Formatter}, that can be used with any function
  2175. that accepts a format string. It also provides convenience wrappers for
  2176. functions in packages @code{fmt} and @code{log}.")
  2177. (license license:expat))))
  2178. (define-public go-github-com-michiwend-gomusicbrainz
  2179. (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
  2180. (revision "0"))
  2181. (package
  2182. (name "go-github-com-michiwend-gomusicbrainz")
  2183. (version (git-version "0.0.0" revision commit))
  2184. (source
  2185. (origin
  2186. (method git-fetch)
  2187. (uri (git-reference
  2188. (url
  2189. "https://github.com/michiwend/gomusicbrainz")
  2190. (commit commit)))
  2191. (file-name (git-file-name name version))
  2192. (sha256
  2193. (base32
  2194. "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
  2195. (build-system go-build-system)
  2196. (native-inputs
  2197. `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
  2198. ("go-github-com-kr-text" ,go-github-com-kr-text)))
  2199. (arguments
  2200. `(#:import-path "github.com/michiwend/gomusicbrainz"))
  2201. (home-page "https://github.com/michiwend/gomusicbrainz")
  2202. (synopsis "MusicBrainz WS2 client library for Golang")
  2203. (description "Currently GoMusicBrainz provides methods to perform search
  2204. and lookup requests. Browse requests are not supported yet.")
  2205. (license license:expat))))
  2206. (define-public go-github-com-wtolson-go-taglib
  2207. (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
  2208. (revision "0"))
  2209. (package
  2210. (name "go-github-com-wtolson-go-taglib")
  2211. (version (git-version "0.0.0" revision commit))
  2212. (source
  2213. (origin
  2214. (method git-fetch)
  2215. (uri (git-reference
  2216. (url
  2217. "https://github.com/wtolson/go-taglib")
  2218. (commit commit)))
  2219. (file-name (git-file-name name version))
  2220. (sha256
  2221. (base32
  2222. "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
  2223. (build-system go-build-system)
  2224. (native-inputs
  2225. `(("pkg-config" ,pkg-config)
  2226. ("taglib" ,taglib)))
  2227. (arguments
  2228. `(#:import-path "github.com/wtolson/go-taglib"))
  2229. (home-page "https://github.com/wtolson/go-taglib")
  2230. (synopsis "Go wrapper for taglib")
  2231. (description "Go wrapper for taglib")
  2232. (license license:unlicense))))