git.iko.soy/typeable/cabal2nix
on master help sign in
Refactor Haskell-specific code out of distribution-nixpkgs and into cabal2nix.
commit481c7d2dcb2986c96bededfcfc1f271c1187583f authorPeter Simons <simons@cryp.to> dateTue 14 Jun 2016, 20:46 (10 years ago) parent72188f7
22 files changed+90−83
cabal2nix/cabal2nix.cabal+39 cabal2nix/package.yaml+19 distribution-nixpkgs/src/Distribution/Nixpkgs/Fetch.hs → cabal2nix/src/Distribution/Nixpkgs/Fetch.hs+1 distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/BuildInfo.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/BuildInfo.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/Constraint.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/Constraint.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/Derivation.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/Derivation.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/License.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/License.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/Hackage.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/Hackage.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs distribution-nixpkgs/distribution-nixpkgs.cabal+6−42 distribution-nixpkgs/package.yaml+7−30 distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Platform.hs−9 distribution-nixpkgs/src/Distribution/Nixpkgs/Meta.hs+7−2 distribution-nixpkgs/src/Internal/OrphanInstances.hs+11
cabal2nix/cabal2nix.cabal+39
@@ -19,6 +19,45 @@ source-repository head
1919 type: git
2020 location: https://github.com/nixos/cabal2nix
2121
22+library
23+ hs-source-dirs:
24+ src
25+ ghc-options: -Wall
26+ build-depends:
27+ ansi-wl-pprint
28+ , base < 5
29+ , Cabal > 1.24
30+ , containers
31+ , distribution-nixpkgs
32+ , language-nix
33+ , lens
34+ , optparse-applicative
35+ , pretty >= 1.1.2
36+ , pretty-show
37+ , text
38+ , yaml
39+ exposed-modules:
40+ Distribution.Nixpkgs.Haskell
41+ Distribution.Nixpkgs.Haskell.BuildInfo
42+ Distribution.Nixpkgs.Haskell.Constraint
43+ Distribution.Nixpkgs.Haskell.Derivation
44+ Distribution.Nixpkgs.Haskell.FromCabal
45+ Distribution.Nixpkgs.Haskell.FromCabal.Configuration
46+ Distribution.Nixpkgs.Haskell.FromCabal.Flags
47+ Distribution.Nixpkgs.Haskell.FromCabal.License
48+ Distribution.Nixpkgs.Haskell.FromCabal.Name
49+ Distribution.Nixpkgs.Haskell.FromCabal.Normalize
50+ Distribution.Nixpkgs.Haskell.FromCabal.Platform
51+ Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
52+ Distribution.Nixpkgs.Haskell.Hackage
53+ Distribution.Nixpkgs.Haskell.OrphanInstances
54+ Distribution.Nixpkgs.Haskell.PackageSourceSpec
55+ other-modules:
56+ Distribution.Nixpkgs.Fetch
57+ Main
58+ Paths_cabal2nix
59+ default-language: Haskell2010
60+
2261executable cabal2nix
2362 main-is: Main.hs
2463 hs-source-dirs:
cabal2nix/package.yaml+19
@@ -23,6 +23,25 @@ dependencies:
2323 - text
2424 - yaml
2525
26+library:
27+ source-dirs: src
28+ exposed-modules:
29+ - Distribution.Nixpkgs.Haskell
30+ - Distribution.Nixpkgs.Haskell.BuildInfo
31+ - Distribution.Nixpkgs.Haskell.Constraint
32+ - Distribution.Nixpkgs.Haskell.Derivation
33+ - Distribution.Nixpkgs.Haskell.FromCabal
34+ - Distribution.Nixpkgs.Haskell.FromCabal.Configuration
35+ - Distribution.Nixpkgs.Haskell.FromCabal.Flags
36+ - Distribution.Nixpkgs.Haskell.FromCabal.License
37+ - Distribution.Nixpkgs.Haskell.FromCabal.Name
38+ - Distribution.Nixpkgs.Haskell.FromCabal.Normalize
39+ - Distribution.Nixpkgs.Haskell.FromCabal.Platform
40+ - Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
41+ - Distribution.Nixpkgs.Haskell.Hackage
42+ - Distribution.Nixpkgs.Haskell.OrphanInstances
43+ - Distribution.Nixpkgs.Haskell.PackageSourceSpec
44+
2645executables:
2746 cabal2nix:
2847 main: Main.hs
distribution-nixpkgs/src/Distribution/Nixpkgs/Fetch.hs → cabal2nix/src/Distribution/Nixpkgs/Fetch.hsrenamed+1
@@ -2,6 +2,7 @@
22{-# LANGUAGE RecordWildCards #-}
33{-# LANGUAGE ScopedTypeVariables #-}
44{-# LANGUAGE DeriveGeneric #-}
5+
56module Distribution.Nixpkgs.Fetch
67 ( Source(..)
78 , Hash(..)
distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/BuildInfo.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/BuildInfo.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/Constraint.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/Constraint.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/Derivation.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/Derivation.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/License.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/License.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/Hackage.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/Hackage.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/OrphanInstances.hsrenamed

The content is the same.

distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs → cabal2nix/src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hsrenamed

The content is the same.

distribution-nixpkgs/distribution-nixpkgs.cabal+6−42
@@ -4,11 +4,11 @@
44
55name: distribution-nixpkgs
66version: 1
7−synopsis: Data types and functions to manipulate the Nixpkgs distribution.
8−description: Data types and useful functions to represent and manipulate the Nixpkgs distribution.
7+synopsis: Types and functions to manipulate the Nixpkgs distribution.
8+description: Types and functions to represent, query, and manipulate the Nixpkgs distribution.
99category: Distribution
10−homepage: https://github.com/nixos/cabal2nix#readme
11−bug-reports: https://github.com/nixos/cabal2nix/issues
10+homepage: https://github.com/peti/distribution-nixpkgs#readme
11+bug-reports: https://github.com/peti/distribution-nixpkgs/issues
1212maintainer: Peter Simons <simons@cryp.to>
1313license: BSD3
1414license-file: LICENSE
@@ -17,7 +17,7 @@ cabal-version: >= 1.10
1717
1818source-repository head
1919 type: git
20− location: https://github.com/nixos/cabal2nix
20+ location: https://github.com/peti/distribution-nixpkgs
2121
2222library
2323 hs-source-dirs:
@@ -30,44 +30,18 @@ library
3030 , Cabal > 1.24
3131 , containers
3232 , deepseq >= 1.4
33− , directory
34− , filepath
35− , hackage-db
36− , hashable
3733 , language-nix > 2
3834 , lens
3935 , pretty >= 1.1.2
4036 , process
41− , SHA
4237 , split
43− , text
44− , transformers
45− , unordered-containers
46− , utf8-string
47− , yaml
4838 exposed-modules:
49− Distribution.Nixpkgs.Fetch
50− Distribution.Nixpkgs.Haskell
51− Distribution.Nixpkgs.Haskell.BuildInfo
52− Distribution.Nixpkgs.Haskell.Constraint
53− Distribution.Nixpkgs.Haskell.Derivation
54− Distribution.Nixpkgs.Haskell.FromCabal
55− Distribution.Nixpkgs.Haskell.FromCabal.Configuration
56− Distribution.Nixpkgs.Haskell.FromCabal.Flags
57− Distribution.Nixpkgs.Haskell.FromCabal.License
58− Distribution.Nixpkgs.Haskell.FromCabal.Name
59− Distribution.Nixpkgs.Haskell.FromCabal.Normalize
60− Distribution.Nixpkgs.Haskell.FromCabal.Platform
61− Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
62− Distribution.Nixpkgs.Haskell.Hackage
63− Distribution.Nixpkgs.Haskell.OrphanInstances
64− Distribution.Nixpkgs.Haskell.PackageSourceSpec
6539 Distribution.Nixpkgs.License
6640 Distribution.Nixpkgs.Meta
6741 Distribution.Nixpkgs.PackageMap
6842 other-modules:
6943 Internal.PrettyPrinting
70− Paths_distribution_nixpkgs
44+ Internal.OrphanInstances
7145 default-language: Haskell2010
7246
7347test-suite spec
@@ -83,21 +57,11 @@ test-suite spec
8357 , Cabal > 1.24
8458 , containers
8559 , deepseq >= 1.4
86− , directory
87− , filepath
88− , hackage-db
89− , hashable
9060 , language-nix > 2
9161 , lens
9262 , pretty >= 1.1.2
9363 , process
94− , SHA
9564 , split
96− , text
97− , transformers
98− , unordered-containers
99− , utf8-string
100− , yaml
10165 , distribution-nixpkgs
10266 , doctest
10367 , hspec
distribution-nixpkgs/package.yaml+7−30
@@ -1,10 +1,10 @@
11name: distribution-nixpkgs
22version: "1"
3−synopsis: Data types and functions to manipulate the Nixpkgs distribution.
4−description: Data types and useful functions to represent and manipulate the Nixpkgs distribution.
3+synopsis: Types and functions to manipulate the Nixpkgs distribution.
4+description: Types and functions to represent, query, and manipulate the Nixpkgs distribution.
55maintainer: Peter Simons <simons@cryp.to>
66license: BSD3
7−github: nixos/cabal2nix
7+github: peti/distribution-nixpkgs
88category: Distribution
99
1010ghc-options: -Wall
@@ -16,44 +16,21 @@ dependencies:
1616 - Cabal > 1.24
1717 - containers
1818 - deepseq >= 1.4
19− - directory
20− - filepath
21− - hackage-db
22− - hashable
2319 - language-nix > 2
2420 - lens
2521 - pretty >= 1.1.2
2622 - process
27− - SHA
2823 - split
29− - text
30− - transformers
31− - unordered-containers
32− - utf8-string
33− - yaml
3424
3525library:
36− source-dirs: src
26+ source-dirs: src
3727 exposed-modules:
38− - Distribution.Nixpkgs.Fetch
39− - Distribution.Nixpkgs.Haskell
40− - Distribution.Nixpkgs.Haskell.BuildInfo
41− - Distribution.Nixpkgs.Haskell.Constraint
42− - Distribution.Nixpkgs.Haskell.Derivation
43− - Distribution.Nixpkgs.Haskell.FromCabal
44− - Distribution.Nixpkgs.Haskell.FromCabal.Configuration
45− - Distribution.Nixpkgs.Haskell.FromCabal.Flags
46− - Distribution.Nixpkgs.Haskell.FromCabal.License
47− - Distribution.Nixpkgs.Haskell.FromCabal.Name
48− - Distribution.Nixpkgs.Haskell.FromCabal.Normalize
49− - Distribution.Nixpkgs.Haskell.FromCabal.Platform
50− - Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
51− - Distribution.Nixpkgs.Haskell.Hackage
52− - Distribution.Nixpkgs.Haskell.OrphanInstances
53− - Distribution.Nixpkgs.Haskell.PackageSourceSpec
5428 - Distribution.Nixpkgs.License
5529 - Distribution.Nixpkgs.Meta
5630 - Distribution.Nixpkgs.PackageMap
31+ other-modules:
32+ - Internal.PrettyPrinting
33+ - Internal.OrphanInstances
5734
5835tests:
5936 spec:
distribution-nixpkgs/src/Distribution/Nixpkgs/Haskell/FromCabal/Platform.hsdeleted−9
@@ -1,9 +0,0 @@
1−module Distribution.Nixpkgs.Haskell.FromCabal.Platform ( fromCabalPlatform ) where
2−
3−import Distribution.System
4−
5−fromCabalPlatform :: Platform -> String
6−fromCabalPlatform (Platform I386 Linux) = "\"i686-linux\""
7−fromCabalPlatform (Platform X86_64 Linux) = "\"x86_64-linux\""
8−fromCabalPlatform (Platform X86_64 OSX) = "\"x86_64-darwin\""
9−fromCabalPlatform p = error ("fromCabalPlatform: invalid Nix platform" ++ show p)
distribution-nixpkgs/src/Distribution/Nixpkgs/Meta.hs+7−2
@@ -18,12 +18,11 @@ import Control.DeepSeq
1818import Control.Lens
1919import Data.Set ( Set )
2020import qualified Data.Set as Set
21−import Distribution.Nixpkgs.Haskell.FromCabal.Platform
22−import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
2321import Distribution.Nixpkgs.License
2422import Distribution.System
2523import GHC.Generics ( Generic )
2624import Internal.PrettyPrinting
25+import Internal.OrphanInstances ( )
2726import Language.Nix.Identifier
2827
2928-- | A representation of the @meta@ section used in Nix expressions.
@@ -93,3 +92,9 @@ allKnownPlatforms :: Set Platform
9392allKnownPlatforms = Set.fromList [ Platform I386 Linux, Platform X86_64 Linux
9493 , Platform X86_64 OSX
9594 ]
95+
96+fromCabalPlatform :: Platform -> String
97+fromCabalPlatform (Platform I386 Linux) = "\"i686-linux\""
98+fromCabalPlatform (Platform X86_64 Linux) = "\"x86_64-linux\""
99+fromCabalPlatform (Platform X86_64 OSX) = "\"x86_64-darwin\""
100+fromCabalPlatform p = error ("fromCabalPlatform: invalid Nix platform" ++ show p)
distribution-nixpkgs/src/Internal/OrphanInstances.hsnew file+11
@@ -0,0 +1,11 @@
1+{-# LANGUAGE DeriveGeneric #-}
2+{-# OPTIONS_GHC -fno-warn-orphans #-}
3+
4+module Internal.OrphanInstances ( ) where
5+
6+import Control.DeepSeq
7+import Distribution.System
8+
9+instance NFData Arch
10+instance NFData OS
11+instance NFData Platform