cabal2nix 1.59 → 1.60
raw patch · 5 files changed
+98/−87 lines, 5 files
Files
- cabal2nix.cabal +3/−3
- src/Cabal2Nix/Flags.hs +1/−0
- src/Cabal2Nix/License.hs +16/−15
- src/Cabal2Nix/Name.hs +69/−68
- src/Cabal2Nix/PostProcess.hs +9/−1
cabal2nix.cabal view
@@ -1,5 +1,5 @@ Name: cabal2nix-Version: 1.59+Version: 1.60 Copyright: Peter Simons, Andres Loeh License: BSD3 License-File: LICENSE@@ -34,8 +34,8 @@ . The only required argument is the path to the cabal file. For example: .- > cabal2nix http://hackage.haskell.org/packages/archive/cabal2nix/1.59/cabal2nix.cabal- > cabal2nix cabal://cabal2nix-1.59+ > cabal2nix http://hackage.haskell.org/packages/archive/cabal2nix/1.60/cabal2nix.cabal+ > cabal2nix cabal://cabal2nix-1.60 . 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
@@ -12,6 +12,7 @@ , enable "Production", enable "TDFA"] | name == "haskeline" = [enable "terminfo"] | name == "hslua" = [enable "system-lua"]+ | name == "idris" = [enable "llvm", enable "gmp", enable "ffi"] | name == "io-streams" = [enable "NoInteractiveTests"] | name == "reactive-banana-wx" = [disable "buildExamples"] | name == "xmobar" = [enable "with_xft", enable "with_iwlib", enable "with_alsa"]
src/Cabal2Nix/License.hs view
@@ -5,18 +5,19 @@ import Data.Version fromCabalLicense :: Distribution.License.License -> Distribution.NixOS.Derivation.License.License-fromCabalLicense (GPL Nothing) = Unknown (Just "GPL")-fromCabalLicense (GPL (Just (Version [2] []))) = Known "self.stdenv.lib.licenses.gpl2"-fromCabalLicense (GPL (Just (Version [3] []))) = Known "self.stdenv.lib.licenses.gpl3"-fromCabalLicense (LGPL Nothing) = Unknown (Just "LGPL")-fromCabalLicense (LGPL (Just (Version [2,1] []))) = Known "self.stdenv.lib.licenses.lgpl21"-fromCabalLicense (LGPL (Just (Version [2] []))) = Known "self.stdenv.lib.licenses.lgpl2"-fromCabalLicense (LGPL (Just (Version [3] []))) = Known "self.stdenv.lib.licenses.gpl3"-fromCabalLicense BSD3 = Known "self.stdenv.lib.licenses.bsd3"-fromCabalLicense BSD4 = Known "self.stdenv.lib.licenses.bsd4"-fromCabalLicense MIT = Known "self.stdenv.lib.licenses.mit"-fromCabalLicense PublicDomain = Known "self.stdenv.lib.licenses.publicDomain"-fromCabalLicense AllRightsReserved = Known "self.stdenv.lib.licenses.proprietary"-fromCabalLicense (Apache Nothing) = Known "self.stdenv.lib.licenses.asl20"-fromCabalLicense OtherLicense = Unknown Nothing-fromCabalLicense l = error $ "Cabal2Nix.License.fromCabalLicense: unknown license " ++ show l+fromCabalLicense (GPL Nothing) = Unknown (Just "GPL")+fromCabalLicense (GPL (Just (Version [2] []))) = Known "self.stdenv.lib.licenses.gpl2"+fromCabalLicense (GPL (Just (Version [3] []))) = Known "self.stdenv.lib.licenses.gpl3"+fromCabalLicense (LGPL Nothing) = Unknown (Just "LGPL")+fromCabalLicense (LGPL (Just (Version [2,1] []))) = Known "self.stdenv.lib.licenses.lgpl21"+fromCabalLicense (LGPL (Just (Version [2] []))) = Known "self.stdenv.lib.licenses.lgpl2"+fromCabalLicense (LGPL (Just (Version [3] []))) = Known "self.stdenv.lib.licenses.gpl3"+fromCabalLicense BSD3 = Known "self.stdenv.lib.licenses.bsd3"+fromCabalLicense BSD4 = Known "self.stdenv.lib.licenses.bsd4"+fromCabalLicense MIT = Known "self.stdenv.lib.licenses.mit"+fromCabalLicense PublicDomain = Known "self.stdenv.lib.licenses.publicDomain"+fromCabalLicense AllRightsReserved = Known "self.stdenv.lib.licenses.unfree"+fromCabalLicense (Apache Nothing) = Known "self.stdenv.lib.licenses.asl20"+fromCabalLicense (Apache (Just (Version [2,0] []))) = Known "self.stdenv.lib.licenses.asl20"+fromCabalLicense OtherLicense = Unknown Nothing+fromCabalLicense l = error $ "Cabal2Nix.License.fromCabalLicense: unknown license " ++ show l
src/Cabal2Nix/Name.hs view
@@ -17,80 +17,81 @@ -- possibility of name clashes with Haskell libraries. I have included -- identity mappings to incicate that I have verified their correctness. libNixName :: String -> [String]-libNixName "adns" = return "adns"-libNixName "alsa" = return "alsaLib"-libNixName "asound" = return "alsaLib"-libNixName "cairo-pdf" = return "cairo"-libNixName "cairo-ps" = return "cairo"-libNixName "cairo" = return "cairo"-libNixName "cairo-svg" = return "cairo"-libNixName "crypto" = return "openssl"-libNixName "dl" = [] -- provided by glibc-libNixName "gconf-2.0" = return "gconf"-libNixName "gdk-2.0" = return "gtk"-libNixName "gdk-pixbuf-2.0" = return "gdk_pixbuf"-libNixName "gio-2.0" = return "glib"-libNixName "glib-2.0" = return "glib"-libNixName "GL" = return "mesa"-libNixName "GLU" = ["freeglut","mesa"]-libNixName "glut" = ["freeglut","mesa"]-libNixName "gnome-keyring-1" = return "gnome_keyring"-libNixName "gnome-keyring" = return "gnome_keyring"-libNixName "gobject-2.0" = return "glib"-libNixName "gstreamer-0.10" = return "gstreamer"+libNixName "adns" = return "adns"+libNixName "alsa" = return "alsaLib"+libNixName "asound" = return "alsaLib"+libNixName "cairo-pdf" = return "cairo"+libNixName "cairo-ps" = return "cairo"+libNixName "cairo" = return "cairo"+libNixName "cairo-svg" = return "cairo"+libNixName "crypto" = return "openssl"+libNixName "dl" = [] -- provided by glibc+libNixName "gconf-2.0" = return "gconf"+libNixName "gdk-2.0" = return "gtk"+libNixName "gdk-pixbuf-2.0" = return "gdk_pixbuf"+libNixName "gio-2.0" = return "glib"+libNixName "glib-2.0" = return "glib"+libNixName "GL" = return "mesa"+libNixName "GLU" = ["freeglut","mesa"]+libNixName "glut" = ["freeglut","mesa"]+libNixName "gnome-keyring-1" = return "gnome_keyring"+libNixName "gnome-keyring" = return "gnome_keyring"+libNixName "gobject-2.0" = return "glib"+libNixName "gstreamer-0.10" = return "gstreamer" libNixName "gstreamer-audio-0.10" = return "gstreamer-audio" libNixName "gstreamer-base-0.10" = return "gstreamer-base" libNixName "gstreamer-controller-0.10" = return "gstreamer-controller" libNixName "gstreamer-dataprotocol-0.10" = return "gstreamer-dataprotocol" libNixName "gstreamer-net-0.10" = return "gstreamer-net" libNixName "gstreamer-plugins-base-0.10" = return "gstreamer-plugins-base"-libNixName "gthread-2.0" = return "glib"-libNixName "gtk+-2.0" = return "gtk"-libNixName "gtkglext-1.0" = return "gtkglext"-libNixName "gtksourceview-2.0" = return "gtksourceview"-libNixName "icudata" = return "icu"-libNixName "icui18n" = return "icu"-libNixName "icuuc" = return "icu"-libNixName "idn" = return "libidn"-libNixName "IL" = return "libdevil"-libNixName "iw" = return "wirelesstools"-libNixName "jpeg" = return "libjpeg"-libNixName "libglade-2.0" = return "libglade"-libNixName "libgsasl" = return "gsasl"-libNixName "librsvg-2.0" = return "librsvg"-libNixName "libusb-1.0" = return "libusb"-libNixName "libxml-2.0" = return "libxml2"-libNixName "libzip" = return "libzip"-libNixName "m" = [] -- in stdenv-libNixName "ncursesw" = return "ncurses"-libNixName "panelw" = return "ncurses"-libNixName "pangocairo" = return "pango"-libNixName "pcre" = return "pcre"-libNixName "png" = return "libpng"-libNixName "poppler-glib" = return "popplerGlib"-libNixName "pq" = return "postgresql"-libNixName "pthread" = []-libNixName "sndfile" = return "libsndfile"-libNixName "sqlite3" = return "sqlite"-libNixName "ssl" = return "openssl"-libNixName "stdc++" = [] -- in stdenv-libNixName "webkit-1.0" = return "webkit"-libNixName "X11" = return "libX11"-libNixName "Xext" = return "libXext"-libNixName "xft" = return "libXft"-libNixName "Xi" = return "libXi"-libNixName "xml2" = return "libxml2"-libNixName "Xrandr" = return "libXrandr"-libNixName "Xss" = return "libXScrnSaver"-libNixName "Xtst" = return "libXtst"-libNixName "zmq" = return "zeromq"-libNixName "z" = return "zlib"-libNixName x = return x+libNixName "gthread-2.0" = return "glib"+libNixName "gtk+-2.0" = return "gtk"+libNixName "gtkglext-1.0" = return "gtkglext"+libNixName "gtksourceview-2.0" = return "gtksourceview"+libNixName "icudata" = return "icu"+libNixName "icui18n" = return "icu"+libNixName "icuuc" = return "icu"+libNixName "idn" = return "libidn"+libNixName "IL" = return "libdevil"+libNixName "iw" = return "wirelesstools"+libNixName "jpeg" = return "libjpeg"+libNixName "libglade-2.0" = return "libglade"+libNixName "libgsasl" = return "gsasl"+libNixName "librsvg-2.0" = return "librsvg"+libNixName "libusb-1.0" = return "libusb"+libNixName "libxml-2.0" = return "libxml2"+libNixName "libzip" = return "libzip"+libNixName "libzmq" = return "zeromq"+libNixName "m" = [] -- in stdenv+libNixName "ncursesw" = return "ncurses"+libNixName "panelw" = return "ncurses"+libNixName "pangocairo" = return "pango"+libNixName "pcre" = return "pcre"+libNixName "png" = return "libpng"+libNixName "poppler-glib" = return "popplerGlib"+libNixName "pq" = return "postgresql"+libNixName "pthread" = []+libNixName "sndfile" = return "libsndfile"+libNixName "sqlite3" = return "sqlite"+libNixName "ssl" = return "openssl"+libNixName "stdc++" = [] -- in stdenv+libNixName "webkit-1.0" = return "webkit"+libNixName "X11" = return "libX11"+libNixName "Xext" = return "libXext"+libNixName "xft" = return "libXft"+libNixName "Xi" = return "libXi"+libNixName "xml2" = return "libxml2"+libNixName "Xrandr" = return "libXrandr"+libNixName "Xss" = return "libXScrnSaver"+libNixName "Xtst" = return "libXtst"+libNixName "zmq" = return "zeromq"+libNixName "z" = return "zlib"+libNixName x = return x -- | Map build tool names to Nix attribute names. buildToolNixName :: String -> [String]-buildToolNixName "cabal" = return "cabalInstall"-buildToolNixName "gtk2hsC2hs" = return "gtk2hsBuildtools"-buildToolNixName "gtk2hsHookGenerator" = return "gtk2hsBuildtools"-buildToolNixName "gtk2hsTypeGen" = return "gtk2hsBuildtools"-buildToolNixName x = return (toNixName x)+buildToolNixName "cabal" = return "cabalInstall"+buildToolNixName "gtk2hsC2hs" = return "gtk2hsBuildtools"+buildToolNixName "gtk2hsHookGenerator" = return "gtk2hsBuildtools"+buildToolNixName "gtk2hsTypeGen" = return "gtk2hsBuildtools"+buildToolNixName x = return (toNixName x)
src/Cabal2Nix/PostProcess.hs view
@@ -21,6 +21,7 @@ | pname == "doctest" = deriv { runHaddock = True, phaseOverrides = doctestNoHaddock } | pname == "editline" = deriv { extraLibs = "libedit":extraLibs } | pname == "epic" = deriv { extraLibs = "gmp":"boehmgc":extraLibs, buildTools = "happy":buildTools }+ | pname == "either" = deriv { runHaddock = True, phaseOverrides = eitherNoHaddock } | pname == "ghc-heap-view" = deriv { phaseOverrides = ghciPostInstall } | pname == "ghc-mod" = deriv { phaseOverrides = ghcModPostInstall, buildTools = "emacs":buildTools } | pname == "ghc-paths" = deriv { phaseOverrides = ghcPathsPatches }@@ -180,6 +181,7 @@ , " cp dist/build/git-annex/git-annex git-annex" , " ./git-annex test" , "'';"+ , "propagatedUserEnvPkgs = [git lsof];" ] ghciPostInstall :: String@@ -221,7 +223,10 @@ trifectaPostPatch = unlines [ "postPatch = ''" , " substituteInPlace trifecta.cabal \\"- , " --replace \"blaze-html >= 0.5 && < 0.6,\" \"blaze-html >= 0.5 && < 0.7,\" \\"+ , " --replace \"blaze-html >= 0.5 && < 0.6,\" \"blaze-html >= 0.5 && < 0.8,\" \\"+ , " --replace \"blaze-html >= 0.5 && < 0.7,\" \"blaze-html >= 0.5 && < 0.8,\" \\"+ , " --replace \"blaze-markup >= 0.5 && < 0.6,\" \"blaze-markup >= 0.5 && < 0.7,\" \\"+ , " --replace \"hashable >= 1.2.1 && < 1.3,\" \"hashable >= 1.1 && < 1.3,\" \\" , " --replace \"hashable >= 1.2 && < 1.3,\" \"hashable >= 1.1 && < 1.3,\" \\" , " --replace \"fingertree >= 0.0.1 && < 0.1,\" \"fingertree >= 0.0.1 && < 0.2,\" \\" , " --replace \"comonad == 3.*,\" \"comonad >= 3 && < 5,\" \\"@@ -235,3 +240,6 @@ cabal2nixDoCheckHook :: String cabal2nixDoCheckHook = "doCheck = self.stdenv.lib.versionOlder \"7.6\" self.ghc.version;"++eitherNoHaddock :: String+eitherNoHaddock = "noHaddock = self.stdenv.lib.versionOlder self.ghc.version \"7.6\";"