@@ -4,9 +4,11 @@ module Distribution.Nixpkgs.Haskell.FromCabal.PostProcess ( postProcess, pkg ) w
44
55import Control.Lens
66import Data.List.Split
7+import Data.Map ( Map )
8+import qualified Data.Map as Map
9+import Data.Map.Lens
710import Data.Set ( Set )
811import qualified Data.Set as Set
9−import Data.Set.Lens
1012import Distribution.Nixpkgs.Haskell
1113import Distribution.Nixpkgs.Meta
1214import Distribution.Package
@@ -24,13 +26,15 @@ fixGtkBuilds drv = drv & dependencies . pkgconfig %~ Set.filter (not . collidesW
2426 & dependencies . tool %~ Set.filter (not . collidesWithHaskellName)
2527 where
2628 collidesWithHaskellName :: Binding -> Bool
27− collidesWithHaskellName b = view localName b `Set.member` buildDeps
29+ collidesWithHaskellName b = case buildDeps Map.!? view localName b of
30+ Nothing -> False -- totally uncollided
31+ Just p -> p /= view reference b -- identical is not collision, and important to preserve for cross
2832
2933 myName :: Identifier
3034 myName = ident # unPackageName (packageName drv)
3135
32− buildDeps :: Set Identifier
33− buildDeps = Set.delete myName (setOf (dependencies . haskell . folded . localName) drv)
36+ buildDeps :: Map Identifier Path
37+ buildDeps = Map.delete myName (toMapOf (dependencies . haskell . to Set.toList . traverse . binding . ifolded) drv)
3438
3539hooks :: [(Dependency, Derivation -> Derivation)]
3640hooks =