@@ -320,10 +320,12 @@ configure :: (GenericPackageDescription, HookedBuildInfo)
320320 -> ConfigFlags -> IO LocalBuildInfo
321321configure (pkg_descr0', pbi) cfg = do
322322 let pkg_descr0 =
323- -- Ignore '--allow-newer' when we're given '--exact-configuration'.
323+ -- Ignore '--allow-{older, newer} ' when we're given '--exact-configuration'.
324324 if fromFlagOrDefault False (configExactConfiguration cfg)
325325 then pkg_descr0'
326- else relaxPackageDeps
326+ else relaxPackageDeps removeLowerBound
327+ (maybe RelaxDepsNone unAllowOlder $ configAllowOlder cfg) $
328+ relaxPackageDeps removeUpperBound
327329 (maybe RelaxDepsNone unAllowNewer $ configAllowNewer cfg)
328330 pkg_descr0'
329331
@@ -871,26 +873,27 @@ dependencySatisfiable
871873 $ PackageIndex. lookupDependency internalPackageSet d
872874
873875-- | Relax the dependencies of this package if needed.
874- relaxPackageDeps :: RelaxDeps -> GenericPackageDescription
875- -> GenericPackageDescription
876- relaxPackageDeps RelaxDepsNone gpd = gpd
877- relaxPackageDeps RelaxDepsAll gpd = transformAllBuildDepends relaxAll gpd
876+ relaxPackageDeps :: (VersionRange -> VersionRange )
877+ -> RelaxDeps
878+ -> GenericPackageDescription -> GenericPackageDescription
879+ relaxPackageDeps _ RelaxDepsNone gpd = gpd
880+ relaxPackageDeps vrtrans RelaxDepsAll gpd = transformAllBuildDepends relaxAll gpd
878881 where
879882 relaxAll = \ (Dependency pkgName verRange) ->
880- Dependency pkgName (removeUpperBound verRange)
881- relaxPackageDeps (RelaxDepsSome allowNewerDeps') gpd =
883+ Dependency pkgName (vrtrans verRange)
884+ relaxPackageDeps vrtrans (RelaxDepsSome allowNewerDeps') gpd =
882885 transformAllBuildDepends relaxSome gpd
883886 where
884887 thisPkgName = packageName gpd
885888 allowNewerDeps = mapMaybe f allowNewerDeps'
886889
887890 f (Setup. RelaxedDep p) = Just p
888891 f (Setup. RelaxedDepScoped scope p) | scope == thisPkgName = Just p
889- | otherwise = Nothing
892+ | otherwise = Nothing
890893
891894 relaxSome = \ d@ (Dependency depName verRange) ->
892895 if depName `elem` allowNewerDeps
893- then Dependency depName (removeUpperBound verRange)
896+ then Dependency depName (vrtrans verRange)
894897 else d
895898
896899-- | Finalize a generic package description. The workhorse is
0 commit comments