Skip to content

Commit a34f6b2

Browse files
committed
When checking internal version ranges, we need to make sure we are not mistaking a libraries with the same name but from different packages. See haskell#9132.
1 parent 5ce204a commit a34f6b2

File tree

1 file changed

+8
-4
lines changed
  • Cabal/src/Distribution/PackageDescription/Check

1 file changed

+8
-4
lines changed

Cabal/src/Distribution/PackageDescription/Check/Target.hs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ checkBuildInfoPathsContent :: Monad m => BuildInfo -> CheckM m ()
364364
checkBuildInfoPathsContent bi = do
365365
mapM_ checkLang (allLanguages bi)
366366
mapM_ checkExt (allExtensions bi)
367-
mapM_ checkDep (targetBuildDepends bi)
367+
mapM_ checkIntDep (targetBuildDepends bi)
368368
df <- asksCM ccDesugar
369369
-- This way we can use the same function for legacy&non exedeps.
370370
let ds = buildToolDepends bi ++ catMaybes (map df $ buildTools bi)
@@ -387,8 +387,8 @@ checkBuildInfoPathsContent bi = do
387387
(not . null $ dss)
388388
(PackageDistSuspicious $ DeprecatedExtensions dss)
389389

390-
checkDep :: Monad m => Dependency -> CheckM m ()
391-
checkDep d@(Dependency name vrange _) = do
390+
checkIntDep :: Monad m => Dependency -> CheckM m ()
391+
checkIntDep d@(Dependency name vrange _) = do
392392
mpn <-
393393
asksCM
394394
( packageNameToUnqualComponentName
@@ -400,7 +400,11 @@ checkBuildInfoPathsContent bi = do
400400
pVer <- asksCM (pkgVersion . pnPackageId . ccNames)
401401
let allLibNs = mpn : lns
402402
when
403-
(packageNameToUnqualComponentName name `elem` allLibNs)
403+
( mpn == packageNameToUnqualComponentName name
404+
-- Make sure it is not a library with the
405+
-- same name from another package.
406+
&& packageNameToUnqualComponentName name `elem` allLibNs
407+
)
404408
( checkP
405409
(not $ pVer `withinRange` vrange)
406410
(PackageBuildImpossible $ ImpossibleInternalDep [d])

0 commit comments

Comments
 (0)