git.iko.soy/typeable/cabal2nix
on master help sign in
Added a post-processing stage to 'cabal2nix' that can be used to mess
51ef63bPeter Simons
cabal2nix.cabal+2
@@ -62,6 +62,7 @@ Executable cabal2nix
62 Cabal2Nix.Hackage
62 Cabal2Nix.Hackage
63 Cabal2Nix.Name
63 Cabal2Nix.Name
64 Cabal2Nix.Package
64 Cabal2Nix.Package
65+ Cabal2Nix.PostProcess
65 Distribution.NixOS.Derivation.Cabal
66 Distribution.NixOS.Derivation.Cabal
66 Distribution.NixOS.Derivation.License
67 Distribution.NixOS.Derivation.License
67 Distribution.NixOS.Derivation.Meta
68 Distribution.NixOS.Derivation.Meta
@@ -77,6 +78,7 @@ Executable hackage4nix
77 other-modules: Cabal2Nix.CorePackages
78 other-modules: Cabal2Nix.CorePackages
78 Cabal2Nix.Name
79 Cabal2Nix.Name
79 Cabal2Nix.Package
80 Cabal2Nix.Package
81+ Cabal2Nix.PostProcess
80 Distribution.NixOS.Derivation.Cabal
82 Distribution.NixOS.Derivation.Cabal
81 Distribution.NixOS.Derivation.License
83 Distribution.NixOS.Derivation.License
82 Distribution.NixOS.Derivation.Meta
84 Distribution.NixOS.Derivation.Meta
src/Cabal2Nix/Package.hs+2−1
@@ -1,6 +1,7 @@
1module Cabal2Nix.Package ( cabal2nix ) where
1module Cabal2Nix.Package ( cabal2nix ) where
2
2
3import Cabal2Nix.License
3import Cabal2Nix.License
4+import Cabal2Nix.PostProcess
4import Data.Maybe
5import Data.Maybe
5import Distribution.Compiler
6import Distribution.Compiler
6import qualified Distribution.Package as Cabal
7import qualified Distribution.Package as Cabal
@@ -15,7 +16,7 @@ import Data.List
15import Data.Char
16import Data.Char
16
17
17cabal2nix :: Cabal.GenericPackageDescription -> Derivation
18cabal2nix :: Cabal.GenericPackageDescription -> Derivation
18−cabal2nix cabal = MkDerivation
19+cabal2nix cabal = postProcess $ MkDerivation
19 { pname = let Cabal.PackageName x = Cabal.pkgName pkg in x
20 { pname = let Cabal.PackageName x = Cabal.pkgName pkg in x
20 , version = Cabal.pkgVersion pkg
21 , version = Cabal.pkgVersion pkg
21 , sha256 = "cabal2nix left the she256 field undefined"
22 , sha256 = "cabal2nix left the she256 field undefined"
src/Cabal2Nix/PostProcess.hsnew file+35
@@ -0,0 +1,35 @@
1+{-# LANGUAGE RecordWildCards #-}
2+
3+module Cabal2Nix.PostProcess ( postProcess ) where
4+
5+import Distribution.NixOS.Derivation.Cabal
6+import Data.List
7+
8+postProcess :: Derivation -> Derivation
9+postProcess deriv@(MkDerivation {..})
10+ | pname == "alex" = deriv { buildTools = "perl":buildTools }
11+ | pname == "cairo" = deriv { extraLibs = "pkgconfig":"glibc":"cairo":"zlib":extraLibs }
12+ | pname == "editline" = deriv { extraLibs = "libedit":extraLibs }
13+ | pname == "epic" = deriv { extraLibs = "gmp":"boehmgc":extraLibs, buildTools = "happy":buildTools }
14+ | pname == "glade" = deriv { extraLibs = "pkgconfig":"glibc":extraLibs, pkgConfDeps = "gtkC":(delete "gtk" pkgConfDeps) }
15+ | pname == "glib" = deriv { extraLibs = "pkgconfig":"glibc":extraLibs }
16+ | pname == "GLUT" = deriv { extraLibs = "glut":"libSM":"libICE":"libXmu":"libXi":"mesa":extraLibs }
17+ | pname == "gtk" = deriv { extraLibs = "pkgconfig":"glibc":extraLibs, buildDepends = delete "gio" buildDepends }
18+ | pname == "gtksourceview2" = deriv { extraLibs = "pkgconfig":"glibc":extraLibs }
19+ | pname == "haskell-src" = deriv { buildTools = "happy":buildTools }
20+ | pname == "hmatrix" = deriv { extraLibs = "gsl":"liblapack":"blas":extraLibs }
21+ | pname == "idris" = deriv { buildTools = "happy":buildTools }
22+ | pname == "OpenAL" = deriv { extraLibs = "openal":extraLibs }
23+ | pname == "OpenGL" = deriv { extraLibs = "mesa":"libX11":extraLibs }
24+ | pname == "pango" = deriv { extraLibs = "pkgconfig":"glibc":extraLibs }
25+ | pname == "repa-examples" = deriv { extraLibs = "llvm":extraLibs }
26+ | pname == "SDL-image" = deriv { extraLibs = "SDL_image":extraLibs }
27+ | pname == "SDL-mixer" = deriv { extraLibs = "SDL_mixer":extraLibs }
28+ | pname == "SDL-ttf" = deriv { extraLibs = "SDL_ttf":extraLibs }
29+ | pname == "svgcairo" = deriv { extraLibs = "glibc":extraLibs }
30+ | pname == "terminfo" = deriv { extraLibs = "ncurses":extraLibs }
31+ | pname == "vacuum" = deriv { extraLibs = "ghcPaths":extraLibs }
32+ | pname == "wxcore" = deriv { extraLibs = "wxGTK":"mesa":"libX11":extraLibs }
33+ | pname == "xmonad" = deriv { extraLibs = delete "libmpd" extraLibs }
34+ | pname == "xmonad-extras" = deriv { buildDepends = delete "libmpd" buildDepends }
35+ | otherwise = deriv