cabal2nix 1.39 → 1.40
raw patch · 7 files changed
+48/−21 lines, 7 files
Files
- cabal2nix.cabal +3/−3
- src/Cabal2Nix/Flags.hs +2/−1
- src/Cabal2Nix/Generate.hs +1/−0
- src/Cabal2Nix/Name.hs +1/−0
- src/Cabal2Nix/PostProcess.hs +32/−13
- src/Distribution/NixOS/Derivation/Cabal.hs +5/−2
- src/Hackage4Nix.hs +4/−2
cabal2nix.cabal view
@@ -1,5 +1,5 @@ Name: cabal2nix-Version: 1.39+Version: 1.40 Copyright: Peter Simons, Andres Loeh License: BSD3 License-File: LICENSE@@ -32,8 +32,8 @@ . The only required argument is the path to the cabal file. For example: .- > cabal2nix http://hackage.haskell.org/packages/archive/cabal2nix/1.39/cabal2nix.cabal- > cabal2nix cabal://cabal2nix-1.39+ > cabal2nix http://hackage.haskell.org/packages/archive/cabal2nix/1.40/cabal2nix.cabal+ > cabal2nix cabal://cabal2nix-1.40 . If the @--sha256@ option has not been specified, cabal2nix calls @nix-prefetch-url@ to determine the hash automatically. This causes
src/Cabal2Nix/Flags.hs view
@@ -6,10 +6,11 @@ configureCabalFlags :: PackageIdentifier -> FlagAssignment configureCabalFlags (PackageIdentifier (PackageName name) _) | name == "accelerate-examples"= [disable "opencl"]+ | name == "pandoc" = [enable "blaze_html_0_5"] | name == "haskeline" = [enable "terminfo"] | name == "reactive-banana-wx" = [disable "buildExamples"] | name == "xmobar" = [enable "with_xft", enable "with_iwlib"]- | name == "xmonad-extras" = [disable "with_hlist"]+ | name == "xmonad-extras" = [disable "with_hlist", enable "with_split", enable "with_parsec"] | otherwise = [] enable :: String -> (FlagName,Bool)
src/Cabal2Nix/Generate.hs view
@@ -27,6 +27,7 @@ , configureFlags = [] , cabalFlags = configureCabalFlags pkg , runHaddock = True+ , jailbreak = False , phaseOverrides = "" , metaSection = Meta { homepage = Cabal.homepage descr
src/Cabal2Nix/Name.hs view
@@ -40,6 +40,7 @@ libNixName "libglade-2.0" = return "libglade" libNixName "libidn" = return "idn" libNixName "librsvg-2.0" = return "librsvg"+libNixName "libxml-2.0" = return "libxml2" libNixName "libzip" = return "libzip" libNixName "m" = [] -- in stdenv libNixName "pangocairo" = return "pango"
src/Cabal2Nix/PostProcess.hs view
@@ -8,8 +8,11 @@ postProcess :: Derivation -> Derivation postProcess deriv@(MkDerivation {..}) | pname == "alex" = deriv { buildTools = "perl":buildTools }+ | pname == "cabal-install" && version >= (Version [0,14] [])+ = deriv { phaseOverrides = cabalInstallPostInstall } | pname == "cairo" = deriv { extraLibs = "pkgconfig":"libc":"cairo":"zlib":extraLibs } | pname == "cuda" = deriv { phaseOverrides = cudaConfigurePhase, extraLibs = "cudatoolkit":"nvidia_x11":"self.stdenv.gcc":extraLibs }+ | pname == "darcs" = deriv { phaseOverrides = darcsInstallPostInstall } | pname == "editline" = deriv { extraLibs = "libedit":extraLibs } | pname == "epic" = deriv { extraLibs = "gmp":"boehmgc":extraLibs, buildTools = "happy":buildTools } | pname == "ghc-mod" = deriv { phaseOverrides = ghcModPostInstall, buildTools = "emacs":buildTools }@@ -83,19 +86,35 @@ ghcModPostInstall :: String ghcModPostInstall = unlines- [ "postInstall = ''"- , " cd $out/share/$pname-$version"- , " make"- , " rm Makefile"- , " cd .."- , " ensureDir \"$out/share/emacs\""- , " mv $pname-$version emacs/site-lisp"- , " '';"- ]+ [ "postInstall = ''"+ , " cd $out/share/$pname-$version"+ , " make"+ , " rm Makefile"+ , " cd .."+ , " ensureDir \"$out/share/emacs\""+ , " mv $pname-$version emacs/site-lisp"+ , " '';"+ ] wxcPostInstall :: String wxcPostInstall = unlines- [ "postInstall = ''"- , " cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so"- , " '';"- ]+ [ "postInstall = ''"+ , " cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so"+ , " '';"+ ]++cabalInstallPostInstall :: String+cabalInstallPostInstall = unlines+ [ "postInstall = ''"+ , " mkdir $out/etc"+ , " mv bash-completion $out/etc/bash_completion.d"+ , "'';"+ ]++darcsInstallPostInstall :: String+darcsInstallPostInstall = unlines+ [ "postInstall = ''"+ , " mkdir -p $out/etc/bash_completion.d"+ , " mv contrib/darcs_completion $out/etc/bash_completion.d/darcs"+ , "'';"+ ]
src/Distribution/NixOS/Derivation/Cabal.hs view
@@ -53,6 +53,7 @@ , configureFlags :: [String] , cabalFlags :: FlagAssignment , runHaddock :: Bool+ , jailbreak :: Bool , phaseOverrides :: String , metaSection :: Meta }@@ -81,6 +82,7 @@ , listattr "pkgconfigDepends" (pkgConfDeps deriv) , onlyIf renderedFlags $ attr "configureFlags" $ doubleQuotes (sep renderedFlags) , boolattr "noHaddock" (not (runHaddock deriv)) (not (runHaddock deriv))+ , boolattr "jailbreak" (jailbreak deriv) (jailbreak deriv) , onlyIf (phaseOverrides deriv) $ vcat ((map text . lines) (phaseOverrides deriv)) , disp (metaSection deriv) ]@@ -107,6 +109,7 @@ , plats <- buf `regsubmatch` "platforms *= *([^;]+);" , maint <- buf `regsubmatch` "maintainers *= *\\[([^\"]+)]" , noHaddock <- buf `regsubmatch` "noHaddock *= *(true|false) *;"+ , jailBreak <- buf `regsubmatch` "jailbreak *= *(true|false) *;" = Just MkDerivation { pname = name , version = vers@@ -119,8 +122,8 @@ , pkgConfDeps = [] , configureFlags = [] , cabalFlags = []- , runHaddock = case noHaddock of "true":[] -> False- _ -> True+ , runHaddock = noHaddock /= ["true"]+ , jailbreak = jailBreak == ["true"] , phaseOverrides = "" , metaSection = Meta { homepage = ""
src/Hackage4Nix.hs view
@@ -114,7 +114,7 @@ when regenerate $ do msgDebug ("re-generate " ++ path) pkg <- getCabalPackage (pname deriv) (version deriv)- let deriv' = (cabal2nix pkg) { sha256 = sha256 deriv, runHaddock = runHaddock deriv }+ let deriv' = (cabal2nix pkg) { sha256 = sha256 deriv, runHaddock = runHaddock deriv, jailbreak = jailbreak deriv } meta = metaSection deriv' plats' = if null plats then platforms meta else plats deriv'' = deriv' { metaSection = meta@@ -202,7 +202,9 @@ -- Packages that we cannot parse. badPackagePaths :: [FilePath]-badPackagePaths = ["haskell-platform/2011.2.0.1.nix","haskell-platform/2011.4.0.0.nix","haskell-platform/2012.2.0.0.nix"]+badPackagePaths = [ "haskell-platform/2011.2.0.1.nix", "haskell-platform/2011.4.0.0.nix"+ , "haskell-platform/2012.2.0.0.nix", "haskell-platform/2012.4.0.0.nix"+ ] -- Packages that we cannot regenerate automatically yet. This list -- should be empty.