syncthing.scm 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2016 Petter <petter@mykolab.ch>
  3. ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
  4. ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
  5. ;;; Copyright © 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
  6. ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
  7. ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  8. ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
  9. ;;;
  10. ;;; This file is part of GNU Guix.
  11. ;;;
  12. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  13. ;;; under the terms of the GNU General Public License as published by
  14. ;;; the Free Software Foundation; either version 3 of the License, or (at
  15. ;;; your option) any later version.
  16. ;;;
  17. ;;; GNU Guix is distributed in the hope that it will be useful, but
  18. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  19. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20. ;;; GNU General Public License for more details.
  21. ;;;
  22. ;;; You should have received a copy of the GNU General Public License
  23. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  24. (define-module (gnu packages syncthing)
  25. #:use-module (guix build-system go)
  26. #:use-module (guix build-system python)
  27. #:use-module (guix build-system trivial)
  28. #:use-module (guix packages)
  29. #:use-module (guix download)
  30. #:use-module (guix git-download)
  31. #:use-module (guix licenses)
  32. #:use-module (gnu packages)
  33. #:use-module (gnu packages freedesktop)
  34. #:use-module (gnu packages glib)
  35. #:use-module (gnu packages gnome)
  36. #:use-module (gnu packages golang)
  37. #:use-module (gnu packages gtk)
  38. #:use-module (gnu packages linux)
  39. #:use-module (gnu packages python)
  40. #:use-module (gnu packages python-crypto)
  41. #:use-module (gnu packages python-xyz)
  42. #:use-module (gnu packages time))
  43. (define-public syncthing
  44. (package
  45. (name "syncthing")
  46. (version "1.16.1")
  47. ; XXX After the go-build-system can use "Go modules", stop using bundled
  48. ; dependencies for Syncthing.
  49. (source (origin
  50. (method url-fetch)
  51. (uri (string-append "https://github.com/syncthing/syncthing"
  52. "/releases/download/v" version
  53. "/syncthing-source-v" version ".tar.gz"))
  54. (sha256
  55. (base32
  56. "0m5k37sp3px8acs3y9an5wzy1wbcbdvqq74jy0pwzfk4bjbr999j"))))
  57. (build-system go-build-system)
  58. ;; The primary Syncthing executable goes to "out", while the auxiliary
  59. ;; server programs and utility tools go to "utils". This reduces the size
  60. ;; of "out" by ~144 MiB.
  61. (outputs '("out" "utils"))
  62. (arguments
  63. `(#:modules ((srfi srfi-26) ; for cut
  64. (guix build utils)
  65. (guix build go-build-system))
  66. #:import-path "github.com/syncthing/syncthing"
  67. ;; We don't need to install the source code for end-user applications.
  68. #:install-source? #f
  69. #:phases
  70. (modify-phases %standard-phases
  71. (add-before 'build 'increase-test-timeout
  72. (lambda _
  73. (substitute* "src/github.com/syncthing/syncthing/build.go"
  74. (("120s") "999s"))
  75. #t))
  76. (replace 'build
  77. (lambda _
  78. (with-directory-excursion "src/github.com/syncthing/syncthing"
  79. ;; XXX The only way to build Syncthing without its automatic
  80. ;; updater and to build the utilities is to "build all" and then
  81. ;; "build syncthing" again with -no-upgrade.
  82. ;; https://github.com/syncthing/syncthing/issues/6118
  83. (invoke "go" "run" "build.go")
  84. (delete-file "bin/syncthing")
  85. (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing"))))
  86. (replace 'check
  87. (lambda* (#:key tests? #:allow-other-keys)
  88. (when tests?
  89. (with-directory-excursion "src/github.com/syncthing/syncthing"
  90. (invoke "go" "run" "build.go" "test")))
  91. #t))
  92. (replace 'install
  93. (lambda* (#:key outputs #:allow-other-keys)
  94. (let ((out (assoc-ref outputs "out"))
  95. (utils (assoc-ref outputs "utils")))
  96. (with-directory-excursion "src/github.com/syncthing/syncthing/bin"
  97. (install-file "../syncthing" (string-append out "/bin"))
  98. (for-each (cut install-file <> (string-append utils "/bin/"))
  99. '("stcompdirs" "stcrashreceiver"
  100. "stdisco" "stdiscosrv" "stevents" "stfileinfo"
  101. "stfinddevice" "stfindignored" "stgenfiles"
  102. "strelaypoolsrv" "strelaysrv" "stsigtool"
  103. "stvanity" "stwatchfile" "uraggregate" "ursrv"))
  104. #t))))
  105. (add-after 'install 'install-docs
  106. (lambda* (#:key outputs #:allow-other-keys)
  107. (let* ((out (assoc-ref outputs "out"))
  108. (utils (assoc-ref outputs "utils"))
  109. (man "/share/man")
  110. (man-section (string-append man "/man"))
  111. (src "src/github.com/syncthing/syncthing/man/"))
  112. ;; Install all the man pages to "out".
  113. (for-each
  114. (lambda (file)
  115. (install-file file
  116. (string-append out man-section
  117. (string-take-right file 1))))
  118. (find-files src "\\.[1-9]"))
  119. ;; Copy all the man pages to "utils"
  120. (copy-recursively (string-append out man)
  121. (string-append utils man))
  122. ;; Delete extraneous man pages from "out" and "utils",
  123. ;; respectively.
  124. (delete-file (string-append out man "/man1/stdiscosrv.1"))
  125. (delete-file (string-append out man "/man1/strelaysrv.1"))
  126. (delete-file (string-append utils man "/man1/syncthing.1"))
  127. #t))))))
  128. (synopsis "Decentralized continuous file system synchronization")
  129. (description "Syncthing is a peer-to-peer file synchronization tool that
  130. supports a wide variety of computing platforms. It uses the Block Exchange
  131. Protocol.")
  132. (home-page "https://github.com/syncthing/syncthing")
  133. (license mpl2.0)))
  134. (define-public syncthing-gtk
  135. ;; The commit used below corresponds to the latest commit of the
  136. ;; python3-port branch maintained by Debian. Upstream hasn't bothered
  137. ;; porting to Python 3 (see:
  138. ;; https://github.com/kozec/syncthing-gtk/issues/487).
  139. (let ((revision "1")
  140. (commit "c46fbd8ad1d12d409da8942702a2f119cf45514a"))
  141. (package
  142. (name "syncthing-gtk")
  143. (version (git-version "0.9.4.4" revision commit))
  144. (source (origin
  145. (method git-fetch)
  146. (uri (git-reference
  147. (url "https://salsa.debian.org/debian/syncthing-gtk.git")
  148. (commit commit)))
  149. (file-name (git-file-name name version))
  150. (sha256
  151. (base32
  152. "1x1c8snf0jpgjmyyidjw0015ksk5ishqn817wx8vs9i0lfgnnbbg"))))
  153. (build-system python-build-system)
  154. (arguments
  155. `(#:phases
  156. (modify-phases %standard-phases
  157. (add-after 'unpack 'hardcode-dependencies
  158. (lambda* (#:key inputs #:allow-other-keys)
  159. (let ((psmisc (assoc-ref inputs "psmisc"))
  160. (syncthing (assoc-ref inputs "syncthing")))
  161. ;; Hardcode dependencies paths to avoid propagation.
  162. (substitute* "syncthing_gtk/tools.py"
  163. (("killall") (string-append psmisc "/bin/killall")))
  164. (substitute* "syncthing_gtk/configuration.py"
  165. (("/usr/bin/syncthing") (string-append syncthing
  166. "/bin/syncthing"))))))
  167. (add-after 'unpack 'remove-windows.py
  168. (lambda _
  169. ;; A Windows-specific module that fails to load with
  170. ;; "ModuleNotFoundError: No module named 'msvcrt'.
  171. (delete-file "syncthing_gtk/windows.py")))
  172. (add-after 'wrap 'wrap-libs
  173. (lambda* (#:key outputs #:allow-other-keys)
  174. (let ((out (assoc-ref outputs "out")))
  175. (wrap-program (string-append out "/bin/syncthing-gtk")
  176. `("GI_TYPELIB_PATH" ":" prefix
  177. (,(getenv "GI_TYPELIB_PATH"))))))))))
  178. (inputs
  179. `(("gtk+" ,gtk+)
  180. ("libappindicator" ,libappindicator)
  181. ("libnotify" ,libnotify)
  182. ("librsvg" ,librsvg)
  183. ("python-bcrypt" ,python-bcrypt)
  184. ("python-dateutil" ,python-dateutil)
  185. ("python-pycairo" ,python-pycairo)
  186. ("python-pygobject" ,python-pygobject)
  187. ("python-nautilus" ,python-nautilus)
  188. ("psmisc" ,psmisc)
  189. ("syncthing" ,syncthing)))
  190. ;; (native-inputs
  191. ;; `(("python2-setuptools" ,python2-setuptools)))
  192. (home-page "https://github.com/syncthing/syncthing-gtk")
  193. (synopsis "GTK3 based GUI and notification area icon for Syncthing")
  194. (description "@code{syncthing-gtk} is a GTK3 Python based GUI and
  195. notification area icon for Syncthing. Supported Syncthing features:
  196. @itemize
  197. @item Everything that WebUI can display
  198. @item Adding, editing and deleting nodes
  199. @item Adding, editing and deleting repositories
  200. @item Restart, shutdown server
  201. @item Editing daemon settings
  202. @end itemize\n")
  203. (license gpl2))))
  204. (define-public go-github-com-jackpal-go-nat-pmp
  205. (package
  206. (name "go-github-com-jackpal-go-nat-pmp")
  207. (version "1.0.2")
  208. (source (origin
  209. (method git-fetch)
  210. (uri (git-reference
  211. (url "https://github.com/jackpal/go-nat-pmp")
  212. (commit (string-append "v" version))))
  213. (file-name (git-file-name name version))
  214. (sha256
  215. (base32
  216. "1p2yrzfbkazc9nisr2iqjwzhb6q16zj6finyxxn2ikk7iiighl1g"))))
  217. (build-system go-build-system)
  218. (arguments
  219. `(#:import-path "github.com/jackpal/go-nat-pmp"))
  220. (synopsis "Port mapping and discovery of external IP address")
  221. (description "This package provides a Go client for the NAT-PMP internet
  222. protocol for port mapping and discovering the external IP address of a
  223. firewall.")
  224. (home-page "https://github.com/jackpal/go-nat-pmp")
  225. (license asl2.0)))
  226. (define-public go-github-com-audriusbutkevicius-recli
  227. (package
  228. (name "go-github-com-audriusbutkevicius-recli")
  229. (version "0.0.5")
  230. (source (origin
  231. (method git-fetch)
  232. (uri (git-reference
  233. (url "https://github.com/AudriusButkevicius/recli")
  234. (commit (string-append "v" version))))
  235. (file-name (git-file-name name version))
  236. (sha256
  237. (base32
  238. "1m1xna1kb78pkmr1lfmvvnpk9j7c4x71j3a7c6vj7zpzc4srpsmf"))))
  239. (build-system go-build-system)
  240. (inputs
  241. `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  242. ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)))
  243. (arguments
  244. `(#:import-path "github.com/AudriusButkevicius/recli"))
  245. (synopsis "Reflection-based CLI generator")
  246. (description "For a given struct, @code{recli} builds a set of
  247. @code{urfave/cli} commands which allows you to modify it from the command line.
  248. It is useful for generating command line clients for your application
  249. configuration that is stored in a Go struct.")
  250. (home-page "https://github.com/AudriusButkevicius/recli")
  251. (license mpl2.0)))
  252. (define-public go-github-com-bkaradzic-go-lz4
  253. (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a")
  254. (revision "0"))
  255. (package
  256. (name "go-github-com-bkaradzic-go-lz4")
  257. (version (git-version "0.0.0" revision commit))
  258. (source (origin
  259. (method git-fetch)
  260. (uri (git-reference
  261. (url "https://github.com/bkaradzic/go-lz4")
  262. (commit commit)))
  263. (file-name (git-file-name name version))
  264. (sha256
  265. (base32
  266. "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb"))))
  267. (build-system go-build-system)
  268. (arguments
  269. `(#:import-path "github.com/bkaradzic/go-lz4"))
  270. (synopsis "LZ4 compression algorithm")
  271. (description "This package provides @code{go-lz4}, a Go implementation of
  272. the LZ4 compression algorithm.")
  273. (home-page "https://github.com/bkaradzic/go-lz4")
  274. (license bsd-2))))
  275. (define-public go-github-com-calmh-du
  276. (package
  277. (name "go-github-com-calmh-du")
  278. (version "1.0.1")
  279. (source (origin
  280. (method git-fetch)
  281. (uri (git-reference
  282. (url "https://github.com/calmh/du")
  283. (commit (string-append "v" version))))
  284. (file-name (git-file-name name version))
  285. (sha256
  286. (base32
  287. "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2"))))
  288. (build-system go-build-system)
  289. (arguments
  290. `(#:import-path "github.com/calmh/du"))
  291. (synopsis "Get total and available disk space of a given volume")
  292. (description "This is a Go implementation of `du`. It provides disk usage
  293. information, such as how much storage space is available, free, and used.")
  294. (home-page "https://github.com/calmh/du")
  295. (license public-domain)))
  296. (define-public go-github-com-calmh-xdr
  297. (package
  298. (name "go-github-com-calmh-xdr")
  299. (version "1.1.0")
  300. (source (origin
  301. (method git-fetch)
  302. (uri (git-reference
  303. (url "https://github.com/calmh/xdr")
  304. (commit (string-append "v" version))))
  305. (file-name (git-file-name name version))
  306. (sha256
  307. (base32
  308. "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh"))))
  309. (build-system go-build-system)
  310. (arguments
  311. `(#:import-path "github.com/calmh/xdr"))
  312. (synopsis "XDR marshalling and unmarshalling")
  313. (description "XDR is an External Data Representation (XDR)
  314. marshalling and unmarshalling library in Go. It uses code generation and not
  315. reflection.")
  316. (home-page "https://github.com/calmh/xdr")
  317. (license expat)))
  318. (define-public go-github-com-d4l3k-messagediff
  319. (package
  320. (name "go-github-com-d4l3k-messagediff")
  321. (version "1.2.1")
  322. (source (origin
  323. (method git-fetch)
  324. (uri (git-reference
  325. (url "https://github.com/d4l3k/messagediff")
  326. (commit (string-append "v" version))))
  327. (file-name (git-file-name name version))
  328. (sha256
  329. (base32
  330. "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v"))))
  331. (build-system go-build-system)
  332. (arguments
  333. `(#:import-path "github.com/d4l3k/messagediff"))
  334. (synopsis "Diff arbitrary Go structs")
  335. (description "Messagediff is a library for calculating diffs of arbitrary
  336. structs in the Go programming language.")
  337. (home-page "https://github.com/d4l3k/messagediff")
  338. (license expat)))
  339. (define-public go-github-com-gobwas-glob
  340. (package
  341. (name "go-github-com-gobwas-glob")
  342. (version "0.2.3")
  343. (source (origin
  344. (method git-fetch)
  345. (uri (git-reference
  346. (url "https://github.com/gobwas/glob")
  347. (commit (string-append "v" version))))
  348. (file-name (git-file-name name version))
  349. (sha256
  350. (base32
  351. "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z"))))
  352. (build-system go-build-system)
  353. (arguments
  354. `(#:import-path "github.com/gobwas/glob"))
  355. (synopsis "Go globbing library")
  356. (description "This package provides a Go implementation of globs.")
  357. (home-page "https://github.com/gobwas/glob")
  358. (license expat)))
  359. (define-public go-github-com-golang-groupcache-lru
  360. (let ((commit "869f871628b6baa9cfbc11732cdf6546b17c1298")
  361. (revision "2"))
  362. (package
  363. (name "go-github-com-golang-groupcache-lru")
  364. (version (git-version "0.0.0" revision commit))
  365. (source (origin
  366. (method git-fetch)
  367. (uri (git-reference
  368. (url "https://github.com/golang/groupcache")
  369. (commit commit)))
  370. (file-name (git-file-name name version))
  371. (sha256
  372. (base32
  373. "0r4nk8129bvx50qb4xzjaay39b2h6k7cbdqqzdlanmc82ygczsbw"))))
  374. (build-system go-build-system)
  375. (arguments
  376. `(#:import-path "github.com/golang/groupcache/lru"
  377. #:unpack-path "github.com/golang/groupcache"))
  378. (synopsis "Groupcache is a caching and cache-filling library")
  379. (description "Groupcache is a caching and cache-filling library, intended
  380. as a replacement for memcached in many cases. It provides a data loading
  381. mechanism with caching and de-duplication that works across a set of peer
  382. processes.")
  383. (home-page "https://github.com/golang/groupcache")
  384. (license asl2.0))))
  385. (define-public go-github-com-golang-snappy
  386. (package
  387. (name "go-github-com-golang-snappy")
  388. (version "0.0.4")
  389. (source (origin
  390. (method git-fetch)
  391. (uri (git-reference
  392. (url "https://github.com/golang/snappy")
  393. (commit (string-append "v" version))))
  394. (file-name (git-file-name name version))
  395. (sha256
  396. (base32
  397. "004cw699yz3pdpawhjhpa0y94c4w479nw1rf39zj6h6027kpwv2j"))))
  398. (build-system go-build-system)
  399. (arguments
  400. `(#:import-path "github.com/golang/snappy"))
  401. (synopsis "Snappy compression format in the Go programming language")
  402. (description "This package provides a Go implementation of the Snappy
  403. compression format.")
  404. (home-page "https://github.com/golang/snappy")
  405. (license bsd-3)))
  406. (define-public go-github-com-jackpal-gateway
  407. (package
  408. (name "go-github-com-jackpal-gateway")
  409. (version "1.0.6")
  410. (source (origin
  411. (method git-fetch)
  412. (uri (git-reference
  413. (url "https://github.com/jackpal/gateway")
  414. (commit (string-append "v" version))))
  415. (file-name (git-file-name name version))
  416. (sha256
  417. (base32
  418. "1yms2dw4dnz4cvj9vhwh6193d50jhvn5awsp2g3a4lcc3sjrgd6m"))))
  419. (build-system go-build-system)
  420. (arguments
  421. `(#:import-path "github.com/jackpal/gateway"))
  422. (synopsis "Discover the address of a LAN gateway")
  423. (description "@code{gateway} is a Go library for discovering the IP
  424. address of the default LAN gateway.")
  425. (home-page "https://github.com/jackpal/gateway")
  426. (license bsd-3)))
  427. (define-public go-github-com-lib-pq
  428. (package
  429. (name "go-github-com-lib-pq")
  430. (version "1.2.0")
  431. (source (origin
  432. (method git-fetch)
  433. (uri (git-reference
  434. (url "https://github.com/lib/pq")
  435. (commit (string-append "v" version))))
  436. (file-name (git-file-name name version))
  437. (sha256
  438. (base32
  439. "08j1smm6rassdssdks4yh9aspa1dv1g5nvwimmknspvhx8a7waqz"))))
  440. (build-system go-build-system)
  441. (arguments
  442. `(#:import-path "github.com/lib/pq"
  443. ;; The tests seem to fail without access to the network or a running
  444. ;; Postgres instance.
  445. #:tests? #f))
  446. (synopsis "Golang Postgres driver for Go's database/sql")
  447. (description "This package provides a pure Go Postgres driver for Go's
  448. database/sql package.")
  449. (home-page "https://github.com/lib/pq")
  450. (license expat)))
  451. (define-public go-github-com-oschwald-geoip2-golang
  452. (package
  453. (name "go-github-com-oschwald-geoip2-golang")
  454. (version "1.4.0")
  455. (source (origin
  456. (method git-fetch)
  457. (uri (git-reference
  458. (url "https://github.com/oschwald/geoip2-golang")
  459. (commit (string-append "v" version))))
  460. (file-name (git-file-name name version))
  461. (sha256
  462. (base32
  463. "1jj4rbdpy87rbl79czg5hs5dyn6xlbnk0bnvyzi71dsxan57nixw"))))
  464. (build-system go-build-system)
  465. (propagated-inputs
  466. `(("go-github-com-oschwald-maxminddb-golang"
  467. ,go-github-com-oschwald-maxminddb-golang)
  468. ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  469. (arguments
  470. `(#:import-path "github.com/oschwald/geoip2-golang"
  471. #:tests? #f)) ; Requires some unpackaged software and test data
  472. (synopsis "MaxMind GeoIP2 reader")
  473. (description "This package provides a library for reading MaxMind
  474. GeoLite2 and GeoIP2 databases in Go.")
  475. (home-page "https://github.com/oschwald/geoip2-golang")
  476. (license isc)))
  477. (define-public go-github-com-oschwald-maxminddb-golang
  478. (package
  479. (name "go-github-com-oschwald-maxminddb-golang")
  480. (version "1.4.0")
  481. (source (origin
  482. (method git-fetch)
  483. (uri (git-reference
  484. (url "https://github.com/oschwald/maxminddb-golang")
  485. (commit (string-append "v" version))))
  486. (file-name (git-file-name name version))
  487. (sha256
  488. (base32
  489. "100wd5qv00pkcm6cb8c4x5gavc9jnn7drh6xrqh85hzci4rils66"))))
  490. (build-system go-build-system)
  491. (propagated-inputs
  492. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  493. (arguments
  494. `(#:import-path "github.com/oschwald/maxminddb-golang"
  495. #:tests? #f)) ; Requires some unpackaged software and test data
  496. (synopsis "MaxMind DB Reader for Go")
  497. (description "This is a Go reader for the MaxMind DB format. Although
  498. this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
  499. higher-level API for doing so.")
  500. (home-page "https://github.com/oschwald/maxminddb-golang")
  501. (license isc)))
  502. (define-public go-github-com-stathat-go
  503. (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
  504. (revision "0"))
  505. (package
  506. (name "go-github-com-stathat-go")
  507. (version (git-version "0.0.0" revision commit))
  508. (source (origin
  509. (method git-fetch)
  510. (uri (git-reference
  511. (url "https://github.com/stathat/go")
  512. (commit commit)))
  513. (file-name (git-file-name name version))
  514. (sha256
  515. (base32
  516. "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
  517. (build-system go-build-system)
  518. (arguments
  519. `(#:import-path "github.com/stathat/go"))
  520. (synopsis "Post statistics to StatHat")
  521. (description "This is a Go package for posting to a StatHat account.")
  522. (home-page "https://github.com/stathat/go")
  523. (license expat))))
  524. (define-public go-github-com-rcrowley-go-metrics
  525. (let ((commit "cac0b30c2563378d434b5af411844adff8e32960")
  526. (revision "2"))
  527. (package
  528. (name "go-github-com-rcrowley-go-metrics")
  529. (version (git-version "0.0.0" revision commit))
  530. (source (origin
  531. (method git-fetch)
  532. (uri (git-reference
  533. (url "https://github.com/rcrowley/go-metrics")
  534. (commit commit)))
  535. (file-name (git-file-name name version))
  536. (sha256
  537. (base32
  538. "1hfxffnpaw49pr3wrkbzq3pnv3nyzsvk5dxndv0yz70xlrbg8a04"))))
  539. (build-system go-build-system)
  540. (arguments
  541. ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le
  542. ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249
  543. `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system)
  544. (%current-system))))
  545. #:import-path "github.com/rcrowley/go-metrics"))
  546. (propagated-inputs
  547. `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
  548. (synopsis "Go port of Coda Hale's Metrics library")
  549. (description "This package provides a Go implementation of Coda Hale's
  550. Metrics library.")
  551. (home-page "https://github.com/rcrowley/go-metrics")
  552. (license bsd-2))))
  553. (define-public go-github-com-sasha-s-go-deadlock
  554. (package
  555. (name "go-github-com-sasha-s-go-deadlock")
  556. (version "0.2.0")
  557. (source (origin
  558. (method git-fetch)
  559. (uri (git-reference
  560. (url "https://github.com/sasha-s/go-deadlock")
  561. (commit (string-append "v" version))))
  562. (file-name (git-file-name name version))
  563. (sha256
  564. (base32
  565. "13p7b7pakd9k1c2k0fs1hfim3c8mivz679977ai6zb01s4aw7gyg"))))
  566. (build-system go-build-system)
  567. (arguments
  568. `(#:import-path "github.com/sasha-s/go-deadlock"))
  569. (propagated-inputs
  570. `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
  571. (synopsis "Deadlock detection in go")
  572. (description "This package provides tools for detecting deadlocks at
  573. run-time in Go.")
  574. (home-page "https://github.com/sasha-s/go-deadlock")
  575. (license asl2.0)))
  576. (define-public go-github-com-syndtr-goleveldb
  577. (let ((commit "758128399b1df3a87e92df6c26c1d2063da8fabe")
  578. (revision "4"))
  579. (package
  580. (name "go-github-com-syndtr-goleveldb")
  581. (version (git-version "1.0.1" revision commit))
  582. (source (origin
  583. (method git-fetch)
  584. (uri (git-reference
  585. (url "https://github.com/syndtr/goleveldb")
  586. (commit commit)))
  587. (file-name (git-file-name name version))
  588. (sha256
  589. (base32
  590. "0mnkzrz4di13g6ggd54my7bkb9nwk8f5k672dyasn467wsg7bf8f"))))
  591. (build-system go-build-system)
  592. (propagated-inputs
  593. `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
  594. (arguments
  595. `(#:import-path "github.com/syndtr/goleveldb/leveldb"
  596. #:unpack-path "github.com/syndtr/goleveldb"
  597. #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package
  598. (synopsis "LevelDB key/value database")
  599. (description "This is an implementation of the LevelDB key / value
  600. database in Go.")
  601. (home-page "https://github.com/syndtr/goleveldb")
  602. (license bsd-2))))
  603. (define-public go-github-com-thejerf-suture
  604. (package
  605. (name "go-github-com-thejerf-suture")
  606. (version "3.0.2")
  607. (source (origin
  608. (method git-fetch)
  609. (uri (git-reference
  610. (url "https://github.com/thejerf/suture")
  611. (commit (string-append "v" version))))
  612. (file-name (git-file-name name version))
  613. (sha256
  614. (base32
  615. "03bdrl78jfwk0kw40lj63ga9cxhgccgss8yi9lp5j0m0ml7921gh"))))
  616. (build-system go-build-system)
  617. (arguments
  618. `(#:import-path "github.com/thejerf/suture"))
  619. (synopsis "Supervisor trees for Go")
  620. (description "Suture provides Erlang-ish supervisor trees for Go.
  621. \"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together
  622. when it's trying to die.
  623. It is intended to deal gracefully with the real failure cases that can occur
  624. with supervision trees (such as burning all your CPU time endlessly restarting
  625. dead services), while also making no unnecessary demands on the \"service\"
  626. code, and providing hooks to perform adequate logging with in a production
  627. environment")
  628. (home-page "https://github.com/thejerf/suture")
  629. (license expat)))
  630. (define-public go-github-com-vitrun-qart
  631. (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
  632. (revision "0"))
  633. (package
  634. (name "go-github-com-vitrun-qart")
  635. (version (git-version "0.0.0" revision commit))
  636. (source (origin
  637. (method git-fetch)
  638. (uri (git-reference
  639. (url "https://github.com/vitrun/qart")
  640. (commit commit)))
  641. (file-name (string-append "go-github-com-vitrun-qart-"
  642. version "-checkout"))
  643. (sha256
  644. (base32
  645. "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
  646. (build-system go-build-system)
  647. (arguments
  648. `(#:import-path "github.com/vitrun/qart"))
  649. (synopsis "Create QR codes with an embedded image")
  650. (description "This package provides a library for embedding
  651. human-meaningful graphics in QR codes. However, instead of scribbling on
  652. redundant pieces and relying on error correction to preserve the meaning,
  653. @code{qart} engineers the encoded values to create the picture in a code with no
  654. inherent errors.")
  655. (home-page "https://github.com/vitrun/qart")
  656. (license bsd-3))))
  657. (define-public go-github-com-chmduquesne-rollinghash
  658. (let ((commit "a60f8e7142b536ea61bb5d84014171189eeaaa81")
  659. (revision "0"))
  660. (package
  661. (name "go-github-com-chmduquesne-rollinghash")
  662. (version (git-version "4.0.0" revision commit))
  663. (source
  664. (origin
  665. (method git-fetch)
  666. (uri (git-reference
  667. (url "https://github.com/chmduquesne/rollinghash")
  668. (commit commit)))
  669. (file-name (git-file-name name version))
  670. (sha256
  671. (base32
  672. "0fpaqq4zb0wikgbhn7vwqqj1h865f5xy195vkhivsp922p7qwsjr"))))
  673. (build-system go-build-system)
  674. (arguments
  675. '(#:import-path "github.com/chmduquesne/rollinghash/"))
  676. (synopsis "Rolling hashes in Go")
  677. (description "This package provides a Go implementation of several rolling
  678. hashes.")
  679. (home-page "https://github.com/chmduquesne/rollinghash")
  680. (license expat))))
  681. (define-public go-github-com-petermattis-goid
  682. (let ((commit "b0b1615b78e5ee59739545bb38426383b2cda4c9")
  683. (revision "1"))
  684. (package
  685. (name "go-github-com-petermattis-goid")
  686. (version (git-version "0.0.0" revision commit))
  687. (source (origin
  688. (method git-fetch)
  689. (uri (git-reference
  690. (url "https://github.com/petermattis/goid")
  691. (commit commit)))
  692. (file-name (git-file-name name version))
  693. (sha256
  694. (base32
  695. "0ghfxn045r0bbn2vszw897lxzmhnm4k59aypjvpxl0pbzsw9ab2c"))))
  696. (build-system go-build-system)
  697. (arguments
  698. '(#:import-path "github.com/petermattis/goid"))
  699. (synopsis "Identify the running goroutine")
  700. (description "This package offers a method of programmatically retrieving
  701. the current goroutine's ID.")
  702. (home-page "https://github.com/petermattis/goid")
  703. (license asl2.0))))
  704. (define-public go-github-com-kballard-go-shellquote
  705. (let ((commit "95032a82bc518f77982ea72343cc1ade730072f0")
  706. (revision "1"))
  707. (package
  708. (name "go-github-com-kballard-go-shellquote")
  709. (version (git-version "0.0.0" revision commit))
  710. (source (origin
  711. (method git-fetch)
  712. (uri (git-reference
  713. (url "https://github.com/kballard/go-shellquote")
  714. (commit commit)))
  715. (file-name (git-file-name name version))
  716. (sha256
  717. (base32
  718. "1rspvmnsikdq95jmx3dykxd4k1rmgl98ryjrysvl0cf18hl1vq80"))))
  719. (build-system go-build-system)
  720. (arguments
  721. '(#:import-path "github.com/kballard/go-shellquote"))
  722. (synopsis "Shell-style string joins and splits")
  723. (description "Shellquote provides utilities for joining/splitting strings
  724. using sh's word-splitting rules.")
  725. (home-page "https://github.com/kballard/go-shellquote")
  726. (license expat))))
  727. (define-public go-github-com-syncthing-notify
  728. (let ((commit "69c7a957d3e261f9744f46b3dd4d608d8480ad90")
  729. (revision "5"))
  730. (package
  731. (name "go-github-com-syncthing-notify")
  732. (version (git-version "0.0.0" revision commit))
  733. (source (origin
  734. (method git-fetch)
  735. (uri (git-reference
  736. (url "https://github.com/syncthing/notify")
  737. (commit commit)))
  738. (file-name (git-file-name name version))
  739. (sha256
  740. (base32
  741. "1mmdzyfnmjabyhbipl4bggw4w5nlxyyjp0d93qd824kj07kmsr1f"))))
  742. (build-system go-build-system)
  743. (arguments
  744. '(#:import-path "github.com/syncthing/notify"))
  745. (propagated-inputs
  746. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  747. (synopsis "File system event notification library")
  748. (description "This package provides @code{notify}, a file system event
  749. notification library in Go.")
  750. (home-page "https://github.com/syncthing/notify")
  751. (license expat))))
  752. (define-public go-github-com-beorn7-perks-quantile
  753. (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
  754. (revision "0"))
  755. (package
  756. (name "go-github-com-beorn7-perks-quantile")
  757. (version (git-version "0.0.0" revision commit))
  758. (source (origin
  759. (method git-fetch)
  760. (uri (git-reference
  761. (url "https://github.com/beorn7/perks")
  762. (commit commit)))
  763. (file-name (git-file-name name version))
  764. (sha256
  765. (base32
  766. "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
  767. (build-system go-build-system)
  768. (arguments
  769. '(#:import-path "github.com/beorn7/perks/quantile"
  770. #:unpack-path "github.com/beorn7/perks"))
  771. (synopsis "Compute approximate quantiles over an unbounded data stream")
  772. (description "Perks contains the Go package @code{quantile} that computes
  773. approximate quantiles over an unbounded data stream within low memory and CPU
  774. bounds.")
  775. (home-page "https://github.com/beorn7/perks")
  776. (license expat))))
  777. (define-public go-github-com-prometheus-client-model
  778. (let ((commit "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016")
  779. (revision "2"))
  780. (package
  781. (name "go-github-com-prometheus-client-model")
  782. (version (git-version "0.0.2" revision commit))
  783. (source (origin
  784. (method git-fetch)
  785. (uri (git-reference
  786. (url "https://github.com/prometheus/client_model")
  787. (commit commit)))
  788. (file-name (git-file-name name version))
  789. (sha256
  790. (base32
  791. "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"))))
  792. (build-system go-build-system)
  793. (arguments
  794. '(#:import-path "github.com/prometheus/client_model"
  795. #:tests? #f
  796. #:phases
  797. (modify-phases %standard-phases
  798. ;; Source-only package
  799. (delete 'build))))
  800. (propagated-inputs
  801. `(("go-github-com-golang-protobuf-proto"
  802. ,go-github-com-golang-protobuf-proto)))
  803. (synopsis "Data model artifacts for Prometheus")
  804. (description "This package provides data model artifacts for Prometheus.")
  805. (home-page "https://github.com/prometheus/client_model")
  806. (license asl2.0))))
  807. (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
  808. (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
  809. (revision "0"))
  810. (package
  811. (name "go-github-com-matttproud-golang-protobuf-extensions-pbutil")
  812. (version (git-version "1.0.0" revision commit))
  813. (source
  814. (origin
  815. (method git-fetch)
  816. (uri
  817. (git-reference
  818. (url "https://github.com/matttproud/golang_protobuf_extensions")
  819. (commit commit)))
  820. (file-name (git-file-name name version))
  821. (sha256
  822. (base32
  823. "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"))))
  824. (build-system go-build-system)
  825. (arguments
  826. '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil"
  827. #:unpack-path "github.com/matttproud/golang_protobuf_extensions"))
  828. (propagated-inputs
  829. `(("go-github-com-golang-protobuf-proto"
  830. ,go-github-com-golang-protobuf-proto)))
  831. (synopsis "Streaming Protocol Buffers in Go")
  832. (description "This package provides various Protocol Buffer
  833. extensions for the Go language, namely support for record length-delimited
  834. message streaming.")
  835. (home-page "https://github.com/matttproud/golang_protobuf_extensions")
  836. (license asl2.0))))
  837. (define-public go-github-com-prometheus-common
  838. (package
  839. (name "go-github-com-prometheus-common")
  840. (version "0.4.1")
  841. (source (origin
  842. (method git-fetch)
  843. (uri (git-reference
  844. (url "https://github.com/prometheus/common")
  845. (commit (string-append "v" version))))
  846. (file-name (git-file-name name version))
  847. (sha256
  848. (base32
  849. "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
  850. (build-system go-build-system)
  851. (arguments
  852. '(#:import-path "github.com/prometheus/common"
  853. #:tests? #f
  854. #:phases
  855. (modify-phases %standard-phases
  856. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  857. (lambda* (#:key outputs #:allow-other-keys)
  858. (map (lambda (file)
  859. (make-file-writable file))
  860. (find-files
  861. (string-append (assoc-ref outputs "out")
  862. "/src/github.com/prometheus/common/expfmt/testdata/")
  863. ".*\\.gz$"))
  864. #t))
  865. ;; Source-only package
  866. (delete 'build))))
  867. (propagated-inputs
  868. `(("go-github-com-golang-protobuf-proto"
  869. ,go-github-com-golang-protobuf-proto)
  870. ("go-github-com-matttproud-golang-protobuf-extensions-pbutil"
  871. ,go-github-com-matttproud-golang-protobuf-extensions-pbutil)
  872. ("go-github-com-prometheus-client-model"
  873. ,go-github-com-prometheus-client-model)))
  874. (synopsis "Prometheus metrics")
  875. (description "This package provides tools for reading and writing
  876. Prometheus metrics.")
  877. (home-page "https://github.com/prometheus/common")
  878. (license asl2.0)))
  879. (define-public go-github-com-prometheus-procfs
  880. (package
  881. (name "go-github-com-prometheus-procfs")
  882. (version "0.0.4")
  883. (source (origin
  884. (method git-fetch)
  885. (uri (git-reference
  886. (url "https://github.com/prometheus/procfs")
  887. (commit (string-append "v" version))))
  888. (file-name (git-file-name name version))
  889. (sha256
  890. (base32
  891. "1z5jq5rjala0a0di4nwk1rai0z9f73qwqj6mgcbpjbg2qknlb544"))))
  892. (build-system go-build-system)
  893. (arguments
  894. '(#:import-path "github.com/prometheus/procfs"
  895. ;; The tests require Go modules, which are not yet supported in Guix's
  896. ;; Go build system.
  897. #:tests? #f))
  898. (synopsis "Go library for reading @file{/proc}")
  899. (description "The @code{procfs} Go package provides functions to retrieve
  900. system, kernel, and process metrics from the @file{/proc} pseudo file system.")
  901. (home-page "https://github.com/prometheus/procfs")
  902. (license asl2.0)))
  903. (define-public go-github-com-prometheus-client-golang
  904. (package
  905. (name "go-github-com-prometheus-client-golang")
  906. (version "1.2.1")
  907. (source (origin
  908. (method git-fetch)
  909. (uri (git-reference
  910. (url "https://github.com/prometheus/client_golang")
  911. (commit (string-append "v" version))))
  912. (file-name (git-file-name name version))
  913. (sha256
  914. (base32
  915. "0zs49psk23n9z8wrl02d5vib5wclpym8kaxcy6n5pk696i419065"))))
  916. (build-system go-build-system)
  917. (arguments
  918. '(#:tests? #f
  919. #:import-path "github.com/prometheus/client_golang"
  920. #:phases
  921. (modify-phases %standard-phases
  922. ;; Source-only package
  923. (delete 'build))))
  924. (propagated-inputs
  925. `(("go-github-com-beorn7-perks-quantile"
  926. ,go-github-com-beorn7-perks-quantile)
  927. ("go-github-com-golang-protobuf-proto"
  928. ,go-github-com-golang-protobuf-proto)
  929. ("go-github-com-prometheus-client-model"
  930. ,go-github-com-prometheus-client-model)
  931. ("go-github-com-prometheus-common"
  932. ,go-github-com-prometheus-common)
  933. ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)
  934. ("go-github-com-cespare-xxhash" ,go-github-com-cespare-xxhash)))
  935. (synopsis "HTTP server and client tools for Prometheus")
  936. (description "This package @code{promhttp} provides HTTP client and
  937. server tools for Prometheus metrics.")
  938. (home-page "https://github.com/prometheus/client_golang")
  939. (license asl2.0)))
  940. (define-public go-github-com-go-asn1-ber-asn1-ber
  941. (package
  942. (name "go-github-com-go-asn1-ber-asn1-ber")
  943. (version "1.3.1")
  944. (source (origin
  945. (method git-fetch)
  946. (uri (git-reference
  947. (url "https://github.com/go-asn1-ber/asn1-ber")
  948. (commit (string-append "v" version))))
  949. (file-name (git-file-name name version))
  950. (sha256
  951. (base32
  952. "0dxfmgk84fn0p6pz3i0cspynh6rly5pfk9wghm1q07mx99npln02"))))
  953. (build-system go-build-system)
  954. (arguments
  955. '(#:import-path "github.com/go-asn1-ber/asn1-ber"))
  956. (synopsis "ASN.1 BER encoding and decoding in Go")
  957. (description "This package provides ASN.1 BER encoding and decoding in the
  958. Go language.")
  959. (home-page "https://github.com/go-asn1-ber/asn1-ber")
  960. (license expat)))
  961. (define-public go-github-com-go-ldap-ldap
  962. (package
  963. (name "go-github-com-go-ldap-ldap")
  964. (version "3.1.7")
  965. (source (origin
  966. (method git-fetch)
  967. (uri (git-reference
  968. (url "https://github.com/go-ldap/ldap")
  969. (commit (string-append "v" version))))
  970. (file-name (git-file-name name version))
  971. (sha256
  972. (base32
  973. "1z6wxia7a1jkmasa9mm6g4n8f0qqbp5rw6vk0zyh4vzk7azklnj2"))))
  974. (build-system go-build-system)
  975. (arguments
  976. '(#:import-path "github.com/go-ldap/ldap/v3"
  977. #:tests? #f)) ; test suite requires internet access
  978. (propagated-inputs
  979. `(("go-github-com-go-asn1-ber-asn1-ber" ,go-github-com-go-asn1-ber-asn1-ber)))
  980. (home-page "https://github.com/go-ldap/ldap")
  981. (synopsis "LDAP v3 functionality for Go")
  982. (description "This package provides basic LDAP v3 functionality in the Go
  983. language.")
  984. (license expat)))
  985. (define-public go-github-com-flynn-archive-go-shlex
  986. (let ((commit "3f9db97f856818214da2e1057f8ad84803971cff")
  987. (revision "0"))
  988. (package
  989. (name "go-github-com-flynn-archive-go-shlex")
  990. (version (git-version "0.0.0" revision commit))
  991. (source (origin
  992. (method git-fetch)
  993. (uri (git-reference
  994. (url "https://github.com/flynn-archive/go-shlex")
  995. (commit commit)))
  996. (file-name (git-file-name name version))
  997. (sha256
  998. (base32
  999. "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia"))))
  1000. (build-system go-build-system)
  1001. (arguments
  1002. '(#:import-path "github.com/flynn-archive/go-shlex"))
  1003. (synopsis "Go lexer")
  1004. (description "Shlex is a simple lexer for go that supports shell-style
  1005. quoting, commenting, and escaping.")
  1006. (home-page "https://github.com/flynn-archive/go-shlex")
  1007. (license asl2.0))))
  1008. (define-public go-github-com-audriusbutkevicius-pfilter
  1009. (package
  1010. (name "go-github-com-audriusbutkevicius-pfilter")
  1011. (version "0.0.5")
  1012. (source
  1013. (origin
  1014. (method git-fetch)
  1015. (uri (git-reference
  1016. (url "https://github.com/AudriusButkevicius/pfilter")
  1017. (commit version)))
  1018. (file-name (git-file-name name version))
  1019. (sha256
  1020. (base32
  1021. "0xzhwyd0w21bhvzl5pinn22hp0y6h44rh3s2ppql69rafc6zd3c6"))))
  1022. (build-system go-build-system)
  1023. (arguments
  1024. '(#:import-path "github.com/AudriusButkevicius/pfilter"))
  1025. (synopsis "Filter packets into multiple virtual connections")
  1026. (description "Pfilter is a Go package for filtering packets into multiple
  1027. virtual connections from a single physical connection.")
  1028. (home-page "https://github.com/AudriusButkevicius/pfilter")
  1029. (license expat)))
  1030. (define-public go-github-com-ccding-go-stun
  1031. (let ((commit "be486d185f3dfcb2dbf8429332da50a0da7f95a6")
  1032. (revision "2"))
  1033. (package
  1034. (name "go-github-com-ccding-go-stun")
  1035. (version (git-version "0.0.0" revision commit))
  1036. (source
  1037. (origin
  1038. (method git-fetch)
  1039. (uri (git-reference
  1040. (url "https://github.com/ccding/go-stun")
  1041. (commit commit)))
  1042. (file-name (git-file-name name version))
  1043. (sha256
  1044. (base32
  1045. "1gr0rw1c1y7wh6913lyn5k4ig023by27i36bly6am8dwgrgp34ww"))))
  1046. (build-system go-build-system)
  1047. (arguments
  1048. '(#:import-path "github.com/ccding/go-stun"))
  1049. (synopsis "STUN client implementation")
  1050. (description "Go-stun is a go implementation of the STUN client (RFC 3489
  1051. and RFC 5389).")
  1052. (home-page "https://github.com/ccding/go-stun")
  1053. (license asl2.0))))
  1054. (define-public go-github-com-cespare-xxhash
  1055. (package
  1056. (name "go-github-com-cespare-xxhash")
  1057. (version "2.1.0")
  1058. (source (origin
  1059. (method git-fetch)
  1060. (uri (git-reference
  1061. (url "https://github.com/cespare/xxhash")
  1062. (commit (string-append "v" version))))
  1063. (file-name (git-file-name name version))
  1064. (sha256
  1065. (base32
  1066. "12ad3z7ki9j07c4kx3ywkl6188i2afsjg7sl60wd21p6zkkpfjxq"))))
  1067. (build-system go-build-system)
  1068. (arguments
  1069. '(#:import-path "github.com/cespare/xxhash"))
  1070. (synopsis "Go implementation of xxHash")
  1071. (description "This package provides of Go implementation of the 64-bit
  1072. xxHash algorithm (XXH64).")
  1073. (home-page "https://github.com/cespare/xxhash/")
  1074. (license expat)))