Package: ganeti-2.15 / 2.15.2-15

0031-Cabal-2.2-compatibility.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
From: Apollon Oikonomopoulos <apoikos@debian.org>
Date: Thu, 1 Nov 2018 11:43:12 +0200
Subject: Cabal 2.2 compatibility

Cabal 2.0 (included in GHC 8.2) made various internal changes mandating
components to be passed in various places, Macros.generate being one of
them. In our case, it is okay to use the main library component for
dependency generation.

Additionally, in Cabal 2.2 Distribution.PackageDescription.Parse was
removed, so we switch to using .Parsec instead.
---
 cabal/CabalDependenciesMacros.hs | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/cabal/CabalDependenciesMacros.hs b/cabal/CabalDependenciesMacros.hs
index e07def7..6225a7a 100644
--- a/cabal/CabalDependenciesMacros.hs
+++ b/cabal/CabalDependenciesMacros.hs
@@ -6,9 +6,11 @@ import qualified Distribution.Simple.Build.Macros as Macros
 import Distribution.Simple.Configure (maybeGetPersistBuildConfig)
 import Distribution.Simple.LocalBuildInfo (externalPackageDeps)
 import Distribution.PackageDescription (packageDescription)
-import Distribution.PackageDescription.Parse (readPackageDescription)
+import Distribution.PackageDescription.Parsec (readGenericPackageDescription)
 import Distribution.Text (display)
 import Distribution.Verbosity (normal)
+import qualified Distribution.Types.LocalBuildInfo as LocalBuildInfo
+import qualified Distribution.Compat.Graph as Graph
 import System.Environment (getArgs)
 
 
@@ -22,7 +24,7 @@ main = do
       _         -> error "Expected 3 arguments: cabalPath depsPath macrosPath"
 
   -- Read the cabal file.
-  pkgDesc <- packageDescription <$> readPackageDescription normal cabalPath
+  pkgDesc <- packageDescription <$> readGenericPackageDescription normal cabalPath
 
   -- Read the setup-config.
   m'conf <- maybeGetPersistBuildConfig "dist"
@@ -35,4 +37,9 @@ main = do
       writeFile depsPath (unwords $ map ("-package-id " ++) deps)
 
       -- Write package MIN_VERSION_* macros.
-      writeFile macrosPath $ Macros.generate pkgDesc conf
+      let cid = LocalBuildInfo.localUnitId conf
+      let clbi' = Graph.lookup cid $ LocalBuildInfo.componentGraph conf
+      case clbi' of
+        Nothing -> error "Unable to read componentLocalBuildInfo for the library"
+        Just clbi -> do
+          writeFile macrosPath $ Macros.generate pkgDesc conf clbi