cabal2nix 2.14.1 → 2.14.2
raw patch · 6 files changed
+38/−29 lines, 6 filesdep ~Cabaldep ~basedep ~distribution-nixpkgsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: Cabal, base, distribution-nixpkgs
API changes (from Hackage documentation)
Files
- cabal2nix.cabal +8/−8
- hackage2nix/Main.hs +5/−9
- src/Distribution/Nixpkgs/Haskell/FromCabal.hs +4/−4
- src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs +1/−0
- src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs +7/−5
- src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs +13/−3
cabal2nix.cabal view
@@ -1,5 +1,5 @@ name: cabal2nix-version: 2.14.1+version: 2.14.2 synopsis: Convert Cabal files into Nix build instructions. description: Convert Cabal files into Nix build instructions. Users of Nix can install the latest@@ -74,7 +74,7 @@ Александр Цамутали maintainer: Peter Simons <simons@cryp.to> stability: stable-tested-with: GHC == 8.4.4, GHC == 8.6.3+tested-with: GHC == 8.6.3 category: Distribution, Nix homepage: https://github.com/nixos/cabal2nix#readme bug-reports: https://github.com/nixos/cabal2nix/issues@@ -107,15 +107,15 @@ Distribution.Nixpkgs.Haskell.PackageSourceSpec other-modules: Paths_cabal2nix hs-source-dirs: src- build-depends: base < 5- , Cabal > 2.2+ build-depends: base > 4.11+ , Cabal > 2.4 , aeson , ansi-wl-pprint , bytestring , containers , deepseq >= 1.4 , directory- , distribution-nixpkgs >= 1.1.1+ , distribution-nixpkgs >= 1.2 , filepath , hackage-db >= 2.0.1 , hopenssl >= 2@@ -159,13 +159,13 @@ Paths_cabal2nix hs-source-dirs: hackage2nix build-depends: base < 5- , Cabal > 2.2+ , Cabal > 2.4 , aeson , bytestring , cabal2nix , containers , directory- , distribution-nixpkgs >= 1.1.1+ , distribution-nixpkgs >= 1.2 , filepath , hopenssl >= 2 , language-nix@@ -185,7 +185,7 @@ main-is: Main.hs hs-source-dirs: test build-depends: base- , Cabal > 2.2+ , Cabal > 2.4 , cabal2nix , containers , directory
hackage2nix/Main.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE CPP #-} module Main ( main ) where @@ -15,9 +14,6 @@ import Data.Map.Strict ( Map ) import qualified Data.Map.Strict as Map import Data.Maybe-#if !MIN_VERSION_base(4,11,0)-import Data.Monoid-#endif import Data.Set ( Set ) import qualified Data.Set as Set import Data.String@@ -30,7 +26,7 @@ import Distribution.Nixpkgs.Meta import Distribution.Nixpkgs.PackageMap import Distribution.Package-import Distribution.PackageDescription hiding ( options, buildDepends, extraLibs, buildTools, homepage )+import Distribution.PackageDescription hiding ( options, extraLibs, buildTools, homepage ) import Distribution.System import Distribution.Text import Distribution.Version@@ -75,13 +71,13 @@ CLI {..} <- execParser pinfo config <- readConfiguration (nixpkgsRepository </> configFile)- nixpkgs <- readNixpkgPackageMap nixpkgsRepository Nothing+ nixpkgs <- readNixpkgPackageMap ["-f", nixpkgsRepository, "--arg", "config", "{ allowAliases = false; }"] preferredVersions <- readPreferredVersions (fromMaybe (hackageRepository </> "preferred-versions") preferredVersionsFile) let fixup = Map.delete "acme-everything" -- TODO: https://github.com/NixOS/cabal2nix/issues/164 . Map.delete "som" -- TODO: https://github.com/NixOS/cabal2nix/issues/164 . Map.delete "type" -- TODO: https://github.com/NixOS/cabal2nix/issues/163 . Map.delete "control-invariants" -- TODO: depends on "assert"- . over (at ("hermes")) ((fmap (set (contains "1.3.4.3") False))) -- TODO: https://github.com/haskell/hackage-server/issues/436+ . over (at "hermes") (fmap (set (contains "1.3.4.3") False)) -- TODO: https://github.com/haskell/hackage-server/issues/436 hackage <- fixup <$> readHackage hackageRepository let hackagePackagesFile :: FilePath@@ -137,7 +133,7 @@ meta <- readPackageMeta hackageRepository pkgId let isInDefaultPackageSet :: Bool- isInDefaultPackageSet = maybe False (== v) (Map.lookup name generatedDefaultPackageSet)+ isInDefaultPackageSet = (== Just v) (Map.lookup name generatedDefaultPackageSet) tarballSHA256 :: SHA256Hash tarballSHA256 = fromMaybe (error (display pkgId ++ ": meta data has no hash for the tarball"))@@ -159,7 +155,7 @@ & metaSection.homepage .~ "" overrides :: Doc- overrides = fcat $ punctuate space [ disp b <> semi | b <- Set.toList ((view (dependencies . each) drv) `Set.union` view extraFunctionArgs drv), not (isFromHackage b) ]+ overrides = fcat $ punctuate space [ disp b <> semi | b <- Set.toList (view (dependencies . each) drv `Set.union` view extraFunctionArgs drv), not (isFromHackage b) ] return $ render $ nest 2 $ hang (doubleQuotes (text attr) <+> equals <+> text "callPackage") 2 (parens (pPrint drv)) <+> (braces overrides <> semi)
src/Distribution/Nixpkgs/Haskell/FromCabal.hs view
@@ -136,10 +136,10 @@ resolveInNixpkgs :: Identifier -> Binding resolveInNixpkgs i | i `elem` ["clang","lldb","llvm"] = binding # (i, path # ["self","llvmPackages",i]) -- TODO: evil!- | i == "gtk2" = binding # (i, path # ["pkgs","gnome2","gtk"])- | i == "gtk3" = binding # (i, path # ["pkgs","gnome3","gtk"])- | i == "gtksourceview3" = binding # (i, path # ["pkgs","gnome3","gtksourceview"])- | i == "vte_291" = binding # (i, path # ["pkgs","gnome3","vte"])+ | i == "gtk2" = binding # (i, path # ["pkgs","gtk2"]) -- TODO: these cases should not be necessary+ | i == "gtk3" = binding # (i, path # ["pkgs","gtk3"])+ | i == "gtksourceview3" = binding # (i, path # ["pkgs","gtksourceview3"])+ | i == "vte_291" = binding # (i, path # ["pkgs","vte"]) | Just p <- nixpkgsResolver i, init (view (reference . path) p) `Set.member` goodScopes = p | otherwise = bindNull i
src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs view
@@ -26,6 +26,7 @@ , enable "dbus" , disable "debuglocks" , enable "magicmime"+ , disable "networkbsd" , enable "pairing" , enable "production" , enable "s3"
src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs view
@@ -55,7 +55,7 @@ libNixName "GLU" = ["libGLU","libGL"] libNixName "glut" = ["freeglut","libGLU","libGL"] libNixName "gnome-keyring" = return "gnome-keyring"-libNixName "gnome-keyring-1" = return "libgnome_keyring"+libNixName "gnome-keyring-1" = return "libgnome-keyring" libNixName "gnome-vfs-2.0" = return "gnome-vfs" libNixName "gnome-vfs-module-2.0" = return "gnome-vfs_module" libNixName "gobject-2.0" = return "glib"@@ -84,8 +84,8 @@ libNixName "Imlib2" = return "imlib2" libNixName "iw" = return "wirelesstools" libNixName "jack" = return "libjack2"-libNixName "javascriptcoregtk-3.0" = return "webkitgtk24x-gtk3" -- These are the old APIs, of which 2.4 is the last provider, so map directly to that.-libNixName "javascriptcoregtk-4.0" = return "webkitgtk" -- This is the current API, so let it reference an alias for the latest version.+libNixName "javascriptcoregtk-3.0" = return "webkitgtk24x-gtk3" -- These are the old APIs, of which 2.4 is the last provider, so map directly to that.+libNixName "javascriptcoregtk-4.0" = return "webkitgtk" libNixName "jpeg" = return "libjpeg" libNixName "jvm" = return "jdk" libNixName "lapack" = return "liblapack"@@ -94,6 +94,7 @@ libNixName "libavutil" = return "ffmpeg" libNixName "libgsasl" = return "gsasl" libNixName "libpcre" = return "pcre"+libNixName "libqrencode" = return "qrencode" libNixName "libR" = return "R" libNixName "libsoup-gnome-2.4" = return "libsoup" libNixName "libsystemd" = return "systemd"@@ -153,8 +154,9 @@ libNixName "wayland-cursor" = return "wayland" libNixName "wayland-egl" = return "libGL" libNixName "wayland-server" = return "wayland"-libNixName "webkit2gtk-4.0" = return "webkitgtk" -- This is the current API, so let it reference an alias for the latest version.-libNixName "webkit2gtk-web-extension-4.0" = return "webkitgtk-web-extension" -- This package doesn't actually exist in nixpkgs at present.+libNixName "webkit2gtk" = return "webkitgtk"+libNixName "webkit2gtk-4.0" = return "webkitgtk"+libNixName "webkit2gtk-web-extension-4.0" = return "webkitgtk" libNixName "webkitgtk-3.0" = return "webkitgtk24x-gtk3" -- These are the old APIs, of which 2.4 is the last provider, so map directly to that libNixName "X11" = return "libX11" libNixName "x11" = return "xlibsWrapper"
src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs view
@@ -148,7 +148,8 @@ , ("numeric-qq", set doCheck False) -- test suite doesn't finish even after 1+ days , ("opencv", opencvOverrides) , ("pandoc >= 1.16.0.2 && < 2.5", set doCheck False) -- https://github.com/jgm/pandoc/issues/2709 and https://github.com/fpco/stackage/issues/1332- , ("pandoc", pandocOverrides)+ , ("pandoc < 2.6", pandocPre26Overrides)+ , ("pandoc >= 2.6", pandocOverrides) , ("pandoc-citeproc", set doCheck False) -- https://github.com/jgm/pandoc-citeproc/issues/369 , ("purescript", set doCheck False) -- test suite doesn't cope with Nix build env , ("proto-lens-protobuf-types", set (libraryDepends . tool . contains (pkg "protobuf")) True)@@ -383,11 +384,20 @@ , "pkgs.xorg.libXmu" ] -pandocOverrides :: Derivation -> Derivation-pandocOverrides = set phaseOverrides postInstall+pandocPre26Overrides :: Derivation -> Derivation+pandocPre26Overrides = set phaseOverrides postInstall where postInstall = unlines [ "postInstall = ''" , " mkdir -p $out/share" , " mv $data/*/*/man $out/share/"+ , "'';"+ ]++pandocOverrides :: Derivation -> Derivation+pandocOverrides = set phaseOverrides postInstall+ where+ postInstall = unlines [ "postInstall = ''"+ , " mkdir -p $out/share/man/man1"+ , " mv \"man/\"*.1 $out/share/man/man1/" , "'';" ]