summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/haskell-xyz.scm13
-rw-r--r--gnu/packages/patches/ghc-haddock-api-fix-haddock.patch54
3 files changed, 62 insertions, 6 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d580ff72d0..4d14c4ccad 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -879,6 +879,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
   %D%/packages/patches/ghc-diff-swap-cover-args.patch           \
   %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch	\
+  %D%/packages/patches/ghc-haddock-api-fix-haddock.patch	\
   %D%/packages/patches/ghc-hpack-fix-tests.patch		\
   %D%/packages/patches/ghc-microlens-aeson-fix-tests.patch	\
   %D%/packages/patches/ghc-monad-par-fix-tests.patch		\
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 72e9ccc495..da4e7460b4 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -4740,7 +4740,7 @@ Tor project}.")
 (define-public ghc-haddock-api
   (package
     (name "ghc-haddock-api")
-    (version "2.19.0.1")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
@@ -4748,9 +4748,10 @@ Tor project}.")
              "https://hackage.haskell.org/package/haddock-api/haddock-api-"
              version
              ".tar.gz"))
+       (patches (search-patches "ghc-haddock-api-fix-haddock.patch"))
        (sha256
         (base32
-         "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
+         "149q4zlf4m7wcrr4af2n2flh0jxjsypshbc229vsj1m0kmz4z014"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -4758,10 +4759,10 @@ Tor project}.")
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "haddock-api.cabal"
-               (("Cabal           \\^>= 2\\.0\\.0")
-                "Cabal           ^>= 2.2.0")
-               (("hspec           \\^>= 2\\.4\\.4")
-                "hspec            >= 2.4.4 && < 2.6")))))))
+               (("QuickCheck      \\^>= 2\\.11")
+                "QuickCheck      ^>= 2.13")
+               (("hspec           >= 2\\.4\\.4 && < 2\\.6")
+                "hspec           >= 2.4.4 && < 2.8")))))))
     (inputs
      `(("ghc-paths" ,ghc-paths)
        ("ghc-haddock-library" ,ghc-haddock-library)))
diff --git a/gnu/packages/patches/ghc-haddock-api-fix-haddock.patch b/gnu/packages/patches/ghc-haddock-api-fix-haddock.patch
new file mode 100644
index 0000000000..927cb5b366
--- /dev/null
+++ b/gnu/packages/patches/ghc-haddock-api-fix-haddock.patch
@@ -0,0 +1,54 @@
+This patch is taken from upstream.  It fixes documentation generation.
+The patch has been lightly adapted to apply to the release tarball, but
+the commit message was left untouched, so it refers to some changes not
+included in the patch.
+
+From 0d9a81e20238a6b72f9f5c005f1f7e9cf05f6fb9 Mon Sep 17 00:00:00 2001
+From: Alec Theriault <alec.theriault@gmail.com>
+Date: Sat, 27 Oct 2018 10:05:04 -0700
+Subject: [PATCH] Fix documentation in `haddock-api` (#957)
+
+* Fix misplaced Haddocks in Haddock itself
+
+Haddock should be able to generate documentation for 'haddock-api'
+again.
+
+* Make CI check that documentation can be built.
+
+* Add back a doc that is OK
+---
+ .travis.yml                               |  3 +++
+ haddock-api/src/Haddock/Backends/LaTeX.hs | 10 +++++-----
+ 2 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/src/Haddock/Backends/LaTeX.hs b/src/Haddock/Backends/LaTeX.hs
+index 4e0e6eba..613c6deb 100644
+--- a/src/Haddock/Backends/LaTeX.hs
++++ b/src/Haddock/Backends/LaTeX.hs
+@@ -243,8 +243,8 @@ ppDocGroup lev doc = sec lev <> braces doc
+ 
+ -- | Given a declaration, extract out the names being declared
+ declNames :: LHsDecl DocNameI
+-          -> ( LaTeX           -- ^ to print before each name in an export list
+-             , [DocName]       -- ^ names being declared
++          -> ( LaTeX           --   to print before each name in an export list
++             , [DocName]       --   names being declared
+              )
+ declNames (L _ decl) = case decl of
+   TyClD _ d  -> (empty, [tcdName d])
+@@ -444,9 +444,9 @@ ppLPatSig doc docnames ty unicode
+ -- arguments as needed.
+ ppTypeOrFunSig :: HsType DocNameI
+                -> DocForDecl DocName  -- ^ documentation
+-               -> ( LaTeX             -- ^ first-line (no-argument docs only)
+-                  , LaTeX             -- ^ first-line (argument docs only)
+-                  , LaTeX             -- ^ type prefix (argument docs only)
++               -> ( LaTeX             --   first-line (no-argument docs only)
++                  , LaTeX             --   first-line (argument docs only)
++                  , LaTeX             --   type prefix (argument docs only)
+                   )
+                -> Bool                -- ^ unicode
+                -> LaTeX
+-- 
+2.23.0
+