From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] go-build-system and Syncthing Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 24 Sep 2017 20:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.150628542811847 (code B ref -1); Sun, 24 Sep 2017 20:38:02 +0000 Received: (at submit) by debbugs.gnu.org; 24 Sep 2017 20:37:08 +0000 Received: from localhost ([127.0.0.1]:56581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDeG-00034y-2A for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:37:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41361) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDeE-00034S-75 for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:37:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwDe8-0005iX-0k for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:37:00 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:49565) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwDe7-0005iT-Sp for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:36:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60558) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwDe6-0007yV-SZ for guix-patches@gnu.org; Sun, 24 Sep 2017 16:36:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwDe3-0005ge-RJ for guix-patches@gnu.org; Sun, 24 Sep 2017 16:36:58 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:33149) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwDe3-0005ej-JI for guix-patches@gnu.org; Sun, 24 Sep 2017 16:36:55 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id B10D820A7C; Sun, 24 Sep 2017 16:36:53 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Sun, 24 Sep 2017 16:36:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-type:date:from:message-id:mime-version:subject:to :x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=/Fs YjX0OUHux8u4Xa3GxmGLT5+YxHEfRmLICirlWt50=; b=GyL3aUuOsFFNeKxKcC1 l0JNJXILMjdKIjxsZGH0g3/n2SkFwVtXiiEN32JasnRkw45XTlpYlFGOUi+8A7BE /38kptoyIOFuvel8Tz+0b+FGnY2U3jQ86nhJXVQH96kGBvcuHiIvM5hDJ8yXU011 w3MEmifgqS6db675F/IYCj34= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=/FsYjX0OUHux8u4Xa3GxmGLT5+YxHEfRmLICirlWt 50=; b=NtExMFg3LMRdngQqRhQImDlEMjg0fkz6wWFa0FhxWtgENSpeLiUU4wC3y QFAlEY3CTJfmPBd5e4wWXniB8Ma8fHX9MjfWrm8Zey/Ye1kpo+1VItYzGnmwYe3I sBF7y6fy/zuqAP0wr/9e3uNVkI/CxqcapDahqjWJyjgjaOkFseKal/JxOGBvdqCa 41ExbVfZz1jnAKgd3Lxf4AkcGNPkAJvPOgt01qiw2ZGNVQZ4YcYwi5EC8MGuG3il gjcvpViy5f2AIka0MbLI6t2CccoRRwvdNp2oHB+jFLnhfsrrv2TdBc1qJj9GRVoR VQaFeFtIQUlxFk9CqcQAtDOFWFKIQ== X-ME-Sender: X-Sasl-enc: KYb70y+r/5B38zNLu1eLDnUByEIFE69EWqRyRdJwIcfC 1506285413 Received: from localhost (75-128-209-44.dhcp.trcy.mi.charter.com [75.128.209.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 5F31224155 for ; Sun, 24 Sep 2017 16:36:53 -0400 (EDT) Date: Sun, 24 Sep 2017 16:36:51 -0400 From: Leo Famulari Message-ID: <20170924203651.GA29973@jasmine.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="EVF5PPMfhYS0aIcm" Content-Disposition: inline User-Agent: Mutt/1.8.3 (2017-05-23) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) --EVF5PPMfhYS0aIcm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline These patches add a go-build-system, a package for Syncthing, and Syncthing's dependencies. The patch for Syncthing and its dependencies is squashed to make review more convenient (there are dozens of packages). I can split this up into individual commits before pushing. There are a handful of XXX comments in (guix build go-build-system). Advice welcome :) Also, this build system does not attempt cross-compilation, earning another XXX in (guix build-system go). I've skipped a few package test suites in (gnu packages syncthing). However, everything works for me, and Syncthing passes its test suite, at least. --EVF5PPMfhYS0aIcm Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlnIF2AACgkQJkb6MLrK fwjfog//awG5efkYjNdcFKNall4o5BlCVbXAU8OzBlMgV28WSnvzjcZrFaNt+Tzz sABLPtbU9U5dVKGJTtTdhhUNiChnFhXCmHUliZkwVgsFw1GQ4NRAdi1ZRXXLW79c 0jGraCXTMlu+bGvnwQ4sB3k9WtULbZiYakCFL9rA35Oi5ZyMuePuS5MGBMtsNTeJ ZMAczBjweWR/HCqluI3AirVZJfKFUOVks4k1gP9zRO7iamhU3+1x+zJAVeQrBbx7 oKwaWf3xexaaDazFxnYDWbi9W9bjz4lTh/n+Dndel3pWu55nV8HTD/UXdpbo/f3+ VjDfFzXiWw8GO+mIFYOXZiTxEz4yDZLTyG+gJgAzFXac8ZrXv9F3dkIycqK/LiZj adhCJ5E0NrF7TKom/FdHAT5nEcoOTVv9Jj8VFRfxbirq/3bMnwmbYG2XN5hmp9dS jDbwCKLilEcvRtQrBr62Fsb3c5mHFISUzwEnI+oXZN+7YKeRh0H9FIgwHCd+qBg4 dlovYmbEWk0f6S9AgoIL2ECLBmS9M0qiOoqrpiE26lhv0gyszolNK3NfY4EjTgyA THCOCjzaBbJERl/mOD1sGrz/Gl4JWHFcM4cFo/ZRwHM4ha0T22q6mhkOiV1J3fDh rZ7MCxzlWglZwqN/DwWURzFqEOmZhfI35uO5wLsVyHRZmae40vU= =8y8r -----END PGP SIGNATURE----- --EVF5PPMfhYS0aIcm-- From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] [PATCH 1/2] build: Add the Go build system. References: <20170924203651.GA29973@jasmine.lan> In-Reply-To: <20170924203651.GA29973@jasmine.lan> Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 24 Sep 2017 20:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150628566812241 (code B ref 28586); Sun, 24 Sep 2017 20:42:02 +0000 Received: (at 28586) by debbugs.gnu.org; 24 Sep 2017 20:41:08 +0000 Received: from localhost ([127.0.0.1]:56592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDi2-0003BB-KH for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:41:08 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:33325) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDi0-0003Ae-JB for 28586@debbugs.gnu.org; Sun, 24 Sep 2017 16:41:01 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id B17DD20D1B; Sun, 24 Sep 2017 16:40:59 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Sun, 24 Sep 2017 16:40:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=ilxPFw2/OTP32FMH7Dn9gdyBxQHHNMKp/NwRZO FpreA=; b=l3t4F/f2bjuVMCy66Jj/5FIgM54iOezqXfCVSXovmz154qZPcom8+T fJ73cDXoVwW2Pb+/cTWQeOYToPTDPNPViBlBqIrmU/INqm/EVPA4pw8CUhYo007b EPmgK2pdohradUQmzv962B/EqCSVT10UbyeB7Tv4Dtl0TI38ArS3c= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=ilxPFw2/OTP32FMH7D n9gdyBxQHHNMKp/NwRZOFpreA=; b=ooyXAYXKwSCBIJeGXSOPeoZ7vL1Y2JSFuL bPN0R3IOudWCFzRmTcwPK229AHHAGNH5por0Y3i4ZS/Sp2XsiSrzbGJf8fL1o803 T7D+uLK+p98/Cc2pkk9UVC7fi6R0Te1yMrhAPDVUV6BaN3HuTiOzg7SN8wEZsZAG tHT8Y/d9rh2FuiVIDYC3tCsyomzUvCvJHAYWTIaHOBa6PAnDYfrFfltJZwAWBKVb GY7z5P8vRilEZIGTgLJMPfqi9A7+Qt0qsiQK/i4M/QO9yMuGVBvj/X27wzqMtQbG c+trYfKwHsVycCrFbHuKp7XpmRUKJkH4v04dcccnrL4RjjFpoc2A== X-ME-Sender: X-Sasl-enc: Oezcv+1L4XFGgQgZJlaDac3hbUhICvtFFeo9KKeZwT2J 1506285659 Received: from jasmine.lan (75-128-209-44.dhcp.trcy.mi.charter.com [75.128.209.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 0CE1F24155 for <28586@debbugs.gnu.org>; Sun, 24 Sep 2017 16:40:58 -0400 (EDT) From: Leo Famulari Date: Sun, 24 Sep 2017 16:40:52 -0400 Message-Id: X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * guix/build-system/go.scm, guix/build/go-build-system.scm: New files. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document the go-build-system. --- Makefile.am | 2 + doc/guix.texi | 18 ++++ guix/build-system/go.scm | 132 ++++++++++++++++++++++++++ guix/build/go-build-system.scm | 207 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 359 insertions(+) create mode 100644 guix/build-system/go.scm create mode 100644 guix/build/go-build-system.scm diff --git a/Makefile.am b/Makefile.am index e35bdac30..1da8e3fb5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -79,6 +79,7 @@ MODULES = \ guix/build-system/dub.scm \ guix/build-system/emacs.scm \ guix/build-system/font.scm \ + guix/build-system/go.scm \ guix/build-system/meson.scm \ guix/build-system/minify.scm \ guix/build-system/asdf.scm \ @@ -110,6 +111,7 @@ MODULES = \ guix/build/meson-build-system.scm \ guix/build/minify-build-system.scm \ guix/build/font-build-system.scm \ + guix/build/go-build-system.scm \ guix/build/asdf-build-system.scm \ guix/build/git.scm \ guix/build/hg.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 0462a6419..894cd329b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3566,6 +3566,24 @@ debugging information''), which roughly means that code is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default. @end defvr +@defvr {Scheme Variable} go-build-system +This variable is exported by @code{(guix build-system go)}. It +implements a build procedure for Go packages using the standard +@url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, +Go build mechanisms}. + +The user is expected to provide a value for the key @code{#:import-path} +and, in some cases, @code{#:unpack-path}. The +@url{https://golang.org/doc/code.html#ImportPaths, import path} +corresponds to the filesystem path expected by the package's build +scripts and any referring packages, and provides a unique way to +refer to a Go package. It is typically based on a combination of the +package source code's remote URI and filesystem hierarchy structure. In +some cases, you will need to unpack the package's source code to a +different directory structure than the one indicated by the import path, +and @code{#:unpack-path} should be used in such cases. +@end defvr + @defvr {Scheme Variable} glib-or-gtk-build-system This variable is exported by @code{(guix build-system glib-or-gtk)}. It is intended for use with packages making use of GLib or GTK+. diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm new file mode 100644 index 000000000..43599df6f --- /dev/null +++ b/guix/build-system/go.scm @@ -0,0 +1,132 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Petter +;;; Copyright © 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system go) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%go-build-system-modules + go-build + go-build-system)) + +;; Commentary: +;; +;; Standard build procedure for packages using the Go build system. It is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define %go-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build go-build-system) + ,@%gnu-build-system-modules)) + +(define (default-go) + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((go (resolve-interface '(gnu packages golang)))) + (module-ref go 'go))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (go (default-go)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:go #:inputs #:native-inputs)) + + (and (not target) ;XXX: no cross-compilation + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (build-inputs `(("go" ,go) + ,@native-inputs)) + (outputs outputs) + (build go-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define* (go-build store name inputs + #:key + (phases '(@ (guix build go-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (import-path "") + (unpack-path "") + (tests? #t) + (system (%current-system)) + (guile #f) + (imported-modules %go-build-system-modules) + (modules '((guix build go-build-system) + (guix build utils)))) + (define builder + `(begin + (use-modules ,@modules) + (go-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:import-path ,import-path + #:unpack-path ,unpack-path + #:tests? ,tests? + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system + #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define go-build-system + (build-system + (name 'go) + (description + "Build system for Go programs") + (lower lower))) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm new file mode 100644 index 000000000..c2a488023 --- /dev/null +++ b/guix/build/go-build-system.scm @@ -0,0 +1,207 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Petter +;;; Copyright © 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build go-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:export (%standard-phases + go-build)) + +;; Commentary: +;; +;; Build procedures for Go packages. This is the builder-side code. +;; +;; Software written in Go is either a 'package' (i.e. library) or 'command' +;; (i.e. executable). Both types can be built with either the `go build` or `go +;; install` commands. However, `go build` discards the result of the build +;; process for Go libraries, so we use `go install`, which preserves the +;; results. [0] + +;; Go software is developed and built within a particular filesystem hierarchy +;; structure called a 'workspace' [1]. This workspace is found by Go +;; via the GOPATH environment variable. Typically, all Go source code +;; and compiled objects are kept in a single workspace, but it is +;; possible for GOPATH to contain a list of directories, and that is +;; what we do in this go-build-system. [2] +;; +;; Go software, whether a package or a command, is uniquely named using +;; an 'import path'. The import path is based on the URL of the +;; software's source. Since most source code is provided over the +;; internet, the import path is typically a combination of the remote +;; URL and the source repository's filesystem structure. For example, +;; the Go port of the common `du` command is hosted on github.com, at +;; . Thus, the import path is +;; . [3] +;; +;; It may be possible to programatically guess a package's import path +;; based on the source URL, but we don't try that in this revision of +;; the go-build-system. +;; +;; Modules of modular Go libraries are named uniquely with their +;; filesystem paths. For example, the supplemental but "standardized" +;; libraries developed by the Go upstream developers are available at +;; . The Go IPv4 +;; library's import path is . The source of +;; such modular libraries must be unpacked at the top-level of the +;; filesystem structure of the library. So the IPv4 library should be +;; unpacked to . This is handled in the +;; go-build-system with the optional #:unpack-path key. +;; +;; In general, Go software is built using a standardized build mechanism +;; that does not require any build scripts like Makefiles. This means +;; that all modules of modular libraries cannot be built with a single +;; command. Each module must be built individually. This complicates +;; certain cases, and these issues are currently resolved by creating a +;; filesystem union of the required modules of such libraries. I think +;; this could be improved in future revisions of the go-build-system. +;; +;; [0] `go build`: +;; https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies +;; `go install`: +;; https://golang.org/cmd/go/#hdr-Compile_and_install_packages_and_dependencies +;; [1] https://golang.org/doc/code.html#Workspaces +;; bin/ +;; hello # command executable +;; outyet # command executable +;; pkg/ +;; linux_amd64/ +;; github.com/golang/example/ +;; stringutil.a # package object +;; src/ +;; github.com/golang/example/ +;; .git/ # Git repository metadata +;; hello/ +;; hello.go # command source +;; outyet/ +;; main.go # command source +;; main_test.go # test source +;; stringutil/ +;; reverse.go # package source +;; reverse_test.go # test source +;; golang.org/x/image/ +;; .git/ # Git repository metadata +;; bmp/ +;; reader.go # package source +;; writer.go # package source +;; ... (many more repositories and packages omitted) ... +;; +;; [2] https://golang.org/doc/code.html#GOPATH +;; [3] https://golang.org/doc/code.html#ImportPaths +;; +;; Code: + +(define* (unpack #:key source import-path unpack-path #:allow-other-keys) + "Unpack SOURCE in the UNPACK-PATH, or the IMPORT-PATH is the UNPACK-PATH is +unset. When SOURCE is a directory, copy it instead of unpacking." + (if (string-null? import-path) + ((display "WARNING: The Go import path is unset.\n"))) + (if (string-null? unpack-path) + (set! unpack-path import-path)) + (mkdir "src") + (let ((dest (string-append "src/" unpack-path))) + (mkdir-p dest) + (if (file-is-directory? source) + (begin + (copy-recursively source dest #:keep-mtime? #t) + #t) + (if (string-suffix? ".zip" source) + (zero? (system* "unzip" "-d" dest source)) + (zero? (system* "tar" "-C" dest "-xvf" source)))))) + +(define* (install-source #:key outputs #:allow-other-keys) + "Install the source code to the output directory." + (let* ((out (assoc-ref outputs "out")) + (source "src") + (dest (string-append out "/" source))) + (copy-recursively source dest #:keep-mtime? #t) + #t)) + +(define (golang-package? name) + (string-prefix? "golang-" name)) + +(define (golang-inputs inputs) + "Return the alist of INPUTS that are Go software." + ;; XXX This should not check the file name of the store item. Instead we + ;; should pass, from the host side, the list of inputs that are packages using + ;; the go-build-system. + (alist-delete "source" + (filter (match-lambda + ((label . directory) + (golang-package? ((compose package-name->name+version + strip-store-file-name) + directory))) + (_ #f)) + inputs))) + +(define* (setup-environment #:key inputs outputs #:allow-other-keys) + "Export the variables GOPATH and GOBIN, which are based on INPUTS and OUTPUTS, +respectively." + (let ((out (assoc-ref outputs "out"))) + ;; GOPATH is where Go looks for the source code of the build's dependencies. + (set-path-environment-variable "GOPATH" + ;; XXX Matching "." hints that we could do + ;; something simpler here... + (list ".") + (match (golang-inputs inputs) + (((_ . dir) ...) + dir))) + + ;; Add the source code of the package being built to GOPATH. + (if (getenv "GOPATH") + (setenv "GOPATH" (string-append (getcwd) ":" (getenv "GOPATH"))) + (setenv "GOPATH" (getcwd))) + ;; Where to install compiled executable files ('commands' in Go parlance'). + (setenv "GOBIN" out) + #t)) + +(define* (build #:key import-path #:allow-other-keys) + "Build the package named by IMPORT-PATH." + (zero? (system* "go" "install" "-v" import-path))) + +(define* (check #:key tests? import-path #:allow-other-keys) + "Run the tests for the package named by IMPORT-PATH." + (if tests? + (zero? (system* "go" "test" import-path)))) + +(define* (install #:key outputs #:allow-other-keys) + "Install the compiled libraries. `go install` installs these files to +$GOPATH/pkg, so we have to copy them into the output direcotry manually. +Compiled executable files should have already been installed to the store based +on $GOBIN in the build phase." + (when (file-exists? "pkg") + (copy-recursively "pkg" (string-append (assoc-ref outputs "out") "/pkg"))) + #t) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'configure) + (delete 'patch-generated-file-shebangs) + (replace 'unpack unpack) + (add-after 'unpack 'install-source install-source) + (add-before 'build 'setup-environment setup-environment) + (replace 'build build) + (replace 'check check) + (replace 'install install))) + +(define* (go-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Go package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) -- 2.14.1 From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] [PATCH 2/2] gnu: Add Syncthing. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 24 Sep 2017 20:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150628567512253 (code B ref 28586); Sun, 24 Sep 2017 20:42:02 +0000 Received: (at 28586) by debbugs.gnu.org; 24 Sep 2017 20:41:15 +0000 Received: from localhost ([127.0.0.1]:56594 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDi8-0003BO-7N for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:41:15 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:56829) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDi0-0003Af-W7 for 28586@debbugs.gnu.org; Sun, 24 Sep 2017 16:41:06 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id D6BDA20D36; Sun, 24 Sep 2017 16:41:00 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Sun, 24 Sep 2017 16:41:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-transfer-encoding:content-type:date:from:in-reply-to :in-reply-to:message-id:mime-version:references:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= mesmtp; bh=F7RNsZxvomAp6EXhzWANxeYqnjw+Yar7YgsWsOE0Wp8=; b=GHK2j tt4/NtMwAmKbQUrm6dvc3qsp4ayNkQOAWPbY/bcwiEVcfoj05mhUcl2PBowQwhLg 1Q3rrmS2FDHWYNGxYyUShL77KrxcaIaqQxLrvovV/Pc9TgBQCNorECi+5wOFdN8s J+OXuxJPjYw8WkYPcSuVwaT5pke0p+CvSgRA7A= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:in-reply-to:message-id:mime-version :references:references:subject:to:x-me-sender:x-me-sender :x-sasl-enc:x-sasl-enc; s=fm1; bh=F7RNsZxvomAp6EXhzWANxeYqnjw+Ya r7YgsWsOE0Wp8=; b=c9sbEOwluD7BUg67y6lOFhJNAOzFyoGAXEvtbiyUQsqhZs jDv0PxTaDwxz9tHeau1XR/IVaL3b2MUyPuWASXMKRAIN9vEv4ApBotbT5oZQiTBC Fh0FoZzyizVtPgVMmNHtvlCL3gnILz2BHtLixPKEhIQAoMSrb0KWuJlQqkaN+FTX YeBpplmA556tu6CVW/Nutb2eX5zqgD+SRgEpBJ0M08f2P0mWR57ysh/nnRnIFXl2 +qIZJLx6Pk7MA0TCTlKRvEYR2MRwkDkeXe0G7yYUvbTlyXu9MxxN5Sa1zm8QtnkC dnV1gEHfHwnh2XvdzyXAxgKt91e80I5HkZLHPOew== X-ME-Sender: X-Sasl-enc: OezUrOdL/GROkwINI1aDac3hbUhICvtFFeo9KKeZwT2J 1506285659 Received: from jasmine.lan (75-128-209-44.dhcp.trcy.mi.charter.com [75.128.209.44]) by mail.messagingengine.com (Postfix) with ESMTPA id B14D824A1F for <28586@debbugs.gnu.org>; Sun, 24 Sep 2017 16:40:59 -0400 (EDT) From: Leo Famulari Date: Sun, 24 Sep 2017 16:40:53 -0400 Message-Id: <5f9b36da2183c37cb24713472ea22921c0f48d36.1506285652.git.leo@famulari.name> X-Mailer: git-send-email 2.14.1 In-Reply-To: References: MIME-Version: 1.0 In-Reply-To: References: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.8 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * gnu/packages/syncthing.scm: New file. Co-authored-by: Petter --- gnu/local.mk | 1 + gnu/packages/syncthing.scm | 1853 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1854 insertions(+) create mode 100644 gnu/packages/syncthing.scm diff --git a/gnu/local.mk b/gnu/local.mk index acae77326..14aa0303f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -381,6 +381,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/suckless.scm \ %D%/packages/swig.scm \ %D%/packages/sync.scm \ + %D%/packages/syncthing.scm \ %D%/packages/synergy.scm \ %D%/packages/syndication.scm \ %D%/packages/task-management.scm \ diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm new file mode 100644 index 000000000..bd02e6e9f --- /dev/null +++ b/gnu/packages/syncthing.scm @@ -0,0 +1,1853 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Petter +;;; Copyright © 2016, 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages syncthing) + #:use-module (guix build-system go) + #:use-module (guix build-system trivial) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix licenses)) + +(define-public syncthing + (package + (name "syncthing") + (version "0.14.37") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/syncthing/syncthing" + "/releases/download/v" version + "/syncthing-source-v" version ".tar.gz")) + (sha256 + (base32 + "02xs4x49va9cnapx6g19b62ln85wskxnr94nrz4mxdlsn7qgw92l")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/syncthing/syncthing" + #:unpack-path "github.com/syncthing" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundled-source-code + (lambda _ + ;; Keep the bundled cznic libraries. There are some "internal" + ;; cznic libraries that complicate the use of non-bundled copies. + (rename-file "src/github.com/syncthing/syncthing/vendor/github.com/cznic" + "cznic") + (delete-file-recursively "src/github.com/syncthing/syncthing/vendor") + (mkdir-p "src/github.com/syncthing/syncthing/vendor/github.com/") + (rename-file "cznic" + "src/github.com/syncthing/syncthing/vendor/github.com/cznic") + #t)) + + ;; We don't need to install the source code for end-user applications. + (delete 'install-source) + + (add-before 'build 'increase-test-timeout + (lambda _ + (substitute* "src/github.com/syncthing/syncthing/build.go" + (("60s") "999s")) + #t)) + + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "src/github.com/syncthing/syncthing" + (zero? (system* "go" "run" "build.go" "-no-upgrade"))))) + + (replace 'check + (lambda _ + (with-directory-excursion "src/github.com/syncthing/syncthing" + (zero? (system* "go" "run" "build.go" "test"))))) + + (replace 'install + (lambda _ + (copy-recursively "src/github.com/syncthing/syncthing/bin/" + (string-append (assoc-ref %outputs "out") "/bin")) + #t)) + + (add-after 'install 'install-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man/man")) + (src "src/github.com/syncthing/syncthing/man/")) + (for-each + (lambda (file) + (install-file file + (string-append man (string-take-right file 1)))) + (find-files src "\\.[1-9]")) + #t)))))) + (inputs + `(("github-com-AudriusButkevicius-go-nat-pmp" + ,golang-github-com-audriusbutkevicius-go-nat-pmp) + ("golang-github-com-vitrun-qart" ,(golang-github-com-vitrun-qart)) + ("github-com-thejerf-suture" ,golang-github-com-thejerf-suture) + ("github-com-syndtr-goleveldb" ,golang-github-com-syndtr-goleveldb) + ("github-com-sasha-s-go-deadlock" ,golang-github-com-sasha-s-go-deadlock) + ("github-com-rcrowley-go-metrics" ,golang-github-com-rcrowley-go-metrics) + ("github-com-minio-sha256-simd" ,golang-github-com-minio-sha256-simd) + ("github-com-kardianos-osext" ,golang-github-com-kardianos-osext) + ("golang-github-com-kballard-go-shellquote" + ,golang-github-com-kballard-go-shellquote) + ("github-com-jackpal-gateway" ,golang-github-com-jackpal-gateway) + ("github-com-gobwas-glob" ,golang-github-com-gobwas-glob) + ("github-com-calmh-xdr" ,golang-github-com-calmh-xdr) + ("github-com-calmh-luhn" ,golang-github-com-calmh-luhn) + ("github-com-calmh-du" ,golang-github-com-calmh-du) + ("github-com-bkaradzic-go-lz4" ,golang-github-com-bkaradzic-go-lz4) + ("github-com-golang-snappy" ,golang-github-com-golang-snappy) + ("golang-org-x-crypto" ,(golang-org-x-crypto)) + ("golang-org-x-text" ,(golang-org-x-text)) + ("golang.org-x-net" ,(golang-org-x-net)) + ("golang-github-com-gogo-protobuf-protoc-gen-gogo" + ,golang-github-com-gogo-protobuf-protoc-gen-gogo) + ("golang-github-com-gogo-protobuf" + ,golang-github-com-gogo-protobuf) + ("golang-github-com-audriusbutkevicius-pfilter" + ,golang-github-com-audriusbutkevicius-pfilter) + ("github-com-ccding-go-stun" + ,golang-github-com-ccding-go-stun) + ("github-com-chmduquesne-rollinghash-adler32" + ,golang-github-com-chmduquesne-rollinghash-adler32) + ("golang-github-com-xtaci-kcp-go" ,golang-github-com-xtaci-kcp-go) + ("golang-github-com-klauspost-reedsolomon" + ,golang-github-com-klauspost-reedsolomon) + ("golang-github-com-xtaci-smux" ,golang-github-com-xtaci-smux) + ("golang-org-x-time-rate" ,golang-org-x-time-rate) + ("golang-github-com-oschwald-maxminddb-golang" + ,golang-github-com-oschwald-maxminddb-golang) + ("golang-org-x-sys-unix" ,golang-org-x-sys-unix) + ("golang-github-com-audriusbutkevicius-cli" + ,golang-github-com-audriusbutkevicius-cli) + ("golang-github-com-lib-pq" ,golang-github-com-lib-pq) + ("golang-github-com-oschwald-geoip2-golang" + ,golang-github-com-oschwald-geoip2-golang) + ("golang-github-com-golang-groupcache-lru" + ,golang-github-com-golang-groupcache-lru) +; ("golang-github-com-cznic-ql" ,golang-github-com-cznic-ql) ; bundled + ("golang-github-com-edsrzf-mmap-go" ,golang-github-com-edsrzf-mmap-go) + ; Tests + ("golang-github-com-d4l3k-messagediff" + ,golang-github-com-d4l3k-messagediff))) + (synopsis "Decentralized continuous filesystem synchronization") + (description "Syncthing is a peer-to-peer file synchronization tool that +supports a wide variety of computing platforms. It uses the Block Exchange +Protocol.") + (home-page "https://github.com/syncthing/syncthing") + (license mpl2.0))) + +(define-public golang-github-com-audriusbutkevicius-go-nat-pmp + (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-go-nat-pmp") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/go-nat-pmp") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp")) + (synopsis "Port mapping and discovery of the external IP address") + (description "Go client for the NAT-PMP internet protocol for port mapping and discovering the external IP address of a firewall") + (home-page "https://github.com/AudriusButkevicius/go-nat-pmp") + (license asl2.0)))) + +(define-public golang-github-com-bkaradzic-go-lz4 + (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a") + (revision "0")) + (package + (name "golang-github-com-bkaradzic-go-lz4") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bkaradzic/go-lz4") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/bkaradzic/go-lz4")) + (synopsis "Port of LZ4 lossless compression algorithm") + (description "go-lz4 is port of LZ4 lossless compression algorithm to Go") + (home-page "https://github.com/bkaradzic/go-lz4") + (license bsd-2)))) + +(define-public golang-github-com-calmh-du + (package + (name "golang-github-com-calmh-du") + (version "1.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/du") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/calmh/du")) + (synopsis "Get total and available disk space on a given volume") + (description "Du provides disk usage information, such as how much storage +space is available, free, and used.") + (home-page "https://github.com/calmh/du") + (license public-domain))) + +(define-public golang-github-com-calmh-luhn + (package + (name "golang-github-com-calmh-luhn") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/luhn") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "1hfj1lx7wdpifn16zqrl4xml6cj5gxbn6hfz1f46g2a6bdf0gcvs")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/calmh/luhn")) + (synopsis "Luhn-mod-N implementation in Go") + (description "This packages provides a Luhn-mod-N implementation in Go.") + (home-page "https://github.com/calmh/luhn") + (license expat))) + +(define-public golang-github-com-calmh-xdr + (let ((commit "08e072f9cb164f943a92eb59f90f3abc64ac6e8f") + (revision "0")) + (package + (name "golang-github-com-calmh-xdr") + (version (string-append "2.0.1-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/xdr") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/calmh/xdr")) + (synopsis "XDR marshalling and unmarshalling") + (description "XDR is an External Data Representation (XDR) +marshalling and unmarshalling library in Go. It uses code generation and not +reflection") + (home-page "https://github.com/calmh/xdr") + (license expat)))) + +(define-public golang-github-com-d4l3k-messagediff + (let ((commit "29f32d820d112dbd66e58492a6ffb7cc3106312b") + (revision "0")) + (package + (name "golang-github-com-d4l3k-messagediff") + (version (string-append "1.1.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/d4l3k/messagediff") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/d4l3k/messagediff")) + (synopsis "Diff arbitrary Golang structs") + (description "Messagediff is a library for calculating diffs of arbitrary +Golang structs.") + (home-page "https://github.com/d4l3k/messagediff") + (license expat)))) + +(define-public golang-github-com-edsrzf-mmap-go + (let ((commit "0bce6a6887123b67a60366d2c9fe2dfb74289d2e") + (revision "0")) + (package + (name "golang-github-com-edsrzf-mmap-go") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/edsrzf/mmap-go") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1am4m2k451bksnbiqj6lxknk4lsgmrhv0q3ajqac818vj0cpfgs9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/edsrzf/mmap-go")) + (synopsis "Go implementation of mmap") + (description "This packages provides a Go implementation of mmap.") + (home-page "https://github.com/edsrzf/mmap-go") + (license bsd-3)))) + +(define-public golang-github-com-gobwas-glob + (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420") + (revision "0")) + (package + (name "golang-github-com-gobwas-glob") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gobwas/glob") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gobwas/glob")) + (synopsis "Go globbing library") + (description "This packages provides a Go implementation of globs.") + (home-page "https://github.com/gobwas/glob") + (license expat)))) + +(define-public golang-github-com-gogo-protobuf + (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63") + (revision "0")) + (package + (name "golang-github-com-gogo-protobuf") + (version (string-append "0.2-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/protobuf") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gogo/protobuf/proto" + #:unpack-path "github.com/gogo/protobuf")) + (inputs + `(("golang-github-com-gogo-protobuf-protoc-gen-gogo" + ,golang-github-com-gogo-protobuf-protoc-gen-gogo))) + (synopsis "Protocol Buffers for Go with Gadgets") + (description "gogoprotobuf is a fork of golang/protobuf with extra code +generation features. This code generation is used to achieve: + + fast marshalling and unmarshalling + more canonical Go structures + goprotobuf compatibility + less typing by optionally generating extra helper code + peace of mind by optionally generating test and benchmark code + other serialization formats") + (home-page "https://github.com/gogo/protobuf") + (license bsd-3)))) + +(define-public golang-github-com-gogo-protobuf-protoc-gen-gogo + (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63") + (revision "0")) + (package + (name "golang-github-com-gogo-protobuf-protoc-gen-gogo") + (version (string-append "0.2-" revision "0" (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/protobuf") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo" + #:unpack-path "github.com/gogo/protobuf")) + (synopsis "Protocol Buffers for Go with Gadgets") + (description "Gogoprotobuf is a fork of golang/protobuf with extra code +generation features. This code generation is used to achieve: + + fast marshalling and unmarshalling + more canonical Go structures + goprotobuf compatibility + less typing by optionally generating extra helper code + peace of mind by optionally generating test and benchmark code + other serialization formats") + (home-page "https://github.com/gogo/protobuf") + (license bsd-3)))) + +(define-public golang-github-com-golang-groupcache-lru + (let ((commit "72d04f9fcdec7d3821820cc4a6f150eae553639a") + (revision "0")) + (package + (name "golang-github-com-golang-groupcache-lru") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/groupcache") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1l3ryh7bq1f2mhr3sd3x1wav99pd27r8l3ydgqh375wn4x7v5qd6")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/golang/groupcache/lru" + #:unpack-path "github.com/golang/groupcache")) + (synopsis "groupcache is a caching and cache-filling library") + (description "Groupcache is a caching and cache-filling library, intended +as a replacement for memcached in many cases.") + (home-page "https://github.com/golang/groupcache") + (license asl2.0)))) + +(define-public golang-github-com-golang-snappy + (let ((commit "553a641470496b2327abcac10b36396bd98e45c9") + (revision "0")) + (package + (name "golang-github-com-golang-snappy") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/snappy") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/golang/snappy")) + (synopsis "Snappy compression format in the Go programming language") + (description "This package provides a Go implementation of the Snappy +compression format.") + (home-page "https://github.com/golang/snappy") + (license bsd-3)))) + +(define-public golang-github-com-jackpal-gateway + (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006") + (revision "0")) + (package + (name "golang-github-com-jackpal-gateway") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackpal/gateway") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/jackpal/gateway")) + (synopsis "Library for discovering the address of a LAN gateway") + (description "Library for discovering the address of a LAN gateway") + (home-page "https://github.com/jackpal/gateway") + (license bsd-3)))) + +(define-public golang-github-com-kardianos-osext + (let ((commit "9d302b58e975387d0b4d9be876622c86cefe64be") + (revision "0")) + (package + (name "golang-github-com-kardianos-osext") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kardianos/osext") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0r6f727s16g4f66k8c2z1xh8ga1p53hg9g2v95pmhd1i60fhy47a")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kardianos/osext")) + (synopsis "Find the running executable") + (description "Osext provides a method for finding the current executable +file that is running. This can be used for upgrading the current executable or +finding resources located relative to the executable file.") + (home-page "https://github.com/kardianos/osext") + (license bsd-3)))) + +(define-public golang-github-com-lib-pq + (let ((commit "2704adc878c21e1329f46f6e56a1c387d788ff94") + (revision "0")) + (package + (name "golang-github-com-lib-pq") + (version (string-append "0.0.0" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lib/pq") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/lib/pq" + #:tests? #f + )) + (synopsis "Golang Postgres driver for Go's database/sql") + (description "This packages provides a pure Go Postgres driver for Go's +database/sql package.") + (home-page "https://github.com/lib/pq") + (license expat)))) + +(define-public golang-github-com-minio-sha256-simd + (let ((commit "6124d070eb4e7001c244b6ccc282620a5dce44a0") + (revision "0")) + (package + (name "golang-github-com-minio-sha256-simd") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/sha256-simd") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1azrdp7x7vl9ngkxs890blspz0345xhadvssdlb0435hdqa0gkll")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/minio/sha256-simd")) + (synopsis "Hardware-accelerated SHA256 in Go using SIMD") + (description "This packages provides a pure Go implementation of SHA256 +using SIMD instructions for Intel and ARM architectures.") + (home-page "https://github.com/minio/sha256-simd") + (license asl2.0)))) + +(define-public golang-github-com-onsi-ginkgo + (let ((commit "77a8c1e5c40d6bb6c5eb4dd4bdce9763564f6298") + (revision "0")) + (package + (name "golang-github-com-onsi-ginkgo") + (version (string-append "1.2.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/onsi/ginkgo") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "12x81s3l6l4f9v5hh7rrykw18gpmwfq0dpbb6d80jyg1pffgprss")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/onsi/ginkgo")) + (synopsis "BDD Testing Framework for Go") + (description "This package provides a behavior-driven development (BDD) +testing framework in Go.") + (home-page "https://github.com/onsi/ginkgo") + (license expat)))) + +(define-public golang-github-com-onsi-gomega + (let ((commit "c893efa28eb45626cdaa76c9f653b62488858837") + (revision "0")) + (package + (name "golang-github-com-onsi-gomega") + (version (string-append "1.2.0")) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/onsi/gomega") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1l5m7kjpdaw6q443nzn38lqb7m0yl77yfgyqrgi9i9zm01zwpvv0")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/onsi/gomega")) + (synopsis "Matching and assertion library in Go") + (description "Gomega is a matcher/assertion library. It is best paired +with the Ginkgo BDD test framework, but can be adapted for use in other contexts +too.") + (home-page "https://github.com/onsi/gomega") + (license expat)))) + +(define-public golang-github-com-oschwald-geoip2-golang + (let ((commit "0fd242da7906550802871efe101abfdb1cc550a8") + (revision "0")) + (package + (name "golang-github-com-oschwald-geoip2-golang") + (version (string-append "0.1.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oschwald/geoip2-golang") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0kglnix0r5sjkk346ip30l7dwq1gv2g4wjy2cjmgjvb8x778hnww")))) + (build-system go-build-system) + (inputs + `(("golang-github-com-oschwald-maxminddb-golang" ,golang-github-com-oschwald-maxminddb-golang) + ("golang-org-x-sys-unix" ,golang-org-x-sys-unix))) + (arguments + `(#:import-path "github.com/oschwald/geoip2-golang" + #:tests? #f)) ; Requires some unpackaged software + (synopsis "MaxMind GeoIP2 reader") + (description "This packages provides a library for reading MaxMind +GeoLite2 and GeoIP2 databases in Go.") + (home-page "https://github.com/oschwald/geoip2-golang") + (license isc)))) + +(define-public golang-github-com-oschwald-maxminddb-golang + (let ((commit "697da8075d2061aa8ed639346443f5d3e8c80b30") + (revision "0")) + (package + (name "golang-github-com-oschwald-maxminddb-golang") + (version (string-append "0.2.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oschwald/maxminddb-golang") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00kkxzlvra0kcbkl56wp0dp1yw3cmfjqqlwbqy7bq5r34s7iavq0")))) + (build-system go-build-system) + (inputs + `(("golang-org-x-sys-unix" ,golang-org-x-sys-unix))) + (arguments + `(#:import-path "github.com/oschwald/maxminddb-golang" + #:tests? #f)) ; Requires some unpackaged software + (synopsis "MaxMind DB Reader for Go") + (description "This is a Go reader for the MaxMind DB format. Although +this can be used to read GeoLite2 and GeoIP2 databases, geoip2 provides a +higher-level API for doing so.") + (home-page "https://github.com/oschwald/maxminddb-golang") + (license isc)))) + +(define-public golang-github-com-rcrowley-go-metrics + (let ((commit "1f30fe9094a513ce4c700b9a54458bbb0c96996c") + (revision "0")) + (package + (name "golang-github-com-rcrowley-go-metrics") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rcrowley/go-metrics") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1hvbiaq4b6dqgjz6jkkxglfh9gf71zin6qsg508sh0r0ixfavrzj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rcrowley/go-metrics")) + (synopsis "Go port of Coda Hale's Metrics library") + (description "This package provides a Go port of Coda Hale's Metrics +library.") + (home-page "https://github.com/rcrowley/go-metrics") + (license bsd-2)))) + +(define-public golang-github-com-sasha-s-go-deadlock + (package + (name "golang-github-com-sasha-s-go-deadlock") + (version "341000892f3dd25f440e6231e8533eb3688ed7ec") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sasha-s/go-deadlock") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sasha-s/go-deadlock")) + (propagated-inputs + `(("golang-github-com-petermattis-goid" ,golang-github-com-petermattis-goid))) + (synopsis "Deadlock detection in go") + (description "This package provides tools for detecting deadlocks at +run-time in Go.") + (home-page "https://github.com/sasha-s/go-deadlock") + (license asl2.0))) + +(define-public golang-github-com-stathat-go + (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e") + (revision "0")) + (package + (name "golang-github-com-stathat-go") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stathat/go") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "105ql5v8r4hqcsq0ag7asdxqg9n7rvf83y1q1dj2nfjyn4manv6r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/stathat/go")) + (synopsis "Post statistics to StatHat") + (description "This is a Go package for posting to a StatHat account.") + (home-page "https://github.com/stathat/go") + (license expat)))) + +(define-public golang-github-com-syndtr-goleveldb + (let ((commit "3c5717caf1475fd25964109a0fc640bd150fce43") + (revision "0")) + (package + (name "golang-github-com-syndtr-goleveldb") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/syndtr/goleveldb") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wng25bw885ppiny9rz42kq0a7ddkym5zl0glb8rfk0m8dpvi1dd")))) + (build-system go-build-system) + (inputs + `(("github.com-golang-snappy" ,golang-github-com-golang-snappy))) + (arguments + `(#:import-path "github.com/syndtr/goleveldb/leveldb" + #:unpack-path "github.com/syndtr/goleveldb" + #:tests? #f)) ; XXX needs gomega package + (synopsis "LevelDB key/value database") + (description "This is an implementation of the LevelDB key / value +database in Go.") + (home-page "https://github.com/syndtr/goleveldb") + (license bsd-2)))) + +(define-public golang-github-com-thejerf-suture + (let ((commit "0ac47afae95ad5bc5184ed346bc945168e883f5d") + (revision "0")) + (package + (name "golang-github-com-thejerf-suture") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/thejerf/suture") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0f860fkaibnnkmh4q6q9yn3r26sraaj8wx9irwm76cmsp48zcxfy")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/thejerf/suture")) + (synopsis "Supervisor trees for Go") + (description "Suture provides Erlang-ish supervisor trees for Go. +\"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together +when it's trying to die. + +It is intended to deal gracefully with the real failure cases that can occur +with supervision trees (such as burning all your CPU time endlessly restarting +dead services), while also making no unnecessary demands on the \"service\" +code, and providing hooks to perform adequate logging with in a production +environment") + (home-page "https://github.com/thejerf/suture") + (license expat)))) + +(define* (golang-github-com-vitrun-qart + #:optional (packages (list golang-github-com-vitrun-qart-coding + golang-github-com-vitrun-qart-gf256 + golang-github-com-vitrun-qart-qr))) + (package + (name "golang-github-com-vitrun-qart") + (version (package-version golang-github-com-vitrun-qart-coding)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of qart libraries") + (description "This is a union of qart libraries.") + (home-page (package-home-page golang-github-com-vitrun-qart-coding)) + (license (package-license golang-github-com-vitrun-qart-coding)))) + +(define-public golang-github-com-vitrun-qart-coding + (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") + (revision "0")) + (package + (name "golang-github-com-vitrun-qart-coding") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitrun/qart") + (commit commit))) + (file-name (string-append "golang-github-com-vitrun-qart-" + version "-checkout")) + (sha256 + (base32 + "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/vitrun/qart/coding" + #:unpack-path "github.com/vitrun/qart")) + (synopsis "Package coding implements low-level QR coding details") + (description "Instead of scribbling on redundant pieces and relying on +error correction to preserve the meaning, qart engineers the encoded values to +create the picture in a code with no inherent errors. Package coding implements +low-level QR coding details") + (home-page "https://github.com/vitrun/qart/") + (license bsd-3)))) + +(define-public golang-github-com-vitrun-qart-gf256 + (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") + (revision "0")) + (package + (name "golang-github-com-vitrun-qart-gf256") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitrun/qart") + (commit commit))) + (file-name (string-append "golang-github-com-vitrun-qart-" + version "-checkout")) + (sha256 + (base32 + "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/vitrun/qart/gf256" + #:unpack-path "github.com/vitrun/qart")) + (synopsis "Package gf256 implements arithmetic over the Galois Field GF(256)") + (description "Instead of scribbling on redundant pieces and relying on +error correction to preserve the meaning, qart engineers the encoded values to +create the picture in a code with no inherent errors. Package gf256 implements +arithmetic over the Galois Field GF(256)") + (home-page "https://github.com/vitrun/qart") + (license bsd-3)))) + +(define-public golang-github-com-vitrun-qart-qr + (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") + (revision "0")) + (package + (name "golang-github-com-vitrun-qart-qr") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitrun/qart") + (commit commit))) + (file-name (string-append "golang-github-com-vitrun-qart-" + version "-checkout")) + (sha256 + (base32 + "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/vitrun/qart/qr" + #:unpack-path "github.com/vitrun/qart")) + (synopsis "Qart generates not-so-ugly qr codes") + (description "Instead of scribbling on redundant pieces and relying on +error correction to preserve the meaning, qart engineers the encoded values to +create the picture in a code with no inherent errors.") + (home-page "https://github.com/vitrun/qart") + (license bsd-3)))) + +;; Go searches for library modules by looking in the GOPATH environment +;; variable. This variable is a list of paths. However, Go does not +;; keep searching on GOPATH if it tries and fails to import a module. +;; So, we use a union for packages sharing a namespace. +(define* (golang-org-x-crypto #:optional + (packages (list golang-org-x-crypto-blowfish + golang-org-x-crypto-bcrypt + golang-org-x-crypto-tea + golang-org-x-crypto-xtea + golang-org-x-crypto-pbkdf2 + golang-org-x-crypto-twofish + golang-org-x-crypto-cast5 + golang-org-x-crypto-salsa20))) + (package + (name "golang-org-x-crypto") + (version (package-version golang-org-x-crypto-bcrypt)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go x crypto libraries") + (description "A union of the Golang cryptographic libraries. A +union is required because `go build` assumes that all of the headers and +libraries are in the same directory.") + (home-page (package-home-page golang-org-x-crypto-bcrypt)) + (license (package-license golang-org-x-crypto-bcrypt)))) + +(define-public golang-org-x-crypto-bcrypt + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-bcrypt") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/bcrypt" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Bcrypt in Go") + (description "This package provides a Go implementation of bcrypt.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-blowfish + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-blowfish") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/blowfish" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Blowfish in Go") + (description "This package provides a Go implementation of Blowfish.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-pbkdf2 + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-pbkdf2") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/pbkdf2" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Pbkdf2 in Go") + (description "This package provides a Go implementation of pbkdf2.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-tea + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-tea") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/tea" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Tiny Encryption Algorithm (TEA) in Go") + (description "This packages a Go implementation of the Tiny Encryption +Algorithm (TEA).") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-salsa20 + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-salsa20") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/salsa20" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Salsa20 in Go") + (description "This packages provides a Go implementation of Salsa20.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-cast5 + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-cast5") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/cast5" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Cast5 in Go") + (description "This packages provides a Go implementation of Cast5.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-twofish + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-twofish") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/twofish" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "Twofish in Go") + (description "This packages provides a Go implementation of Twofish.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-xtea + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-xtea") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/xtea" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go") + (description "This package provides a Go implementation of the eXtended +Tiny Encryption Algorithm (XTEA).") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-net-html-charset + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-html-charset") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/html/charset" + #:unpack-path "golang.org/x/net")) + (inputs + `(("golang-org-x-text-encoding" ,golang-org-x-text-encoding))) + (synopsis "Golang HTML encoding") + (description "This packages provides @code{charset}, which provides common +text encodings for HTML documents.") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-bpf + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-bpf") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/bpf" + #:unpack-path "golang.org/x/net")) + (synopsis "Berkeley Packet Filters (BPF) in Go") + (description "This packages provides a Go implementation of the Berkeley +Packet Filter (BPF) virtual machine.") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-context + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-context") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/context" + #:unpack-path "golang.org/x/net")) + (synopsis "Golang Context type") + (description "This packages provides @code{context}, which defines the +Context type, which carries deadlines, cancelation signals, and other +request-scoped values across API boundaries and between processes.") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-internal-iana + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-internal-iana") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/internal/iana" + #:unpack-path "golang.org/x/net")) + (synopsis "Go support for assigned numbers (IANA)") + (description "This packages provides @code{iana}, which provides protocol +number resources managed by the Internet Assigned Numbers Authority (IANA).") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-ipv6 + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-ipv6") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/ipv6" + #:unpack-path "golang.org/x/net")) + (synopsis "Go IPv6 support") + (description "This packages provides @code{ipv6}, which implements +IP-level socket options for the Internet Protocol version 6.") + (home-page "https://go.googlesource.com/net") + (license bsd-3)))) + +(define-public golang-org-x-net-proxy + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-proxy") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/proxy" + #:unpack-path "golang.org/x/net/")) + (synopsis "Go support for network proxies") + (description "This packages provides @code{proxy}, which provides support +for a variety of protocols to proxy network data.") + (home-page "https://go.googlesource.com/net") + (license bsd-3)))) + +(define-public golang-org-x-sys-unix + (let ((commit "f3918c30c5c2cb527c0b071a27c35120a6c0719a") + (revision "0")) + (package + (name "golang-org-x-sys-unix") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/sys") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "02967mw0nq7hp39bcf8rdbid4jgz2fn6hd1x03mmavvca03scxbh")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/sys/unix" + #:unpack-path "golang.org/x/sys")) + (synopsis "Go support for low-level system interaction") + (description "This package provides @code{unix}, which offers Go support +for low-level interaction with the operating system.") + (home-page "https://go.googlesource.com/sys") + (license bsd-3)))) + +(define* (golang-org-x-text #:optional + (packages (list golang-org-x-text-transform + golang-org-x-text-unicode-norm))) + (package + (name "golang-org-x-text") + (version (package-version golang-org-x-text-transform)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go text libraries") + (description "A union of the Golang text libraries.") + (home-page (package-home-page golang-org-x-text-transform)) + (license (package-license golang-org-x-text-transform)))) + +(define-public golang-org-x-text-transform + (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") + (revision "0")) + (package + (name "golang-org-x-text-transform") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/text") + (commit commit))) + (file-name (string-append "go.googlesource.com-text-" + version "-checkout")) + (sha256 + (base32 + "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/text/transform" + #:unpack-path "golang.org/x/text")) + (synopsis "Go text transformation") + (description "This package provides @code{transform}, which provides +reader and writer wrappers that transform the bytes passing through as well as +various transformations. Example transformations provided by other packages +include normalization and conversion between character sets.") + (home-page "https://go.googlesource.com/text") + (license bsd-3)))) + +(define-public golang-org-x-text-unicode-norm + (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") + (revision "0")) + (package + (name "golang-org-x-text-unicode-norm") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/text") + (commit commit))) + (file-name (string-append "go.googlesource.com-text-" + version "-checkout")) + (sha256 + (base32 + "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/text/unicode/norm" + #:unpack-path "golang.org/x/text")) + (synopsis "Unicode normalization in Go") + (description "This package provides @code{norm}, which contains types and +functions for normalizing Unicode strings.") + (home-page "https://go.googlesource.com/text") + (license bsd-3)))) + +(define-public golang-github-com-audriusbutkevicius-pfilter + (let ((commit "09b3cfdd04de89f0196caecb0b335d7149a6593a") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-pfilter") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/pfilter.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "176g8dmi2i94bxpnpgvj3dv5y9hripi45kbrfvy2bk884hwbp1zq")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AudriusButkevicius/pfilter")) + (synopsis "Filter packets into mulitple virtual connections") + (description "Pfilter is a Go package for filtering packets into multiple +virtual connections from a single physical connection.") + (home-page "https://github.com/AudriusButkevicius/pfilter") + (license expat)))) + +(define-public golang-github-com-ccding-go-stun + (let ((commit "04a4eed61c57ecc9903f8983d1d2c17b88d2e9e1") + (revision "0")) + (package + (name "golang-github-com-ccding-go-stun") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ccding/go-stun.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09fgmkvm0vzinl3ifrixyyxk2c9hbahrja7i0ir400harzq3my10")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/ccding/go-stun")) + (synopsis "STUN client implementation") + (description "Go-stun is a go implementation of the STUN client (RFC 3489 +and RFC 5389).") + (home-page "https://github.com/ccding/go-stun") + (license asl2.0)))) + +(define-public golang-github-com-chmduquesne-rollinghash-adler32 + (let ((commit "043b8fdecc9816f0011a056f6d92f9a091ab63dd") + (revision "0")) + (package + (name "golang-github-com-chmduquesne-rollinghash-adler32") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chmduquesne/rollinghash.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0pc87laxgydqv03bdirfv32y9k0bdk2cwjxn28yh42nvay9p6y0k")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/chmduquesne/rollinghash/adler32" + #:unpack-path "github.com/chmduquesne/rollinghash")) + (synopsis "Adler-32 rolling hash in Go") + (description "This package provides a Go implementation of the Adler-32 +rolling hash.") + (home-page "https://github.com/chmduquesne/rollinghash") + (license expat)))) + +(define-public golang-github-com-xtaci-kcp-go + (let ((commit "0b0731ef3f184a8985edcb4ca26a4b0598c6dc1a") + (revision "0")) + (package + (name "golang-github-com-xtaci-kcp-go") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtaci/kcp-go.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1cjv5wj1szfqv2yhjil6ka3lzcf7vakmyvrabpblcy2vcw3k71k7")))) + (build-system go-build-system) + (inputs + `(("golang-org-x-net-ipv4" ,golang-org-x-net-ipv4) + ("golang-github-com-klauspost-reedsolomon" ,golang-github-com-klauspost-reedsolomon) + ("golang-github-com-klauspost-cpuid" ,golang-github-com-klauspost-cpuid) + ("golang-github-com-pkg-errors" ,golang-github-com-pkg-errors) + ("golang-org-x-crypto" ,(golang-org-x-crypto)))) + (arguments + '(#:import-path "github.com/xtaci/kcp-go" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-test + (lambda _ + (substitute* "src/github.com/xtaci/kcp-go/sess_test.go" + (("TestParallel") "DisabledTestParallel")) + #t))))) + (synopsis "Reliable UDP connections in Go") + (description "kcp-go is a reliable UDP library written in Go. It provides +fast, ordered and error-checked delivery of streams over UDP packets.") + (home-page "https://github.com/xtaci/kcp-go") + (license expat)))) + +(define-public golang-github-com-xtaci-smux + (let ((commit "0f6b9aaecaaf354357adc7def9239011ad276776") + (revision "0")) + (package + (name "golang-github-com-xtaci-kcp-smux") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtaci/smux.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wx9j0id2f5iqvyalhm4i80fr9k25klr7qqj8sd9acwp5vfl5fas")))) + (build-system go-build-system) + (propagated-inputs + `(("golang-github-com-pkg-errors" ,golang-github-com-pkg-errors))) + (arguments + '(#:import-path "github.com/xtaci/smux")) + (synopsis "Network multiplexing in Go") + (description "Smux ( Simple MUltipleXing) is a multiplexing library for +Golang. It relies on an underlying connection to provide reliability and +ordering, such as TCP or KCP, and provides stream-oriented multiplexing.") + (home-page "https://github.com/xtaci/smux") + (license expat)))) + +(define* (golang-org-x-net #:optional + (packages (list golang-org-x-net-ipv4 + golang-org-x-net-bpf + golang-org-x-net-context + golang-org-x-net-ipv6 + golang-org-x-net-proxy + golang-org-x-net-internal-iana))) + (package + (name "golang-org-x-net") + (version (package-version golang-org-x-net-ipv4)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go net libraries") + (description "A union of the Golang net libraries.") + (home-page (package-home-page golang-org-x-net-ipv4)) + (license (package-license golang-org-x-net-ipv4)))) + +(define-public golang-org-x-net-ipv4 + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-ipv4") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/ipv4" + #:unpack-path "golang.org/x/net")) + (synopsis "Go IPv4 support") + (description "This package provides @code{ipv4}, which implements IP-level +socket options for the Internet Protocol version 4.") + (home-page "https://go.googlesource.com/net") + (license bsd-3)))) + +(define-public golang-github-com-klauspost-reedsolomon + (let ((commit "5abf0ee302ccf4834e84f63ff74eca3e8b88e4e2") + (revision "0")) + (package + (name "golang-github-com-klauspost-reedsolomon") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/reedsolomon.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1za3db8zc76rg2f4kpvw4x8pykbyhmacnhdhyys73421f0m50a0s")))) + (build-system go-build-system) + (propagated-inputs + `(("golang-github-com-klauspost-cpuid" + ,golang-github-com-klauspost-cpuid))) + (arguments + `(#:import-path "github.com/klauspost/reedsolomon")) + (synopsis "Reed-Solomon Erasure Coding in Go") + (description "This package provides Reed-Solomon Erasure Coding in Go.") + (home-page "https://github.com/klauspost/reedsolomon") + (license expat)))) + +(define-public golang-github-com-klauspost-cpuid + (let ((commit "09cded8978dc9e80714c4d85b0322337b0a1e5e0") + (revision "0")) + (package + (name "golang-github-com-klauspost-cpuid") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/cpuid.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "05l8pfch0gvxh0khapwxhsk4xajn40vbjr360n49vh2z5531v2xq")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/klauspost/cpuid")) + (synopsis "CPU feature identification for Go") + (description "This package provides @code{cpuid}, which provides +information about the CPU running the current program. CPU features are +detected on startup, and kept for access through the life of the +application. Currently x86 / x64 (AMD64) is supported, and no external C (cgo) +code is used.") + (home-page "https://github.com/klauspost/cpuid") + (license expat)))) + +(define-public golang-github-com-pkg-errors + (let ((commit "ff09b135c25aae272398c51a07235b90a75aa4f0") + (revision "0")) + (package + (name "golang-github-com-pkg-errors") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/errors.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0pwl6v3hmc22zp32gkyqykl4kg69xk1mlp0vmhgd1f44difd5fvz")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/pkg/errors")) + (synopsis "Go error handling primitives") + (description "This packages provides @code{error}, which offers simple +error handling primitives in Go.") + (home-page "https://github.com/pkg/errors") + (license bsd-2)))) + +(define-public golang-org-x-time-rate + (let ((commit "f51c12702a4d776e4c1fa9b0fabab841babae631") + (revision "0")) + (package + (name "golang-org-x-time-rate") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/time") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/time/rate" + #:unpack-path "golang.org/x/time")) + (inputs + `(("golang-org-x-net-context" ,golang-org-x-net-context))) + (synopsis "Rate limiting in Go") + (description "This package provides @{rate}, which implements rate +limiting in Go.") + (home-page "https://godoc.org/golang.org/x/time/rate") + (license bsd-3)))) + +(define-public golang-github-com-petermattis-goid + (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02") + (revision "0")) + (package + (name "golang-github-com-petermattis-goid") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/petermattis/goid.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + + (base32 + "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/petermattis/goid")) + (synopsis "Identify the running goroutine") + (description "This package offers a method of programatically retrieving +the current goroutine's ID.") + (home-page "https://github.com/petermattis/goid") + (license asl2.0)))) + +(define-public golang-github-com-audriusbutkevicius-cli + (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-cli") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/cli.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AudriusButkevicius/cli")) + (synopsis "Library for building command-line interfaces in Go") + (description "This package provides a library for building command-line +interfaces in Go.") + (home-page "https://github.com/AudriusButkevicius/cli") + (license expat)))) + +(define-public golang-github-com-kballard-go-shellquote + (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2") + (revision "0")) + (package + (name "golang-github-com-kballard-go-shellquote") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kballard/go-shellquote.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/kballard/go-shellquote")) + (synopsis "Shell-style string joins and splits") + (description "Shellquote provides utilities for joining/splitting strings +using sh's word-splitting rules.") + (home-page "https://github.com/kballard/go-shellquote") + (license expat)))) -- 2.14.1 From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] [PATCH 2/2] gnu: Add Syncthing. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 25 Sep 2017 18:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.15063637092404 (code B ref 28586); Mon, 25 Sep 2017 18:22:01 +0000 Received: (at 28586) by debbugs.gnu.org; 25 Sep 2017 18:21:49 +0000 Received: from localhost ([127.0.0.1]:58866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwY0r-0000cg-1T for submit@debbugs.gnu.org; Mon, 25 Sep 2017 14:21:49 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:52655) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwY0p-0000cW-08 for 28586@debbugs.gnu.org; Mon, 25 Sep 2017 14:21:47 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 082D721F1F; Mon, 25 Sep 2017 14:21:46 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Mon, 25 Sep 2017 14:21:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=PFS4wzTmQZghPUqiF95RhEFcdFvS1Gar6cu97K ktAdA=; b=lWfArx/fvP27hyEJi5mKDdzadOeT4bRSP6U3wlH3pgqXK5zAHAJtfr xogucA0RteTjlYjOS1ChwxzI1xe0iuiFf9nxLzNYY9xeVxWiPrNQfPYN7BJQXPQS /5AnUlbv/oxS+r5V7duEbdTN9LuZZLmR2EylOqrCDgWPB6tBwe4Qw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=PFS4wzTmQZghPUqiF9 5RhEFcdFvS1Gar6cu97KktAdA=; b=dwZqM5ZWlQkgcW/WZIy/UcSEF/PwP2c3ro /Y6r947DjagJqajMxsHyorg+7+0D4AKCwawZPsEGRd+gHFZ8wfZFZdMo+XODwbTw x/KPqLCwtK+yzYtDeVq/QXbIgF1rkZ1pMLQZSBHL2UwPUmthvSvcjUqUqyXpUF4Y 6ngqwp67GVcPoCNnOlKGtne4QtoYAgjerBz9cOiQ/Y6hLF7vmOxmUr3C1PKSFFCe cg6p4VYmX+2U3D0GtOIyJGaX4QOoSKjO8CKoh7H6Rz6i1RJyqQ7ENYkuFXV9pt9y 1UlO5vLpiWwwlOLwf0bU4cTIKE1y9ECqsqtfxqclwx2WLXySpRWQ== X-ME-Sender: X-Sasl-enc: L/xodsAYw8SuUPuE6JOo3TW4pLIZGq0s0aybdXSCGgv5 1506363705 Received: from localhost (71-87-87-57.dhcp.krny.ne.charter.com [71.87.87.57]) by mail.messagingengine.com (Postfix) with ESMTPA id 77CB37E8EC for <28586@debbugs.gnu.org>; Mon, 25 Sep 2017 14:21:45 -0400 (EDT) Date: Mon, 25 Sep 2017 14:21:44 -0400 From: Leo Famulari Message-ID: <20170925182144.GA16527@jasmine.lan> References: <5f9b36da2183c37cb24713472ea22921c0f48d36.1506285652.git.leo@famulari.name> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="WIyZ46R2i8wDzkSu" Content-Disposition: inline In-Reply-To: <5f9b36da2183c37cb24713472ea22921c0f48d36.1506285652.git.leo@famulari.name> User-Agent: Mutt/1.8.3 (2017-05-23) X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --WIyZ46R2i8wDzkSu Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Sep 24, 2017 at 04:40:53PM -0400, Leo Famulari wrote: > * gnu/packages/syncthing.scm: New file. >=20 > Co-authored-by: Petter [...] > +(define-public golang-github-com-sasha-s-go-deadlock > + (package > + (name "golang-github-com-sasha-s-go-deadlock") > + (version "341000892f3dd25f440e6231e8533eb3688ed7ec") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/sasha-s/go-deadlock") > + (commit version))) > + (file-name (string-append name "-" version "-checkout")) > + (sha256 > + (base32 > + "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8"))= )) > + (build-system go-build-system) > + (arguments > + `(#:import-path "github.com/sasha-s/go-deadlock")) > + (propagated-inputs > + `(("golang-github-com-petermattis-goid" ,golang-github-com-petermat= tis-goid))) There are a handful of packages, like this one, that seem to need their dependencies propagated, or else building Syncthing fails when the package fails to find its dependency. This suggests to me that the Syncthing build process is not using the compiled objects of these packages but is instead trying to rebuild them. So, perhaps something is not quite right with the go-build-system =E2=80=94= I'm not sure. --WIyZ46R2i8wDzkSu Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlnJSTgACgkQJkb6MLrK fwhvJRAAkjd0i11oGY0TVZBbckrrirIssIjIzo0PL6mZei+xxQ1wOaExv24wFcpv 6csb94BqBdqRlGDE7Lt99u6bH6NQdR5eqfxAJKtAGE/i5CdGGqwvA0fymq16QQ9k 2L72aVpuoevP0GBklPPM2xqBo7DIWxY0jrVNCzhtyKhOv5iYDJjbNTSOJ+pHmjTA 1FT9Q1Ca1lENEYxnNcCJLscolP9yS8NmJv5LCaqEnSyJ682lkDSt7MlSJKq/8JJG CfAXAqlIfAvpflD3T12GD5mYdbKHGX6RjN1MgGzeqJbUpZgJjM27STkVol5k9ne4 7cbl4TtmTXTofJuLtNgRJZt5nCe+Uy/r1W55iCIX59i6cjZhGERcdb4iyIdkVvN8 J4nqCHOA76TkzQnA19IV6HWBS7tmba5ZCduUPYBnVHGnUcAUsegFcm5tokkcBJhF i3t8EuhusUI3kGySH3Nh/tlDVIR+Nbs4gjnhxvAct7xY7v4vNgZBjwb/LW2ouAbJ radWilZkoAF5xAyxYA5+7gNIGnnM49aCg4TXSLFVgYktaf+eoI04AdsqUZO3E0oD 4dY1XlITmJq0fDqm93hFYhXrwNR0bH7ACwqYdky0NrJJrPG415qdR4fpD+jToAIb Kj+99OLw3pCdhts+wxandKBMOWthZg+4YEM0zLXP6zECTSxW5x0= =Ry88 -----END PGP SIGNATURE----- --WIyZ46R2i8wDzkSu-- From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] [PATCH 2/2] gnu: Add Syncthing. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 25 Sep 2017 19:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150636778615636 (code B ref 28586); Mon, 25 Sep 2017 19:30:02 +0000 Received: (at 28586) by debbugs.gnu.org; 25 Sep 2017 19:29:46 +0000 Received: from localhost ([127.0.0.1]:58948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwZ4c-000447-F4 for submit@debbugs.gnu.org; Mon, 25 Sep 2017 15:29:46 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:34219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwZ4a-00043z-5v for 28586@debbugs.gnu.org; Mon, 25 Sep 2017 15:29:44 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 38EDC22172; Mon, 25 Sep 2017 15:28:54 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Mon, 25 Sep 2017 15:28:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=EVp1uTRuPrLlJy5pifhBYvbENQkyTHeTw74L1+ 368MM=; b=BxEwkLHg8VX1v9nwChWrj3n7yoWcCBFelxkNbk4Ve9+gD1J2Uecpy5 nloelEtYQaeOjkTmavcoJyMR9tsvVwQMWH9J4qDw1Kufxc2SEqNSqRgkWac+A/hs Ll0wTW2qxgZV864BzoIbCkE8xCr8z660vi0XqcwWfFSpXex/vLcVs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=EVp1uTRuPrLlJy5pif hBYvbENQkyTHeTw74L1+368MM=; b=dUOcWkVyxNnbB70Klz/lDBF3wS4jFiRJxl wWWCH6d1IHW5M8u+ISCY/RLBI25+nIteMG/2N+4xVr128e0UApIL/aZa7PZaP4rk /8jT9F85DqpnG1I8zHH7R0cFS7rxXZuh7a7lRjyed2gZIQyAE9Y728d7jS2IEBo6 5MxZovt7CGOAYYA8pdmitSSUpfJqrkDMWYoQmUMBkaJ2o2AOGxKoPiZINX16Elgb NjEGZX0ynqtmKUDciKNDnKv5CAcsliBJzePt2gEJdc7Ndz2IMK26/meZ2WX5B6Zv ka9SA6VeKv2i2+95MV1x5dINYKW3phthDzqDhUGproXpJv36WrRg== X-ME-Sender: X-Sasl-enc: RK69k6DCVws74zcMoXteSy4FQFyDnCmPyJRLL5M+YOBs 1506367733 Received: from localhost (71-87-87-57.dhcp.krny.ne.charter.com [71.87.87.57]) by mail.messagingengine.com (Postfix) with ESMTPA id DA76B7F93A for <28586@debbugs.gnu.org>; Mon, 25 Sep 2017 15:28:53 -0400 (EDT) Date: Mon, 25 Sep 2017 15:28:52 -0400 From: Leo Famulari Message-ID: <20170925192852.GA12757@jasmine.lan> References: <5f9b36da2183c37cb24713472ea22921c0f48d36.1506285652.git.leo@famulari.name> <20170925182144.GA16527@jasmine.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="xHFwDpU9dbj6ez1V" Content-Disposition: inline In-Reply-To: <20170925182144.GA16527@jasmine.lan> User-Agent: Mutt/1.8.3 (2017-05-23) X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --xHFwDpU9dbj6ez1V Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 25, 2017 at 02:21:44PM -0400, Leo Famulari wrote: > This suggests to me that the Syncthing build process is not using the > compiled objects of these packages but is instead trying to rebuild > them. >=20 > So, perhaps something is not quite right with the go-build-system =E2=80= =94 I'm > not sure. While debugging, I tried changing the go-build-system's build procedure to this: ------ (define* (build #:key import-path #:allow-other-keys) "Build the package named by IMPORT-PATH." (unless (zero? (system* "go" "install" "-v" import-path)) (zero? (system* "go" "env")))) =20 ------ However, when it encounters a failure, it does not seem to run `go env`: ------ [...] /gnu/store/40m4imp31qkhl2yqvxm4dfaw0j6hgfr2-golang-github-com-golang-group= cache-lru-0.0.0-0.72d04f9/src/github.com/pkg/errors /gnu/store/dn3hbj11bzk6ys3yj5k36k7a9fyg1zp8-golang-github-com-edsrzf-mmap-= go-0.0.0-0.0bce6a6/src/github.com/pkg/errors /gnu/store/h36806f660r6p5xzwsc89zrbfnvi6nwi-golang-github-com-d4l3k-messag= ediff-1.1.0-0.29f32d8/src/github.com/pkg/errors exit status 1 exit status 1 phase `build' failed after 1.9 seconds builder for `/gnu/store/0847mr1isq7mwc90rkja3fr0jc7z3lna-syncthing-0.14.37.= drv' failed with exit code 1 @ build-failed /gnu/store/0847mr1isq7mwc90rkja3fr0jc7z3lna-syncthing-0.14.3= 7.drv - 1 builder for `/gnu/store/0847mr1isq7mwc90rkja3fr0jc7z3lna-syncthin= g-0.14.37.drv' failed with exit code 1 guix build: error: build failed: build of `/gnu/store/0847mr1isq7mwc90rkja3= fr0jc7z3lna-syncthing-0.14.37.drv' failed ------ I'm confused! --xHFwDpU9dbj6ez1V Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlnJWPAACgkQJkb6MLrK fwgGjxAAiUIkzgsjzXBZilnXFxBy9U5/x2FCNCU0oAhEUx8em/RUn1BBoa038HHn xxtKk1g6M4nYj1ey4xRgnaouQ9mfgRHP76nA08kDAtdrnUKafIiCfIZ7JzRryo2s yf0fgWzgeLIXfMYbHapVMcyyTIgeC23aX0YmPh1kgJqA3ktobzO5/hxTMmSnLBiL HS+h8p9/7LKQcnmCFaMIqHVazQYdOQvpOObMpTRjXtkh7RbAmpZlXLvkicGhSaYq ho3h7foiScM/NeWXXR9Fyd0lpg/UzmT8YyluhDTASzAnSBoBcJpnkTisslAzosz4 pgHbZiVBdOLIWuKixihlvX7dfcvOI4+hXqDM2vTos2PN0dBsWCZOauS2NEToPWxC O7JpY/59evTT4RROokgaOMzGB8mL4g6UAgKRq4SwA0LRoyYTtKSUabcENCg+ko6H 7oIcsdc9kFXnWKj1oJgwpHqLiWOWcb3nXh85ZhrIXefFLK0RXmzPxY91pq8MoqJQ vjW8WsjhgASloO4h8sixycAMO0a/CS4vrKjsNL1AehP0vemrYH96dRfWqedIsLMI s6+soHAG8dJE3RK2B9J7oRJzCIEim6LQ65Jl/OPu1rxZDWfyzYl7AhLWYJXkUr0A 1dj0fvkvyRCWd1rpwItrma56LTpbBdvEN4/Jq9NZb7y8N4pgWHY= =Xfu2 -----END PGP SIGNATURE----- --xHFwDpU9dbj6ez1V-- From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] [PATCH 2/2] gnu: Add Syncthing. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 26 Sep 2017 07:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Leo Famulari Cc: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150641171114719 (code B ref 28586); Tue, 26 Sep 2017 07:42:02 +0000 Received: (at 28586) by debbugs.gnu.org; 26 Sep 2017 07:41:51 +0000 Received: from localhost ([127.0.0.1]:59577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwkV4-0003pL-Uq for submit@debbugs.gnu.org; Tue, 26 Sep 2017 03:41:51 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35807) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwkV2-0003p5-GP for 28586@debbugs.gnu.org; Tue, 26 Sep 2017 03:41:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwkUs-0005nI-SX for 28586@debbugs.gnu.org; Tue, 26 Sep 2017 03:41:43 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54658) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwkUs-0005nE-Oz; Tue, 26 Sep 2017 03:41:38 -0400 Received: from [193.50.110.164] (port=57358 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dwkUs-0002xH-9Q; Tue, 26 Sep 2017 03:41:38 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <5f9b36da2183c37cb24713472ea22921c0f48d36.1506285652.git.leo@famulari.name> <20170925182144.GA16527@jasmine.lan> <20170925192852.GA12757@jasmine.lan> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 5 =?UTF-8?Q?Vend=C3=A9miaire?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 26 Sep 2017 09:41:36 +0200 In-Reply-To: <20170925192852.GA12757@jasmine.lan> (Leo Famulari's message of "Mon, 25 Sep 2017 15:28:52 -0400") Message-ID: <87d16d3o0f.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Heya! Leo Famulari skribis: > On Mon, Sep 25, 2017 at 02:21:44PM -0400, Leo Famulari wrote: >> This suggests to me that the Syncthing build process is not using the >> compiled objects of these packages but is instead trying to rebuild >> them. >>=20 >> So, perhaps something is not quite right with the go-build-system =E2=80= =94 I'm >> not sure. > > While debugging, I tried changing the go-build-system's build procedure > to this: > > ------ > (define* (build #:key import-path #:allow-other-keys) > "Build the package named by IMPORT-PATH." > (unless (zero? (system* "go" "install" "-v" import-path)) > (zero? (system* "go" "env"))))=20=20 > ------ Note that it should always return a Boolean: (or (zero? (system* "go" "install" =E2=80=A6)) (begin ;we failed but we want to print debugging info (system* "go" "env") #f)) > However, when it encounters a failure, it does not seem to run `go env`: > > ------ > [...] > /gnu/store/40m4imp31qkhl2yqvxm4dfaw0j6hgfr2-golang-github-com-golang-gro= upcache-lru-0.0.0-0.72d04f9/src/github.com/pkg/errors > /gnu/store/dn3hbj11bzk6ys3yj5k36k7a9fyg1zp8-golang-github-com-edsrzf-mma= p-go-0.0.0-0.0bce6a6/src/github.com/pkg/errors > /gnu/store/h36806f660r6p5xzwsc89zrbfnvi6nwi-golang-github-com-d4l3k-mess= agediff-1.1.0-0.29f32d8/src/github.com/pkg/errors > exit status 1 > exit status 1 > phase `build' failed after 1.9 seconds I think it just means that =E2=80=9Cgo env=E2=80=9D returned with exit code= 1, no? Ludo=E2=80=99. PS: Great to see =E2=80=98go-build-system=E2=80=99 coming! From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] [PATCH 2/2] gnu: Add Syncthing. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 29 Sep 2017 19:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.15067130821207 (code B ref 28586); Fri, 29 Sep 2017 19:25:02 +0000 Received: (at 28586) by debbugs.gnu.org; 29 Sep 2017 19:24:42 +0000 Received: from localhost ([127.0.0.1]:39637 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dy0tu-0000JP-EP for submit@debbugs.gnu.org; Fri, 29 Sep 2017 15:24:42 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:53003) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dy0tr-0000JG-KK for 28586@debbugs.gnu.org; Fri, 29 Sep 2017 15:24:40 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 6D82421B80; Fri, 29 Sep 2017 15:24:37 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Fri, 29 Sep 2017 15:24:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=NOZ pzQiOxZhRR8BtDGozYoxruh5vqxAz/lh7vcXl4g0=; b=Y97RfbxWEY5wejecjJI wcVMrsNtRdIGli5fwBFlpsJ+q9hWSYrsPK3SJNDcFPP87h7pa0WVocP9GBJLwXK0 jkFqyoH2AA2wR2y/TPJdVSdPXQtWKFOowH4+QYLX6D425VszmWPZSRiE3f3NIwav dprx63gvLqppc6+mYsWafsfc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=NOZpzQiOxZhRR8BtDGozYoxruh5vqxAz/lh7vcXl4g0=; b=ZQLvi2bk 6X0O3X/1YleT5G7vJHD3FunQrt8CShBoAcrEhTPcOsAuzJMcjsS1mRIQ4W+RT0Ri eykuE5HaDzU7E1Ik/C77HCGF2bSv2cGAw+suLXSPfUXIl8zOlhoq00676WDibeoK Eyjj2n+bfs9/lHEtKtXDG1MlKW2nltiVIdbJkCD/tiL/ZU5rsZldG8PDDoCE8R8U Rq3VVHcjTVobZv9reLUHCtn57sv7tQ1y2D61jaVt0zAwqm7fxj8LldZbEkf7BAn2 VpKkPCw8+7w4fSw0aL3dV/tOFsPbOZX7hmSZlTGx6WUxnQsDmOWrEzzch+hN+Vs4 79DKMs8aY9Cd+w== X-ME-Sender: X-Sasl-enc: 5g8PVLw3wKpcEEb75lyujjteR8XsG8NmqT0FlIaDsGe1 1506713077 Received: from localhost (c-73-165-108-70.hsd1.pa.comcast.net [73.165.108.70]) by mail.messagingengine.com (Postfix) with ESMTPA id 041F124335; Fri, 29 Sep 2017 15:24:36 -0400 (EDT) Date: Fri, 29 Sep 2017 15:24:31 -0400 From: Leo Famulari Message-ID: <20170929192431.GA12405@jasmine.lan> References: <5f9b36da2183c37cb24713472ea22921c0f48d36.1506285652.git.leo@famulari.name> <20170925182144.GA16527@jasmine.lan> <20170925192852.GA12757@jasmine.lan> <87d16d3o0f.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87d16d3o0f.fsf@gnu.org> User-Agent: Mutt/1.8.3 (2017-05-23) X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Tue, Sep 26, 2017 at 09:41:36AM +0200, Ludovic Courtès wrote: > Leo Famulari skribis: > Note that it should always return a Boolean: > > (or (zero? (system* "go" "install" …)) > (begin ;we failed but we want to print debugging info > (system* "go" "env") > #f)) Ah, yes, thanks for the reminder. > > However, when it encounters a failure, it does not seem to run `go env`: > > > > ------ > > [...] > > /gnu/store/40m4imp31qkhl2yqvxm4dfaw0j6hgfr2-golang-github-com-golang-groupcache-lru-0.0.0-0.72d04f9/src/github.com/pkg/errors > > /gnu/store/dn3hbj11bzk6ys3yj5k36k7a9fyg1zp8-golang-github-com-edsrzf-mmap-go-0.0.0-0.0bce6a6/src/github.com/pkg/errors > > /gnu/store/h36806f660r6p5xzwsc89zrbfnvi6nwi-golang-github-com-d4l3k-messagediff-1.1.0-0.29f32d8/src/github.com/pkg/errors > > exit status 1 > > exit status 1 > > phase `build' failed after 1.9 seconds > > I think it just means that “go env” returned with exit code 1, no? No, it prints 'exit status 1' twice even when the `go env` invocation is removed from the build phase. This particular case was really about making debugging easier for me. It's not necessary to run `go env` when things fail. I'm still trying to solve the previously mentioned issue about certain inputs needing to be propagated... From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] go-build-system and Syncthing Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Oct 2017 20:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.150697585120037 (code B ref -1); Mon, 02 Oct 2017 20:25:02 +0000 Received: (at submit) by debbugs.gnu.org; 2 Oct 2017 20:24:11 +0000 Received: from localhost ([127.0.0.1]:44585 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dz7G7-0005D7-O4 for submit@debbugs.gnu.org; Mon, 02 Oct 2017 16:24:11 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60530) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dz7G6-0005Cr-1K for submit@debbugs.gnu.org; Mon, 02 Oct 2017 16:24:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dz7Fr-0007tc-Gx for submit@debbugs.gnu.org; Mon, 02 Oct 2017 16:24:04 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58512) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dz7Fr-0007t0-6i for submit@debbugs.gnu.org; Mon, 02 Oct 2017 16:23:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51288) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dz7Fi-0002wM-1h for guix-patches@gnu.org; Mon, 02 Oct 2017 16:23:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dz7FZ-0007Tx-HI for guix-patches@gnu.org; Mon, 02 Oct 2017 16:23:46 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:51767) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dz7FY-0007SI-TT for guix-patches@gnu.org; Mon, 02 Oct 2017 16:23:37 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 54285227AC; Mon, 2 Oct 2017 16:23:36 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Mon, 02 Oct 2017 16:23:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=rLs+BOPtbHuc5RN2zYELkqodKaZihs9tsp5tdY yzrCM=; b=w+fD6JFbTPea7dZ3Mk741je4B2iCuz4xx1pWZjsJ+5wV6eeFcm+5Nn Bqn2DiWK3OGUD744tqN7S72kaSg7+Ng9pmO1ooLOnz31/raZlhykwLFZj4tJ+/v8 vqLDJgXWyjgCR53McNjxgv/FRIqU9Bs4tU7dR48ICJp9KnKR5zG3Q= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=rLs+BOPtbHuc5RN2zY ELkqodKaZihs9tsp5tdYyzrCM=; b=ccYcIWwHpj/QCSZ6N47WRFOq8UnFKwgQXX E2slGF3Oke2QVKf+e2Ajjqug2ORRxozYQImo4HqV2OdDdvfBpe7F1RVAdonOMTc2 g3ENbWaELvzAfClpElvA27QfkxGroOM5NSYv2ljCq/JVBMlQDOdv1wDUiE9AjYae A6jqlmEJcQUIHMsaCWKah4HFf4v7gAa2zqzRatnN1BPId1fDx0N7ek+zWiwiWxkt GMv8payUud1j+faa/iM8eF4SX8pF3iTFdseMYkohp+1si8Duq6X+HvME4uVUFwIA ICMmTaH4fWK0zl923PIVZCf/AaiEzcPh2NeGcvezLGgJW/e/GR9A== X-ME-Sender: X-Sasl-enc: fVworfhOHAPPMQwXlkh7TzyFDVHGl0VCwLbrVUrd7nr8 1506975815 Received: from localhost (c-73-165-108-70.hsd1.pa.comcast.net [73.165.108.70]) by mail.messagingengine.com (Postfix) with ESMTPA id BCEE624870 for ; Mon, 2 Oct 2017 16:23:35 -0400 (EDT) Date: Mon, 2 Oct 2017 16:23:25 -0400 From: Leo Famulari Message-ID: <20171002202325.GA12172@jasmine.lan> References: <20170924203651.GA29973@jasmine.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="1LKvkjL3sHcu1TtY" Content-Disposition: inline In-Reply-To: <20170924203651.GA29973@jasmine.lan> User-Agent: Mutt/1.8.3 (2017-05-23) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --1LKvkjL3sHcu1TtY Content-Type: multipart/mixed; boundary="gKMricLos+KVdGMg" Content-Disposition: inline --gKMricLos+KVdGMg Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sun, Sep 24, 2017 at 04:36:51PM -0400, Leo Famulari wrote: > These patches add a go-build-system, a package for Syncthing, and > Syncthing's dependencies. Here is the latest revision of these patches. I'll push them in a couple days if there are no further comments. --gKMricLos+KVdGMg Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="0001-build-Add-the-Go-build-system.patch" Content-Transfer-Encoding: quoted-printable =46rom c07a2204ab6c5deb353699a67660841630d40feb Mon Sep 17 00:00:00 2001 =46rom: Leo Famulari Date: Tue, 19 Sep 2017 21:08:42 -0400 Subject: [PATCH 1/2] build: Add the Go build system. * guix/build-system/go.scm, guix/build/go-build-system.scm: New files. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document the go-build-system. --- Makefile.am | 2 + doc/guix.texi | 18 ++++ guix/build-system/go.scm | 132 +++++++++++++++++++++++++ guix/build/go-build-system.scm | 216 +++++++++++++++++++++++++++++++++++++= ++++ 4 files changed, 368 insertions(+) create mode 100644 guix/build-system/go.scm create mode 100644 guix/build/go-build-system.scm diff --git a/Makefile.am b/Makefile.am index d054f7879..efbd07a35 100644 --- a/Makefile.am +++ b/Makefile.am @@ -80,6 +80,7 @@ MODULES =3D \ guix/build-system/dub.scm \ guix/build-system/emacs.scm \ guix/build-system/font.scm \ + guix/build-system/go.scm \ guix/build-system/meson.scm \ guix/build-system/minify.scm \ guix/build-system/asdf.scm \ @@ -111,6 +112,7 @@ MODULES =3D \ guix/build/meson-build-system.scm \ guix/build/minify-build-system.scm \ guix/build/font-build-system.scm \ + guix/build/go-build-system.scm \ guix/build/asdf-build-system.scm \ guix/build/git.scm \ guix/build/hg.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index c57c0bab6..6bef57748 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3566,6 +3566,24 @@ debugging information''), which roughly means that c= ode is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default. @end defvr =20 +@defvr {Scheme Variable} go-build-system +This variable is exported by @code{(guix build-system go)}. It +implements a build procedure for Go packages using the standard +@url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, +Go build mechanisms}. + +The user is expected to provide a value for the key @code{#:import-path} +and, in some cases, @code{#:unpack-path}. The +@url{https://golang.org/doc/code.html#ImportPaths, import path} +corresponds to the filesystem path expected by the package's build +scripts and any referring packages, and provides a unique way to +refer to a Go package. It is typically based on a combination of the +package source code's remote URI and filesystem hierarchy structure. In +some cases, you will need to unpack the package's source code to a +different directory structure than the one indicated by the import path, +and @code{#:unpack-path} should be used in such cases. +@end defvr + @defvr {Scheme Variable} glib-or-gtk-build-system This variable is exported by @code{(guix build-system glib-or-gtk)}. It is intended for use with packages making use of GLib or GTK+. diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm new file mode 100644 index 000000000..43599df6f --- /dev/null +++ b/guix/build-system/go.scm @@ -0,0 +1,132 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =A9 2016 Petter +;;; Copyright =A9 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system go) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%go-build-system-modules + go-build + go-build-system)) + +;; Commentary: +;; +;; Standard build procedure for packages using the Go build system. It is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define %go-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build go-build-system) + ,@%gnu-build-system-modules)) + +(define (default-go) + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((go (resolve-interface '(gnu packages golang)))) + (module-ref go 'go))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (go (default-go)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:go #:inputs #:native-inputs)) + + (and (not target) ;XXX: no cross-compilati= on + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (build-inputs `(("go" ,go) + ,@native-inputs)) + (outputs outputs) + (build go-build) + (arguments (strip-keyword-arguments private-keywords arguments)))= )) + +(define* (go-build store name inputs + #:key + (phases '(@ (guix build go-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (import-path "") + (unpack-path "") + (tests? #t) + (system (%current-system)) + (guile #f) + (imported-modules %go-build-system-modules) + (modules '((guix build go-build-system) + (guix build utils)))) + (define builder + `(begin + (use-modules ,@modules) + (go-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:import-path ,import-path + #:unpack-path ,unpack-path + #:tests? ,tests? + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system + #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define go-build-system + (build-system + (name 'go) + (description + "Build system for Go programs") + (lower lower))) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm new file mode 100644 index 000000000..a60e05f29 --- /dev/null +++ b/guix/build/go-build-system.scm @@ -0,0 +1,216 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =A9 2016 Petter +;;; Copyright =A9 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build go-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:export (%standard-phases + go-build)) + +;; Commentary: +;; +;; Build procedures for Go packages. This is the builder-side code. +;; +;; Software written in Go is either a 'package' (i.e. library) or 'command' +;; (i.e. executable). Both types can be built with either the `go build` = or `go +;; install` commands. However, `go build` discards the result of the build +;; process for Go libraries, so we use `go install`, which preserves the +;; results. [0] + +;; Go software is developed and built within a particular filesystem hiera= rchy +;; structure called a 'workspace' [1]. This workspace is found by Go +;; via the GOPATH environment variable. Typically, all Go source code +;; and compiled objects are kept in a single workspace, but it is +;; possible for GOPATH to contain a list of directories, and that is +;; what we do in this go-build-system. [2] +;; +;; Go software, whether a package or a command, is uniquely named using +;; an 'import path'. The import path is based on the URL of the +;; software's source. Since most source code is provided over the +;; internet, the import path is typically a combination of the remote +;; URL and the source repository's filesystem structure. For example, +;; the Go port of the common `du` command is hosted on github.com, at +;; . Thus, the import path is +;; . [3] +;; +;; It may be possible to programatically guess a package's import path +;; based on the source URL, but we don't try that in this revision of +;; the go-build-system. +;; +;; Modules of modular Go libraries are named uniquely with their +;; filesystem paths. For example, the supplemental but "standardized" +;; libraries developed by the Go upstream developers are available at +;; . The Go IPv4 +;; library's import path is . The source of +;; such modular libraries must be unpacked at the top-level of the +;; filesystem structure of the library. So the IPv4 library should be +;; unpacked to . This is handled in the +;; go-build-system with the optional #:unpack-path key. +;; +;; In general, Go software is built using a standardized build mechanism +;; that does not require any build scripts like Makefiles. This means +;; that all modules of modular libraries cannot be built with a single +;; command. Each module must be built individually. This complicates +;; certain cases, and these issues are currently resolved by creating a +;; filesystem union of the required modules of such libraries. I think +;; this could be improved in future revisions of the go-build-system. +;; +;; [0] `go build`: +;; https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies +;; `go install`: +;; https://golang.org/cmd/go/#hdr-Compile_and_install_packages_and_depende= ncies +;; [1] https://golang.org/doc/code.html#Workspaces +;; bin/ +;; hello # command executable +;; outyet # command executable +;; pkg/ +;; linux_amd64/ +;; github.com/golang/example/ +;; stringutil.a # package object +;; src/ +;; github.com/golang/example/ +;; .git/ # Git repository metadata +;; hello/ +;; hello.go # command source +;; outyet/ +;; main.go # command source +;; main_test.go # test source +;; stringutil/ +;; reverse.go # package source +;; reverse_test.go # test source +;; golang.org/x/image/ +;; .git/ # Git repository metadata +;; bmp/ +;; reader.go # package source +;; writer.go # package source +;; ... (many more repositories and packages omitted) ... +;; +;; [2] https://golang.org/doc/code.html#GOPATH +;; [3] https://golang.org/doc/code.html#ImportPaths +;; +;; Code: + +(define* (unpack #:key source import-path unpack-path #:allow-other-keys) + "Unpack SOURCE in the UNPACK-PATH, or the IMPORT-PATH is the UNPACK-PATH= is +unset. When SOURCE is a directory, copy it instead of unpacking." + (if (string-null? import-path) + ((display "WARNING: The Go import path is unset.\n"))) + (if (string-null? unpack-path) + (set! unpack-path import-path)) + (mkdir "src") + (let ((dest (string-append "src/" unpack-path))) + (mkdir-p dest) + (if (file-is-directory? source) + (begin + (copy-recursively source dest #:keep-mtime? #t) + #t) + (if (string-suffix? ".zip" source) + (zero? (system* "unzip" "-d" dest source)) + (zero? (system* "tar" "-C" dest "-xvf" source)))))) + +(define* (install-source #:key outputs #:allow-other-keys) + "Install the source code to the output directory." + (let* ((out (assoc-ref outputs "out")) + (source "src") + (dest (string-append out "/" source))) + (copy-recursively source dest #:keep-mtime? #t) + #t)) + +(define (golang-package? name) + (string-prefix? "golang-" name)) + +(define (golang-inputs inputs) + "Return the alist of INPUTS that are Go software." + ;; XXX This should not check the file name of the store item. Instead we + ;; should pass, from the host side, the list of inputs that are packages= using + ;; the go-build-system. + (alist-delete "source" + (filter (match-lambda + ((label . directory) + (golang-package? ((compose package-name->name+version + strip-store-file-name) + directory))) + (_ #f)) + inputs))) + +(define* (setup-environment #:key inputs outputs #:allow-other-keys) + "Export the variables GOPATH and GOBIN, which are based on INPUTS and OU= TPUTS, +respectively." + (let ((out (assoc-ref outputs "out"))) + ;; GOPATH is where Go looks for the source code of the build's depende= ncies. + (set-path-environment-variable "GOPATH" + ;; XXX Matching "." hints that we could= do + ;; something simpler here... + (list ".") + (match (golang-inputs inputs) + (((_ . dir) ...) + dir))) + + ;; Add the source code of the package being built to GOPATH. + (if (getenv "GOPATH") + (setenv "GOPATH" (string-append (getcwd) ":" (getenv "GOPATH"))) + (setenv "GOPATH" (getcwd))) + ;; Where to install compiled executable files ('commands' in Go parlan= ce'). + (setenv "GOBIN" out) + #t)) + +(define* (build #:key import-path #:allow-other-keys) + "Build the package named by IMPORT-PATH." + (or + (zero? (system* "go" "install" + "-v" ; print the name of packages as they are compiled + "-x" ; print each command as it is invoked + import-path)) + (begin + (display (string-append "Building '" import-path "' failed.\n" + "Here are the results of `go env`:\n")) + (system* "go" "env") + #f))) + +(define* (check #:key tests? import-path #:allow-other-keys) + "Run the tests for the package named by IMPORT-PATH." + (if tests? + (zero? (system* "go" "test" import-path)))) + +(define* (install #:key outputs #:allow-other-keys) + "Install the compiled libraries. `go install` installs these files to +$GOPATH/pkg, so we have to copy them into the output direcotry manually. +Compiled executable files should have already been installed to the store = based +on $GOBIN in the build phase." + (when (file-exists? "pkg") + (copy-recursively "pkg" (string-append (assoc-ref outputs "out") "/pkg= "))) + #t) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'configure) + (delete 'patch-generated-file-shebangs) + (replace 'unpack unpack) + (add-after 'unpack 'install-source install-source) + (add-before 'build 'setup-environment setup-environment) + (replace 'build build) + (replace 'check check) + (replace 'install install))) + +(define* (go-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Go package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) --=20 2.14.2 --gKMricLos+KVdGMg Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="0002-gnu-Add-Syncthing.patch" Content-Transfer-Encoding: quoted-printable =46rom 01f4ab3b7f4caab41352ed2f5c9ab69c695c72ae Mon Sep 17 00:00:00 2001 =46rom: Leo Famulari Date: Tue, 19 Sep 2017 21:08:42 -0400 Subject: [PATCH 2/2] gnu: Add Syncthing. * gnu/packages/syncthing.scm: New file. Co-authored-by: Petter --- gnu/local.mk | 1 + gnu/packages/syncthing.scm | 1845 ++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 1846 insertions(+) create mode 100644 gnu/packages/syncthing.scm diff --git a/gnu/local.mk b/gnu/local.mk index edd6d8237..fd26beab3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -381,6 +381,7 @@ GNU_SYSTEM_MODULES =3D \ %D%/packages/suckless.scm \ %D%/packages/swig.scm \ %D%/packages/sync.scm \ + %D%/packages/syncthing.scm \ %D%/packages/synergy.scm \ %D%/packages/syndication.scm \ %D%/packages/task-management.scm \ diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm new file mode 100644 index 000000000..1dffb9f18 --- /dev/null +++ b/gnu/packages/syncthing.scm @@ -0,0 +1,1845 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =A9 2016 Petter +;;; Copyright =A9 2016, 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages syncthing) + #:use-module (guix build-system go) + #:use-module (guix build-system trivial) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix licenses)) + +(define-public syncthing + (package + (name "syncthing") + (version "0.14.38") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/syncthing/syncthing" + "/releases/download/v" version + "/syncthing-source-v" version ".tar.gz")) + (sha256 + (base32 + "0zh4096vr47mxh0823xzyigz55kdh0lg2lil15bm5v8jxfpmpmfg")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/syncthing/syncthing" + #:unpack-path "github.com/syncthing" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundled-source-code + (lambda _ + ;; Keep the bundled cznic libraries. There are some "internal" + ;; cznic libraries that complicate the use of non-bundled cop= ies. + (rename-file "src/github.com/syncthing/syncthing/vendor/githu= b.com/cznic" + "cznic") + (delete-file-recursively "src/github.com/syncthing/syncthing/= vendor") + (mkdir-p "src/github.com/syncthing/syncthing/vendor/github.co= m/") + (rename-file "cznic" + "src/github.com/syncthing/syncthing/vendor/githu= b.com/cznic") + #t)) + + ;; We don't need to install the source code for end-user applicat= ions. + (delete 'install-source) + + (add-before 'build 'increase-test-timeout + (lambda _ + (substitute* "src/github.com/syncthing/syncthing/build.go" + (("60s") "999s")) + #t)) + + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "src/github.com/syncthing/syncthing" + (zero? (system* "go" "run" "build.go" "-no-upgrade"))))) + + (replace 'check + (lambda _ + (with-directory-excursion "src/github.com/syncthing/syncthing" + (zero? (system* "go" "run" "build.go" "test"))))) + + (replace 'install + (lambda _ + (copy-recursively "src/github.com/syncthing/syncthing/bin/" + (string-append (assoc-ref %outputs "out") "= /bin")) + #t)) + + (add-after 'install 'install-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man/man")) + (src "src/github.com/syncthing/syncthing/man/")) + (for-each + (lambda (file) + (install-file file + (string-append man (string-take-right fil= e 1)))) + (find-files src "\\.[1-9]")) + #t)))))) + (inputs + `(("golang-github-com-audriusbutkevicius-cli" + ,golang-github-com-audriusbutkevicius-cli) + ("golang-github-com-audriusbutkevicius-kcp-go" + ,golang-github-com-audriusbutkevicius-kcp-go) + ("golang-github-com-audriusbutkevicius-go-nat-pmp" + ,golang-github-com-audriusbutkevicius-go-nat-pmp) + ("golang-github-com-audriusbutkevicius-pfilter" + ,golang-github-com-audriusbutkevicius-pfilter) + ("golang-github-com-bkaradzic-go-lz4" ,golang-github-com-bkaradzic-= go-lz4) + ("golang-github-com-calmh-du" ,golang-github-com-calmh-du) + ("golang-github-com-calmh-luhn" ,golang-github-com-calmh-luhn) + ("golang-github-com-calmh-xdr" ,golang-github-com-calmh-xdr) + ("golang-github-com-ccding-go-stun" + ,golang-github-com-ccding-go-stun) + ("golang-github-com-chmduquesne-rollinghash-adler32" + ,golang-github-com-chmduquesne-rollinghash-adler32) +; ("golang-github-com-cznic-ql" ,golang-github-com-cznic-ql) ; bundl= ed + ; Used by bundled ql + ("golang-github-com-edsrzf-mmap-go" ,golang-github-com-edsrzf-mmap-= go) + ("golang-github-com-gobwas-glob" ,golang-github-com-gobwas-glob) + ("golang-github-com-gogo-protobuf-union" + ,(golang-github-com-gogo-protobuf-union)) + ("golang-github-com-golang-groupcache-lru" + ,golang-github-com-golang-groupcache-lru) + ("golang-github-com-jackpal-gateway" ,golang-github-com-jackpal-gat= eway) + ("golang-github-com-kardianos-osext" ,golang-github-com-kardianos-o= sext) + ("golang-github-com-kballard-go-shellquote" + ,golang-github-com-kballard-go-shellquote) + ("golang-github-com-lib-pq" ,golang-github-com-lib-pq) + ("golang-github-com-minio-sha256-simd" ,golang-github-com-minio-sha= 256-simd) + ("golang-github-com-oschwald-geoip2-golang" + ,golang-github-com-oschwald-geoip2-golang) + ("golang-github-com-rcrowley-go-metrics" ,golang-github-com-rcrowle= y-go-metrics) + ("golang-github-com-sasha-s-go-deadlock" ,golang-github-com-sasha-s= -go-deadlock) + ("golang-github-com-syndtr-goleveldb" ,golang-github-com-syndtr-gol= eveldb) + ("golang-github-com-thejerf-suture" ,golang-github-com-thejerf-sutu= re) + ("golang-github-com-vitrun-qart" ,(golang-github-com-vitrun-qart-un= ion)) + ("golang-github-com-xtaci-smux" ,golang-github-com-xtaci-smux) + ("golang-org-x-crypto" ,(golang-org-x-crypto-union)) + ("golang.org-x-net" ,(golang-org-x-net-union)) + ("golang-org-x-text" ,(golang-org-x-text-union)) + ("golang-org-x-time-rate" ,golang-org-x-time-rate) + ; Tests + ("golang-github-com-d4l3k-messagediff" + ,golang-github-com-d4l3k-messagediff))) + (synopsis "Decentralized continuous filesystem synchronization") + (description "Syncthing is a peer-to-peer file synchronization tool th= at +supports a wide variety of computing platforms. It uses the Block Exchange +Protocol.") + (home-page "https://github.com/syncthing/syncthing") + (license mpl2.0))) + +(define-public golang-github-com-audriusbutkevicius-go-nat-pmp + (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-go-nat-pmp") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/go-nat-p= mp") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljd= vbk7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp")) + (synopsis "Port mapping and discovery of external IP address") + (description "This packages provides a Go client for the NAT-PMP int= ernet +protocol for port mapping and discovering the external IP address of a +firewall.") + (home-page "https://github.com/AudriusButkevicius/go-nat-pmp") + (license asl2.0)))) + +(define-public golang-github-com-bkaradzic-go-lz4 + (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a") + (revision "0")) + (package + (name "golang-github-com-bkaradzic-go-lz4") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bkaradzic/go-lz4") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb"= )))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/bkaradzic/go-lz4")) + (synopsis "LZ4 compression algorithm") + (description "This package provides @code{go-lz4}, a Go implementati= on of +the LZ4 compression algorithm.") + (home-page "https://github.com/bkaradzic/go-lz4") + (license bsd-2)))) + +(define-public golang-github-com-calmh-du + (package + (name "golang-github-com-calmh-du") + (version "1.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/du") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/calmh/du")) + (synopsis "Get total and available disk space of a given volume") + (description "This is a Go implementation of `du`. It provides disk u= sage +information, such as how much storage space is available, free, and used.") + (home-page "https://github.com/calmh/du") + (license public-domain))) + +(define-public golang-github-com-calmh-luhn + (package + (name "golang-github-com-calmh-luhn") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/luhn") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wr0wq20b1y3d9dgykwz6qhvic3ych39rzcfi60xi2vcb7a3jmxi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/calmh/luhn")) + (synopsis "Luhn-mod-N implementation in Go") + (description "This packages provides a Luhn-mod-N implementation in Go= =2E") + (home-page "https://github.com/calmh/luhn") + (license expat))) + +(define-public golang-github-com-calmh-xdr + (let ((commit "08e072f9cb164f943a92eb59f90f3abc64ac6e8f") + (revision "0")) + (package + (name "golang-github-com-calmh-xdr") + (version (string-append "2.0.1-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/xdr") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/calmh/xdr")) + (synopsis "XDR marshalling and unmarshalling") + (description "XDR is an External Data Representation (XDR) +marshalling and unmarshalling library in Go. It uses code generation and = not +reflection.") + (home-page "https://github.com/calmh/xdr") + (license expat)))) + +(define-public golang-github-com-d4l3k-messagediff + (let ((commit "29f32d820d112dbd66e58492a6ffb7cc3106312b") + (revision "0")) + (package + (name "golang-github-com-d4l3k-messagediff") + (version (string-append "1.1.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/d4l3k/messagediff") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/d4l3k/messagediff")) + (synopsis "Diff arbitrary Go structs") + (description "Messagediff is a library for calculating diffs of arbi= trary +structs in the Go programming language.") + (home-page "https://github.com/d4l3k/messagediff") + (license expat)))) + +(define-public golang-github-com-edsrzf-mmap-go + (let ((commit "0bce6a6887123b67a60366d2c9fe2dfb74289d2e") + (revision "0")) + (package + (name "golang-github-com-edsrzf-mmap-go") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/edsrzf/mmap-go") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1am4m2k451bksnbiqj6lxknk4lsgmrhv0q3ajqac818vj0cpfgs9"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/edsrzf/mmap-go")) + (synopsis "Go implementation of mmap") + (description "This packages provides a Go implementation of mmap.") + (home-page "https://github.com/edsrzf/mmap-go") + (license bsd-3)))) + +(define-public golang-github-com-gobwas-glob + (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420") + (revision "0")) + (package + (name "golang-github-com-gobwas-glob") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gobwas/glob") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gobwas/glob")) + (synopsis "Go globbing library") + (description "This packages provides a Go implementation of globs.") + (home-page "https://github.com/gobwas/glob") + (license expat)))) + +(define* (golang-github-com-gogo-protobuf-union + #:optional (packages (list golang-github-com-gogo-protobuf + golang-github-com-gogo-protobuf-prot= oc-gen-gogo))) + (package + (name "golang-github-com-gogo-protobuf-union") + (version (package-version golang-github-com-gogo-protobuf)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of Go protobuf libraries") + (description "This is a union of Go protobuf libraries") + (home-page (package-home-page golang-github-com-gogo-protobuf)) + (license (package-license golang-github-com-gogo-protobuf)))) + +(define-public golang-github-com-gogo-protobuf + (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63") + (revision "0")) + (package + (name "golang-github-com-gogo-protobuf") + (version (string-append "0.2-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/protobuf") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gogo/protobuf/proto" + #:unpack-path "github.com/gogo/protobuf")) + (propagated-inputs + `(("golang-github-com-gogo-protobuf-protoc-gen-gogo" + ,golang-github-com-gogo-protobuf-protoc-gen-gogo))) + (synopsis "Protocol Buffers for Go with Gadgets") + (description "Gogoprotobuf is a fork of golang/protobuf with extra c= ode +generation features. This code generation is used to achieve: +@itemize +@item fast marshalling and unmarshalling +@item more canonical Go structures +@item goprotobuf compatibility +@item less typing by optionally generating extra helper code +@item peace of mind by optionally generating test and benchmark code +@item other serialization formats +@end itemize") + (home-page "https://github.com/gogo/protobuf") + (license bsd-3)))) + +(define-public golang-github-com-gogo-protobuf-protoc-gen-gogo + (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63") + (revision "0")) + (package + (name "golang-github-com-gogo-protobuf-protoc-gen-gogo") + (version (string-append "0.2-" revision "0" (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/protobuf") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo" + #:unpack-path "github.com/gogo/protobuf")) + (synopsis "Protocol Buffers for Go with Gadgets") + (description "Gogoprotobuf is a fork of golang/protobuf with extra c= ode +generation features. This code generation is used to achieve: +@itemize +@item fast marshalling and unmarshalling +@item more canonical Go structures +@item goprotobuf compatibility +@item less typing by optionally generating extra helper code +@item peace of mind by optionally generating test and benchmark code +@item other serialization formats +@end itemize") + (home-page "https://github.com/gogo/protobuf") + (license bsd-3)))) + +(define-public golang-github-com-golang-groupcache-lru + (let ((commit "72d04f9fcdec7d3821820cc4a6f150eae553639a") + (revision "0")) + (package + (name "golang-github-com-golang-groupcache-lru") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/groupcache") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1l3ryh7bq1f2mhr3sd3x1wav99pd27r8l3ydgqh375wn4x7v5qd6"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/golang/groupcache/lru" + #:unpack-path "github.com/golang/groupcache")) + (synopsis "Groupcache is a caching and cache-filling library") + (description "Groupcache is a caching and cache-filling library, int= ended +as a replacement for memcached in many cases. It provides a data loading +mechanism with caching and de-duplication that works across a set of peer +processes.") + (home-page "https://github.com/golang/groupcache") + (license asl2.0)))) + +(define-public golang-github-com-golang-snappy + (let ((commit "553a641470496b2327abcac10b36396bd98e45c9") + (revision "0")) + (package + (name "golang-github-com-golang-snappy") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/snappy") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/golang/snappy")) + (synopsis "Snappy compression format in the Go programming language") + (description "This package provides a Go implementation of the Snappy +compression format.") + (home-page "https://github.com/golang/snappy") + (license bsd-3)))) + +(define-public golang-github-com-jackpal-gateway + (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006") + (revision "0")) + (package + (name "golang-github-com-jackpal-gateway") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackpal/gateway") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/jackpal/gateway")) + (synopsis "Discover the address of a LAN gateway") + (description "@code{gateway} is a Go library for discovering the IP +address of the default LAN gateway.") + (home-page "https://github.com/jackpal/gateway") + (license bsd-3)))) + +(define-public golang-github-com-kardianos-osext + (let ((commit "9d302b58e975387d0b4d9be876622c86cefe64be") + (revision "0")) + (package + (name "golang-github-com-kardianos-osext") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kardianos/osext") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0r6f727s16g4f66k8c2z1xh8ga1p53hg9g2v95pmhd1i60fhy47a"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kardianos/osext")) + (synopsis "Find the running executable") + (description "Osext provides a method for finding the current execut= able +file that is running. This can be used for upgrading the current executab= le or +finding resources located relative to the executable file.") + (home-page "https://github.com/kardianos/osext") + (license bsd-3)))) + +(define-public golang-github-com-lib-pq + (let ((commit "2704adc878c21e1329f46f6e56a1c387d788ff94") + (revision "0")) + (package + (name "golang-github-com-lib-pq") + (version (string-append "0.0.0" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lib/pq") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/lib/pq" + ;; The tests seem to fail without access to the network or a runn= ing + ;; Postgres instance. + #:tests? #f)) + (synopsis "Golang Postgres driver for Go's database/sql") + (description "This packages provides a pure Go Postgres driver for G= o's +database/sql package.") + (home-page "https://github.com/lib/pq") + (license expat)))) + +(define-public golang-github-com-minio-sha256-simd + (let ((commit "6124d070eb4e7001c244b6ccc282620a5dce44a0") + (revision "0")) + (package + (name "golang-github-com-minio-sha256-simd") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/sha256-simd") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1azrdp7x7vl9ngkxs890blspz0345xhadvssdlb0435hdqa0gkll"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/minio/sha256-simd")) + (synopsis "Hardware-accelerated SHA256 in Go using SIMD") + (description "This packages provides a pure Go implementation of SHA= 256 +using SIMD (Single instruction, multiple data) instructions for Intel and = ARM +architectures.") + (home-page "https://github.com/minio/sha256-simd") + (license asl2.0)))) + +(define-public golang-github-com-oschwald-geoip2-golang + (let ((commit "0fd242da7906550802871efe101abfdb1cc550a8") + (revision "0")) + (package + (name "golang-github-com-oschwald-geoip2-golang") + (version (string-append "0.1.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oschwald/geoip2-golang") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0kglnix0r5sjkk346ip30l7dwq1gv2g4wjy2cjmgjvb8x778hnww"))= )) + (build-system go-build-system) + (propagated-inputs + `(("golang-github-com-oschwald-maxminddb-golang" + ,golang-github-com-oschwald-maxminddb-golang) + ("golang-org-x-sys-unix" ,golang-org-x-sys-unix))) + (arguments + `(#:import-path "github.com/oschwald/geoip2-golang" + #:tests? #f)) ; Requires some unpackaged software and test data + (synopsis "MaxMind GeoIP2 reader") + (description "This packages provides a library for reading MaxMind +GeoLite2 and GeoIP2 databases in Go.") + (home-page "https://github.com/oschwald/geoip2-golang") + (license isc)))) + +(define-public golang-github-com-oschwald-maxminddb-golang + (let ((commit "697da8075d2061aa8ed639346443f5d3e8c80b30") + (revision "0")) + (package + (name "golang-github-com-oschwald-maxminddb-golang") + (version (string-append "0.2.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oschwald/maxminddb-golang") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00kkxzlvra0kcbkl56wp0dp1yw3cmfjqqlwbqy7bq5r34s7iavq0"))= )) + (build-system go-build-system) + (propagated-inputs + `(("golang-org-x-sys-unix" ,golang-org-x-sys-unix))) + (arguments + `(#:import-path "github.com/oschwald/maxminddb-golang" + #:tests? #f)) ; Requires some unpackaged software and test data + (synopsis "MaxMind DB Reader for Go") + (description "This is a Go reader for the MaxMind DB format. Althou= gh +this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} prov= ides a +higher-level API for doing so.") + (home-page "https://github.com/oschwald/maxminddb-golang") + (license isc)))) + +(define-public golang-github-com-rcrowley-go-metrics + (let ((commit "1f30fe9094a513ce4c700b9a54458bbb0c96996c") + (revision "0")) + (package + (name "golang-github-com-rcrowley-go-metrics") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rcrowley/go-metrics") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1hvbiaq4b6dqgjz6jkkxglfh9gf71zin6qsg508sh0r0ixfavrzj"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rcrowley/go-metrics")) + (synopsis "Go port of Coda Hale's Metrics library") + (description "This package provides a Go implementation of Coda Hale= 's +Metrics library.") + (home-page "https://github.com/rcrowley/go-metrics") + (license bsd-2)))) + +(define-public golang-github-com-sasha-s-go-deadlock + (let ((commit "341000892f3dd25f440e6231e8533eb3688ed7ec") + (revision "0")) + (package + (name "golang-github-com-sasha-s-go-deadlock") + (version (string-append "0.1.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sasha-s/go-deadlock") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sasha-s/go-deadlock")) + (propagated-inputs + `(("golang-github-com-petermattis-goid" ,golang-github-com-petermat= tis-goid))) + (synopsis "Deadlock detection in go") + (description "This package provides tools for detecting deadlocks at +run-time in Go.") + (home-page "https://github.com/sasha-s/go-deadlock") + (license asl2.0)))) + +(define-public golang-github-com-stathat-go + (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e") + (revision "0")) + (package + (name "golang-github-com-stathat-go") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stathat/go") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "105ql5v8r4hqcsq0ag7asdxqg9n7rvf83y1q1dj2nfjyn4ma= nv6r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/stathat/go")) + (synopsis "Post statistics to StatHat") + (description "This is a Go package for posting to a StatHat account.= ") + (home-page "https://github.com/stathat/go") + (license expat)))) + +(define-public golang-github-com-syndtr-goleveldb + (let ((commit "3c5717caf1475fd25964109a0fc640bd150fce43") + (revision "0")) + (package + (name "golang-github-com-syndtr-goleveldb") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/syndtr/goleveldb") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wng25bw885ppiny9rz42kq0a7ddkym5zl0glb8rfk0m8dpvi1dd"))= )) + (build-system go-build-system) + (propagated-inputs + `(("github.com-golang-snappy" ,golang-github-com-golang-snappy))) + (arguments + `(#:import-path "github.com/syndtr/goleveldb/leveldb" + #:unpack-path "github.com/syndtr/goleveldb" + #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package + (synopsis "LevelDB key/value database") + (description "This is an implementation of the LevelDB key / value +database in Go.") + (home-page "https://github.com/syndtr/goleveldb") + (license bsd-2)))) + +(define-public golang-github-com-thejerf-suture + (let ((commit "0ac47afae95ad5bc5184ed346bc945168e883f5d") + (revision "0")) + (package + (name "golang-github-com-thejerf-suture") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/thejerf/suture") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0f860fkaibnnkmh4q6q9yn3r26sraaj8wx9irwm76cmsp48zcxfy"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/thejerf/suture")) + (synopsis "Supervisor trees for Go") + (description "Suture provides Erlang-ish supervisor trees for Go. +\"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code togeth= er +when it's trying to die. + +It is intended to deal gracefully with the real failure cases that can occ= ur +with supervision trees (such as burning all your CPU time endlessly restar= ting +dead services), while also making no unnecessary demands on the \"service\" +code, and providing hooks to perform adequate logging with in a production +environment") + (home-page "https://github.com/thejerf/suture") + (license expat)))) + +(define* (golang-github-com-vitrun-qart-union + #:optional (packages (list golang-github-com-vitrun-qart-coding + golang-github-com-vitrun-qart-gf256 + golang-github-com-vitrun-qart-qr))) + (package + (name "golang-github-com-vitrun-qart") + (version (package-version golang-github-com-vitrun-qart-qr)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of qart libraries") + (description "This is a union of qart libraries.") + (home-page (package-home-page golang-github-com-vitrun-qart-qr)) + (license (package-license golang-github-com-vitrun-qart-qr)))) + +(define-public golang-github-com-vitrun-qart-coding + (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") + (revision "0")) + (package + (name "golang-github-com-vitrun-qart-coding") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitrun/qart") + (commit commit))) + (file-name (string-append "golang-github-com-vitrun-qart-" + version "-checkout")) + (sha256 + (base32 + "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/vitrun/qart/coding" + #:unpack-path "github.com/vitrun/qart")) + (synopsis "Low-level QR coding library") + (description "This package provides a library for embedding +human-meaningful graphics in QR codes. However, instead of scribbling on +redundant pieces and relying on error correction to preserve the meaning, +@code{qart} engineers the encoded values to create the picture in a code w= ith no +inherent errors. This @code{qart} component, @code{coding}, implements +low-level QR coding details.") + (home-page "https://github.com/vitrun/qart/") + (license bsd-3)))) + +(define-public golang-github-com-vitrun-qart-gf256 + (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") + (revision "0")) + (package + (name "golang-github-com-vitrun-qart-gf256") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitrun/qart") + (commit commit))) + (file-name (string-append "golang-github-com-vitrun-qart-" + version "-checkout")) + (sha256 + (base32 + "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/vitrun/qart/gf256" + #:unpack-path "github.com/vitrun/qart")) + (synopsis "Qart library for Galois Field GF(256) math") + (description "This package, a component of @code{qart}, provides @co= de{gf256}, +implements arithmetic over the Galois Field GF(256).") + (home-page "https://github.com/vitrun/qart") + (license bsd-3)))) + +(define-public golang-github-com-vitrun-qart-qr + (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") + (revision "0")) + (package + (name "golang-github-com-vitrun-qart-qr") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitrun/qart") + (commit commit))) + (file-name (string-append "golang-github-com-vitrun-qart-" + version "-checkout")) + (sha256 + (base32 + "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/vitrun/qart/qr" + #:unpack-path "github.com/vitrun/qart")) + (synopsis "Qart component for generating QR codes") + (description "This package, a component of @code{qart}, provides +@code{qr}, for QR code generation.") + (description "This package provides a library for embedding +human-meaningful graphics in QR codes. However, instead of scribbling on +redundant pieces and relying on error correction to preserve the meaning, +@code{qart} engineers the encoded values to create the picture in a code w= ith no +inherent errors. This @code{qart} component, @code{qr}, provides QR code +generation.") + (home-page "https://github.com/vitrun/qart") + (license bsd-3)))) + +;; Go searches for library modules by looking in the GOPATH environment +;; variable. This variable is a list of paths. However, Go does not +;; keep searching on GOPATH if it tries and fails to import a module. +;; So, we use a union for packages sharing a namespace. +(define* (golang-org-x-crypto-union #:optional + (packages (list golang-org-x-crypto-bl= owfish + golang-org-x-crypto-bc= rypt + golang-org-x-crypto-tea + golang-org-x-crypto-xt= ea + golang-org-x-crypto-pb= kdf2 + golang-org-x-crypto-tw= ofish + golang-org-x-crypto-ca= st5 + golang-org-x-crypto-sa= lsa20))) + (package + (name "golang-org-x-crypto") + (version (package-version golang-org-x-crypto-bcrypt)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go x crypto libraries") + (description "A union of the Golang cryptographic libraries. A +union is required because `go build` assumes that all of the headers and +libraries are in the same directory.") + (home-page (package-home-page golang-org-x-crypto-bcrypt)) + (license (package-license golang-org-x-crypto-bcrypt)))) + +(define-public golang-org-x-crypto-bcrypt + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-bcrypt") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/bcrypt" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "Bcrypt in Go") + (description "This package provides a Go implementation of the bcrypt +password hashing function.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-blowfish + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-blowfish") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/blowfish" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "Blowfish in Go") + (description "This package provides a Go implementation of the Blowf= ish +symmetric-key block cipher.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-pbkdf2 + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-pbkdf2") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/pbkdf2" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "PBKDF2 in Go") + (description "This package provides a Go implementation of the PBKDF= 2 key +derivation function.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-tea + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-tea") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/tea" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "Tiny Encryption Algorithm (TEA) in Go") + (description "This packages a Go implementation of the Tiny Encrypti= on +Algorithm (TEA) block cipher.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-salsa20 + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-salsa20") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/salsa20" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "Salsa20 in Go") + (description "This packages provides a Go implementation of the Sals= a20 +stream cipher.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-cast5 + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-cast5") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/cast5" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "Cast5 in Go") + (description "This packages provides a Go implementation of the Cast5 +symmetric-key block cipher.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-twofish + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-twofish") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/twofish" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "Twofish in Go") + (description "This packages provides a Go implementation of the Twof= ish +symmetric-key block cipher.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define-public golang-org-x-crypto-xtea + (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") + (revision "0")) + (package + (name "golang-org-x-crypto-xtea") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/crypto/xtea" + #:unpack-path "golang.org/x/crypto" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/tes= tdata") + ".*\\.gz$")) + #t))))) + (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go") + (description "This package provides a Go implementation of the eXten= ded +Tiny Encryption Algorithm (XTEA) block cipher.") + (home-page "https://go.googlesource.com/crypto/") + (license bsd-3)))) + +(define* (golang-org-x-net-union #:optional + (packages (list golang-org-x-net-ipv4 + golang-org-x-net-bpf + golang-org-x-net-context + golang-org-x-net-ipv6 + golang-org-x-net-proxy + golang-org-x-net-internal= -iana))) + (package + (name "golang-org-x-net") + (version (package-version golang-org-x-net-ipv4)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go net libraries") + (description "A union of the Golang net libraries.") + (home-page (package-home-page golang-org-x-net-ipv4)) + (license (package-license golang-org-x-net-ipv4)))) + +(define-public golang-org-x-net-ipv4 + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-ipv4") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/ipv4" + #:unpack-path "golang.org/x/net")) + (synopsis "Go IPv4 support") + (description "This package provides @code{ipv4}, which implements IP= -level +socket options for the Internet Protocol version 4.") + (home-page "https://go.googlesource.com/net") + (license bsd-3)))) + +(define-public golang-org-x-net-bpf + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-bpf") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/bpf" + #:unpack-path "golang.org/x/net")) + (synopsis "Berkeley Packet Filters (BPF) in Go") + (description "This packages provides a Go implementation of the Berk= eley +Packet Filter (BPF) virtual machine.") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-context + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-context") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/context" + #:unpack-path "golang.org/x/net")) + (synopsis "Golang Context type") + (description "This packages provides @code{context}, which defines t= he +Context type, which carries deadlines, cancelation signals, and other +request-scoped values across API boundaries and between processes.") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-internal-iana + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-internal-iana") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/internal/iana" + #:unpack-path "golang.org/x/net")) + (synopsis "Go support for assigned numbers (IANA)") + (description "This packages provides @code{iana}, which provides pro= tocol +number resources managed by the Internet Assigned Numbers Authority (IANA)= =2E") + (home-page "https://go.googlesource.com/net/") + (license bsd-3)))) + +(define-public golang-org-x-net-ipv6 + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-ipv6") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/ipv6" + #:unpack-path "golang.org/x/net")) + (synopsis "Go IPv6 support") + (description "This packages provides @code{ipv6}, which implements +IP-level socket options for the Internet Protocol version 6.") + (home-page "https://go.googlesource.com/net") + (license bsd-3)))) + +(define-public golang-org-x-net-proxy + (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") + (revision "0")) + (package + (name "golang-org-x-net-proxy") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/net") + (commit commit))) + (file-name (string-append "go.googlesource.com-net-" + version "-checkout")) + (sha256 + (base32 + "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/net/proxy" + #:unpack-path "golang.org/x/net/")) + (synopsis "Go support for network proxies") + (description "This packages provides @code{proxy}, which provides su= pport +for a variety of protocols to proxy network data.") + (home-page "https://go.googlesource.com/net") + (license bsd-3)))) + +(define-public golang-org-x-sys-unix + (let ((commit "f3918c30c5c2cb527c0b071a27c35120a6c0719a") + (revision "0")) + (package + (name "golang-org-x-sys-unix") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/sys") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "02967mw0nq7hp39bcf8rdbid4jgz2fn6hd1x03mmavvca03scxbh"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/sys/unix" + #:unpack-path "golang.org/x/sys")) + (synopsis "Go support for low-level system interaction") + (description "This package provides @code{unix}, which offers Go sup= port +for low-level interaction with the operating system.") + (home-page "https://go.googlesource.com/sys") + (license bsd-3)))) + +(define* (golang-org-x-text-union #:optional + (packages (list golang-org-x-text-transf= orm + golang-org-x-text-unicod= e-norm))) + (package + (name "golang-org-x-text") + (version (package-version golang-org-x-text-transform)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go text libraries") + (description "A union of the Golang text libraries.") + (home-page (package-home-page golang-org-x-text-transform)) + (license (package-license golang-org-x-text-transform)))) + +(define-public golang-org-x-text-transform + (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") + (revision "0")) + (package + (name "golang-org-x-text-transform") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/text") + (commit commit))) + (file-name (string-append "go.googlesource.com-text-" + version "-checkout")) + (sha256 + (base32 + "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/text/transform" + #:unpack-path "golang.org/x/text")) + (synopsis "Go text transformation") + (description "This package provides @code{transform}, which provides +reader and writer wrappers that transform the bytes passing through. Exam= ple +transformations provided by other packages include normalization and conve= rsion +between character sets.") + (home-page "https://go.googlesource.com/text") + (license bsd-3)))) + +(define-public golang-org-x-text-unicode-norm + (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") + (revision "0")) + (package + (name "golang-org-x-text-unicode-norm") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/text") + (commit commit))) + (file-name (string-append "go.googlesource.com-text-" + version "-checkout")) + (sha256 + (base32 + "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/text/unicode/norm" + #:unpack-path "golang.org/x/text")) + (synopsis "Unicode normalization in Go") + (description "This package provides @code{norm}, which contains type= s and +functions for normalizing Unicode strings.") + (home-page "https://go.googlesource.com/text") + (license bsd-3)))) + +(define-public golang-github-com-audriusbutkevicius-pfilter + (let ((commit "09b3cfdd04de89f0196caecb0b335d7149a6593a") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-pfilter") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/pfilter.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "176g8dmi2i94bxpnpgvj3dv5y9hripi45kbrfvy2bk884hwbp1zq")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AudriusButkevicius/pfilter")) + (synopsis "Filter packets into mulitple virtual connections") + (description "Pfilter is a Go package for filtering packets into mul= tiple +virtual connections from a single physical connection.") + (home-page "https://github.com/AudriusButkevicius/pfilter") + (license expat)))) + +(define-public golang-github-com-ccding-go-stun + (let ((commit "04a4eed61c57ecc9903f8983d1d2c17b88d2e9e1") + (revision "0")) + (package + (name "golang-github-com-ccding-go-stun") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ccding/go-stun.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09fgmkvm0vzinl3ifrixyyxk2c9hbahrja7i0ir400harzq3my10")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/ccding/go-stun")) + (synopsis "STUN client implementation") + (description "Go-stun is a go implementation of the STUN client (RFC= 3489 +and RFC 5389).") + (home-page "https://github.com/ccding/go-stun") + (license asl2.0)))) + +(define-public golang-github-com-chmduquesne-rollinghash-adler32 + (let ((commit "043b8fdecc9816f0011a056f6d92f9a091ab63dd") + (revision "0")) + (package + (name "golang-github-com-chmduquesne-rollinghash-adler32") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chmduquesne/rollinghash.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0pc87laxgydqv03bdirfv32y9k0bdk2cwjxn28yh42nvay9p6y0k")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/chmduquesne/rollinghash/adler32" + #:unpack-path "github.com/chmduquesne/rollinghash")) + (synopsis "Adler-32 rolling hash in Go") + (description "This package provides a Go implementation of the Adler= -32 +rolling hash.") + (home-page "https://github.com/chmduquesne/rollinghash") + (license expat)))) + +(define-public golang-github-com-audriusbutkevicius-kcp-go + (let ((commit "d17218ba2121268b854dd84f2bb54679541c4048") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-kcp-go") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/kcp-go") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0faci7cfc7qs2vpsmjr3mcb72n7j8i4qk54dqczzzgi3z7gx6kbj")))) + (build-system go-build-system) + (propagated-inputs + `(("golang-org-x-net-ipv4" ,golang-org-x-net-ipv4) + ("golang-github-com-klauspost-reedsolomon" + ,golang-github-com-klauspost-reedsolomon) + ("golang-github-com-klauspost-cpuid" ,golang-github-com-klauspost= -cpuid) + ("golang-github-com-pkg-errors" ,golang-github-com-pkg-errors) + ("golang-org-x-crypto" ,(golang-org-x-crypto-union)) + ("golang-github-com-templexxx-xor" ,golang-github-com-templexxx-x= or))) + (arguments + '(#:import-path "github.com/AudriusButkevicius/kcp-go" + ;; 'TestListenerClose' is known to fail. It seems that the test s= uite + ;; is not being used upstream: + ;; https://github.com/AudriusButkevicius/kcp-go/pull/1 + #:tests? #f)) + (synopsis "Reliable UDP connections in Go") + (description "This package provides @code{kcp-go}, a reliable UDP li= brary +written in Go. It offers fast, ordered and error-checked delivery of stre= ams +over UDP packets.") + (home-page "https://github.com/xtaci/kcp-go") + (license expat)))) + +(define-public golang-github-com-templexxx-xor + (let ((commit "42f9c041c330b560afb991153bf183c25444bcdc") + (revision "0")) + (package + (name "golang-github-com-templexxx-xor") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/templexxx/xor.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0ixzk64nyyzas4lyqxdih824xg5f5vph18vyiibmnflwd61m0i78")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/templexxx/xor")) + (synopsis "XOR in Go") + (description "This packages provides a Go implementation of XOR.") + (home-page "https://github.com/templexxx/xor") + (license expat)))) + +(define-public golang-github-com-xtaci-smux + (let ((commit "0f6b9aaecaaf354357adc7def9239011ad276776") + (revision "0")) + (package + (name "golang-github-com-xtaci-smux") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtaci/smux.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wx9j0id2f5iqvyalhm4i80fr9k25klr7qqj8sd9acwp5vfl5fas")))) + (build-system go-build-system) + (propagated-inputs + `(("golang-github-com-pkg-errors" ,golang-github-com-pkg-errors))) + (arguments + '(#:import-path "github.com/xtaci/smux")) + (synopsis "Network multiplexing in Go") + (description "Smux ( Simple MUltipleXing) is a multiplexing library = for +Golang. It relies on an underlying connection to provide reliability and +ordering, such as TCP or KCP, and provides stream-oriented multiplexing.") + (home-page "https://github.com/xtaci/smux") + (license expat)))) + +(define-public golang-github-com-klauspost-reedsolomon + (let ((commit "5abf0ee302ccf4834e84f63ff74eca3e8b88e4e2") + (revision "0")) + (package + (name "golang-github-com-klauspost-reedsolomon") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/reedsolomon.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1za3db8zc76rg2f4kpvw4x8pykbyhmacnhdhyys73421f0m50a0s"))= )) + (build-system go-build-system) + (propagated-inputs + `(("golang-github-com-klauspost-cpuid" + ,golang-github-com-klauspost-cpuid))) + (arguments + `(#:import-path "github.com/klauspost/reedsolomon")) + (synopsis "Reed-Solomon Erasure Coding in Go") + (description "This package provides and implemenation of Reed-Solomon +Erasure Coding in Go.") + (home-page "https://github.com/klauspost/reedsolomon") + (license expat)))) + +(define-public golang-github-com-klauspost-cpuid + (let ((commit "09cded8978dc9e80714c4d85b0322337b0a1e5e0") + (revision "0")) + (package + (name "golang-github-com-klauspost-cpuid") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/cpuid.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "05l8pfch0gvxh0khapwxhsk4xajn40vbjr360n49vh2z5531v2xq"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/klauspost/cpuid")) + (synopsis "CPU feature identification for Go") + (description "This package provides @code{cpuid}, which provides +information about the CPU running the current program. CPU features are +detected on startup, and kept for access through the life of the +application. Currently x86 / x64 (AMD64) is supported, and no external C = (cgo) +code is used.") + (home-page "https://github.com/klauspost/cpuid") + (license expat)))) + +(define-public golang-github-com-pkg-errors + (let ((commit "ff09b135c25aae272398c51a07235b90a75aa4f0") + (revision "0")) + (package + (name "golang-github-com-pkg-errors") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/errors.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0pwl6v3hmc22zp32gkyqykl4kg69xk1mlp0vmhgd1f44difd5fvz"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/pkg/errors")) + (synopsis "Go error handling primitives") + (description "This packages provides @code{error}, which offers simp= le +error handling primitives in Go.") + (home-page "https://github.com/pkg/errors") + (license bsd-2)))) + +(define-public golang-org-x-time-rate + (let ((commit "f51c12702a4d776e4c1fa9b0fabab841babae631") + (revision "0")) + (package + (name "golang-org-x-time-rate") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/time") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy"))= )) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/time/rate" + #:unpack-path "golang.org/x/time")) + (propagated-inputs + `(("golang-org-x-net-context" ,golang-org-x-net-context))) + (synopsis "Rate limiting in Go") + (description "This package provides @{rate}, which implements rate +limiting in Go.") + (home-page "https://godoc.org/golang.org/x/time/rate") + (license bsd-3)))) + +(define-public golang-github-com-petermattis-goid + (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02") + (revision "0")) + (package + (name "golang-github-com-petermattis-goid") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/petermattis/goid.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + + (base32 + "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))= )) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/petermattis/goid")) + (synopsis "Identify the running goroutine") + (description "This package offers a method of programatically retrie= ving +the current goroutine's ID.") + (home-page "https://github.com/petermattis/goid") + (license asl2.0)))) + +(define-public golang-github-com-audriusbutkevicius-cli + (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb") + (revision "0")) + (package + (name "golang-github-com-audriusbutkevicius-cli") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/cli.git= ") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5"))= )) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AudriusButkevicius/cli")) + (synopsis "Library for building command-line interfaces in Go") + (description "This package provides a library for building command-l= ine +interfaces in Go.") + (home-page "https://github.com/AudriusButkevicius/cli") + (license expat)))) + +(define-public golang-github-com-kballard-go-shellquote + (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2") + (revision "0")) + (package + (name "golang-github-com-kballard-go-shellquote") + (version (string-append "0.0.0-" revision "." (string-take commit 7)= )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kballard/go-shellquote.git= ") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))= )) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/kballard/go-shellquote")) + (synopsis "Shell-style string joins and splits") + (description "Shellquote provides utilities for joining/splitting st= rings +using sh's word-splitting rules.") + (home-page "https://github.com/kballard/go-shellquote") + (license expat)))) --=20 2.14.2 --gKMricLos+KVdGMg-- --1LKvkjL3sHcu1TtY Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlnSoD0ACgkQJkb6MLrK fwiGTA/+JPEK0ijkbmTxksmVvpg4nnF1QrosSMhq/05LFs1ln/wmRkIric8pm1gs paJFaA/0xk5st3t6R8xEPI9kvgdHozaQkrlvuJ033G5XSd0OXbAftbCnb563LA60 JtExAHR+9gSRXpvh/SJDWPL3YYzKuSt2Uj5CYKitbA52YurmL5ij1Rj1PeysvjQm ap6pYxwKkVgBHGqG3ElVWXtvAX8TJSHgVB/0BY096R/BoCQt2f9C5ur9sX7d4Jb7 6WKptNwLC8u354E5Jn9r0VXcAw7f6Mvnk+QgOmhjBxWySyLIO+u7+eMQBUl5w8TL N2bixNOzlT+AZSRq8AWJpuqOZvU12DQ1JHzA2rgs0/iPxM8QxRC58wtx496WHmTK JtGXbbo5dIRqXxx5uagZJ63ly5SEAAeZkaMYh6156Qz8Zel1L0REy5CXJOM9eDbD 6R7siDnC9nhEb926zPOLyNLg6h7AjOn99AbPtYJ2l11IIw3iFS3Waw4N3VzgFkZj o16rcKYMbtT1loYM80X/bW7qcg+7nI7HxsT+B9PjUuc+c3o2QfxRBNX6SRZ3RWTQ eDDTp5xyq74raxIsajSYGiLXHRZxOEiBgR9VvxcWCyUTkylWGaMPRM48PEQPGETM GRGHWsR7nCoLc5VkiEYw1/ZCRGlSeNi2LD0GVSe4E7cA5bTifpU= =SCAA -----END PGP SIGNATURE----- --1LKvkjL3sHcu1TtY-- From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] go-build-system and Syncthing Resent-From: ng0 Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Oct 2017 21:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Leo Famulari Cc: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150697808823836 (code B ref 28586); Mon, 02 Oct 2017 21:02:02 +0000 Received: (at 28586) by debbugs.gnu.org; 2 Oct 2017 21:01:28 +0000 Received: from localhost ([127.0.0.1]:44633 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dz7qC-0006CO-0G for submit@debbugs.gnu.org; Mon, 02 Oct 2017 17:01:28 -0400 Received: from aibo.runbox.com ([91.220.196.211]:52320) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dz7q8-0006CD-BA for 28586@debbugs.gnu.org; Mon, 02 Oct 2017 17:01:25 -0400 Received: from [10.9.9.212] (helo=mailfront12.runbox.com) by mailtransmit02.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1dz7q5-00010s-6a; Mon, 02 Oct 2017 23:01:21 +0200 Received: from [163.172.212.115] (helo=localhost) by mailfront12.runbox.com with esmtpsa (uid:892961 ) (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) id 1dz7pq-0000PC-8z; Mon, 02 Oct 2017 23:01:06 +0200 Date: Mon, 2 Oct 2017 21:01:03 +0000 From: ng0 Message-ID: <20171002210103.4huokkwrkhanmxig@abyayala> References: <20170924203651.GA29973@jasmine.lan> <20171002202325.GA12172@jasmine.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="2hhjejb5y7cnihzq" Content-Disposition: inline In-Reply-To: <20171002202325.GA12172@jasmine.lan> X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --2hhjejb5y7cnihzq Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Leo Famulari transcribed 101K bytes: > On Sun, Sep 24, 2017 at 04:36:51PM -0400, Leo Famulari wrote: > > These patches add a go-build-system, a package for Syncthing, and > > Syncthing's dependencies. >=20 > Here is the latest revision of these patches. I'll push them in a couple > days if there are no further comments. Would it be nitpicking to make the requirements of syncthing be individual = commits? Is this simply okay with initializing the file if it doesn't make any sense to have smaller commit steps? That's all I can add right now. I'm excited to try the go-build-system out for some of the Go stuff I wanted to package. --=20 ng0 GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588 GnuPG: https://krosos.org/dist/keys/ https://www.infotropique.org https://krosos.org --2hhjejb5y7cnihzq Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAlnSqQ8ACgkQ4i+bv+40 hYiriQ/+PmbFoVRr+BdMPvSN9BAnFVSAa/VwAqed2nWoYBzioIqpznNcEbK+Druu FH5UlghlO4zpoE6GP81AnS4G4DQSzrnNqrCQ5CBU0pK1W9UHTMWtpDBX9mgYzC6b iysZaWOk10qAPJakXnYvUFGnGJ1sJJfLFOGbCyUcJrCNFUdOHXepI7KDPgb/K8eE urwzrbuX3Jy4ZTNTo9SwLYeZ4CcEWbB6w8w0hv+130Zoir1WP/TIOxDYLCNnXLAO 01sv41vllDtUq90EeqRx4p160db5HAuhSb1nNOdbaWcCKu/9lKgOBqC4+2R9JF+2 10AUyq+urGUcY8er1h+RUD0sVyAMCuKyYbdtTFVSRGTv9Xv+YQtr9liZlcJttlit 3Hy5dcVPwIm7LsHF0z1o/pTKP/HF2So5qMbyCgfDMVqMo5Nem6dUyoGBIJwR7bAS VyfO+auSf02hWwR/UHvTvDQIzDoJ0jcR4Bf/vknQ7TWxLcADS5vfKNEBAiPnBN8/ 5Qh4gicyJdH6ueZ9/QgiV9syOgQEhL9eIHoMS/I1s+PxtBFW9STcnRZxzkzVkkY3 qJ7Q3G4EzH8xleIfa9Lz1WHfFt+oHHGKjUrV8WJzzkRN0WxHt8JLHFfLie0d6BP4 JQ+GrenWd/PG2OYA8mljRxT7YasNoydsD0MQdSfg+VLwa0S00BE= =xdyA -----END PGP SIGNATURE----- --2hhjejb5y7cnihzq-- From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] go-build-system and Syncthing Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Oct 2017 21:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: ng0 Cc: 28586@debbugs.gnu.org Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150698058627831 (code B ref 28586); Mon, 02 Oct 2017 21:44:02 +0000 Received: (at 28586) by debbugs.gnu.org; 2 Oct 2017 21:43:06 +0000 Received: from localhost ([127.0.0.1]:44647 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dz8UU-0007Ep-C5 for submit@debbugs.gnu.org; Mon, 02 Oct 2017 17:43:06 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:45877) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dz8UQ-0007Ef-Ku for 28586@debbugs.gnu.org; Mon, 02 Oct 2017 17:43:03 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 0FE8222780; Mon, 2 Oct 2017 17:43:02 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Mon, 02 Oct 2017 17:43:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=u41YOAb/o4Pe6fhBHU/U1uWat3E6RtpRB1+lwK ACkMo=; b=CzRM0+tInS/QGujoCTVR0RSxY1AHId/uXugDeu8U60pg1/7G3Sz3Xq GEQonehDwWJ+awrJlLjWSnQVkHQM7Q5hhRMpnJpeWvgbP/UdlOIDu0DltAygLblB +qDwr1h4XS0rYHlG8d8DMVySvzMfwqPQdJsdpqNkB+R3zr609uojU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=u41YOAb/o4Pe6fhBHU /U1uWat3E6RtpRB1+lwKACkMo=; b=cwZAD/NwUp1NqjqQgQGK0wOsTo41pUnovZ r+u3CnDi9QWAanwnIEJvZJcEeEts0yuRTbR7pDcDqe0SLns+9EQzHTzaWOUIeElI 5IU/18wUMEda2m49RJzPWOWMYt7sBPcaAs5qneSg+ympwCowwx3wGlubHkrApfDo UCvrfIDcObSS7rWAjuHqAAC3X8XgEd4cgGcGWcZqtMWBDzr6HHkJ/nCLj+lG52wY ifw2neFBqHWghppT8MpIcGbVJk6I4Kio3V2SHFL+Nb9Rg91ohjl31jt7YUn6TeZS SA58fZZSqFY/H0E57jddcEU6R1GyP38/1wZz353IyCdQbVMHC3VQ== X-ME-Sender: X-Sasl-enc: aNEGpYx6rG/53CRJIDZkMF0lCj1h7b5KBvq716JzHjsI 1506980581 Received: from localhost (c-73-165-108-70.hsd1.pa.comcast.net [73.165.108.70]) by mail.messagingengine.com (Postfix) with ESMTPA id B2AF77FA60; Mon, 2 Oct 2017 17:43:01 -0400 (EDT) Date: Mon, 2 Oct 2017 17:42:59 -0400 From: Leo Famulari Message-ID: <20171002214259.GA25642@jasmine.lan> References: <20170924203651.GA29973@jasmine.lan> <20171002202325.GA12172@jasmine.lan> <20171002210103.4huokkwrkhanmxig@abyayala> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ReaqsoxgOBHFXBhH" Content-Disposition: inline In-Reply-To: <20171002210103.4huokkwrkhanmxig@abyayala> User-Agent: Mutt/1.8.3 (2017-05-23) X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --ReaqsoxgOBHFXBhH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Oct 02, 2017 at 09:01:03PM +0000, ng0 wrote: > Would it be nitpicking to make the requirements of syncthing be individual commits? > Is this simply okay with initializing the file if it doesn't make any sense > to have smaller commit steps? I could do that (not sure if we have a policy or not). But I sent it as one patch to make it easier to review. > I'm excited to try the go-build-system out for some of the Go stuff I > wanted to package. Please, try it and give feedback :) --ReaqsoxgOBHFXBhH Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlnSstsACgkQJkb6MLrK fwix7w//bOpjDIAJp00N/JiMa4IdW3Ei46O9zuk17V2LsOSQgGYrI2oLNpAFRE2V osOUqk5W0ysnQA8UsT4UQDIvYFQ6tLhjxQT3+iFNZAxawdkvmKRDxRYdhPGuvbxW CPiUgCH25Kgmjie8MQuokOElqTGLE2w7gtFXInj3gkjrMfG/EFk9le2aEoA7+5l7 eifHGIjgd3xB8U4P+/5ZqjoK6xNqKxhBdh/0/q7a9YVqi6HvIKg9SP7NkhfWpyAB XM9xrJ16zf3K8HUTjkpYTP2/xfVGi4feJYwS5cRI6DMqZWevkLD0mo5K0ri1tRSz clsCTqzePdg2ZiLeSPFixoyNZnHF7buIPfOxS+clzKFt1NZbqPPFgEvbAr2cmcDC C1nsCXj7UfX8slZAstcE6r5mPaK2z/WJDdrH7ESX71FT3/ipFr953eTgqm0B/BXV FgtnyXJhcoB73TedFnjnrhYbpeDX8Z5JbIYrAgUhihARHYfIjP6nchj9dHZV2hSJ RGHVeSnwLWyXfOxcMjElC0v4Y9at0/S/C6a2ODy5x5qNfn9AsaAZSdFLgd9CFEYM 10nIMIH8K1pQ3QeYQ3DepByxzllTegHolwPWD5yhWxLFf4hhw5XT4v6lW+E4TKvH Nn3sepTAFvZkWGX+gQK9ic6Nit/iQ2rTYnsIB8kDhjFIg/IqN/Q= =Om95 -----END PGP SIGNATURE----- --ReaqsoxgOBHFXBhH-- From unknown Mon Jun 23 13:14:19 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Leo Famulari Subject: bug#28586: closed (Re: go-build-system and Syncthing) Message-ID: References: <20171013014750.GA21623@jasmine.lan> <20170924203651.GA29973@jasmine.lan> X-Gnu-PR-Message: they-closed 28586 X-Gnu-PR-Package: guix-patches Reply-To: 28586@debbugs.gnu.org Date: Fri, 13 Oct 2017 01:48:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1507859282-12669-1" This is a multi-part message in MIME format... ------------=_1507859282-12669-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #28586: go-build-system and Syncthing which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 28586@debbugs.gnu.org. --=20 28586: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D28586 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1507859282-12669-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 28586-done) by debbugs.gnu.org; 13 Oct 2017 01:47:54 +0000 Received: from localhost ([127.0.0.1]:36526 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2p4s-0003Hw-GP for submit@debbugs.gnu.org; Thu, 12 Oct 2017 21:47:54 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:46037) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2p4r-0003Hn-7Q for 28586-done@debbugs.gnu.org; Thu, 12 Oct 2017 21:47:53 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 78C1B20CC6; Thu, 12 Oct 2017 21:47:52 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Thu, 12 Oct 2017 21:47:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= mesmtp; bh=d7pLzCDzvOJr8Ip9O25IKgTSfSe8t6elo6t2ljUC3zc=; b=iGeZr g1cC08VTumPzJXIrCtD56L6H01tjz+hsnyNz77PJBYRBZ6Q9XYEkdTL3FSK/tImB S/Udxgo/jcsaFf7SJ3Psbzp62bxoSzKQEndlScB3A/47oVUDihkbg4gn5MlnqFzs Uc+K9tjpJc/cA57jnLBQfv2PqupVhFUVir745w= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=d7pLzCDzvOJr8Ip9O25IKgTSfSe8t 6elo6t2ljUC3zc=; b=BLLUSWCHdPq6HzQyIFzqKO6lLI3huYhfxzkf7+MmMzlM+ p2hAOJYefklIz+vGfgz4jA1G2Z7ZEHs4sApN9oiLEQhfg8EYMdbOwU8dqSo5hR2n Zn5BH1LtRIBDFf46f7RLPpdGBOz4XX3Om31lgohzjHkkLBzvATBs4VwXNUePFS26 PPnRX9jBby6NHQlKYPBZ1NNjqugHMoVAJjB7tZbXcTIGVtsE3hM3MDIDb68Iyv/c gZBPeixp1dFCaDJbG+10PBmp2YOv/fuUCQ9nhYEmaAYtZOdvXKhVxgXemkhH+bXO e/IPGVpXmWffTfIZp6NgdwMzF6gJYDDfIJea+zn7w== X-ME-Sender: Received: from localhost (c-73-165-108-70.hsd1.pa.comcast.net [73.165.108.70]) by mail.messagingengine.com (Postfix) with ESMTPA id 341E2247AD for <28586-done@debbugs.gnu.org>; Thu, 12 Oct 2017 21:47:52 -0400 (EDT) Date: Thu, 12 Oct 2017 21:47:50 -0400 From: Leo Famulari To: 28586-done@debbugs.gnu.org Subject: Re: go-build-system and Syncthing Message-ID: <20171013014750.GA21623@jasmine.lan> References: <20170924203651.GA29973@jasmine.lan> <20171002202325.GA12172@jasmine.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="sdtB3X0nJg68CQEu" Content-Disposition: inline In-Reply-To: <20171002202325.GA12172@jasmine.lan> User-Agent: Mutt/1.9.1 (2017-09-22) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 28586-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --sdtB3X0nJg68CQEu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Oct 02, 2017 at 04:23:25PM -0400, Leo Famulari wrote: > On Sun, Sep 24, 2017 at 04:36:51PM -0400, Leo Famulari wrote: > > These patches add a go-build-system, a package for Syncthing, and > > Syncthing's dependencies. >=20 > Here is the latest revision of these patches. I'll push them in a couple > days if there are no further comments. Revised again and pushed as 947453a88df953cf877acbef3bf03b0d78d40746. --sdtB3X0nJg68CQEu Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlngG0YACgkQJkb6MLrK fwh1ug//VbalB6eZbTce1bKkyqMDR78rpJn7tk5ilh+Om0GSNFrCz0bpVms3NGLy xcQN0vgSbRVwX/oo49fR9s2Vy9o6YPBzmUh+6wRCiSWi62nWDqA+MB4ucrVK+63O Tb/tlGaMwCbeVRzFv4YQufjrgNBxpw94gJ5BtaMDA0i0FKaZ4V2EEOLTJsCTGG5O cABJh+7u7CoDByGcaKsg0+eK2w/6d5DDD1WAy1qDnGip2q2LeFKKt5qsqvmuJp43 K56xqQgpTsMv74gLWSOFIa1Tq1EhnV36t72Iq6SB1/BOs4RTuAA/SsaNw9HtQA9s IaZf2nlbLnixM5SadgfxgO2AUW0JxIRUlhGpAzmH7nKQnReINy78o7VtZowCogU7 UqOsqe0GlHJbDujWs7GX6JthcsNJwz33HntsrXxxulwXGLEOxe+FmQh+duNjHqke vIggC1O+/Lb9yMaSSwIfypTTHVR5HI6AjXcySPwej/pQ3tMP2+xPmZA9K3Axp0g/ 795PpxnDmiEut6WsYzeoKv3opb/Drnl1n/KSbG20reIiERyUlX/+Uh8iDY1dqae/ s8sBFB717xxcrArTL5CYkj5Jgp8ARKtJerHMNB5bqvkkAXBVa5rAlLFkOxC2Rl0E e7fvnkjbGWwHXuZgKVzCXasCpyb3QcuuurxXxBhbU69aHCMckRs= =zJOi -----END PGP SIGNATURE----- --sdtB3X0nJg68CQEu-- ------------=_1507859282-12669-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 24 Sep 2017 20:37:08 +0000 Received: from localhost ([127.0.0.1]:56581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDeG-00034y-2A for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:37:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41361) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwDeE-00034S-75 for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:37:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwDe8-0005iX-0k for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:37:00 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:49565) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwDe7-0005iT-Sp for submit@debbugs.gnu.org; Sun, 24 Sep 2017 16:36:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60558) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwDe6-0007yV-SZ for guix-patches@gnu.org; Sun, 24 Sep 2017 16:36:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwDe3-0005ge-RJ for guix-patches@gnu.org; Sun, 24 Sep 2017 16:36:58 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:33149) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwDe3-0005ej-JI for guix-patches@gnu.org; Sun, 24 Sep 2017 16:36:55 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id B10D820A7C; Sun, 24 Sep 2017 16:36:53 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Sun, 24 Sep 2017 16:36:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=content-type:date:from:message-id:mime-version:subject:to :x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=/Fs YjX0OUHux8u4Xa3GxmGLT5+YxHEfRmLICirlWt50=; b=GyL3aUuOsFFNeKxKcC1 l0JNJXILMjdKIjxsZGH0g3/n2SkFwVtXiiEN32JasnRkw45XTlpYlFGOUi+8A7BE /38kptoyIOFuvel8Tz+0b+FGnY2U3jQ86nhJXVQH96kGBvcuHiIvM5hDJ8yXU011 w3MEmifgqS6db675F/IYCj34= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=/FsYjX0OUHux8u4Xa3GxmGLT5+YxHEfRmLICirlWt 50=; b=NtExMFg3LMRdngQqRhQImDlEMjg0fkz6wWFa0FhxWtgENSpeLiUU4wC3y QFAlEY3CTJfmPBd5e4wWXniB8Ma8fHX9MjfWrm8Zey/Ye1kpo+1VItYzGnmwYe3I sBF7y6fy/zuqAP0wr/9e3uNVkI/CxqcapDahqjWJyjgjaOkFseKal/JxOGBvdqCa 41ExbVfZz1jnAKgd3Lxf4AkcGNPkAJvPOgt01qiw2ZGNVQZ4YcYwi5EC8MGuG3il gjcvpViy5f2AIka0MbLI6t2CccoRRwvdNp2oHB+jFLnhfsrrv2TdBc1qJj9GRVoR VQaFeFtIQUlxFk9CqcQAtDOFWFKIQ== X-ME-Sender: X-Sasl-enc: KYb70y+r/5B38zNLu1eLDnUByEIFE69EWqRyRdJwIcfC 1506285413 Received: from localhost (75-128-209-44.dhcp.trcy.mi.charter.com [75.128.209.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 5F31224155 for ; Sun, 24 Sep 2017 16:36:53 -0400 (EDT) Date: Sun, 24 Sep 2017 16:36:51 -0400 From: Leo Famulari To: guix-patches@gnu.org Subject: go-build-system and Syncthing Message-ID: <20170924203651.GA29973@jasmine.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="EVF5PPMfhYS0aIcm" Content-Disposition: inline User-Agent: Mutt/1.8.3 (2017-05-23) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) --EVF5PPMfhYS0aIcm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline These patches add a go-build-system, a package for Syncthing, and Syncthing's dependencies. The patch for Syncthing and its dependencies is squashed to make review more convenient (there are dozens of packages). I can split this up into individual commits before pushing. There are a handful of XXX comments in (guix build go-build-system). Advice welcome :) Also, this build system does not attempt cross-compilation, earning another XXX in (guix build-system go). I've skipped a few package test suites in (gnu packages syncthing). However, everything works for me, and Syncthing passes its test suite, at least. --EVF5PPMfhYS0aIcm Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlnIF2AACgkQJkb6MLrK fwjfog//awG5efkYjNdcFKNall4o5BlCVbXAU8OzBlMgV28WSnvzjcZrFaNt+Tzz sABLPtbU9U5dVKGJTtTdhhUNiChnFhXCmHUliZkwVgsFw1GQ4NRAdi1ZRXXLW79c 0jGraCXTMlu+bGvnwQ4sB3k9WtULbZiYakCFL9rA35Oi5ZyMuePuS5MGBMtsNTeJ ZMAczBjweWR/HCqluI3AirVZJfKFUOVks4k1gP9zRO7iamhU3+1x+zJAVeQrBbx7 oKwaWf3xexaaDazFxnYDWbi9W9bjz4lTh/n+Dndel3pWu55nV8HTD/UXdpbo/f3+ VjDfFzXiWw8GO+mIFYOXZiTxEz4yDZLTyG+gJgAzFXac8ZrXv9F3dkIycqK/LiZj adhCJ5E0NrF7TKom/FdHAT5nEcoOTVv9Jj8VFRfxbirq/3bMnwmbYG2XN5hmp9dS jDbwCKLilEcvRtQrBr62Fsb3c5mHFISUzwEnI+oXZN+7YKeRh0H9FIgwHCd+qBg4 dlovYmbEWk0f6S9AgoIL2ECLBmS9M0qiOoqrpiE26lhv0gyszolNK3NfY4EjTgyA THCOCjzaBbJERl/mOD1sGrz/Gl4JWHFcM4cFo/ZRwHM4ha0T22q6mhkOiV1J3fDh rZ7MCxzlWglZwqN/DwWURzFqEOmZhfI35uO5wLsVyHRZmae40vU= =8y8r -----END PGP SIGNATURE----- --EVF5PPMfhYS0aIcm-- ------------=_1507859282-12669-1-- From unknown Mon Jun 23 13:14:19 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#28586] go-build-system and Syncthing Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 13 Oct 2017 08:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28586 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 28586@debbugs.gnu.org Cc: leo@famulari.name Received: via spool by 28586-submit@debbugs.gnu.org id=B28586.150788396626045 (code B ref 28586); Fri, 13 Oct 2017 08:40:01 +0000 Received: (at 28586) by debbugs.gnu.org; 13 Oct 2017 08:39:26 +0000 Received: from localhost ([127.0.0.1]:36831 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2vV8-0006m1-BA for submit@debbugs.gnu.org; Fri, 13 Oct 2017 04:39:26 -0400 Received: from hera.aquilenet.fr ([141.255.128.1]:52535) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2vV6-0006lq-VZ for 28586@debbugs.gnu.org; Fri, 13 Oct 2017 04:39:25 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 7D6BDA379; Fri, 13 Oct 2017 10:39:25 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pTqd3FfCgiwR; Fri, 13 Oct 2017 10:39:24 +0200 (CEST) Received: from ribbon (unknown [193.50.110.214]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 3691346CB; Fri, 13 Oct 2017 10:39:24 +0200 (CEST) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20170924203651.GA29973@jasmine.lan> <20171002202325.GA12172@jasmine.lan> <20171013014750.GA21623@jasmine.lan> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 22 =?UTF-8?Q?Vend=C3=A9miaire?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 13 Oct 2017 10:39:22 +0200 In-Reply-To: <20171013014750.GA21623@jasmine.lan> (Leo Famulari's message of "Thu, 12 Oct 2017 21:47:50 -0400") Message-ID: <87infjqw5h.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hi Leo, Leo Famulari skribis: > On Mon, Oct 02, 2017 at 04:23:25PM -0400, Leo Famulari wrote: >> On Sun, Sep 24, 2017 at 04:36:51PM -0400, Leo Famulari wrote: >> > These patches add a go-build-system, a package for Syncthing, and >> > Syncthing's dependencies. >>=20 >> Here is the latest revision of these patches. I'll push them in a couple >> days if there are no further comments. > > Revised again and pushed as 947453a88df953cf877acbef3bf03b0d78d40746. Thumbs up for all your work on this! AFAICS it was a difficult path, to say the least, so I=E2=80=99m glad you managed to drive it to completion. All those who were waiting for Syncthing (and Prometheus, and=E2=80=A6) can now go ahead. :-) Ludo=E2=80=99.