@@ -3,6 +3,7 @@
3module Cabal2Nix.Generate ( cabal2nix, cabal2nix' ) where
3module Cabal2Nix.Generate ( cabal2nix, cabal2nix' ) where
5import Cabal2Nix.Flags
5import Cabal2Nix.Flags
6+import Cabal2Nix.License
6import Cabal2Nix.Name
7import Cabal2Nix.Name
7import Cabal2Nix.Normalize
8import Cabal2Nix.Normalize
8import Cabal2Nix.PostProcess
9import Cabal2Nix.PostProcess
@@ -11,17 +12,17 @@ import Data.Maybe
11import qualified Data.Set as Set
12import qualified Data.Set as Set
12import Data.Version
13import Data.Version
13import Distribution.Compiler
14import Distribution.Compiler
15+import Distribution.Nixpkgs.Fetch
14import Distribution.Nixpkgs.Haskell
16import Distribution.Nixpkgs.Haskell
15import qualified Distribution.Nixpkgs.Haskell as Nix
17import qualified Distribution.Nixpkgs.Haskell as Nix
16−import Cabal2Nix.License
17−import Language.Nix.Identifier
18−import Distribution.Nixpkgs.Fetch
19import qualified Distribution.Nixpkgs.Meta as Nix
18import qualified Distribution.Nixpkgs.Meta as Nix
20import Distribution.Package
19import Distribution.Package
21import Distribution.PackageDescription
20import Distribution.PackageDescription
22import qualified Distribution.PackageDescription as Cabal
21import qualified Distribution.PackageDescription as Cabal
23import Distribution.PackageDescription.Configuration
22import Distribution.PackageDescription.Configuration
24import Distribution.System
23import Distribution.System
24+import Distribution.Text ( display )
25+import Language.Nix.Identifier
26cabal2nix :: FlagAssignment -> GenericPackageDescription -> Derivation
27cabal2nix :: FlagAssignment -> GenericPackageDescription -> Derivation
27cabal2nix flags' cabal = normalize $ drv & cabalFlags .~ flags
28cabal2nix flags' cabal = normalize $ drv & cabalFlags .~ flags
@@ -64,7 +65,9 @@ cabal2nix' PackageDescription {..} = normalize $ postProcess $
64 & hyperlinkSource .~ True
65 & hyperlinkSource .~ True
65 & enableSplitObjs .~ True
66 & enableSplitObjs .~ True
66 & phaseOverrides .~ mempty
67 & phaseOverrides .~ mempty
68+ & editedCabalFile .~ (if xrev > 0 then fromMaybe (error (display package ++ ": X-Cabal-File-Hash field is missing"))
67− & editedCabalFile .~ (if xrev > 0 then fromJust (lookup "X-Cabal-File-Hash" customFieldsPD) else "")
69+ (lookup "X-Cabal-File-Hash" customFieldsPD)
68 & metaSection .~ ( Nix.nullMeta
71 & metaSection .~ ( Nix.nullMeta
69 & Nix.homepage .~ homepage
72 & Nix.homepage .~ homepage
70 & Nix.description .~ synopsis
73 & Nix.description .~ synopsis