From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id qxiUKuHcv2GSVQEAgWs5BA (envelope-from ) for ; Mon, 20 Dec 2021 02:31:13 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id wEucJeHcv2GKHAAA1q6Kng (envelope-from ) for ; Mon, 20 Dec 2021 01:31:13 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 15CA1D0A1 for ; Mon, 20 Dec 2021 02:31:13 +0100 (CET) Received: from localhost ([::1]:43846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mz7WC-0005wJ-7J for larch@yhetil.org; Sun, 19 Dec 2021 20:31:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46092) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mz7W2-0005w9-6J for bug-guix@gnu.org; Sun, 19 Dec 2021 20:31:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:37007) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mz7W1-0001Pu-U1 for bug-guix@gnu.org; Sun, 19 Dec 2021 20:31:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mz7W1-0007D0-Oi for bug-guix@gnu.org; Sun, 19 Dec 2021 20:31:01 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#50493: Update go-build-system to use Go 1.17. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 20 Dec 2021 01:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50493 X-GNU-PR-Package: guix X-GNU-PR-Keywords: patch To: Efraim Flashner , Sarah Morgensen , 50493@debbugs.gnu.org Received: via spool by 50493-submit@debbugs.gnu.org id=B50493.163996383927681 (code B ref 50493); Mon, 20 Dec 2021 01:31:01 +0000 Received: (at 50493) by debbugs.gnu.org; 20 Dec 2021 01:30:39 +0000 Received: from localhost ([127.0.0.1]:48553 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mz7VZ-0007CI-43 for submit@debbugs.gnu.org; Sun, 19 Dec 2021 20:30:39 -0500 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:48933) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mz7VT-0007C2-Hr for 50493@debbugs.gnu.org; Sun, 19 Dec 2021 20:30:32 -0500 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id DF9383200A5F; Sun, 19 Dec 2021 20:30:20 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Sun, 19 Dec 2021 20:30:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=date:from:to:subject:message-id:references:mime-version :content-type:in-reply-to; s=mesmtp; bh=YDROeNeytcn+iPn7XpqPz7Dy IblodJvLDegmQ5ZOvIc=; b=Fz3cAIIFBKbW9JKxOu745c6xjCnw2KpWV+KGiUFx Qw6Qtr+5FlXUOgyX1JexNrOY8q46wVKanZBanO/2WYeZHxmbR7Wsdd2d7RDgnahO vvIJqUgU1F+ySWVO/Zbqx1iNPkVsTgZ03FumeNUIzLy9puznQLVaNDLhnd1RpsAa hY8= 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-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=YDROeN eytcn+iPn7XpqPz7DyIblodJvLDegmQ5ZOvIc=; b=DuuDPQVC4JN+o9ZqnTEa4d ifHRYQthWE0YvHidPhI5cFtQEDwWqQVlhmYiNl1e8q0Q4345jKx5bC5Sj2dfDKi3 YGOOAeC+H9iWEu+xxuBVySEJoqitjNNsCdcGTVpEKGUIi7UKRsuVgU9Zqq0mEu5l k6Vn/1vE2bW7hRpQoUecat/7cPY7SOMmJLbd42bzwGTcrpmF8PH16/ipqDzx0SwA jmRjp5Cvl4v+CCGdaSy5L++/dpktudi77UUwZIHjk3xROgvyUitNh2fvn92OHoru JW/xLl9NZlO2RDygfqzndNAFAabVdzFpG4AE/zn3aD/YElMy268znRRuwk5t7Jwg == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddruddtuddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvffukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefnvghoucfh rghmuhhlrghrihcuoehlvghosehfrghmuhhlrghrihdrnhgrmhgvqeenucggtffrrghtth gvrhhnpedukeevgeetkeeltefgiedtjefgjeekffduteehvdfhueekudelieekjeefheff teenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehlvg hosehfrghmuhhlrghrihdrnhgrmhgv X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 19 Dec 2021 20:30:19 -0500 (EST) Date: Sun, 19 Dec 2021 20:30:18 -0500 From: Leo Famulari Message-ID: References: <865yv9mm5a.fsf@mgsn.dev> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="gpV3NMKFTru/XBzk" Content-Disposition: inline In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1639963873; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=YDROeNeytcn+iPn7XpqPz7DyIblodJvLDegmQ5ZOvIc=; b=VaJMzQ0KV/6N2Mh9Kt27lDy4nIHmuregSKHJye0N1ZxTFzu3//Em3wCTZZEO7bJBwtOt/D RWqFe0M6bDyIoe9PJt8Heaq8WAEbK0sOv4pcL4ZWoZd2JyU93wyjwgj3EObbfs6iYnfSwo 2h+2DZgOEwdKeweWAbvUBjvEbqdosT/cS7CLDEHJoMqhzg/1UN9rP2y80E1EOd7PEph6yp YQxnfrlVFNGsHVNRg0f+K2obU1Lmr5386IYdCFnSiTdDvIXVDvGyJmJa7u8Dx6gP4jjZwT nzsC0m8gyEHzJ9KxgzVIGgm982fhOB3cgMylUQDvmH3cDLxf6ppKJ8A7R3ZJgw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1639963873; a=rsa-sha256; cv=none; b=Qe7CRXZMKZRa9lN8f5fqALv54KqYJgrILfU9fAvHJfwebEyjMICT+Qpkqtimz5zpTqTVvT ExkeXeXAOXC37g48DamGQ7IX2Xfiw44zuS8W6kMPwRQe2zK+ld/sGYFjA/BpajENGLg8KS WlKf9/WYRKHz1qS+NV3Lph2t0a1QxUuoM6wO5tP9Kx8N8XGvYyvfm8u7oIIzPbyD4qGV/C INhKrXvr0jlIC9myZJUdY2aRJcMhQfz3kGrkT++Vs+xs0J5nMgw2rbiVnwFBfW0FfjTuZN ysOQRFKrYGe3H3AeaEX30tt8g4Ixo6D4/Z+a9qseToQbFdpBeTwhcPwau7/P7Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=famulari.name header.s=mesmtp header.b=Fz3cAIIF; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b=DuuDPQVC; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.72 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=famulari.name header.s=mesmtp header.b=Fz3cAIIF; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b=DuuDPQVC; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 15CA1D0A1 X-Spam-Score: -5.72 X-Migadu-Scanner: scn0.migadu.com X-TUID: 9SAnfc4g+FAM --gpV3NMKFTru/XBzk Content-Type: multipart/mixed; boundary="MDsJqkBh4GPaKhdB" Content-Disposition: inline --MDsJqkBh4GPaKhdB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sun, Dec 19, 2021 at 10:19:02AM +0200, Efraim Flashner wrote: > All of go is blocked on aarch64 with binutils-gold not compiling. I have > a patch locally to add gcc:lib for (target-arm?) to go-1.17 which I'll > push after testing with binutils-gold. I think going straight to 1.17 is > fine, there's no regression against the current support for aarch64. Oh, good point. Based on the attached patches (rebased / adjusted for current master), I'll proceed with testing the build of all Go packages on x86_64-linux. --MDsJqkBh4GPaKhdB Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-build-system-go-Add-substitutable-argument.patch" Content-Transfer-Encoding: quoted-printable =46rom f26d2b8b30867d23a417af2c40ba8062adb87bd7 Mon Sep 17 00:00:00 2001 =46rom: Sarah Morgensen Date: Mon, 13 Dec 2021 20:11:47 -0500 Subject: [PATCH 1/4] build-system/go: Add #:substitutable? argument. * guix/build-system/go.scm (go-build): Add 'substitutable?' argument. (go-cross-build): Likewise. Signed-off-by: Leo Famulari --- guix/build-system/go.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 18824c79d9..0b2bf1c11b 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -172,7 +172,8 @@ (define* (go-build name inputs (imported-modules %go-build-system-modules) (modules '((guix build go-build-system) (guix build union) - (guix build utils)))) + (guix build utils))) + (substitutable? #t)) (define builder (with-imported-modules imported-modules #~(begin @@ -182,6 +183,7 @@ (define builder #:system #$system #:phases #$phases #:outputs #$(outputs->gexp outputs) + #:substitutable? #$substitutable? #:goarch #$goarch #:goos #$goos #:search-paths '#$(sexp->gexp @@ -222,7 +224,8 @@ (define* (go-cross-build name (imported-modules %go-build-system-modules) (modules '((guix build go-build-system) (guix build union) - (guix build utils)))) + (guix build utils))) + (substitutable? #t)) "Cross-build NAME using GO, where TARGET is a GNU triplet and with INPUT= S." (define builder #~(begin base-commit: 99f290bf5ba59e3218b95d7505ac27f989250aad --=20 2.34.0 --MDsJqkBh4GPaKhdB Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0002-build-system-go-Initialize-build-cache-from-input-pa.patch" Content-Transfer-Encoding: quoted-printable =46rom a437f30bfaa4965cb42acb37f387e2c8106c7884 Mon Sep 17 00:00:00 2001 =46rom: Sarah Morgensen Date: Sun, 19 Sep 2021 22:20:49 -0700 Subject: [PATCH 2/4] build-system/go: Initialize build cache from input packages. * guix/build/go-build-system.com (setup-go-environment): Set GOCACHE to a location within the build directory. Union "/var/cache/go/build" input directories to initialize the cache. Generate "trim.txt" within the cache, with the current time. Signed-off-by: Leo Famulari --- guix/build/go-build-system.scm | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 4768ee8562..7f25e05d0d 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -5,6 +5,7 @@ ;;; Copyright =C2=A9 2020 Jack Hill ;;; Copyright =C2=A9 2020 Jakub K=C4=85dzio=C5=82ka ;;; Copyright =C2=A9 2020, 2021 Efraim Flashner +;;; Copyright =C2=A9 2021 Sarah Morgensen ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,9 +139,28 @@ (define* (setup-go-environment #:key inputs outputs go= os goarch #:allow-other-ke where executables (\"commands\") are installed to. This phase is sometime= s used by packages that use (guix build-system gnu) but have a handful of Go dependencies, so it should be self-contained." - ;; The Go cache is required starting in Go 1.12. We don't actually use = it but - ;; we need it to be a writable directory. - (setenv "GOCACHE" "/tmp/go-cache") + (define (search-input-directories dir) + (filter directory-exists? + (map (match-lambda + ((name . directory) + (string-append directory "/" dir))) + inputs))) + + ;; Seed the Go build cache with the build caches from input packages. + (let ((cache (string-append (getcwd) "/go-build"))) + (setenv "GOCACHE" cache) + (union-build cache + (search-input-directories "/var/cache/go/build") + ;; Creating all directories isn't that bad, because there= are + ;; only ever 256 of them. + #:create-all-directories? #t + #:log-port (%make-void-port "w")) + + ;; Tell Go that the cache was recently trimmed, so it doesn't try to. + (call-with-output-file (string-append cache "/trim.txt") + (lambda (port) + (format port "~a" (current-time))))) + ;; Using the current working directory as GOPATH makes it easier for pac= kagers ;; who need to manipulate the unpacked source code. (setenv "GOPATH" (getcwd)) --=20 2.34.0 --MDsJqkBh4GPaKhdB Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0003-build-system-go-Add-pre-built-standard-library-as-im.patch" Content-Transfer-Encoding: quoted-printable =46rom cddf7d95c9134075aec45e2f2e49073f92aadfcb Mon Sep 17 00:00:00 2001 =46rom: Sarah Morgensen Date: Sun, 19 Sep 2021 22:20:50 -0700 Subject: [PATCH 3/4] build-system/go: Add pre-built standard library as implicit input. * gnu/packages/golang.scm (make-go-std): New procedure. * guix/build-system/go.scm (make-go-std): New procedure. (lower): Use it. Add pre-built standard library to inputs. Signed-off-by: Leo Famulari --- gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++ guix/build-system/go.scm | 16 ++++++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c863388475..7989a3a138 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -806,6 +806,36 @@ (define-public go-1.17 =20 (define-public go go-1.14) =20 +(define-public (make-go-std go) + "Return a package which builds the standard library for Go compiler GO." + (package + (name (string-append (package-name go) "-std")) + (version (package-version go)) + (source #f) + (build-system go-build-system) + (arguments + `(#:import-path "std" + #:build-flags `("-pkgdir" "pkg") ; "Install" to build directory. + #:allow-go-reference? #t + #:substitutable? #f ; Faster to build than download. + #:tests? #f ; Already tested in the main Go build. + #:go ,go + #:phases + (modify-phases %standard-phases + (delete 'unpack) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-cache (string-append out "/var/cache/go/build"))) + (copy-recursively (getenv "GOCACHE") out-cache) + (delete-file (string-append out-cache "/trim.txt")) + (delete-file (string-append out-cache "/README"))))) + (delete 'install-license-files)))) + (home-page (package-home-page go)) + (synopsis "Cached standard library build for Go") + (description (package-description go)) + (license (package-license go)))) + (define-public go-0xacab-org-leap-shapeshifter (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") (revision "12")) diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 0b2bf1c11b..09148f8730 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -4,6 +4,7 @@ ;;; Copyright =C2=A9 2020 Jakub K=C4=85dzio=C5=82ka ;;; Copyright =C2=A9 2021 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2021 Efraim Flashner +;;; Copyright =C2=A9 2021 Sarah Morgensen ;;; ;;; This file is part of GNU Guix. ;;; @@ -112,6 +113,9 @@ (define (default-go) (let ((go (resolve-interface '(gnu packages golang)))) (module-ref go 'go))) =20 +(define (make-go-std) + (module-ref (resolve-interface '(gnu packages golang)) 'make-go-std)) + (define* (lower name #:key source inputs native-inputs outputs system target (go (default-go)) @@ -121,6 +125,14 @@ (define* (lower name (define private-keywords '(#:target #:go #:inputs #:native-inputs)) =20 + (define inputs-with-cache + ;; XXX: Avoid a circular dependency. This should be rewritten with + ;; 'package-mapping' or similar. + (let ((go-std-name (string-append (package-name go) "-std"))) + (if (string-prefix? go-std-name name) + inputs + (cons `(,go-std-name ,((make-go-std) go)) inputs)))) + (bag (name name) (system system) @@ -130,7 +142,7 @@ (define private-keywords '()) ,@`(("go" ,go)) ,@native-inputs - ,@(if target '() inputs) + ,@(if target '() inputs-with-cache) ,@(if target ;; Use the standard cross inputs of ;; 'gnu-build-system'. @@ -138,7 +150,7 @@ (define private-keywords '()) ;; Keep the standard inputs of 'gnu-build-system'. ,@(standard-packages))) - (host-inputs (if target inputs '())) + (host-inputs (if target inputs-with-cache '())) =20 ;; The cross-libc is really a target package, but for bootstrapping ;; reasons, we can't put it in 'host-inputs'. Namely, 'cross-gcc' is a --=20 2.34.0 --MDsJqkBh4GPaKhdB Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0004-build-system-go-Use-go-1.17-by-default.patch" Content-Transfer-Encoding: quoted-printable =46rom 6f9d52c1117279be567e2ee9f56f88e470867e92 Mon Sep 17 00:00:00 2001 =46rom: Sarah Morgensen Date: Sun, 19 Sep 2021 22:20:51 -0700 Subject: [PATCH 4/4] build-system/go: Use go-1.17 by default. Build all Go packages with go-1.17 by default. Explicitly specify an older Go version in packages which cannot build with go-1.17. * gnu/packages/golang.scm (go): Update from 'go-1.14' to 'go-1.17'. * gnu/packages/docker.scm (docker)[native-inputs]: Explicitly use 'go-1.14'. * gnu/packages/ipfs.scm (go-github-com-ipfs-go-ipfs-cmdkit-files)[arguments= ]: Set #:go to 'go-1.16'. Signed-off-by: Leo Famulari --- gnu/packages/docker.scm | 2 +- gnu/packages/golang.scm | 2 +- gnu/packages/ipfs.scm | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index cdf62f5e9a..d012ed43c6 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -585,7 +585,7 @@ (define-public docker ("xz" ,xz))) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) - go gotestsum pkg-config)) + go-1.14 gotestsum pkg-config)) (synopsis "Docker container component library, and daemon") (description "This package provides a framework to assemble specialized container systems. It includes components for orchestration, image diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7989a3a138..1ac6c81900 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -804,7 +804,7 @@ (define-public go-1.17 (alist-replace "go" (list go-1.16) (package-native-inputs go-1.= 16)) (package-native-inputs go-1.16)))))) =20 -(define-public go go-1.14) +(define-public go go-1.17) =20 (define-public (make-go-std go) "Return a package which builds the standard library for Go compiler GO." diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index f566b850aa..b567b23353 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -48,7 +48,8 @@ (define-public go-github-com-ipfs-go-ipfs-cmdkit-files "0qk6fshgdmhp8dip2ksm13j6nywi41m9mn0czkvmw6b697z85l2r")))) (build-system go-build-system) (arguments - '(#:unpack-path "github.com/ipfs/go-ipfs-cmdkit" + `(#:go ,go-1.16 + #:unpack-path "github.com/ipfs/go-ipfs-cmdkit" #:import-path "github.com/ipfs/go-ipfs-cmdkit/files")) (home-page "https://github.com/ipfs/go-ipfs-cmdkit") (synopsis "Shared types, functions and values for go-ipfs") --=20 2.34.0 --MDsJqkBh4GPaKhdB-- --gpV3NMKFTru/XBzk Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAmG/3KkACgkQJkb6MLrK fwjtXQ/9FIi/NrdS5jiGvBKJsyiHeOAE4Bsfdb0b6LOXK73T9s89W3IIsrLmDtmS fSfMSX6xwyZOy5gyWYQwudyYHYWY9PORc9BkXjkHMqGT1jiHo0svjSQ8UEnCDlff vkA2nb+L6TMiQ8WWPZshaSAWgj0/tVAo0oo/5L0zsP8VuNewtZNO2jQRN2zEi/G8 RS/STXDWyyEldQikNAeHuiy8QzPFAYV7V8/8yfPMoClgWtM8rXFEz2HfcBFFAisN rYnteR98m+pQxgMqbV4iWsSSzDybiHKpMBvdC8Wdgi0VH2KP0k/6v9mgeu+glLxV vbCj1A3lU/qHfgeV+JFk7F7XyxZRL9HJa+50S6uqPnyK2OLwsAHiFHKubSOYI3Nx KwVtKXmvcHIat7V3ywiZrDTYvzw5ceHo814zgkT1vCVtEufPWIGQIIRdG6HS4u0f rfCEClANFIfRc8KfqlsLAIYCiWO2N8CmLmtrbtcqubKa0zXH8MhEiFYtX62pD5rw tPXpbKpk1FSeqtT+u/9Bi22x7V0+mPDn5cyx4LLCAxjfdWarJZP1vkDLOkEGPhWj O+tGxm8tDCc1x2SwTWgYFRgp00+OYIxA43uzh5Q1WMuTvoHgMmqqov0fKNkdRSAt wCuyFAeba7K2Mq9r+DgYE1ppt0TaoItIIP+YHa3J4ry0sCcv0EA= =SVRu -----END PGP SIGNATURE----- --gpV3NMKFTru/XBzk--