git.iko.soy/typeable/cabal2nix
on master help sign in
normalize: make sure that meta.platforms and meta.hydraPlatforms don't contain unknown entries
fc29b8fPeter Simons
distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs+6−2
@@ -1,16 +1,17 @@
1module Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalize, normalizeCabalFlags ) where
1module Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalize, normalizeCabalFlags ) where
2
2
3+import Control.Lens
3import Data.Function
4import Data.Function
4import Data.List
5import Data.List
5import qualified Data.Set as Set
6import qualified Data.Set as Set
6import Data.String
7import Data.String
7import Distribution.Nixpkgs.Haskell
8import Distribution.Nixpkgs.Haskell
9+import Distribution.Nixpkgs.Haskell.FromCabal.Configuration ( allPlatforms )
8import Distribution.Nixpkgs.Meta
10import Distribution.Nixpkgs.Meta
9import Distribution.Package
11import Distribution.Package
10import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
12import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
11import Distribution.Simple.Utils ( lowercase )
13import Distribution.Simple.Utils ( lowercase )
12import Language.Nix hiding ( quote )
14import Language.Nix hiding ( quote )
13−import Control.Lens
14
15
15normalize :: Derivation -> Derivation
16normalize :: Derivation -> Derivation
16normalize drv = drv
17normalize drv = drv
@@ -36,7 +37,10 @@ normalizeBuildInfo (PackageName pname) bi = bi
36-}
37-}
37
38
38normalizeMeta :: Meta -> Meta
39normalizeMeta :: Meta -> Meta
40+normalizeMeta meta = meta
39−normalizeMeta = over description normalizeSynopsis
41+ & description %~ normalizeSynopsis
42+ & platforms %~ Set.intersection allPlatforms
43+ & hydraPlatforms %~ Set.intersection (meta^.platforms)
40
44
41normalizeSynopsis :: String -> String
45normalizeSynopsis :: String -> String
42normalizeSynopsis desc
46normalizeSynopsis desc