ghcjs: cleanup

This commit is contained in:
Charles Strahan 2014-12-27 18:48:12 -05:00
parent f36fabb389
commit 347a9674c1
16 changed files with 78 additions and 111 deletions

View File

@ -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
''}

View File

@ -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]) ++

View File

@ -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
];
})

View File

@ -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)";

View File

@ -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/";

View File

@ -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 ];
})

View File

@ -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;
};
})

View File

@ -1,3 +1,5 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, binary, text }:
cabal.mkDerivation (self: {

View File

@ -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;
};
})

View File

@ -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;
};
})

View File

@ -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
'';

View File

@ -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";

View File

@ -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 = ''

View File

@ -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 '<nixpkgs>' -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;

View File

@ -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 {};