diff options
Diffstat (limited to 'pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch')
-rw-r--r-- | pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch b/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch new file mode 100644 index 0000000000000..a95df00e5dbf6 --- /dev/null +++ b/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch @@ -0,0 +1,154 @@ +diff --git a/src/Data/ProtoLens/Setup.hs b/src/Data/ProtoLens/Setup.hs +index e68f32b..f381199 100644 +--- a/src/Data/ProtoLens/Setup.hs ++++ b/src/Data/ProtoLens/Setup.hs +@@ -41,9 +41,6 @@ import Distribution.PackageDescription + , exeName + , exposedModules + , extraSrcFiles +-#if !MIN_VERSION_Cabal(2,0,0) +- , hsSourceDirs +-#endif + #if MIN_VERSION_Cabal(2,4,0) + , specVersion + #endif +@@ -53,7 +50,7 @@ import Distribution.PackageDescription + , testBuildInfo + , testName + ) +-import qualified Distribution.Simple.BuildPaths as BuildPaths ++import Distribution.Simple.BuildPaths (autogenComponentModulesDir) + import Distribution.Simple.InstallDirs (datadir) + import Distribution.Simple.LocalBuildInfo + ( LocalBuildInfo(..) +@@ -61,9 +58,10 @@ import Distribution.Simple.LocalBuildInfo + , ComponentName(..) + , ComponentLocalBuildInfo + , componentPackageDeps +-#if MIN_VERSION_Cabal(2,0,0) + , allComponentsInBuildOrder + , componentNameMap ++#if MIN_VERSION_Cabal(3,0,0) ++ , LibraryName(..) + #endif + ) + import qualified Distribution.Simple.PackageIndex as PackageIndex +@@ -205,16 +203,6 @@ generatingSpecificProtos root getProtos hooks = hooks + { buildHook = \p l h f -> generate l >> buildHook hooks p l h f + , haddockHook = \p l h f -> generate l >> haddockHook hooks p l h f + , replHook = \p l h f args -> generate l >> replHook hooks p l h f args +-#if !MIN_VERSION_Cabal(2,0,0) +- -- Older versions of Cabal don't support the autogen-modules field. +- -- Work around it by manually generating the modules and putting them +- -- in a place where `cabal sdist` will pick them up. +- , sDistHook = \p maybe_l h f -> case maybe_l of +- Nothing -> error "Can't run protoc; run 'cabal configure' first." +- Just l -> do +- generate l +- sDistHook hooks (fudgePackageDesc l p) maybe_l h f +-#endif + , postCopy = \a flags pkg lbi -> do + let verb = fromFlag $ copyVerbosity flags + let destDir = datadir (absoluteInstallDirs pkg lbi +@@ -316,39 +304,6 @@ copyProtosToDataDir verb root destDir files = do + protoLensImportsPrefix :: FilePath + protoLensImportsPrefix = "proto-lens-imports" + +-#if !MIN_VERSION_Cabal(2,0,0) +--- | Add the autogen directory to the hs-source-dirs of all the targets in the +--- .cabal file. Used to fool 'sdist' by pointing it to the generated source +--- files. +-fudgePackageDesc :: LocalBuildInfo -> PackageDescription -> PackageDescription +-fudgePackageDesc lbi p = p +- { library = +- (\lib -> lib { libBuildInfo = fudgeBuildInfo CLibName $ libBuildInfo lib }) +- <$> library p +- , executables = +- (\exe -> exe { buildInfo = fudgeBuildInfo (CExeName $ exeName exe) +- $ buildInfo exe }) +- <$> executables p +- , testSuites = +- (\test -> test { testBuildInfo = fudgeBuildInfo (CTestName $ testName test) +- $ testBuildInfo test }) +- <$> testSuites p +- , benchmarks = +- (\bench -> bench { benchmarkBuildInfo = +- fudgeBuildInfo (CBenchName $ benchmarkName bench) +- $ benchmarkBuildInfo bench }) +- <$> benchmarks p +- } +- where +- comps = allComponents lbi +- fudgeBuildInfo n bi +- | Just compLBI <- Map.lookup n comps +- = bi { hsSourceDirs = autogenComponentModulesDir lbi compLBI +- : hsSourceDirs bi } +- | otherwise = bi -- Could happen if a component isn't active; try +- -- anyway and see whether Cabal complains later on. +-#endif +- + -- | Returns whether the @root@ is a parent folder of @f@. + isSubdirectoryOf :: FilePath -> FilePath -> Bool + isSubdirectoryOf root f +@@ -423,15 +378,18 @@ collectActiveModules + collectActiveModules l = map (\(n, c) -> (c, f n)) $ Map.toList $ allComponents l + where + p = localPkgDescr l +- f CLibName = maybeToList (library p) >>= ++#if MIN_VERSION_Cabal(3,0,0) ++ f (CLibName LMainLibName) ++#else ++ f CLibName ++#endif ++ = maybeToList (library p) >>= + \lib -> exposedModules lib + ++ otherModules (libBuildInfo lib) + f (CExeName n) = otherModules . buildInfo $ exes Map.! n + f (CTestName n) = otherModules . testBuildInfo $ tests Map.! n + f (CBenchName n) = otherModules . benchmarkBuildInfo $ benchs Map.! n +-#if MIN_VERSION_Cabal(2,0,0) + f _ = [] -- TODO: other lib kinds; for now just suppress the warning +-#endif + exes = Map.fromList [(exeName e, e) | e <- executables p] + tests = Map.fromList [(testName e, e) | e <- testSuites p] + benchs = Map.fromList [(benchmarkName e, e) | e <- benchmarks p] +@@ -441,22 +399,14 @@ collectActiveModules l = map (\(n, c) -> (c, f n)) $ Map.toList $ allComponents + + -- | List all the packages that this one depends on. + collectDeps :: LocalBuildInfo -> [InstalledPackageInfo.InstalledPackageInfo] +-#if MIN_VERSION_Cabal(2,0,0) + collectDeps l = do + c <- allComponentsInBuildOrder l + (i,_) <- componentPackageDeps c + Just p <- [PackageIndex.lookupUnitId (installedPkgs l) i] + return p +-#else +-collectDeps l = do +- (_, c ,_) <- componentsConfigs l +- (_, i) <- componentPackageDeps c +- PackageIndex.lookupSourcePackageId (installedPkgs l) i +-#endif + + -- | All the components that will be built by this Cabal command. + allComponents :: LocalBuildInfo -> Map.Map ComponentName ComponentLocalBuildInfo +-#if MIN_VERSION_Cabal(2,0,0) + allComponents l = fmap requireOne $ componentNameMap l + where + -- TODO: this doesn't support Backpack, which can have more than one +@@ -464,16 +414,3 @@ allComponents l = fmap requireOne $ componentNameMap l + requireOne [x] = x + requireOne xs = error $ "Data.ProtoLens.Setup.allComponents: expected one " + ++ "component per name, got " ++ show xs +- +-#else +-allComponents l = Map.fromList [(c, b) | (c, b, _) <- componentsConfigs l] +-#endif +- +--- | Get the component-level "autogen" directory where we're putting the +--- generated .hs files. (For Cabal-1.0, use the shared 'BuildPaths.autogenModulesDir'.) +-autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> FilePath +-#if MIN_VERSION_Cabal(2,0,0) +-autogenComponentModulesDir = BuildPaths.autogenComponentModulesDir +-#else +-autogenComponentModulesDir lbi _ = BuildPaths.autogenModulesDir lbi +-#endif |