diff --git a/src/Distribution/Nixpkgs/Haskell/FromStack.hs b/src/Distribution/Nixpkgs/Haskell/FromStack.hs index e16859a..ad2857f 100644 --- a/src/Distribution/Nixpkgs/Haskell/FromStack.hs +++ b/src/Distribution/Nixpkgs/Haskell/FromStack.hs @@ -5,11 +5,12 @@ import Control.Lens import Data.Set.Lens import Distribution.Compiler (CompilerInfo(..)) import Distribution.System (Platform(..)) -import Distribution.Package (PackageName, PackageIdentifier(..), Dependency(..)) +import Distribution.Package (PackageName, PackageIdentifier(..), Dependency(..), packageId) import Distribution.PackageDescription import Distribution.Nixpkgs.Haskell.FromStack.Package import Distribution.Nixpkgs.Haskell.PackageSourceSpec import Distribution.Nixpkgs.Haskell.FromCabal +import Distribution.Nixpkgs.Haskell.FromCabal.Flags (configureCabalFlags) import Distribution.Nixpkgs.Haskell.Derivation import Stackage.BuildPlan import Stackage.Types (CabalFileInfo(..),PackageConstraints(..), DepInfo(..), SimpleDesc(..), TestState(..)) @@ -63,19 +64,20 @@ fromPackage conf pconf plan pkg = configureBenches | pcBenches constraints == Don'tBuild = removeBenches | otherwise = id - flags = Map.toList (pcFlagOverrides constraints) + defaultFlags = configureCabalFlags (packageId (pkgCabal pkg)) + flags = defaultFlags <> mkFlagAssignment (Map.toList $ pcFlagOverrides constraints) (descr, missingDeps) = finalizeGenericPackageDescription (haskellResolver conf) (targetPlatform conf) (targetCompiler conf) - (mkFlagAssignment flags) + flags (planDependencies plan) (configureBenches . configureTests $ pkgCabal pkg) genericDrv = fromPackageDescription (haskellResolver conf) (nixpkgsResolver conf) missingDeps - (mkFlagAssignment flags) + flags descr depName (Dependency name _) = name testDeps = setOf diff --git a/src/Distribution/Nixpkgs/Haskell/Stack.hs b/src/Distribution/Nixpkgs/Haskell/Stack.hs index 1585d7b..82dca0f 100644 --- a/src/Distribution/Nixpkgs/Haskell/Stack.hs +++ b/src/Distribution/Nixpkgs/Haskell/Stack.hs @@ -32,6 +32,7 @@ makeLenses ''StackPackagesConfig getStackPackageFromDb :: DB.HackageDB -> StackPackage -> IO Package getStackPackageFromDb hackageDb stackPackage = do PackageSourceSpec.getPackage' + False False (pure hackageDb) (stackLocationToSource (stackPackage ^. spLocation) (stackPackage ^. spDir)) diff --git a/src/LtsHaskell.hs b/src/LtsHaskell.hs index 21f2676..84d4431 100644 --- a/src/LtsHaskell.hs +++ b/src/LtsHaskell.hs @@ -46,7 +46,7 @@ getPackageFromRepo allCabalHashesPath mSha1Hash pkgId = do tarballSHA256 = fromMaybe (error (display pkgId ++ ": meta data has no SHA256 hash for the tarball")) (view (mHashes . at "SHA256") meta) - source = DerivationSource "url" ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") "" tarballSHA256 + source = DerivationSource "url" ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") "" tarballSHA256 Nothing return $ Package source False pkgDesc getPackageFromDb :: DB.HackageDB -> PackageIdentifier -> IO Package diff --git a/stack.yaml b/stack.yaml index 4ba6f65..08b88a0 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,6 +1,9 @@ -resolver: lts-12.2 +resolver: lts-12.16 extra-deps: - - yaml-0.8.31.1 + - cabal2nix-2.13 + - hpack-0.31.1 + - infer-license-0.2.0 + - yaml-0.10.0 - git: https://github.com/fpco/stackage-curator.git commit: 73c5ed06602990c33d3fec1711e27875f283b6bf - git: https://github.com/jwiegley/gitlib.git @@ -9,3 +12,6 @@ extra-deps: - gitlib - gitlib-libgit2 +nix: + enable: false # run stack with --nix to enable + packages: [ icu, openssl, zlib ] diff --git a/stackage2nix.cabal b/stackage2nix.cabal index ad6aa37..0d1d2f4 100644 --- a/stackage2nix.cabal +++ b/stackage2nix.cabal @@ -35,7 +35,7 @@ library , QuickCheck , aeson , bytestring - , cabal2nix >= 2.7.2 + , cabal2nix >= 2.11 , containers , deepseq , distribution-nixpkgs >= 1.1