@@ -68,7 +68,7 @@ import GHC.Conc (getNumProcessors)
6868import Lens.Micro (lens , set )
6969import Network.HTTP.StackClient (httpJSON , parseUrlThrow , getResponseBody )
7070import Options.Applicative (Parser , strOption , long , help )
71- import Pantry ( HasPantryConfig ( .. ), withPantryConfig , defaultHackageSecurityConfig , PackageLocation )
71+ import Pantry.StaticSHA256
7272import Path
7373import Path.Extra (toFilePathNoTrailingSep )
7474import Path.Find (findInParents )
@@ -82,8 +82,6 @@ import Stack.Constants
8282import qualified Stack.Image as Image
8383import Stack.Package (parseSingleCabalFile )
8484import Stack.Snapshot
85- import Stack.Types.BuildPlan
86- import Stack.Types.Compiler
8785import Stack.Types.Config
8886import Stack.Types.Docker
8987import Stack.Types.Nix
@@ -351,7 +349,6 @@ configFromConfigMonoid
351349 configDumpLogs = fromFirst DumpWarningLogs configMonoidDumpLogs
352350 configSaveHackageCreds = fromFirst True configMonoidSaveHackageCreds
353351 configHackageBaseUrl = fromFirst " https://hackage.haskell.org/" configMonoidHackageBaseUrl
354- clIgnoreRevisionMismatch = fromFirst False configMonoidIgnoreRevisionMismatch
355352
356353 configAllowDifferentUser <-
357354 case getFirst configMonoidAllowDifferentUser of
@@ -363,13 +360,21 @@ configFromConfigMonoid
363360 configRunner' <- view runnerL
364361 let configRunner = set processContextL origEnv configRunner'
365362
363+ case getFirst configMonoidIgnoreRevisionMismatch of
364+ Nothing -> pure ()
365+ Just _ -> logWarn " You configured the ignore-revision-mismatch setting, but it is no longer used by Stack"
366+
367+ hsc <-
368+ case getFirst configMonoidPackageIndices of
369+ Nothing -> pure defaultHackageSecurityConfig
370+ Just [hsc] -> pure hsc
371+ Just x -> error $ " When overriding the default package index, you must provide exactly one value, received: " ++ show x
366372 withPantryConfig
367373 (configStackRoot </> $ (mkRelDir " pantry" ))
368- (case getFirst configMonoidPackageIndices of
369- Nothing -> defaultHackageSecurityConfig
370- )
374+ hsc
371375 (maybe HpackBundled HpackCommand $ getFirst configMonoidOverrideHpack)
372- $ \ configPantryConfig -> inner Config {.. }
376+ clConnectionCount
377+ (\ configPantryConfig -> inner Config {.. })
373378
374379-- | Get the default location of the local programs directory.
375380getDefaultLocalProgramsBase :: MonadThrow m
@@ -592,9 +597,10 @@ loadBuildConfig mproject maresolver mcompiler = do
592597
593598 extraPackageDBs <- mapM resolveDir' (projectExtraPackageDBs project)
594599
595- packages <- for (projectPackages project) $ \ fp -> do
596- dir <- resolveDirWithRel (parent stackYamlFP) fp
597- (dir,) <$> runOnce (parseSingleCabalFile True dir)
600+ packages <- for (projectPackages project) $ \ fp@ (RelFilePath t) -> do
601+ abs' <- resolveDir (parent stackYamlFP) (T. unpack t)
602+ let resolved = ResolvedPath fp abs'
603+ (resolved,) <$> runOnce (parseSingleCabalFile True resolved)
598604
599605 let deps = projectDependencies project
600606
@@ -642,7 +648,6 @@ getLocalPackages = do
642648 case mcached of
643649 Just cached -> return cached
644650 Nothing -> do
645- root <- view projectRootL
646651 bc <- view buildConfigL
647652
648653 packages <- for (bcPackages bc) $ fmap (lpvName &&& id ) . liftIO . snd
@@ -907,7 +912,7 @@ getFakeConfigPath
907912getFakeConfigPath stackRoot ar = do
908913 asString <-
909914 case ar of
910- ARResolver r -> undefined -- return $ T.unpack $ resolverRawName r
915+ ARResolver r -> pure $ T. unpack $ staticSHA256ToText $ mkStaticSHA256FromBytes $ encodeUtf8 $ utf8BuilderToText $ display r
911916 _ -> throwM $ InvalidResolverForNoLocalConfig $ show ar
912917 -- This takeWhile is an ugly hack. We don't actually need this
913918 -- path for anything useful. But if we take the raw value for
0 commit comments