summary refs log tree commit diff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cd684c04e7..12fc2c6cc3 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017 André <eu@euandre.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -423,6 +424,49 @@ as keys or passwords) in the same repository as your code, without requiring you
 to lock down your entire repository.")
     (license license:gpl3+)))
 
+(define-public git-remote-gcrypt
+  (package
+   (name "git-remote-gcrypt")
+   (version "1.0.1")
+   (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://git.spwhitton.name/git-remote-gcrypt")
+                   (commit version)))
+             (file-name (string-append name "-" version "-checkout"))
+             (sha256
+              (base32
+               "0znrx77vpm4a8l7yiybsxk5vrawijqqfxmp1p2yhaaw8cbgrj7az"))))
+   (build-system trivial-build-system)
+   (arguments
+    `(#:modules ((guix build utils))
+      #:builder (begin
+                  (use-modules (guix build utils))
+                  (let* ((source (assoc-ref %build-inputs "source"))
+                         (output (assoc-ref %outputs "out"))
+                         (bindir (string-append output "/bin")))
+                    (install-file (string-append source "/git-remote-gcrypt")
+                                  bindir)
+                    #t))))
+   (home-page "https://spwhitton.name/tech/code/git-remote-gcrypt/")
+   (synopsis "Whole remote repository encryption")
+   (description "git-remote-gcrypt is a Git remote helper to push and pull from
+repositories encrypted with GnuPG.  It works with the standard Git transports,
+including repository hosting services like GitLab.
+
+Remote helper programs are invoked by Git to handle network transport.  This
+helper handles @code{gcrypt:} URLs that access a remote repository encrypted
+with GPG, using our custom format.
+
+Supported locations are local, @code{rsync://} and @code{sftp://}, where the
+repository is stored as a set of files, or instead any Git URL where gcrypt
+will store the same representation in a Git repository, bridged over arbitrary
+Git transport.
+
+The aim is to provide confidential, authenticated Git storage and
+collaboration using typical untrusted file hosts or services.")
+   (license license:gpl3+)))
+
 (define-public cgit
   (package
     (name "cgit")