Package: guix-patches;
Reported by: Timothy Sample <samplet <at> ngyro.com>
Date: Thu, 24 May 2018 19:20:01 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Christopher Lemmer Webber <cwebber <at> dustycloud.org> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: [bug#31582] [PATCH 8/8] gnu: Add git-annex. Date: Mon, 28 May 2018 23:13:35 -0500
Note that you didn't add a copyright header to this file (or the haskell.scm one either). I can do that though if everything builds before I push it. Timothy Sample writes: > * gnu/packages/backup.scm (git-annex): New variable. > --- > gnu/packages/backup.scm | 134 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 134 insertions(+) > > diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm > index a3782e129..1e4c03427 100644 > --- a/gnu/packages/backup.scm > +++ b/gnu/packages/backup.scm > @@ -31,6 +31,7 @@ > #:use-module (guix download) > #:use-module (guix utils) > #:use-module (guix build-system gnu) > + #:use-module (guix build-system haskell) > #:use-module (guix build-system python) > #:use-module (gnu packages) > #:use-module (gnu packages acl) > @@ -39,6 +40,7 @@ > #:use-module (gnu packages check) > #:use-module (gnu packages compression) > #:use-module (gnu packages crypto) > + #:use-module (gnu packages curl) > #:use-module (gnu packages databases) > #:use-module (gnu packages dejagnu) > #:use-module (gnu packages ftp) > @@ -46,6 +48,10 @@ > #:use-module (gnu packages gnupg) > #:use-module (gnu packages gperf) > #:use-module (gnu packages guile) > + #:use-module (gnu packages haskell) > + #:use-module (gnu packages haskell-check) > + #:use-module (gnu packages haskell-web) > + #:use-module (gnu packages haskell-crypto) > #:use-module (gnu packages linux) > #:use-module (gnu packages mcrypt) > #:use-module (gnu packages nettle) > @@ -58,6 +64,7 @@ > #:use-module (gnu packages rsync) > #:use-module (gnu packages ssh) > #:use-module (gnu packages tls) > + #:use-module (gnu packages version-control) > #:use-module (gnu packages xml)) > > (define-public duplicity > @@ -813,3 +820,130 @@ file systems with unattended creation and expiration. A dirvish backup vault > is like a time machine for your data. ") > (license (license:fsf-free "file://COPYING" > "Open Software License 2.0")))) > + > +(define-public git-annex > + (package > + (name "git-annex") > + (version "6.20170818") > + (source > + (origin > + (method url-fetch) > + (uri (string-append "https://hackage.haskell.org/package/" > + "git-annex/git-annex-" version ".tar.gz")) > + (sha256 > + (base32 > + "0ybxixbqvy4rx6mq9s02rh349rbr04hb17z4bfayin0qwa5kzpvx")))) > + (build-system haskell-build-system) > + (arguments > + `(#:configure-flags > + '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV") > + #:phases > + (modify-phases %standard-phases > + (add-before 'configure 'patch-shell > + (lambda _ > + (substitute* "Utility/Shell.hs" > + (("/bin/sh") (which "sh"))) > + #t)) > + (add-before 'configure 'factor-setup > + (lambda _ > + ;; Factor out necessary build logic from the provided > + ;; `Setup.hs' script. The script as-is does not work because > + ;; it cannot find its dependencies, and there is no obvious way > + ;; to tell it where to look. Note that we do not preserve the > + ;; code that installs man pages here. > + (call-with-output-file "PreConf.hs" > + (lambda (out) > + (format out "import qualified Build.Configure as Configure~%") > + (format out "main = Configure.run Configure.tests~%"))) > + (call-with-output-file "Setup.hs" > + (lambda (out) > + (format out "import Distribution.Simple~%") > + (format out "main = defaultMain~%"))) > + #t)) > + (add-before 'configure 'pre-configure > + (lambda _ > + (invoke "runhaskell" "PreConf.hs") > + #t)) > + (replace 'check > + (lambda _ > + ;; We need to set the path so that Git recognizes > + ;; `git annex' as a custom command. > + (setenv "PATH" (string-append (getenv "PATH") ":" > + (getcwd) "/dist/build/git-annex")) > + (with-directory-excursion "dist/build/git-annex" > + (symlink "git-annex" "git-annex-shell")) > + (invoke "git-annex" "test") > + #t)) > + (add-after 'install 'install-symlinks > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin"))) > + (symlink (string-append bin "/git-annex") > + (string-append bin "/git-annex-shell")) > + (symlink (string-append bin "/git-annex") > + (string-append bin "/git-remote-tor-annex")) > + #t)))))) > + (inputs > + `(("curl" ,curl) > + ("ghc-aeson" ,ghc-aeson) > + ("ghc-async" ,ghc-async) > + ("ghc-bloomfilter" ,ghc-bloomfilter) > + ("ghc-byteable" ,ghc-byteable) > + ("ghc-case-insensitive" ,ghc-case-insensitive) > + ("ghc-crypto-api" ,ghc-crypto-api) > + ("ghc-cryptonite" ,ghc-cryptonite) > + ("ghc-data-default" ,ghc-data-default) > + ("ghc-disk-free-space" ,ghc-disk-free-space) > + ("ghc-dlist" ,ghc-dlist) > + ("ghc-edit-distance" ,ghc-edit-distance) > + ("ghc-esqueleto" ,ghc-esqueleto) > + ("ghc-exceptions" ,ghc-exceptions) > + ("ghc-feed" ,ghc-feed) > + ("ghc-free" ,ghc-free) > + ("ghc-hslogger" ,ghc-hslogger) > + ("ghc-http-client" ,ghc-http-client) > + ("ghc-http-conduit" ,ghc-http-conduit) > + ("ghc-http-types" ,ghc-http-types) > + ("ghc-ifelse" ,ghc-ifelse) > + ("ghc-memory" ,ghc-memory) > + ("ghc-monad-control" ,ghc-monad-control) > + ("ghc-monad-logger" ,ghc-monad-logger) > + ("ghc-mtl" ,ghc-mtl) > + ("ghc-network" ,ghc-network) > + ("ghc-old-locale" ,ghc-old-locale) > + ("ghc-optparse-applicative" ,ghc-optparse-applicative) > + ("ghc-persistent" ,ghc-persistent) > + ("ghc-persistent-sqlite" ,ghc-persistent-sqlite) > + ("ghc-persistent-template" ,ghc-persistent-template) > + ("ghc-quickcheck" ,ghc-quickcheck) > + ("ghc-random" ,ghc-random) > + ("ghc-regex-tdfa" ,ghc-regex-tdfa) > + ("ghc-resourcet" ,ghc-resourcet) > + ("ghc-safesemaphore" ,ghc-safesemaphore) > + ("ghc-sandi" ,ghc-sandi) > + ("ghc-securemem" ,ghc-securemem) > + ("ghc-socks" ,ghc-socks) > + ("ghc-split" ,ghc-split) > + ("ghc-stm" ,ghc-stm) > + ("ghc-stm-chans" ,ghc-stm-chans) > + ("ghc-text" ,ghc-text) > + ("ghc-unix-compat" ,ghc-unix-compat) > + ("ghc-unordered-containers" ,ghc-unordered-containers) > + ("ghc-utf8-string" ,ghc-utf8-string) > + ("ghc-uuid" ,ghc-uuid) > + ("git" ,git) > + ("rsync" ,rsync))) > + (native-inputs > + `(("ghc-tasty" ,ghc-tasty) > + ("ghc-tasty-hunit" ,ghc-tasty-hunit) > + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) > + ("ghc-tasty-rerun" ,ghc-tasty-rerun))) > + (home-page "https://git-annex.branchable.com/") > + (synopsis "Manage files with Git, without checking in their contents") > + (description "This package allows managing files with Git, without > +checking the file contents into Git. It can store files in many places, > +such as local hard drives and cloud storage services. It can also be > +used to keep a folder in sync between computers.") > + ;; The web app is released under the AGPLv3+. > + (license (list license:gpl3+ > + license:agpl3+))))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.