From 082d9383d1475b772f104f1a6b363e4c80d91cf9 Mon Sep 17 00:00:00 2001 From: Timothy Sample Date: Wed, 29 Aug 2018 00:06:20 -0400 Subject: gnu: ghc-haddock-library: Update to 1.5.0.1. * gnu/packages/patches/ghc-haddock-library-unbundle.patch: New file. * gnu/packages/haskell.scm (ghc-haddock-library): Update to 1.5.0.1. [source]: Add the patch; add a snippet to remove the bundled library. [arguments]: Add a phase to relax test suite dependency constraints and another to add a missing directory required for tests. [native-inputs]: Add ghc-base-compat, ghc-optparse-applicative, and ghc-tree-diff. --- gnu/packages/haskell.scm | 35 +++++++-- .../patches/ghc-haddock-library-unbundle.patch | 86 ++++++++++++++++++++++ 2 files changed, 115 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/patches/ghc-haddock-library-unbundle.patch (limited to 'gnu') diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5f9c2a4b6e..0e061a6b40 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -935,7 +935,7 @@ compute the difference between arbitrary abstract datatypes (ADTs) using (define-public ghc-haddock-library (package (name "ghc-haddock-library") - (version "1.4.3") + (version "1.5.0.1") (source (origin (method url-fetch) @@ -945,14 +945,37 @@ compute the difference between arbitrary abstract datatypes (ADTs) using ".tar.gz")) (sha256 (base32 - "0ns4bpf6whmcfl0cm2gx2c73if416x4q3ac4l4qm8w84h0zpcr7p")))) + "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z")) + (patches (search-patches + "ghc-haddock-library-unbundle.patch")) + (modules '((guix build utils))) + (snippet '(begin + (delete-file-recursively "vendor") + #t)))) (build-system haskell-build-system) - (inputs - `(("ghc-base-compat" ,ghc-base-compat))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'relax-test-suite-dependencies + (lambda _ + (substitute* "haddock-library.cabal" + (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat") + (("hspec\\s*\\^>= 2\\.4\\.4") "hspec")))) + ;; The release tarball does not contain the "fixtures/examples" + ;; directory, which is required for testing. In the upstream + ;; repository, the directory exists and is populated. Here, we + ;; create an empty directory to placate the tests. + (add-before 'check 'add-examples-directory + (lambda _ + (mkdir "fixtures/examples") + #t))))) (native-inputs - `(("hspec-discover" ,hspec-discover) + `(("ghc-base-compat" ,ghc-base-compat) ("ghc-hspec" ,ghc-hspec) - ("ghc-quickcheck" ,ghc-quickcheck))) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tree-diff" ,ghc-tree-diff) + ("hspec-discover" ,hspec-discover))) (home-page "https://www.haskell.org/haddock/") (synopsis "Library exposing some functionality of Haddock") (description diff --git a/gnu/packages/patches/ghc-haddock-library-unbundle.patch b/gnu/packages/patches/ghc-haddock-library-unbundle.patch new file mode 100644 index 0000000000..0e8b548956 --- /dev/null +++ b/gnu/packages/patches/ghc-haddock-library-unbundle.patch @@ -0,0 +1,86 @@ +This patch (inspired by Debian) allows ghc-haddock-library to use our +ghc-attoparsec package instead of using a bundled version. + +--- a/haddock-library.cabal 2018-09-01 01:22:18.676855884 -0400 ++++ b/haddock-library.cabal 2018-09-01 01:25:10.501150260 -0400 +@@ -10,7 +10,6 @@ + itself, see the ‘haddock’ package. + license: BSD3 + license-files: LICENSE +- vendor/attoparsec-0.13.1.0/LICENSE + maintainer: Alex Biehl , Simon Hengel , Mateusz Kowalczyk + homepage: http://www.haskell.org/haddock/ + bug-reports: https://github.com/haskell/haddock/issues +@@ -28,7 +27,6 @@ + , containers >= 0.4.2.1 && < 0.6 + , transformers >= 0.3.0 && < 0.6 + +- -- internal sub-lib + build-depends: attoparsec + + hs-source-dirs: src +@@ -49,42 +47,6 @@ + if impl(ghc >= 8.0) + ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances + +-library attoparsec +- default-language: Haskell2010 +- +- build-depends: +- base >= 4.5 && < 4.12 +- , bytestring >= 0.9.2.1 && < 0.11 +- , deepseq >= 1.3 && < 1.5 +- +- hs-source-dirs: vendor/attoparsec-0.13.1.0 +- +- -- NB: haddock-library needs only small part of lib:attoparsec +- -- internally, so we only bundle that subset here +- exposed-modules: +- Data.Attoparsec.ByteString +- Data.Attoparsec.ByteString.Char8 +- Data.Attoparsec.Combinator +- +- other-modules: +- Data.Attoparsec +- Data.Attoparsec.ByteString.Buffer +- Data.Attoparsec.ByteString.FastSet +- Data.Attoparsec.ByteString.Internal +- Data.Attoparsec.Internal +- Data.Attoparsec.Internal.Fhthagn +- Data.Attoparsec.Internal.Types +- Data.Attoparsec.Number +- +- ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2 +- +- ghc-options: -Wall +- if impl(ghc >= 8.0) +- ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances +- else +- build-depends: semigroups ^>= 0.18.3, fail ^>= 4.9.0.0 +- +- + test-suite spec + type: exitcode-stdio-1.0 + default-language: Haskell2010 +@@ -115,11 +77,10 @@ + , hspec ^>= 2.4.4 + , QuickCheck ^>= 2.11 + +- -- internal sub-lib + build-depends: attoparsec + + -- Versions for the dependencies below are transitively pinned by +- -- dependency on haddock-library:lib:attoparsec ++ -- dependency on attoparsec + build-depends: + base + , bytestring +@@ -146,7 +107,7 @@ + haddock-library + + -- Versions for the dependencies below are transitively pinned by +- -- dependency on haddock-library:lib:attoparsec ++ -- dependency on attoparsec + build-depends: + base + -- cgit v1.2.3