Doing a simple version bump to the latest git-annex version runs into a build failure. This turns out to be in code that's only active when the torrent library isn't available, which explains why it wasn't noticed before release. (This is fixed upstream in 9e09dcb2c.) Patch 1-2 make the torrent library available to sidestep that failure, and I think it's a good change in general given that it's the newer and preferred code path. [1/4] gnu: Add ghc-bencode. [2/4] gnu: Add ghc-torrent. [3/4] gnu: ghc-filepath-bytestring: Update to 1.4.2.1.6. [4/4] gnu: git-annex: Update to 8.20201116. gnu/packages/haskell-apps.scm | 5 ++-- gnu/packages/haskell-xyz.scm | 52 +++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 4 deletions(-) base-commit: 14641312a90e036b0be2d57b3a358578fc46540a -- 2.29.2.454.gaff20da3a2
* gnu/packages/haskell-xyz.scm (ghc-bencode): New variable. --- gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 19eabd949b..19ba4e1c41 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -997,6 +997,32 @@ (e.g., ByteString and Vector). At the same time, there are lots of other wishing to create a new prelude should use CorePrelude.") (license license:expat))) +(define-public ghc-bencode + (package + (name "ghc-bencode") + (version "0.6.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/bencode/bencode-" + version ".tar.gz")) + (sha256 + (base32 "0znv0y3b3zm5jvhlvj5f5s7y93db67j9yd59w1bnrw2pqv30gqaq")))) + (build-system haskell-build-system) + (inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://hackage.haskell.org/package/bencode") + (synopsis "Parsers and printers for bencoded data") + (description + "This library provides parsers and printers for bencoded data. Bencode +is the encoding used by the peer-to-peer file sharing system BitTorrent for +storing and transmitting loosely structured data.") + (license license:bsd-3))) + (define-public ghc-bifunctors (package (name "ghc-bifunctors") -- 2.29.2.454.gaff20da3a2
* gnu/packages/haskell-xyz.scm (ghc-torrent): New variable. --- gnu/packages/haskell-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 19ba4e1c41..416db4398f 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -13823,6 +13823,28 @@ (define-public ghc-tldr man pages with practical examples.") (license license:bsd-3))) +(define-public ghc-torrent + (package + (name "ghc-torrent") + (version "10000.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/torrent/torrent-" + version ".tar.gz")) + (sha256 + (base32 "0m7s0q7f8c7glxzqhf2j86ch5xhk6jnzwwsa4mkywag22119c290")))) + (build-system haskell-build-system) + (inputs + `(("ghc-bencode" ,ghc-bencode) + ("ghc-syb" ,ghc-syb))) + (home-page "https://hackage.haskell.org/package/torrent") + (synopsis "BitTorrent file parser and generator") + (description "This library provides support for parsing and generating +BitTorrent files.") + (license license:bsd-3))) + (define-public ghc-transformers (package (name "ghc-transformers") -- 2.29.2.454.gaff20da3a2
The minimum version of ghc-filepath-bytestring is now 1.4.2.1.4 in the latest release of git-annex, the only Guix package that has this library as an input. * gnu/packages/haskell-xyz.scm (ghc-filepath-bytestring): Update to 1.4.2.1.6. --- gnu/packages/haskell-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 416db4398f..c7bb2cf2a7 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -4440,7 +4440,7 @@ (define-public ghc-filemanip (define-public ghc-filepath-bytestring (package (name "ghc-filepath-bytestring") - (version "1.4.2.1.1") + (version "1.4.2.1.6") (source (origin (method url-fetch) @@ -4449,7 +4449,7 @@ (define-public ghc-filepath-bytestring "filepath-bytestring-" version ".tar.gz")) (sha256 (base32 - "06shdskjj391hb9295slm9gg2rbn5fdq5v6fg0mgn3yl5dv8q5dx")))) + "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7")))) (build-system haskell-build-system) (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck))) -- 2.29.2.454.gaff20da3a2
If ghc-torrent isn't available, git-annex will fall back to custom legacy code. However, this older code path has a build failure in the 8.20201116 release, and in general it'd be better to rely on the preferred, more exercised code path. * gnu/packages/haskell-apps.scm (git-annex): Update to 8.20201116. [inputs]: Add ghc-torrent. --- gnu/packages/haskell-apps.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 1339536954..c6045279c0 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -339,14 +339,14 @@ (define-public ghcid (define-public git-annex (package (name "git-annex") - (version "8.20201103") + (version "8.20201116") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "1z9ikpsz3by48yfw87qav5dy7j4k9ky4a7nqnasl15kdm3lav9pl")))) + (base32 "0xv7n9f6l90l4k964675v0lgs22gcy97ic86mbfb40rl0fk0jalr")))) (build-system haskell-build-system) (arguments `(#:configure-flags @@ -487,6 +487,7 @@ (define-public git-annex ("ghc-split" ,ghc-split) ("ghc-stm-chans" ,ghc-stm-chans) ("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-torrent" ,ghc-torrent) ("ghc-unix-compat" ,ghc-unix-compat) ("ghc-unordered-containers" ,ghc-unordered-containers) ("ghc-utf8-string" ,ghc-utf8-string) -- 2.29.2.454.gaff20da3a2
Hello Kyle,
> Patch 1-2 make the torrent library available to sidestep that failure, and I
> think it's a good change in general given that it's the newer and preferred
> code path.
Sure sound reasonable! Pushed the whole patchset.
Thanks,
Mathieu