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) '' ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) ''
for exe in "$out/bin/"* ; do 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 done
''} ''}

View File

@ -82,7 +82,7 @@ in
# default buildInputs are just ghc, if more buildInputs are required # default buildInputs are just ghc, if more buildInputs are required
# buildInputs can be extended by the client by using extraBuildInputs, # buildInputs can be extended by the client by using extraBuildInputs,
# but often propagatedBuildInputs is preferable anyway # 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 ++ extraBuildInputs = self.buildTools ++
(optionals self.doCheck self.testDepends) ++ (optionals self.doCheck self.testDepends) ++
(if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++ (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"; version = "0.1.1.2";
sha256 = "1g8mq8189c6wr1rik70019gqrnk84c613x9cn5383p7hhfyc0rnn"; sha256 = "1g8mq8189c6wr1rik70019gqrnk84c613x9cn5383p7hhfyc0rnn";
buildDepends = [ dependentSum ]; buildDepends = [ dependentSum ];
preConfigure = ''
sed -i 's/^.*ghc-options:.*$//' *.cabal
'';
meta = { meta = {
homepage = "https://github.com/mokus0/dependent-map"; homepage = "https://github.com/mokus0/dependent-map";
description = "Dependent finite maps (partial dependent products)"; description = "Dependent finite maps (partial dependent products)";

View File

@ -9,7 +9,7 @@ cabal.mkDerivation (self: {
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
process filepath haskellSrcExts syb transformers uniplate filepath haskellSrcExts syb transformers uniplate
]; ];
meta = { meta = {
homepage = "http://community.haskell.org/~ndm/derive/"; 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, binary, text }:
cabal.mkDerivation (self: { 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 , haskellSrcExts, haskellSrcMeta, lens, optparseApplicative
, parallel, safe, shelly, split, stringsearch, syb, systemFileio , parallel, safe, shelly, split, stringsearch, syb, systemFileio
, systemFilepath, tar, terminfo, textBinary, unorderedContainers , 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 , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch
, automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring , automake, libtool, gmp, base16Bytestring
, cryptohash, executablePath, transformersCompat, haddockApi , cryptohash, executablePath, transformersCompat, haddockApi
, haddock, hspec, xhtml, primitive, cacert, pkgs, ghc , haddock, hspec, xhtml, primitive, cacert, pkgs, ghc
, coreutils , coreutils
, ghcjsPrim
}: }:
let let
version = "0.1.0"; version = "0.1.0";
@ -24,17 +25,16 @@ let
rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6";
sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4";
}; };
# TOD: move this into haskell-packages proper #ghcjsPrim = cabal.mkDerivation (self: {
ghcjsPrim = cabal.mkDerivation (self: { # pname = "ghcjs-prim";
pname = "ghcjs-prim"; # version = "0.1.0.0";
version = "0.1.0.0"; # src = fetchgit {
src = fetchgit { # url = git://github.com/ghcjs/ghcjs-prim.git;
url = git://github.com/ghcjs/ghcjs-prim.git; # rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84";
rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; # sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz";
sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; # };
}; # buildDepends = [ primitive ];
buildDepends = [ primitive ]; #});
});
in cabal.mkDerivation (self: rec { in cabal.mkDerivation (self: rec {
pname = "ghcjs"; pname = "ghcjs";
inherit version; inherit version;
@ -80,10 +80,10 @@ in cabal.mkDerivation (self: rec {
chmod -R u+w $topDir/shims chmod -R u+w $topDir/shims
''; '';
postInstall = '' 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 \ env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \
--dev \ --dev \
--with-cabal ${cabalInstallGhcjs}/bin/cabal-js \ --with-cabal ${cabalInstall}/bin/cabal \
--with-gmp-includes ${gmp}/include \ --with-gmp-includes ${gmp}/include \
--with-gmp-libraries ${gmp}/lib --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: { cabal.mkDerivation (self: {
pname = "cpphs"; pname = "cpphs";
@ -6,7 +8,7 @@ cabal.mkDerivation (self: {
sha256 = "0ds712zabigswf3cljzh7f2ys4rl1fj2cf76lbw856adm8514gxc"; sha256 = "0ds712zabigswf3cljzh7f2ys4rl1fj2cf76lbw856adm8514gxc";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ oldTime polyparse ]; buildDepends = [ polyparse ];
meta = { meta = {
homepage = "http://projects.haskell.org/cpphs/"; homepage = "http://projects.haskell.org/cpphs/";
description = "A liberalised re-implementation of cpp, the C pre-processor"; 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 , random, stm, testFramework, testFrameworkHunit
, testFrameworkQuickcheck2, time, zlib, fetchgit , testFrameworkQuickcheck2, time, zlib, fetchgit
}: }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "cabal-install-ghcjs"; pname = "cabal-install";
version = CabalGhcjs.version; version = Cabal.version;
src = CabalGhcjs.src; src = Cabal.src;
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
doCheck = false; doCheck = false;
configureFlags = "--program-suffix=-js";
preConfigure = "cd cabal-install"; preConfigure = "cd cabal-install";
noHaddock = true; noHaddock = true;
buildDepends = [ buildDepends = [
CabalGhcjs filepath HTTP mtl network random stm time zlib Cabal filepath HTTP mtl network random stm time zlib
]; ];
testDepends = [ testDepends = [
CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework Cabal filepath HTTP HUnit mtl network QuickCheck stm testFramework
testFrameworkHunit testFrameworkQuickcheck2 time zlib testFrameworkHunit testFrameworkQuickcheck2 time zlib
]; ];
postInstall = '' postInstall = ''

View File

@ -239,9 +239,9 @@
let parent = packages_ghc784.override { let parent = packages_ghc784.override {
extension = self: super: { extension = self: super: {
ghcjs = super.ghcjs.override { 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 { haddock = super.haddock.override {
Cabal = null; Cabal = null;
}; };
@ -255,8 +255,8 @@
# This is the list of packages that are built into a booted ghcjs installation # This is the list of packages that are built into a booted ghcjs installation
# It can be generated with the command: # 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;/'" # 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_1_20_0_2 = null;
Cabal = self.Cabal_1_21_0_0; Cabal = self.Cabal_1_22_0_0;
aeson_0_8_0_0 = null; aeson_0_8_0_0 = null;
aeson = self.aeson_0_8_0_0; aeson = self.aeson_0_8_0_0;
array_0_5_0_0 = null; 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_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_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_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 Cabal = null; # core package since forever
cabalCargs = callPackage ../development/libraries/haskell/cabal-cargs {}; 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 { ghcjs = callPackage ../development/tools/haskell/ghcjs {
Cabal = self.Cabal_1_18_1_3; Cabal = self.Cabal_1_18_1_3;
network = self.network_2_6_0_2;
}; };
ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {};
ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
ghcjsPrim = callPackage ../development/libraries/haskell/ghcjs-prim {};
ghcMod = callPackage ../development/libraries/haskell/ghc-mod { inherit (pkgs) emacs; }; ghcMod = callPackage ../development/libraries/haskell/ghc-mod { inherit (pkgs) emacs; };
ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {}; 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 {}; lazysmallcheck = callPackage ../development/libraries/haskell/lazysmallcheck {};
lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; lens = callPackage ../development/libraries/haskell/lens {};
lens_4_6_0_1 = callPackage ../development/libraries/haskell/lens/4.6.0.1.nix {};
lens = self.lens_4_6_0_1;
lensAeson = callPackage ../development/libraries/haskell/lens-aeson {}; 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 {}; 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 {}; cpphs = callPackage ../development/tools/misc/cpphs {};
DrIFT = callPackage ../development/tools/haskell/DrIFT {}; 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_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_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_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; 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 {}; codex = callPackage ../development/tools/haskell/codex {};
commandQq = callPackage ../development/libraries/haskell/command-qq {}; commandQq = callPackage ../development/libraries/haskell/command-qq {};