cabal2nix 2.4.1 → 2.5
raw patch · 4 files changed
+27/−23 lines, 4 filesdep ~hackage-dbPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hackage-db
API changes (from Hackage documentation)
+ Distribution.Nixpkgs.Haskell.FromCabal: finalizeGenericPackageDescription :: HaskellResolver -> Platform -> CompilerInfo -> FlagAssignment -> [Constraint] -> GenericPackageDescription -> (PackageDescription, [Dependency])
Files
- cabal2nix.cabal +1/−1
- src/Distribution/Nixpkgs/Haskell/FromCabal.hs +24/−21
- src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs +1/−0
- src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs +1/−1
cabal2nix.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: cabal2nix-version: 2.4.1+version: 2.5 synopsis: Convert Cabal files into Nix build instructions. description: Convert Cabal files into Nix build instructions. Users of Nix can install the latest version by running: .
src/Distribution/Nixpkgs/Haskell/FromCabal.hs view
@@ -3,9 +3,8 @@ module Distribution.Nixpkgs.Haskell.FromCabal ( HaskellResolver, NixpkgsResolver- , fromGenericPackageDescription , fromPackageDescription- )- where+ , fromGenericPackageDescription , finalizeGenericPackageDescription , fromPackageDescription+ ) where import Control.Lens import Data.Maybe@@ -35,30 +34,34 @@ type HaskellResolver = Dependency -> Bool type NixpkgsResolver = Identifier -> Maybe Binding -fromGenericPackageDescription :: HaskellResolver -> NixpkgsResolver -> Platform -> CompilerInfo -> FlagAssignment -> [Constraint] -> GenericPackageDescription -> Derivation+fromGenericPackageDescription :: HaskellResolver -> NixpkgsResolver -> Platform -> CompilerInfo -> FlagAssignment -> [Constraint] -> GenericPackageDescription -> Derivation fromGenericPackageDescription haskellResolver nixpkgsResolver arch compiler flags constraints genDesc = fromPackageDescription haskellResolver nixpkgsResolver missingDeps flags descr where- -- We have to call the Cabal finalizer several times with different resolver- -- functions, and this convenience function makes our code shorter.- finalize :: HaskellResolver -> Either [Dependency] (PackageDescription,FlagAssignment)- finalize resolver = finalizePD flags requestedComponents resolver arch compiler constraints genDesc+ (descr, missingDeps) = finalizeGenericPackageDescription haskellResolver arch compiler flags constraints genDesc - requestedComponents :: ComponentRequestedSpec- requestedComponents = defaultComponentRequestedSpec- { testsRequested = True- , benchmarksRequested = True- }+finalizeGenericPackageDescription :: HaskellResolver -> Platform -> CompilerInfo -> FlagAssignment -> [Constraint] -> GenericPackageDescription -> (PackageDescription, [Dependency])+finalizeGenericPackageDescription haskellResolver arch compiler flags constraints genDesc =+ let+ -- We have to call the Cabal finalizer several times with different resolver+ -- functions, and this convenience function makes our code shorter.+ finalize :: HaskellResolver -> Either [Dependency] (PackageDescription,FlagAssignment)+ finalize resolver = finalizePD flags requestedComponents resolver arch compiler constraints genDesc - descr :: PackageDescription; missingDeps :: [Dependency]- (descr,missingDeps) = case finalize jailbrokenResolver of- Left m -> case finalize (const True) of- Left _ -> error ("Cabal cannot finalize " ++ display (packageId genDesc))- Right (d,_) -> (d,m)- Right (d,_) -> (d,[])+ requestedComponents :: ComponentRequestedSpec+ requestedComponents = defaultComponentRequestedSpec+ { testsRequested = True+ , benchmarksRequested = True+ } - jailbrokenResolver :: HaskellResolver- jailbrokenResolver (Dependency pkg _) = haskellResolver (Dependency pkg anyVersion)+ jailbrokenResolver :: HaskellResolver+ jailbrokenResolver (Dependency pkg _) = haskellResolver (Dependency pkg anyVersion)++ in case finalize jailbrokenResolver of+ Left m -> case finalize (const True) of+ Left _ -> error ("Cabal cannot finalize " ++ display (packageId genDesc))+ Right (d,_) -> (d,m)+ Right (d,_) -> (d,[]) fromPackageDescription :: HaskellResolver -> NixpkgsResolver -> [Dependency] -> FlagAssignment -> PackageDescription -> Derivation fromPackageDescription haskellResolver nixpkgsResolver missingDeps flags (PackageDescription {..}) = normalize $ postProcess $ nullDerivation
src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs view
@@ -84,6 +84,7 @@ libNixName "jpeg" = return "libjpeg" libNixName "jvm" = return "jdk" libNixName "lapack" = return "liblapack"+libNixName "lber" = return "openldap" libNixName "ldap" = return "openldap" libNixName "libavutil" = return "ffmpeg" libNixName "libgsasl" = return "gsasl"
src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs view
@@ -87,7 +87,7 @@ , ("jsaddle", set (dependencies . haskell . contains (bind "self.ghcjs-base")) False) , ("js-jquery", set doCheck False) -- attempts to access the network , ("libconfig", over (libraryDepends . system) (replace "config = null" (pkg "libconfig")))- , ("liquid-fixpoint", set (executableDepends . system . contains (pkg "ocaml")) True . set (testDepends . system . contains (pkg "z3")) True)+ , ("liquid-fixpoint", set (executableDepends . system . contains (pkg "ocaml")) True . set (testDepends . system . contains (pkg "z3")) True . set (testDepends . system . contains (pkg "nettools")) True) , ("liquidhaskell", set (testDepends . system . contains (pkg "z3")) True) , ("lzma-clib", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Windows)) . set (libraryDepends . haskell . contains (bind "self.only-buildable-on-windows")) False) , ("MFlow < 4.6", set (libraryDepends . tool . contains (bind "self.cpphs")) True)