git.iko.soy/typeable/cabal2nix
on master help sign in
Add support for jailbreak attribute.
8d405d9Peter Simons
src/Cabal2Nix/Generate.hs+1
@@ -27,6 +27,7 @@ cabal2nix cabal = normalize $ postProcess MkDerivation
27 , configureFlags = []
27 , configureFlags = []
28 , cabalFlags = configureCabalFlags pkg
28 , cabalFlags = configureCabalFlags pkg
29 , runHaddock = True
29 , runHaddock = True
30+ , jailbreak = False
30 , phaseOverrides = ""
31 , phaseOverrides = ""
31 , metaSection = Meta
32 , metaSection = Meta
32 { homepage = Cabal.homepage descr
33 { homepage = Cabal.homepage descr
src/Distribution/NixOS/Derivation/Cabal.hs+5−2
@@ -53,6 +53,7 @@ data Derivation = MkDerivation
53 , configureFlags :: [String]
53 , configureFlags :: [String]
54 , cabalFlags :: FlagAssignment
54 , cabalFlags :: FlagAssignment
55 , runHaddock :: Bool
55 , runHaddock :: Bool
56+ , jailbreak :: Bool
56 , phaseOverrides :: String
57 , phaseOverrides :: String
57 , metaSection :: Meta
58 , metaSection :: Meta
58 }
59 }
@@ -81,6 +82,7 @@ renderDerivation deriv = funargs (map text ("cabal" : inputs)) $$ vcat
81 , listattr "pkgconfigDepends" (pkgConfDeps deriv)
82 , listattr "pkgconfigDepends" (pkgConfDeps deriv)
82 , onlyIf renderedFlags $ attr "configureFlags" $ doubleQuotes (sep renderedFlags)
83 , onlyIf renderedFlags $ attr "configureFlags" $ doubleQuotes (sep renderedFlags)
83 , boolattr "noHaddock" (not (runHaddock deriv)) (not (runHaddock deriv))
84 , boolattr "noHaddock" (not (runHaddock deriv)) (not (runHaddock deriv))
85+ , boolattr "jailbreak" (jailbreak deriv) (jailbreak deriv)
84 , onlyIf (phaseOverrides deriv) $ vcat ((map text . lines) (phaseOverrides deriv))
86 , onlyIf (phaseOverrides deriv) $ vcat ((map text . lines) (phaseOverrides deriv))
85 , disp (metaSection deriv)
87 , disp (metaSection deriv)
86 ]
88 ]
@@ -107,6 +109,7 @@ parseDerivation buf
107 , plats <- buf `regsubmatch` "platforms *= *([^;]+);"
109 , plats <- buf `regsubmatch` "platforms *= *([^;]+);"
108 , maint <- buf `regsubmatch` "maintainers *= *\\[([^\"]+)]"
110 , maint <- buf `regsubmatch` "maintainers *= *\\[([^\"]+)]"
109 , noHaddock <- buf `regsubmatch` "noHaddock *= *(true|false) *;"
111 , noHaddock <- buf `regsubmatch` "noHaddock *= *(true|false) *;"
112+ , jailBreak <- buf `regsubmatch` "jailbreak *= *(true|false) *;"
110 = Just MkDerivation
113 = Just MkDerivation
111 { pname = name
114 { pname = name
112 , version = vers
115 , version = vers
@@ -119,8 +122,8 @@ parseDerivation buf
119 , pkgConfDeps = []
122 , pkgConfDeps = []
120 , configureFlags = []
123 , configureFlags = []
121 , cabalFlags = []
124 , cabalFlags = []
122− , runHaddock = case noHaddock of "true":[] -> False
125+ , runHaddock = noHaddock /= ["true"]
123− _ -> True
126+ , jailbreak = jailBreak == ["true"]
124 , phaseOverrides = ""
127 , phaseOverrides = ""
125 , metaSection = Meta
128 , metaSection = Meta
126 { homepage = ""
129 { homepage = ""
src/Hackage4Nix.hs+1−1
@@ -114,7 +114,7 @@ updateNixPkgs paths = do
114 when regenerate $ do
114 when regenerate $ do
115 msgDebug ("re-generate " ++ path)
115 msgDebug ("re-generate " ++ path)
116 pkg <- getCabalPackage (pname deriv) (version deriv)
116 pkg <- getCabalPackage (pname deriv) (version deriv)
117− let deriv' = (cabal2nix pkg) { sha256 = sha256 deriv, runHaddock = runHaddock deriv }
117+ let deriv' = (cabal2nix pkg) { sha256 = sha256 deriv, runHaddock = runHaddock deriv, jailbreak = jailbreak deriv }
118 meta = metaSection deriv'
118 meta = metaSection deriv'
119 plats' = if null plats then platforms meta else plats
119 plats' = if null plats then platforms meta else plats
120 deriv'' = deriv' { metaSection = meta
120 deriv'' = deriv' { metaSection = meta