@@ -3,6 +3,7 @@
33module Cabal2Nix.Generate ( cabal2nix, cabal2nix' ) where
44
55import Cabal2Nix.Flags
6+import Cabal2Nix.License
67import Cabal2Nix.Name
78import Cabal2Nix.Normalize
89import Cabal2Nix.PostProcess
@@ -11,17 +12,17 @@ import Data.Maybe
1112import qualified Data.Set as Set
1213import Data.Version
1314import Distribution.Compiler
15+import Distribution.Nixpkgs.Fetch
1416import Distribution.Nixpkgs.Haskell
1517import qualified Distribution.Nixpkgs.Haskell as Nix
16−import Cabal2Nix.License
17−import Language.Nix.Identifier
18−import Distribution.Nixpkgs.Fetch
1918import qualified Distribution.Nixpkgs.Meta as Nix
2019import Distribution.Package
2120import Distribution.PackageDescription
2221import qualified Distribution.PackageDescription as Cabal
2322import Distribution.PackageDescription.Configuration
2423import Distribution.System
24+import Distribution.Text ( display )
25+import Language.Nix.Identifier
2526
2627cabal2nix :: FlagAssignment -> GenericPackageDescription -> Derivation
2728cabal2nix flags' cabal = normalize $ drv & cabalFlags .~ flags
@@ -64,7 +65,9 @@ cabal2nix' PackageDescription {..} = normalize $ postProcess $
6465 & hyperlinkSource .~ True
6566 & enableSplitObjs .~ True
6667 & phaseOverrides .~ mempty
67− & editedCabalFile .~ (if xrev > 0 then fromJust (lookup "X-Cabal-File-Hash" customFieldsPD) else "")
68+ & editedCabalFile .~ (if xrev > 0 then fromMaybe (error (display package ++ ": X-Cabal-File-Hash field is missing"))
69+ (lookup "X-Cabal-File-Hash" customFieldsPD)
70+ else "")
6871 & metaSection .~ ( Nix.nullMeta
6972 & Nix.homepage .~ homepage
7073 & Nix.description .~ synopsis