Files
for-gentoo/dev-haskell/hdbc-postgresql/files/hdbc-postgresql-new-Cabal.patch
T

47 lines
1.4 KiB
Diff

From e9b2fbab07b8f55ae6a9e120ab0b98c433842a8b Mon Sep 17 00:00:00 2001
From: Gracjan Polak <gracjan@scrive.com>
Date: Wed, 11 Sep 2013 13:29:22 +0300
Subject: [PATCH] Add a hack to support both Cabal-1.16 and Cabal-1.18 Setup.hs
script (fixed number of arguments for programFindLocation)
---
Setup.hs | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/Setup.hs b/Setup.hs
index 76d7605..7cbd484 100755
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,4 +1,5 @@
#!/usr/bin/env runhaskell
+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}
import Distribution.Simple
import Distribution.PackageDescription
@@ -26,8 +27,21 @@ main = defaultMainWithHooks simpleUserHooks {
}
}
+-- 'ConstOrId' is a @Cabal-1.16@ vs @Cabal-1.18@ compatibility hack,
+-- 'programFindLocation' has a new (unused in this case)
+-- parameter. 'ConstOrId' adds this parameter when types say it is
+-- mandatory.
+class ConstOrId a b where
+ constOrId :: a -> b
+
+instance ConstOrId a a where
+ constOrId = id
+
+instance ConstOrId a (b -> a) where
+ constOrId = const
+
pgconfigProgram = (simpleProgram "pgconfig or pg_config") {
- programFindLocation = \verbosity -> do
+ programFindLocation = \verbosity -> constOrId $ do
pgconfig <- findProgramLocation verbosity "pgconfig"
pg_config <- findProgramLocation verbosity "pg_config"
return (pgconfig `mplus` pg_config)
--
1.8.4