git.iko.soy/typeable/cabal2nix
on master help sign in
Add IsString instances for PackageName, PackageIdentifier, and Dependency (Constraint).
commitcc76fe05c9f4d63b2068ba4c5ad8c7e7ce0d5aba authorPeter Simons <simons@cryp.to> dateFri 28 Aug 2015, 14:53 (11 years ago) parenta0b3c54
4 files changed+25−9
src/Distribution/Nixpkgs/Haskell/Constraint.hs+1 src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration/GHC7102.hs+7−7 src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs+1−1 src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs+16−1
src/Distribution/Nixpkgs/Haskell/Constraint.hs+1
@@ -4,6 +4,7 @@ module Distribution.Nixpkgs.Haskell.Constraint
44
55import Distribution.Package
66import Distribution.Version
7+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
78
89type Constraint = Dependency
910
src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration/GHC7102.hs+7−7
@@ -1,12 +1,12 @@
1+{-# LANGUAGE OverloadedStrings #-}
2+
13module Distribution.Nixpkgs.Haskell.FromCabal.Configuration.GHC7102
24 ( Configuration(..), ghc7102
35 ) where
46
5−import Data.Maybe ( fromMaybe )
67import qualified Data.Set as Set
78import Distribution.Nixpkgs.Haskell.FromCabal.Configuration
89import Distribution.Nixpkgs.Haskell.FromCabal.Configuration.Maintainers
9−import Distribution.Text ( simpleParse )
1010
1111ghc7102 :: Configuration
1212ghc7102 = Configuration
@@ -16,11 +16,11 @@ ghc7102 = Configuration
1616
1717 , packageMaintainers = globalPackageMaintainers
1818
19− , defaultPackageOverrides = map (\s -> fromMaybe (error (show s ++ " is not a valid override selector")) (simpleParse s))
19+ , defaultPackageOverrides =
2020 [ "HUnit < 1.3.0.0" -- newer versions break test-framework-hunit-0.3.0.1
2121 ]
2222
23− , corePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s))
23+ , corePackages =
2424 [ "Cabal-1.22.4.0"
2525 , "array-0.5.1.0"
2626 , "base-4.8.1.0"
@@ -45,13 +45,13 @@ ghc7102 = Configuration
4545 , "xhtml-3000.2.1"
4646 ]
4747
48− , hardCorePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s))
48+ , hardCorePackages =
4949 [ "bin-package-db-0.0.0.0"
5050 , "ghc-7.10.2"
5151 , "rts-1.0"
5252 ]
5353
54− , extraPackages = map (\s -> fromMaybe (error (show s ++ " is not a valid extra package selector")) (simpleParse s))
54+ , extraPackages =
5555 [ "aeson < 0.8" -- newer versions don't work with GHC 6.12.3
5656 , "Cabal == 1.18.*" -- required for cabal-install et al on old GHC versions
5757 , "Cabal == 1.20.*" -- required for cabal-install et al on old GHC versions
@@ -77,7 +77,7 @@ ghc7102 = Configuration
7777 , "zlib < 0.6" -- newer versions break cabal-install
7878 ]
7979
80− , dontDistributePackages = Set.fromList $ map PackageName
80+ , dontDistributePackages = Set.fromList
8181 [ "3dmodels"
8282 , "4Blocks"
8383 , "abcBridge"
src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs+1−1
@@ -32,7 +32,7 @@ fixGtkBuilds drv = drv & dependencies . pkgconfig %~ Set.filter (not . collidesW
3232 buildDeps = Set.delete myName (setOf (dependencies . haskell . folded . localName) drv)
3333
3434hooks :: [(Dependency, Derivation -> Derivation)]
35−hooks = over (mapped._1) (\str -> fromMaybe (error ("invalid constraint: " ++ show str)) (simpleParse str))
35+hooks =
3636 [ ("Agda", set (executableDepends . tool . contains (pkg "emacs")) True . set phaseOverrides agdaPostInstall)
3737 , ("dns", set testTarget "spec") -- don't execute tests that try to access the network
3838 , ("bindings-GLFW", over (libraryDepends . system) (Set.union (Set.fromList [bind "pkgs.xlibs.libXext", bind "pkgs.xlibs.libXfixes"])))
src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs+16−1
@@ -1,16 +1,19 @@
1−{-# LANGUAGE DeriveGeneric #-}
1+{-# LANGUAGE DeriveGeneric #-}
22{-# LANGUAGE StandaloneDeriving #-}
33{-# OPTIONS_GHC -fno-warn-orphans #-}
44
55module Distribution.Nixpkgs.Haskell.OrphanInstances ( ) where
66
77import Control.DeepSeq.Generics
8+import Data.Maybe
9+import Data.String
810import Distribution.Compiler
911import Distribution.License
1012import Distribution.ModuleName hiding ( main )
1113import Distribution.Package
1214import Distribution.PackageDescription
1315import Distribution.System
16+import Distribution.Text
1417import Distribution.Version
1518import GHC.Generics ( Generic )
1619import Language.Haskell.Extension
@@ -53,3 +56,15 @@ instance NFData TestSuiteInterface where rnf = genericRnf
5356instance NFData TestType where rnf = genericRnf
5457instance NFData VersionRange where rnf = genericRnf
5558instance NFData a => NFData (Condition a) where rnf = genericRnf
59+
60+instance IsString PackageName where
61+ fromString = text2isString "PackageName"
62+
63+instance IsString PackageIdentifier where
64+ fromString = text2isString "PackageIdentifier"
65+
66+instance IsString Dependency where
67+ fromString = text2isString "Dependency"
68+
69+text2isString :: Text a => String -> String -> a
70+text2isString t s = fromMaybe (error ("fromString: " ++ show s ++ " is not a valid " ++ t)) (simpleParse s)