M gnu/local.mk => gnu/local.mk +1 -0
@@ 1064,6 1064,7 @@ dist_patch_DATA = \
%D%/packages/patches/fxdiv-system-libraries.patch \
%D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.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-preserve-PYTHONPATH.patch \
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
A gnu/packages/patches/ganeti-haskell-compat.patch => gnu/packages/patches/ganeti-haskell-compat.patch +18 -0
@@ 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
M gnu/packages/virtualization.scm => gnu/packages/virtualization.scm +9 -0
@@ 524,6 524,7 @@ firmware blobs. You can
(file-name (git-file-name name version))
(patches (search-patches "ganeti-shepherd-support.patch"
"ganeti-shepherd-master-failover.patch"
+ "ganeti-haskell-compat.patch"
"ganeti-haskell-pythondir.patch"
"ganeti-disable-version-symlinks.patch"
"ganeti-preserve-PYTHONPATH.patch"))))
@@ 573,6 574,14 @@ firmware blobs. You can
,(system->qemu-target (%current-system))))
#: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
(lambda _
;; If we are building from a git checkout, we need to create a