gnu: ganeti: Adjust to GHC 8.10 / Stackage 18.10.

* gnu/packages/patches/ganeti-haskell-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/virtualization.scm (ganeti)[source](patches): Add it.
[arguments]: Add phase patch-version-constraints.
This commit is contained in:
Marius Bakke 2021-10-11 21:23:53 +02:00
parent 63162b1965
commit 0105f33a4d
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
3 changed files with 28 additions and 0 deletions

View file

@ -1064,6 +1064,7 @@ dist_patch_DATA = \
%D%/packages/patches/fxdiv-system-libraries.patch \ %D%/packages/patches/fxdiv-system-libraries.patch \
%D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \ %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \
%D%/packages/patches/ganeti-disable-version-symlinks.patch \ %D%/packages/patches/ganeti-disable-version-symlinks.patch \
%D%/packages/patches/ganeti-haskell-compat.patch \
%D%/packages/patches/ganeti-haskell-pythondir.patch \ %D%/packages/patches/ganeti-haskell-pythondir.patch \
%D%/packages/patches/ganeti-preserve-PYTHONPATH.patch \ %D%/packages/patches/ganeti-preserve-PYTHONPATH.patch \
%D%/packages/patches/ganeti-shepherd-master-failover.patch \ %D%/packages/patches/ganeti-shepherd-master-failover.patch \

View file

@ -0,0 +1,18 @@
Adjust to type change of TupE in Template Haskell 2.16.
diff --git a/src/Ganeti/THH/Types.hs b/src/Ganeti/THH/Types.hs
--- a/src/Ganeti/THH/Types.hs
+++ b/src/Ganeti/THH/Types.hs
@@ -123,4 +123,11 @@ curryN n = do
f <- newName "f"
ps <- replicateM n (newName "x")
return $ LamE (VarP f : map VarP ps)
- (AppE (VarE f) (TupE $ map VarE ps))
+ (AppE (VarE f) (nonUnaryTupE $ map VarE ps))
+ where
+ nonUnaryTupE :: [Exp] -> Exp
+ nonUnaryTupE es = TupE $
+#if MIN_VERSION_template_haskell(2,16,0)
+ map Just
+#endif
+ es

View file

@ -524,6 +524,7 @@ (define-public ganeti
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(patches (search-patches "ganeti-shepherd-support.patch" (patches (search-patches "ganeti-shepherd-support.patch"
"ganeti-shepherd-master-failover.patch" "ganeti-shepherd-master-failover.patch"
"ganeti-haskell-compat.patch"
"ganeti-haskell-pythondir.patch" "ganeti-haskell-pythondir.patch"
"ganeti-disable-version-symlinks.patch" "ganeti-disable-version-symlinks.patch"
"ganeti-preserve-PYTHONPATH.patch")))) "ganeti-preserve-PYTHONPATH.patch"))))
@ -573,6 +574,14 @@ (define-public ganeti
,(system->qemu-target (%current-system)))) ,(system->qemu-target (%current-system))))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-version-constraints
(lambda _
;; Loosen version constraints for compatibility with Stackage 18.10.
(substitute* "cabal/ganeti.template.cabal"
(("(.*base64-bytestring.*) < 1\\.1" _ match)
(string-append match " < 1.2"))
(("(.*QuickCheck.*) < 2\\.14" _ match)
(string-append match " < 2.15")))))
(add-after 'unpack 'create-vcs-version (add-after 'unpack 'create-vcs-version
(lambda _ (lambda _
;; If we are building from a git checkout, we need to create a ;; If we are building from a git checkout, we need to create a