From 347a9674c1b7c56eba2ff1653ba46a94d56db963 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 18:48:12 -0500 Subject: [PATCH] ghcjs: cleanup --- pkgs/build-support/cabal/default.nix | 3 +- pkgs/build-support/cabal/ghcjs.nix | 2 +- .../libraries/haskell/Cabal/1.22.0.0.nix | 26 ++++++++++++ .../haskell/dependent-map/default.nix | 3 -- .../libraries/haskell/derive/default.nix | 2 +- .../libraries/haskell/ghcjs-prim/default.nix | 12 ++++++ .../haskell/lens/{4.2.nix => default.nix} | 0 .../libraries/haskell/old-time/1.1.0.2.nix | 12 ------ .../libraries/haskell/text-binary/default.nix | 2 + .../haskell/transformers-compat/0.3.3.3.nix | 14 ------- .../tools/haskell/Cabal-ghcjs/default.nix | 42 ------------------- .../tools/haskell/ghcjs/default.nix | 30 ++++++------- pkgs/development/tools/misc/cpphs/default.nix | 6 ++- .../cabal-install/1.22.0.0.nix} | 13 +++--- pkgs/top-level/haskell-defaults.nix | 8 ++-- pkgs/top-level/haskell-packages.nix | 14 +++---- 16 files changed, 78 insertions(+), 111 deletions(-) create mode 100644 pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix create mode 100644 pkgs/development/libraries/haskell/ghcjs-prim/default.nix rename pkgs/development/libraries/haskell/lens/{4.2.nix => default.nix} (100%) delete mode 100644 pkgs/development/libraries/haskell/old-time/1.1.0.2.nix delete mode 100644 pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix delete mode 100644 pkgs/development/tools/haskell/Cabal-ghcjs/default.nix rename pkgs/{development/tools/haskell/cabal-install-ghcjs/default.nix => tools/package-management/cabal-install/1.22.0.0.nix} (68%) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index c3d26db74d3..0243fcff099 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -298,7 +298,8 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) '' for exe in "$out/bin/"* ; do - install_name_tool -add_rpath $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe || true # Ignore failures, which seem to be due to hitting bash scripts rather than binaries + install_name_tool -add_rpath \ + $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe done ''} diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 81728ff6397..2babcf31084 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -82,7 +82,7 @@ in # default buildInputs are just ghc, if more buildInputs are required # buildInputs can be extended by the client by using extraBuildInputs, # but often propagatedBuildInputs is preferable anyway - buildInputs = [ghc ghc.ghc.parent.CabalGhcjs] ++ self.extraBuildInputs; + buildInputs = [ghc ghc.ghc.parent.Cabal_1_22_0_0] ++ self.extraBuildInputs; extraBuildInputs = self.buildTools ++ (optionals self.doCheck self.testDepends) ++ (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++ diff --git a/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix b/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix new file mode 100644 index 00000000000..5de766529be --- /dev/null +++ b/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix @@ -0,0 +1,26 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "Cabal"; + version = "1.22.0.0"; + src = fetchgit { + url = git://github.com/haskell/cabal.git; + rev = "699d4df12e1ec75e9100b521fb3690eaa6986635"; + sha256 = "112wz0mq7b0hvlj69imnwja2n4kv75m49yy5y8924gik9801zjba"; + }; + preConfigure = "cd Cabal"; + + doCheck = false; + noHaddock = true; + + buildDepends = [ + filepath HTTP mtl network random stm time zlib QuickCheck + ]; + testDepends = [ + filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; +}) diff --git a/pkgs/development/libraries/haskell/dependent-map/default.nix b/pkgs/development/libraries/haskell/dependent-map/default.nix index 36f42d7d8e5..0270139c383 100644 --- a/pkgs/development/libraries/haskell/dependent-map/default.nix +++ b/pkgs/development/libraries/haskell/dependent-map/default.nix @@ -7,9 +7,6 @@ cabal.mkDerivation (self: { version = "0.1.1.2"; sha256 = "1g8mq8189c6wr1rik70019gqrnk84c613x9cn5383p7hhfyc0rnn"; buildDepends = [ dependentSum ]; - preConfigure = '' - sed -i 's/^.*ghc-options:.*$//' *.cabal - ''; meta = { homepage = "https://github.com/mokus0/dependent-map"; description = "Dependent finite maps (partial dependent products)"; diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix index d8537024052..5b8c5297316 100644 --- a/pkgs/development/libraries/haskell/derive/default.nix +++ b/pkgs/development/libraries/haskell/derive/default.nix @@ -9,7 +9,7 @@ cabal.mkDerivation (self: { isLibrary = true; isExecutable = true; buildDepends = [ - process filepath haskellSrcExts syb transformers uniplate + filepath haskellSrcExts syb transformers uniplate ]; meta = { homepage = "http://community.haskell.org/~ndm/derive/"; diff --git a/pkgs/development/libraries/haskell/ghcjs-prim/default.nix b/pkgs/development/libraries/haskell/ghcjs-prim/default.nix new file mode 100644 index 00000000000..04d73661e60 --- /dev/null +++ b/pkgs/development/libraries/haskell/ghcjs-prim/default.nix @@ -0,0 +1,12 @@ +{ cabal, primitive, fetchgit }: + +cabal.mkDerivation (self: { + pname = "ghcjs-prim"; + version = "0.1.0.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs-prim.git; + rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; + sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; + }; + buildDepends = [ primitive ]; +}) diff --git a/pkgs/development/libraries/haskell/lens/4.2.nix b/pkgs/development/libraries/haskell/lens/default.nix similarity index 100% rename from pkgs/development/libraries/haskell/lens/4.2.nix rename to pkgs/development/libraries/haskell/lens/default.nix diff --git a/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix b/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix deleted file mode 100644 index eab8e3e5c63..00000000000 --- a/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ cabal }: - -cabal.mkDerivation (self: { - pname = "old-time"; - version = "1.1.0.2"; - sha256 = "1nrqbpwxsmga13gcyn7bg25gkm61fmix07gm76d1f1i4impgqw1r"; - meta = { - description = "Time library"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/libraries/haskell/text-binary/default.nix b/pkgs/development/libraries/haskell/text-binary/default.nix index a1d274a6362..9e6205b7001 100644 --- a/pkgs/development/libraries/haskell/text-binary/default.nix +++ b/pkgs/development/libraries/haskell/text-binary/default.nix @@ -1,3 +1,5 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + { cabal, binary, text }: cabal.mkDerivation (self: { diff --git a/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix b/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix deleted file mode 100644 index c0343aa6be7..00000000000 --- a/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ cabal, transformers }: - -cabal.mkDerivation (self: { - pname = "transformers-compat"; - version = "0.3.3.3"; - sha256 = "18cqghf0gc97j9qnlfnwwhvfm8j4sk99rm0xv3bf6ml8slk7njx7"; - buildDepends = [ transformers ]; - meta = { - homepage = "http://github.com/ekmett/transformers-compat/"; - description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix deleted file mode 100644 index c228740a4fc..00000000000 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck -, random, stm, testFramework, testFrameworkHunit -, testFrameworkQuickcheck2, time, zlib, fetchgit -}: - -cabal.mkDerivation (self: { - pname = "Cabal"; - version = "7471c95f23"; - src = fetchgit { - url = git://github.com/ghcjs/cabal.git; - rev = "0a9531272ed50b4057e788005e3c6e5a7e2442bd"; # Must be from the ghcjs branch - sha256 = "212af6d134ff85b8046977c8754852e4048872d330ab2250b94cd51373328daa"; - }; - preConfigure = "cd Cabal"; - configureFlags = "--program-suffix=-js"; - - # jww (2014-05-31): Why is this failing? - # BuildDeps/InternalLibrary4: - # : [Failed] - # expected: 'setup install' should succeed - # output: "/private/var/folders/8h/tky3qz1d63l05l5jp_nzwzjr0000gn/T/nix-build-haskell-Cabal-ghcjs-ghc7.8.2-9e87d6a3-shared.drv-0/git-export/Cabal/tests/Setup configure --user -w /nix/store/v1gr2sk0117ycn9bmwyp3whgxqkbd5sl-ghc-7.8.2-wrapper/bin/ghc" in PackageTests/BuildDeps/InternalLibrary4/to-install - # Configuring InternalLibrary4-0.2... - # Setup: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible with - # Cabal. Use the flag --package-db to specify a package database (it can be used - # multiple times). - doCheck = false; - noHaddock = true; - - buildDepends = [ - filepath HTTP mtl network random stm time zlib QuickCheck - ]; - testDepends = [ - filepath HTTP HUnit mtl network QuickCheck stm testFramework - testFrameworkHunit testFrameworkQuickcheck2 time zlib - ]; - meta = { - homepage = "http://www.haskell.org/cabal/"; - description = "The command-line interface for Cabal and Hackage"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 0df3aecebc3..b6034916a6e 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -4,12 +4,13 @@ , haskellSrcExts, haskellSrcMeta, lens, optparseApplicative , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers -, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall +, vector, wlPprintText, yaml, fetchgit, Cabal, cabalInstall , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch -, automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring +, automake, libtool, gmp, base16Bytestring , cryptohash, executablePath, transformersCompat, haddockApi , haddock, hspec, xhtml, primitive, cacert, pkgs, ghc , coreutils +, ghcjsPrim }: let version = "0.1.0"; @@ -24,17 +25,16 @@ let rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; }; - # TOD: move this into haskell-packages proper - ghcjsPrim = cabal.mkDerivation (self: { - pname = "ghcjs-prim"; - version = "0.1.0.0"; - src = fetchgit { - url = git://github.com/ghcjs/ghcjs-prim.git; - rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; - sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; - }; - buildDepends = [ primitive ]; - }); + #ghcjsPrim = cabal.mkDerivation (self: { + # pname = "ghcjs-prim"; + # version = "0.1.0.0"; + # src = fetchgit { + # url = git://github.com/ghcjs/ghcjs-prim.git; + # rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; + # sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; + # }; + # buildDepends = [ primitive ]; + #}); in cabal.mkDerivation (self: rec { pname = "ghcjs"; inherit version; @@ -80,10 +80,10 @@ in cabal.mkDerivation (self: rec { chmod -R u+w $topDir/shims ''; postInstall = '' - PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ + PATH=$out/bin:${Cabal}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \ --dev \ - --with-cabal ${cabalInstallGhcjs}/bin/cabal-js \ + --with-cabal ${cabalInstall}/bin/cabal \ --with-gmp-includes ${gmp}/include \ --with-gmp-libraries ${gmp}/lib ''; diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index da43b134031..8167ae92416 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -1,4 +1,6 @@ -{ cabal, polyparse, oldTime }: +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, polyparse }: cabal.mkDerivation (self: { pname = "cpphs"; @@ -6,7 +8,7 @@ cabal.mkDerivation (self: { sha256 = "0ds712zabigswf3cljzh7f2ys4rl1fj2cf76lbw856adm8514gxc"; isLibrary = true; isExecutable = true; - buildDepends = [ oldTime polyparse ]; + buildDepends = [ polyparse ]; meta = { homepage = "http://projects.haskell.org/cpphs/"; description = "A liberalised re-implementation of cpp, the C pre-processor"; diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix b/pkgs/tools/package-management/cabal-install/1.22.0.0.nix similarity index 68% rename from pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix rename to pkgs/tools/package-management/cabal-install/1.22.0.0.nix index e1599080357..40a11de2b23 100644 --- a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix +++ b/pkgs/tools/package-management/cabal-install/1.22.0.0.nix @@ -1,23 +1,22 @@ -{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck +{ cabal, Cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck , random, stm, testFramework, testFrameworkHunit , testFrameworkQuickcheck2, time, zlib, fetchgit }: cabal.mkDerivation (self: { - pname = "cabal-install-ghcjs"; - version = CabalGhcjs.version; - src = CabalGhcjs.src; + pname = "cabal-install"; + version = Cabal.version; + src = Cabal.src; isLibrary = true; isExecutable = true; doCheck = false; - configureFlags = "--program-suffix=-js"; preConfigure = "cd cabal-install"; noHaddock = true; buildDepends = [ - CabalGhcjs filepath HTTP mtl network random stm time zlib + Cabal filepath HTTP mtl network random stm time zlib ]; testDepends = [ - CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework + Cabal filepath HTTP HUnit mtl network QuickCheck stm testFramework testFrameworkHunit testFrameworkQuickcheck2 time zlib ]; postInstall = '' diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 95520ee94af..777859b37fc 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -239,9 +239,9 @@ let parent = packages_ghc784.override { extension = self: super: { ghcjs = super.ghcjs.override { - Cabal = packages_ghc784.CabalGhcjs; + Cabal = packages_ghc784.Cabal_1_22_0_0; + cabalInstall = packages_ghc784.cabalInstall_1_22_0_0; }; - network = super.network_2_6_0_2; haddock = super.haddock.override { Cabal = null; }; @@ -255,8 +255,8 @@ # This is the list of packages that are built into a booted ghcjs installation # It can be generated with the command: # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'" - Cabal_1_21_0_0 = null; - Cabal = self.Cabal_1_21_0_0; + Cabal_1_20_0_2 = null; + Cabal = self.Cabal_1_22_0_0; aeson_0_8_0_0 = null; aeson = self.aeson_0_8_0_0; array_0_5_0_0 = null; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index abfa8f931ca..fa6dc32afa0 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -356,6 +356,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in Cabal_1_16_0_3 = callPackage ../development/libraries/haskell/Cabal/1.16.0.3.nix {}; Cabal_1_18_1_3 = callPackage ../development/libraries/haskell/Cabal/1.18.1.3.nix {}; Cabal_1_20_0_2 = callPackage ../development/libraries/haskell/Cabal/1.20.0.2.nix {}; + Cabal_1_22_0_0 = callPackage ../development/libraries/haskell/Cabal/1.22.0.0.nix {}; Cabal = null; # core package since forever cabalCargs = callPackage ../development/libraries/haskell/cabal-cargs {}; @@ -940,13 +941,14 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcjs = callPackage ../development/tools/haskell/ghcjs { Cabal = self.Cabal_1_18_1_3; - network = self.network_2_6_0_2; }; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; + ghcjsPrim = callPackage ../development/libraries/haskell/ghcjs-prim {}; + ghcMod = callPackage ../development/libraries/haskell/ghc-mod { inherit (pkgs) emacs; }; ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {}; @@ -1543,9 +1545,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in lazysmallcheck = callPackage ../development/libraries/haskell/lazysmallcheck {}; - lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; - lens_4_6_0_1 = callPackage ../development/libraries/haskell/lens/4.6.0.1.nix {}; - lens = self.lens_4_6_0_1; + lens = callPackage ../development/libraries/haskell/lens {}; lensAeson = callPackage ../development/libraries/haskell/lens-aeson {}; @@ -2994,8 +2994,6 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cake3 = callPackage ../development/tools/haskell/cake3 {}; - oldTime_1_1_0_2 = callPackage ../development/libraries/haskell/old-time/1.1.0.2.nix {}; - oldTime = null; # By default, use the built-in old-time library cpphs = callPackage ../development/tools/misc/cpphs {}; DrIFT = callPackage ../development/tools/haskell/DrIFT {}; @@ -3168,11 +3166,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix { Cabal = self.Cabal_1_16_0_3; }; cabalInstall_1_18_0_3 = callPackage ../tools/package-management/cabal-install/1.18.0.3.nix { Cabal = self.Cabal_1_18_1_3; }; cabalInstall_1_20_0_4 = callPackage ../tools/package-management/cabal-install/1.20.0.4.nix { Cabal = self.Cabal_1_20_0_2; }; + cabalInstall_1_22_0_0 = callPackage ../tools/package-management/cabal-install/1.22.0.0.nix { Cabal = self.Cabal_1_22_0_0; }; cabalInstall = self.cabalInstall_1_20_0_4; - CabalGhcjs = callPackage ../development/tools/haskell/Cabal-ghcjs {}; - cabalInstallGhcjs = callPackage ../development/tools/haskell/cabal-install-ghcjs {}; - codex = callPackage ../development/tools/haskell/codex {}; commandQq = callPackage ../development/libraries/haskell/command-qq {};