summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorTimothy Sample <samplet@ngyro.com>2018-08-29 00:06:20 -0400
committerRicardo Wurmus <rekado@elephly.net>2018-10-01 12:12:22 +0200
commit082d9383d1475b772f104f1a6b363e4c80d91cf9 (patch)
tree519c6a213c446e4d22bd64104007db64b5bfa6e4 /gnu/packages
parent3b72e7e2d4bbdf024d3e6f5a083a0bfe54b65f37 (diff)
downloadguix-082d9383d1475b772f104f1a6b363e4c80d91cf9.tar.gz
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.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/haskell.scm35
-rw-r--r--gnu/packages/patches/ghc-haddock-library-unbundle.patch86
2 files changed, 115 insertions, 6 deletions
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 <alexbiehl@gmail.com>, Simon Hengel <sol@typeful.net>, Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>
+ 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
+