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.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31582 in the body.
You can then email your comments to 31582 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:20:01 GMT) Full text and rfc822 format available.Timothy Sample <samplet <at> ngyro.com>
:guix-patches <at> gnu.org
.
(Thu, 24 May 2018 19:20:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: guix-patches <at> gnu.org Subject: [PATCH 0/8] git-annex Date: Thu, 24 May 2018 15:19:44 -0400
Hello! This patch series adds a package for “git-annex”. The package is not quite perfect, but I think it is far enough along to be included. One of the issues is that it only builds a very minimal version, disabling most of the optional features (the most important being the Web app). One reason for this is that we are missing quite a few of these features’ dependencies. Another reason is that I’m not really familiar with them, so I wouldn’t know how to test them ;). The other issue is that I needed to rework the build a fair bit, and I did it in a bit of a shoddy way. The way that the Haskell build system sets up the environment means that the “Setup.hs” does not run properly. It passes the Haskell package DB as a parameter to Cabal, but this doesn’t affect the code that initializes Cabal. On the other hand, Cabal disallows the package DB to be passed in by environment variables. It might be possible to pass it in as a parameter to “runhaskell”, but I’m not sure. Following that path would require copying large chunks of the build system into the package, which seems like a poor choice! (As far as I can tell, this is the first package with this problem. If it were more common, I would suggest an update to the build system itself.) In the end, I decided to cheat a little, and factor out the different parts so that they can be run separately. This means that the ‘man’ pages do not get installed :/. Maybe that could be fixed later, though. -- Tim
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:02 GMT) Full text and rfc822 format available.Message #8 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 1/8] gnu: Add ghc-bloomfilter. Date: Mon, 19 Feb 2018 12:58:48 -0500
* gnu/package/haskell.scm (ghc-bloomfilter): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c8fade065..ccb3adf15 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3573,6 +3573,31 @@ vector types are supported. Specific instances are provided for unboxed, boxed and storable vectors.") (license license:bsd-3))) +(define-public ghc-bloomfilter + (package + (name "ghc-bloomfilter") + (version "2.0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "bloomfilter/bloomfilter-" version ".tar.gz")) + (sha256 + (base32 + "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://github.com/bos/bloomfilter") + (synopsis "Pure and impure Bloom filter implementations") + (description "This package provides both mutable and immutable Bloom +filter data types, along with a family of hash functions and an easy-to-use +interface.") + (license license:bsd-3))) + (define-public ghc-network (package (name "ghc-network") -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:02 GMT) Full text and rfc822 format available.Message #11 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 2/8] gnu: Add ghc-feed. Date: Mon, 19 Feb 2018 19:07:44 -0500
* gnu/packages/haskell.scm (ghc-feed): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ccb3adf15..07a639b76 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2988,6 +2988,35 @@ online}.") (description "This package provides a simple XML library for Haskell.") (license license:bsd-3))) +(define-public ghc-feed + (package + (name "ghc-feed") + (version "0.3.12.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "feed/feed-" version ".tar.gz")) + (sha256 + (base32 + "0hkrsinspg70bbm3hwqdrvivws6zya1hyk0a3awpaz82j4xnlbfc")))) + (build-system haskell-build-system) + (inputs + `(("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time) + ("ghc-time-locale-compat" ,ghc-time-locale-compat) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-xml" ,ghc-xml))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (home-page "https://github.com/bergmark/feed") + (synopsis "Haskell package for handling various syndication formats") + (description "This Haskell package includes tools for generating and +consuming feeds in both RSS (Really Simple Syndication) and Atom format.") + (license license:bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:03 GMT) Full text and rfc822 format available.Message #14 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 3/8] gnu: Add ghc-ifelse. Date: Mon, 19 Feb 2018 19:08:28 -0500
* gnu/packages/haskell.scm (ghc-ifelse): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 07a639b76..f4f054895 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3812,6 +3812,27 @@ with various performance characteristics.") manipulating monad transformer stacks.") (license license:bsd-3))) +(define-public ghc-ifelse + (package + (name "ghc-ifelse") + (version "0.85") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "IfElse/IfElse-" version ".tar.gz")) + (sha256 + (base32 + "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa")))) + (build-system haskell-build-system) + (inputs `(("ghc-mtl" ,ghc-mtl))) + (home-page "http://hackage.haskell.org/package/IfElse") + (synopsis "Monadic control flow with anaphoric variants") + (description "This library provides functions for control flow inside of +monads with anaphoric variants on @code{if} and @code{when} and a C-like +@code{switch} function.") + (license license:bsd-3))) + (define-public ghc-monad-control (package (name "ghc-monad-control") -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:03 GMT) Full text and rfc822 format available.Message #17 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 4/8] gnu: Add ghc-esqueleto. Date: Tue, 20 Feb 2018 00:12:21 -0500
* gnu/packages/haskell.scm (ghc-esqueleto): New variable. --- gnu/packages/haskell.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f4f054895..2c0b66396 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -7811,6 +7811,44 @@ converting between Haskell values and JSON. JSON (JavaScript Object Notation) is a lightweight data-interchange format.") (license license:bsd-3))) +(define-public ghc-esqueleto + (package + (name "ghc-esqueleto") + (version "2.5.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "esqueleto/esqueleto-" version ".tar.gz")) + (sha256 + (base32 + "10n49rzqmblky7pwjnysalyy6nacmxfms8dqbsdv6hlyzr8pb69x")))) + (build-system haskell-build-system) + (inputs + `(("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-conduit" ,ghc-conduit) + ("ghc-monad-logger" ,ghc-monad-logger) + ("ghc-persistent" ,ghc-persistent) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-tagged" ,ghc-tagged) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-persistent-sqlite" ,ghc-persistent-sqlite) + ("ghc-persistent-template" ,ghc-persistent-template) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/bitemyapp/esqueleto") + (synopsis "Type-safe embedded domain specific language for SQL queries") + (description "This library provides a type-safe embedded domain specific +language (EDSL) for SQL queries that works with SQL backends as provided by +@code{ghc-persistent}. Its language closely resembles SQL, so you don't have +to learn new concepts, just new syntax, and it's fairly easy to predict the +generated SQL and optimize it for your backend.") + (license license:bsd-3))) + (define-public shellcheck (package (name "shellcheck") -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:04 GMT) Full text and rfc822 format available.Message #20 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 5/8] gnu: Add ghc-safesemaphore. Date: Tue, 20 Feb 2018 00:25:04 -0500
* gnu/packages/haskell.scm (ghc-safesemaphore): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2c0b66396..6860c42c3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1938,6 +1938,30 @@ case with other forms of concurrent communication, such as locks or "This package provides a library for parallel programming.") (license license:bsd-3))) +(define-public ghc-safesemaphore + (package + (name "ghc-safesemaphore") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "SafeSemaphore/SafeSemaphore-" version ".tar.gz")) + (sha256 + (base32 + "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91")))) + (build-system haskell-build-system) + (inputs + `(("ghc-stm" ,ghc-stm))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore") + (synopsis "Exception safe semaphores") + (description "This library provides exception safe semaphores that can be +used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which +are not exception safe and can be broken by @code{killThread}.") + (license license:bsd-3))) + (define-public ghc-text (package (name "ghc-text") -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:04 GMT) Full text and rfc822 format available.Message #23 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 6/8] gnu: ghc-psqueues: Allow building with newer versions of QuickCheck. Date: Tue, 20 Feb 2018 02:56:58 -0500
* gnu/packages/haskell.scm (ghc-psqueues)[arguments]: Add configure flag to allow newer versions of QuickCheck. --- gnu/packages/haskell.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6860c42c3..962e63dfa 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -7971,6 +7971,8 @@ bytestrings and their hexademical representation.") (base32 "0n39s1i88j6s7vvsdhpbhcr3gpbwlzabwcc3nbd7nqb4kb4i0sls")))) (build-system haskell-build-system) + (arguments + `(#:configure-flags (list "--allow-newer=QuickCheck"))) (inputs `(("ghc-hashable" ,ghc-hashable))) (native-inputs -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:05 GMT) Full text and rfc822 format available.Message #26 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 7/8] gnu: Add ghc-disk-free-space. Date: Tue, 20 Feb 2018 23:13:57 -0500
* gnu/packages/haskell.scm (ghc-disk-free-space): New variable. --- gnu/packages/haskell.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 962e63dfa..3cbb33fa1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9655,4 +9655,24 @@ serialization code.") (home-page "https://hackage.haskell.org/package/bytes") (license license:bsd-3))) +(define-public ghc-disk-free-space + (package + (name "ghc-disk-free-space") + (version "0.1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "disk-free-space/disk-free-space-" + version ".tar.gz")) + (sha256 + (base32 + "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi")))) + (build-system haskell-build-system) + (home-page "https://github.com/redneb/disk-free-space") + (synopsis "Retrieve information about disk space usage") + (description "A cross-platform library for retrieving information about +disk space usage.") + (license license:bsd-3))) + ;;; haskell.scm ends here -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Thu, 24 May 2018 19:27:05 GMT) Full text and rfc822 format available.Message #29 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Subject: [PATCH 8/8] gnu: Add git-annex. Date: Tue, 20 Feb 2018 23:15:47 -0500
* 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+)))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 04:09:01 GMT) Full text and rfc822 format available.Message #32 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Lemmer Webber <cwebber <at> dustycloud.org> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: Re: [bug#31582] [PATCH 1/8] gnu: Add ghc-bloomfilter. Date: Mon, 28 May 2018 23:08:01 -0500
LGTM. Timothy Sample writes: > * gnu/package/haskell.scm (ghc-bloomfilter): New variable. > --- > gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm > index c8fade065..ccb3adf15 100644 > --- a/gnu/packages/haskell.scm > +++ b/gnu/packages/haskell.scm > @@ -3573,6 +3573,31 @@ vector types are supported. Specific instances are provided for unboxed, > boxed and storable vectors.") > (license license:bsd-3))) > > +(define-public ghc-bloomfilter > + (package > + (name "ghc-bloomfilter") > + (version "2.0.1.0") > + (source > + (origin > + (method url-fetch) > + (uri (string-append "https://hackage.haskell.org/package/" > + "bloomfilter/bloomfilter-" version ".tar.gz")) > + (sha256 > + (base32 > + "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc")))) > + (build-system haskell-build-system) > + (native-inputs > + `(("ghc-quickcheck" ,ghc-quickcheck) > + ("ghc-random" ,ghc-random) > + ("ghc-test-framework" ,ghc-test-framework) > + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) > + (home-page "https://github.com/bos/bloomfilter") > + (synopsis "Pure and impure Bloom filter implementations") > + (description "This package provides both mutable and immutable Bloom > +filter data types, along with a family of hash functions and an easy-to-use > +interface.") > + (license license:bsd-3))) > + > (define-public ghc-network > (package > (name "ghc-network")
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 04:12:02 GMT) Full text and rfc822 format available.Message #35 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Lemmer Webber <cwebber <at> dustycloud.org> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: Re: [bug#31582] [PATCH 0/8] git-annex Date: Mon, 28 May 2018 23:11:57 -0500
Timothy Sample writes: > Hello! > > This patch series adds a package for “git-annex”. The package is not > quite perfect, but I think it is far enough along to be included. > > One of the issues is that it only builds a very minimal version, > disabling most of the optional features (the most important being the > Web app). One reason for this is that we are missing quite a few of > these features’ dependencies. Another reason is that I’m not really > familiar with them, so I wouldn’t know how to test them ;). > > The other issue is that I needed to rework the build a fair bit, and I > did it in a bit of a shoddy way. The way that the Haskell build system > sets up the environment means that the “Setup.hs” does not run properly. > It passes the Haskell package DB as a parameter to Cabal, but this > doesn’t affect the code that initializes Cabal. On the other hand, > Cabal disallows the package DB to be passed in by environment variables. > It might be possible to pass it in as a parameter to “runhaskell”, but > I’m not sure. Following that path would require copying large chunks of > the build system into the package, which seems like a poor choice! (As > far as I can tell, this is the first package with this problem. If it > were more common, I would suggest an update to the build system itself.) > In the end, I decided to cheat a little, and factor out the different > parts so that they can be run separately. This means that the ‘man’ > pages do not get installed :/. Maybe that could be fixed later, though. > > > -- Tim I was going to respond to "LGTM" on all the patches, but they all look good to me. The concerns you raised in this post seem like things we should address, but which need not block getting an initial version of git-annex into Guix. I'm building it now, will report back when I get a chance to test it.
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 04:14:02 GMT) Full text and rfc822 format available.Message #38 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Lemmer Webber <cwebber <at> dustycloud.org> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: Re: [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+))))
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 13:46:01 GMT) Full text and rfc822 format available.Message #41 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Lemmer Webber <cwebber <at> dustycloud.org> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: Re: [bug#31582] [PATCH 8/8] gnu: Add git-annex. Date: Tue, 29 May 2018 08:45:20 -0500
I tested this morning. It seems to work well. My one comment before I push this is a minor one... should this go in backup.scm or should it be in version-control.scm? Not everyone is using it in ways I would consider to be "backups" any more than other VCS things are... I'm not. Christopher Lemmer Webber writes: > 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+))))
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 14:56:02 GMT) Full text and rfc822 format available.Message #44 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: Christopher Lemmer Webber <cwebber <at> dustycloud.org> Cc: 31582 <at> debbugs.gnu.org Subject: Re: [bug#31582] [PATCH 8/8] gnu: Add git-annex. Date: Tue, 29 May 2018 10:55:47 -0400
Christopher Lemmer Webber <cwebber <at> dustycloud.org> writes: > I tested this morning. It seems to work well. Thanks for the review and doing the tests! > My one comment before I push this is a minor one... should this go in > backup.scm or should it be in version-control.scm? Not everyone is > using it in ways I would consider to be "backups" any more than other > VCS things are... I'm not. I hesitated quite a bit here. I agree that “version-control.scm” is the right place. The website specifically says “git-annex is not a backup system”. I must have been suffering from categorizing-fatigue when I made that choice :). > Christopher Lemmer Webber writes: > >> 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. Whoops! Sorry. I will update the patches in a few hours unless you have your finger on the button and do it first. Thanks again!
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 18:29:02 GMT) Full text and rfc822 format available.Message #47 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Cc: Christopher Lemmer Webber <cwebber <at> dustycloud.org> Subject: [PATCH v2 1/8] gnu: Add ghc-bloomfilter. Date: Mon, 19 Feb 2018 12:58:48 -0500
* gnu/package/haskell.scm (ghc-bloomfilter): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c8fade065..ece879778 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2017 rsiddharth <s <at> ricketyspace.net> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me <at> tobias.gr> ;;; Copyright © 2018 Tonton <tonton <at> riseup.net> +;;; Copyright © 2018 Timothy Sample <samplet <at> ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3573,6 +3574,31 @@ vector types are supported. Specific instances are provided for unboxed, boxed and storable vectors.") (license license:bsd-3))) +(define-public ghc-bloomfilter + (package + (name "ghc-bloomfilter") + (version "2.0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "bloomfilter/bloomfilter-" version ".tar.gz")) + (sha256 + (base32 + "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://github.com/bos/bloomfilter") + (synopsis "Pure and impure Bloom filter implementations") + (description "This package provides both mutable and immutable Bloom +filter data types, along with a family of hash functions and an easy-to-use +interface.") + (license license:bsd-3))) + (define-public ghc-network (package (name "ghc-network") -- 2.17.0
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Tue, 29 May 2018 18:29:02 GMT) Full text and rfc822 format available.Message #50 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 31582 <at> debbugs.gnu.org Cc: Christopher Lemmer Webber <cwebber <at> dustycloud.org> Subject: [PATCH v2 8/8] gnu: Add git-annex. Date: Tue, 29 May 2018 12:07:54 -0400
* gnu/packages/version-control.scm (git-annex): New variable. --- gnu/packages/version-control.scm | 129 +++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 603e8a46d..90e1875b9 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2017 Oleg Pykhalov <go.wigust <at> gmail.com> ;;; Copyright © 2018 Sou Bunnbu <iyzsong <at> member.fsf.org> ;;; Copyright © 2018 Christopher Baines <mail <at> cbaines.net> +;;; Copyright © 2018 Timothy Sample <samplet <at> ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,6 +85,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages readline) + #:use-module (gnu packages rsync) #:use-module (gnu packages databases) #:use-module (gnu packages admin) #:use-module (gnu packages xml) @@ -1995,3 +1997,130 @@ venerable RCS, hence the anagrammatic acronym. The design is tuned for use cases like all those little scripts in your @file{~/bin} directory, or a directory full of HOWTOs.") (license license:bsd-2))) + +(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+)))) -- 2.17.0
ludo <at> gnu.org (Ludovic Courtès)
:Timothy Sample <samplet <at> ngyro.com>
:Message #55 received at 31582-done <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582-done <at> debbugs.gnu.org, Christopher Lemmer Webber <cwebber <at> dustycloud.org> Subject: Re: [bug#31582] [PATCH v2 8/8] gnu: Add git-annex. Date: Fri, 01 Jun 2018 10:36:48 +0200
Hello Timothy & Chris, Since Chris said it’s OK and it builds fine for me, I went ahead and committed the whole series. Thank you! Ludo’.
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Fri, 01 Jun 2018 18:13:01 GMT) Full text and rfc822 format available.Message #58 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Joey Hess <id <at> joeyh.name> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: git-annex make install Date: Fri, 1 Jun 2018 13:26:42 -0400
[Message part 1 (text/plain, inline)]
Thanks for your work on this package, I'm excited to see it. You could avoid most of the problems with Setup.hs by using git-annex's Makefile. That has targets to build the man pages and install everything. The equivilant code in Setup.hs is really only there to minimally support people installing with haskell tooling, but the Makefile is generally preferable for distribution use. Also, I'd encourage you to enable S3 and WebDAV in the build, since those are often used, and you're not testing all the other storage backends that are already supported in your build; nor should you need to. `git-annex testremote` is there so users can test this stuff in their own environments. -- see shy jo
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Fri, 01 Jun 2018 20:13:02 GMT) Full text and rfc822 format available.Message #61 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: Joey Hess <id <at> joeyh.name> Cc: 31582 <at> debbugs.gnu.org Subject: Re: git-annex make install Date: Fri, 01 Jun 2018 16:12:28 -0400
Joey Hess <id <at> joeyh.name> writes: > Thanks for your work on this package, I'm excited to see it. My pleasure! Thanks for creating git-annex :). > You could avoid most of the problems with Setup.hs by using git-annex's > Makefile. That has targets to build the man pages and install > everything. The equivilant code in Setup.hs is really only there to > minimally support people installing with haskell tooling, but the > Makefile is generally preferable for distribution use. This is really useful. I probably should have looked at the Debian package a little more closely. I got the impression that Hackage was the main source for git-annex, and went straight from there to Cabal. > Also, I'd encourage you to enable S3 and WebDAV in the build, since > those are often used, and you're not testing all the other storage > backends that are already supported in your build; nor should you need > to. `git-annex testremote` is there so users can test this stuff in > their own environments. Thanks for the recommendation. Both WebDAV and S3 should be easy enough to add to the package. The web client and the Android stuff probably not so much. Thanks a million for your help here. I will put together some patches soon to fix the manuals using the Makefile, and I will add S3 and WebDAV.
guix-patches <at> gnu.org
:bug#31582
; Package guix-patches
.
(Fri, 01 Jun 2018 21:01:02 GMT) Full text and rfc822 format available.Message #64 received at 31582 <at> debbugs.gnu.org (full text, mbox):
From: Joey Hess <id <at> joeyh.name> To: Timothy Sample <samplet <at> ngyro.com> Cc: 31582 <at> debbugs.gnu.org Subject: Re: git-annex make install Date: Fri, 1 Jun 2018 17:00:04 -0400
[Message part 1 (text/plain, inline)]
Timothy Sample wrote: > This is really useful. I probably should have looked at the Debian > package a little more closely. I got the impression that Hackage was > the main source for git-annex, and went straight from there to Cabal. Indeed Hackage is not the main source, and due to clumsiness of cabal, the git-annex.tar.gz stored on Hackage doesn't include all the files from the upstream source; only the ones needed for cabal to build it. So for the Makefile etc you'll need to get the source from git or use a git archive. -- see shy jo
[signature.asc (application/pgp-signature, inline)]
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 30 Jun 2018 11:24:06 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.