From 3de233a2d8e6bdb4723844337b69b6612616c9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= Date: Tue, 7 Jan 2020 20:29:21 +0100 Subject: [PATCH 2/2] gnu: Add keybase. * gnu/packages/crypto.scm (keybase-component): New function. (keybase, git-remote-keybase, kbfs): New variables. --- gnu/packages/crypto.scm | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index dd49c12e5b..c78515ae68 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2018 Tim Gesthuizen ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2019 Tanguy Le Carrour +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,6 +70,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system perl) #:use-module (guix build utils) #:use-module (srfi srfi-1) @@ -1040,3 +1042,50 @@ minisign uses a slightly different format to store secret keys. Minisign signatures include trusted comments in addition to untrusted comments. Trusted comments are signed, thus verified, before being displayed.") (license license:isc))) + +(define* (keybase-component #:key name repo-path synopsis description) + (package + (name name) + (version "5.1.1") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/keybase/client/releases/download/v" + version "/keybase-v" version ".tar.xz")) + (sha256 + (base32 + "1i6waaprdr89k3lrg36hn11f5z8j0n2iv6gpyrynbh2h128cfpwy")))) + (build-system go-build-system) + (arguments + `(#:import-path ,(string-append "github.com/keybase/client/go/" repo-path) + #:unpack-path "github.com/keybase/client" + #:build-flags '("-tags" "production") + #:install-source? #f)) + (home-page "https://keybase.io") + (synopsis synopsis) + (description description) + (license license:bsd-3))) + +(define-public keybase + (keybase-component + #:name "keybase" + #:repo-path "keybase" + #:synopsis "Command-line client for Keybase" + #:description "Keybase is a key directory that maps social media identities +to encryption keys in a publically auditable manner. End-to-end encrypted chat, +cloud storage and git hosting is also provided.")) + +(define-public git-remote-keybase + (keybase-component + #:name "git-remote-keybase" + #:repo-path "kbfs/kbfsgit/git-remote-keybase" + #:synopsis "Git remote helper for Keybase encrypted repositories" + #:description "keybase-kbfsgit provides the git remote helper that handles +@code{keybase://} URIs.")) + +(define-public kbfs + (keybase-component + #:name "kbfs" + #:repo-path "kbfs/kbfsfuse" + #:synopsis "FUSE handler for the Keybase filesystem" + #:description "Handles mounting /keybase")) -- 2.24.1