summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/haskell-xyz.scm37
-rw-r--r--gnu/packages/idris.scm9
-rw-r--r--gnu/packages/patches/idris-test-no-node.patch61
4 files changed, 41 insertions, 67 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 840ef22bdb..da5fe09446 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -960,7 +960,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
-  %D%/packages/patches/idris-test-no-node.patch			\
   %D%/packages/patches/ilmbase-fix-tests.patch			\
   %D%/packages/patches/ilmbase-openexr-pkg-config.patch		\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a36451fa8c..2977398880 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -62,6 +62,7 @@
   #:use-module (guix build-system haskell)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages))
 
@@ -6070,6 +6071,24 @@ Megaparsec is a feature-rich package that strikes a nice balance between
 speed, flexibility, and quality of parse errors.")
     (license license:bsd-2)))
 
+;;; Idris 1.3.2 requires 'megaparse>=7.0.4' but we'd like to keep the public
+;;; package at the current Stackage LTS version:
+(define-public ghc-megaparsec-7
+  (hidden-package
+   (package
+     (inherit ghc-megaparsec)
+     (version "7.0.5")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://hackage.haskell.org/package/megaparsec/"
+                            "megaparsec-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0bqx1icbmk8s7wmbcdzsgnlh607c7kzg8l80cp02dxr5valjxp7j"))))
+     (arguments (strip-keyword-arguments (list #:cabal-revision)
+                                         (package-arguments ghc-megaparsec))))))
+
 (define-public ghc-memory
   (package
     (name "ghc-memory")
@@ -6740,6 +6759,24 @@ between 2 and 3 times faster than the Mersenne Twister.")
      "This package provides a low-level networking interface.")
     (license license:bsd-3)))
 
+;;; Until we update our default GHC to >=8.6 we cannot update our ghc-network
+;;; package, since the 'cabal-install' package that supports the current
+;;; 'Cabal' module requires 'network==2.6.*'.  Here we provide an updated
+;;; version to be used for our idris package.
+(define-public ghc-network-2.8
+  (hidden-package
+   (package
+     (inherit ghc-network)
+     (version "2.8.0.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://hackage.haskell.org/package/network/"
+                            "network-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0im8k51rw3ahmr23ny10pshwbz09jfg0fdpam0hzf2hgxnzmvxb1")))))))
+
 (define-public ghc-network-info
   (package
     (name "ghc-network-info")
diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 894a19f0aa..7e6ee302b0 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -38,7 +38,7 @@
 (define-public idris
   (package
     (name "idris")
-    (version "1.3.1")
+    (version "1.3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -46,8 +46,7 @@
                     "idris-" version "/idris-" version ".tar.gz"))
               (sha256
                (base32
-                "0fn9h58l592j72njwma1ia48h8h87wi2rjqfxs7j2lfmvgfv18fi"))
-              (patches (search-patches "idris-test-no-node.patch"))))
+                "0wychzkg0yghd2pp8fqz78vp1ayzks191knfpl7mhh8igsmb6bc7"))))
     (build-system haskell-build-system)
     (native-inputs                      ;For tests
      `(("perl" ,perl)
@@ -71,8 +70,8 @@
        ("ghc-fsnotify" ,ghc-fsnotify)
        ("ghc-ieee754" ,ghc-ieee754)
        ("ghc-libffi" ,ghc-libffi)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-network" ,ghc-network)
+       ("ghc-megaparsec" ,ghc-megaparsec-7)
+       ("ghc-network" ,ghc-network-2.8)
        ("ghc-optparse-applicative" ,ghc-optparse-applicative)
        ("ghc-regex-tdfa" ,ghc-regex-tdfa)
        ("ghc-safe" ,ghc-safe)
diff --git a/gnu/packages/patches/idris-test-no-node.patch b/gnu/packages/patches/idris-test-no-node.patch
deleted file mode 100644
index c04ad41a8e..0000000000
--- a/gnu/packages/patches/idris-test-no-node.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 6c52e1b902b869c25e2fe39cff6364143a04da61 Mon Sep 17 00:00:00 2001
-From: Niklas Larsson <niklas@mm.st>
-Date: Tue, 11 Dec 2018 19:56:22 +0100
-Subject: [PATCH] Only check for Node when required
-
----
- test/TestRun.hs | 34 ++++++++++++++++++++--------------
- 1 file changed, 20 insertions(+), 14 deletions(-)
-
-diff --git a/test/TestRun.hs b/test/TestRun.hs
-index c7db9fdcd..4809911f3 100644
---- a/test/TestRun.hs
-+++ b/test/TestRun.hs
-@@ -11,6 +11,7 @@ import Data.Proxy
- import Data.Typeable
- import Options.Applicative
- import System.Directory
-+import System.Environment
- import System.Exit
- import System.FilePath ((</>))
- import System.Info
-@@ -103,20 +104,25 @@ runTest path flags = do
-       normalise (x : xs) = x : normalise xs
-       normalise [] = []
- 
-+checkNode :: IO  ()
-+checkNode = do
-+    nodePath   <- findExecutable "node"
-+    nodejsPath <- findExecutable "nodejs"
-+    let node = nodePath <|> nodejsPath
-+    case node of
-+      Nothing -> do
-+        putStrLn "For running the test suite against Node, node must be installed."
-+        exitFailure
-+      Just _  -> return ()
-+
- main :: IO ()
- main = do
--  nodePath   <- findExecutable "node"
--  nodejsPath <- findExecutable "nodejs"
--  let node = nodePath <|> nodejsPath
--  case node of
--    Nothing -> do
--      putStrLn "For running the test suite against Node, node must be installed."
--      exitFailure
--    Just _  -> do
--      defaultMainWithIngredients ingredients $
-+    args <- getArgs
-+    when ("--node" `elem` args) checkNode
-+    defaultMainWithIngredients ingredients $
-         askOption $ \(NodeOpt node) ->
--          let (codegen, flags) = if node then (JS, ["--codegen", "node"])
--                                         else (C , [])
--           in
--            mkGoldenTests (testFamiliesForCodegen codegen)
--                        (flags ++ idrisFlags)
-+            let (codegen, flags) = if node then (JS, ["--codegen", "node"])
-+                                           else (C , [])
-+            in
-+                mkGoldenTests (testFamiliesForCodegen codegen) (flags ++ idrisFlags)
-+