Merge branch 'master' into staging.

This commit is contained in:
Peter Simons
2015-01-19 18:41:17 +01:00
184 changed files with 9526 additions and 3808 deletions

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchgit, python }:
let
tag = "1.21.0";
tag = "1.29.3";
in
stdenv.mkDerivation rec {
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
srcFC = fetchgit {
url = git://github.com/kripken/emscripten-fastcomp;
rev = "refs/tags/${tag}";
sha256 = "0mcxzg2cfg0s1vfm3bh1ar4xsddb6xkv1dsdbgnpx38lbj1mvfs1";
sha256 = "ab44554dc43eee5552ea04c134a5aaff2cd32f6f6528f58a24025bcd8fd1d46e";
};
srcFL = fetchgit {
url = git://github.com/kripken/emscripten-fastcomp-clang;
rev = "refs/tags/${tag}";
sha256 = "0s2jcn36d236cfpryjpgaazjp3cg83d0h78g6kk1j6vdppv3vgnp";
sha256 = "cc6dd704f5eba64fda931833479003bf3c8d9cf781bbaac3aa22a7b2644ccb26";
};
buildInputs = [ python ];

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchgit, emscriptenfastcomp, python, nodejs, closurecompiler, jre }:
let
tag = "1.21.0";
tag = "1.29.3";
in
stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
src = fetchgit {
url = git://github.com/kripken/emscripten;
rev = "refs/tags/${tag}";
sha256 = "0y17ab4nhd3521b50sv2i2667w0rlcnmlkpkgw5j3fsh8awxgf32";
sha256 = "7f65d1d5cc1c1866554cd79ff83f87fc72a7df59cf1dfd6481e3f0aed5c7dc1f";
};
buildCommand = ''

View File

@@ -1,103 +0,0 @@
{stdenv, fetchurl, perl, libedit, ncurses, gmp}:
stdenv.mkDerivation rec {
version = "6.10.1";
name = "ghc-${version}-binary";
src =
if stdenv.system == "i686-linux" then
fetchurl {
# This binary requires libedit.so.0 (rather than libedit.so.2).
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
sha256 = "18l0vwlf7y86s65klpdvz4ccp8kydvcmyh03c86hld8jvx16q7zz";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
# Idem.
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
sha256 = "14jvvn333i36wm7mmvi47jr93f5hxrw1h2dpjvqql0rp00svhzzg";
}
else if stdenv.system == "i686-darwin" then
fetchurl {
# Idem.
url = "http://haskell.org/ghc/dist/${version}/maeder/ghc-${version}-i386-apple-darwin.tar.bz2";
sha256 = "0lax61cfzxkrjb7an3magdax6c8fygsirpw9qfmc651k2sfby1mq";
}
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl];
postUnpack =
# Strip is harmful, see also below. It's important that this happens
# first. The GHC Cabal build system makes use of strip by default and
# has hardcoded paths to /usr/bin/strip in many places. We replace
# those below, making them point to our dummy script.
''
mkdir "$TMP/bin"
for i in strip; do
echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
chmod +x "$TMP/bin/$i"
done
PATH="$TMP/bin:$PATH"
'' +
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
(if stdenv.isLinux then ''
find . -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
'' else "");
configurePhase = ''
${if stdenv.isDarwin then "export DYLD_LIBRARY_PATH=${gmp}/lib" else ""}
cp $(type -P pwd) utils/pwd/pwd
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
'';
# Stripping combined with patchelf breaks the executables (they die
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
dontStrip = true;
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
buildPhase = "true";
# The binaries for Darwin use frameworks, so fake those frameworks,
# and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
# that the executables work with no special setup.
postInstall =
(if stdenv.isDarwin then
''
mv $out/bin $out/bin-orig
mkdir $out/bin
for i in $(cd $out/bin-orig && ls); do
echo "#! $SHELL -e" >> $out/bin/$i
echo "export DYLD_LIBRARY_PATH=\"${gmp}/lib:${libedit}/lib\"" >> $out/bin/$i
echo "exec $out/bin-orig/$i \"\$@\"" >> $out/bin/$i
chmod +x $out/bin/$i
done
'' else "")
+
''
# bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
'';
meta.license = stdenv.lib.licenses.bsd3;
meta.platforms = ["i686-darwin" "x86_64-linux" "i686-linux"];
}

View File

@@ -1,59 +0,0 @@
{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.10.1";
name = "ghc-${version}";
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "16q08cxxsmh4hgjhvkl739pc1hh81gljycfq1d2z6m1ld3jpbi22";
};
buildInputs = [ghc libedit perl gmp];
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
passthru = {
corePackages = [
[ "Cabal" "1.6.0.1" ]
[ "array" "0.2.0.0" ]
[ "base" "3.0.3.0" ]
[ "base" "4.0.0.0" ]
[ "bytestring" "0.9.1.4" ]
[ "containers" "0.2.0.0" ]
[ "directory" "1.0.0.2" ]
[ "editline" "0.2.1.0" ]
[ "filepath" "1.1.0.1" ]
[ "(ghc" "6.10.1)" ]
[ "ghc-prim" "0.1.0.0" ]
[ "haddock" "2.3.0" ]
[ "haskell98" "1.0.1.0" ]
[ "hpc" "0.5.0.2" ]
[ "integer" "0.1.0.0" ]
[ "old-locale" "1.0.0.1" ]
[ "old-time" "1.0.0.1" ]
[ "packedstring" "0.1.0.1" ]
[ "pretty" "1.0.1.0" ]
[ "process" "1.0.1.0" ]
[ "random" "1.0.0.1" ]
[ "rts" "1.0" ]
[ "syb" "0.1.0.0" ]
[ "template-haskell" "2.3.0.0" ]
[ "unix" "2.3.1.0" ]
];
};
}

View File

@@ -1,58 +0,0 @@
{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.10.2";
name = "ghc-${version}";
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "0q3wgp8svfl54kpyp55a1kh63cni5vzz811hqjsps84jdg0lg56m";
};
buildInputs = [ghc libedit perl gmp];
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
passthru = {
corePackages = [
[ "Cabal" "1.6.0.3" ]
[ "array" "0.2.0.0" ]
[ "base" "3.0.3.1" ]
[ "base" "4.1.0.0" ]
[ "bytestring" "0.9.1.4" ]
[ "containers" "0.2.0.1" ]
[ "directory" "1.0.0.3" ]
[ "editline" "0.2.1.0" ]
[ "filepath" "1.1.0.2" ]
[ "(ghc" "6.10.2)" ]
[ "ghc-prim" "0.1.0.0" ]
[ "haddock" "2.4.2" ]
[ "haskell98" "1.0.1.0" ]
[ "hpc" "0.5.0.3" ]
[ "integer" "0.1.0.1" ]
[ "old-locale" "1.0.0.1" ]
[ "old-time" "1.0.0.2" ]
[ "packedstring" "0.1.0.1" ]
[ "pretty" "1.0.1.0" ]
[ "process" "1.0.1.1" ]
[ "random" "1.0.0.1" ]
[ "rts" "1.0" ]
[ "syb" "0.1.0.1" ]
[ "template-haskell" "2.3.0.1" ]
[ "unix" "2.3.2.0" ]
];
};
}

View File

@@ -1,59 +0,0 @@
{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.10.3";
name = "ghc-${version}";
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "82d104ab8b24f27c3566b5693316c779427794a137237b3df925c55e20905893";
};
buildInputs = [ghc libedit perl gmp];
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
passthru = {
corePackages = [
[ "Cabal" "1.6.0.3" ]
[ "array" "0.2.0.0" ]
[ "base" "3.0.3.1" ]
[ "base" "4.1.0.0" ]
[ "bytestring" "0.9.1.4" ]
[ "containers" "0.2.0.1" ]
[ "directory" "1.0.0.3" ]
[ "extensible-exceptions" "0.1.1.0" ]
[ "filepath" "1.1.0.2" ]
[ "ghc" "6.10.3" ]
[ "ghc-prim" "0.1.0.0" ]
[ "haddock" "2.4.2" ]
[ "haskell98" "1.0.1.0" ]
[ "hpc" "0.5.0.3" ]
[ "integer" "0.1.0.1" ]
[ "old-locale" "1.0.0.1" ]
[ "old-time" "1.0.0.2" ]
[ "packedstring" "0.1.0.1" ]
[ "pretty" "1.0.1.0" ]
[ "process" "1.0.1.1" ]
[ "random" "1.0.0.1" ]
[ "rts" "1.0" ]
[ "syb" "0.1.0.1" ]
[ "template-haskell" "2.3.0.1" ]
[ "unix" "2.3.2.0" ]
];
};
}

View File

@@ -1,32 +0,0 @@
{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses, happy, alex}:
stdenv.mkDerivation rec {
version = "6.11.20090916";
name = "ghc-${version}";
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "${homepage}/dist/current/dist/${name}-src.tar.bz2";
sha256 = "a229c5052f401d03cdb77b8a96643eb80ba3faf1a9d0578c6fede1ce2a63cede";
};
buildInputs = [ghc libedit perl gmp happy alex];
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
preConfigure=[
"make distclean"
];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
}

View File

@@ -1,104 +0,0 @@
{stdenv, fetchurl, perl, ncurses, gmp}:
stdenv.mkDerivation rec {
version = "6.12.1";
name = "ghc-${version}-binary";
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux-n.tar.bz2";
sha256 = "15kp8mnm4ig6a7k1a1j12lyhdcs75myv6ralfywjzpl27pd77gmk";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux-n.tar.bz2";
sha256 = "08cb4bgyj23qsbqay4pqs81jha40njkx63ng7l827cydx2pm3qxs";
}
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl];
postUnpack =
# Strip is harmful, see also below. It's important that this happens
# first. The GHC Cabal build system makes use of strip by default and
# has hardcoded paths to /usr/bin/strip in many places. We replace
# those below, making them point to our dummy script.
''
mkdir "$TMP/bin"
for i in strip; do
echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
chmod +x "$TMP/bin/$i"
done
PATH="$TMP/bin:$PATH"
'' +
# We have to patch the GMP paths for the integer-gmp package.
''
find . -name integer-gmp.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
'' +
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
(if stdenv.isLinux then ''
find . -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
'';
# Stripping combined with patchelf breaks the executables (they die
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
dontStrip = true;
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
buildPhase = "true";
# The binaries for Darwin use frameworks, so fake those frameworks,
# and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
# that the executables work with no special setup.
postInstall =
(if stdenv.isDarwin then
''
mkdir -p $out/frameworks/GMP.framework/Versions/A
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
# !!! fix this
mv $out/bin $out/bin-orig
mkdir $out/bin
for i in $(cd $out/bin-orig && ls); do
echo \"#! $SHELL -e\" >> $out/bin/$i
echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i -framework-path $out/frameworks \\\"\\$@\\\"\" >> $out/bin/$i
chmod +x $out/bin/$i
done
'' else "")
+
''
# bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
# sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
'';
meta.license = stdenv.lib.licenses.bsd3;
meta.platforms = ["x86_64-linux" "i686-linux"];
}

View File

@@ -1,81 +0,0 @@
{stdenv, fetchurl, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.12.1";
name = "ghc-${version}";
src = fetchurl {
url = http://haskell.org/ghc/dist/6.12.1/ghc-6.12.1-src.tar.bz2;
sha256 = "0ajm4sypk4zgjp0m6i03fadyv5dm9vlqfnvsx1g94yk7vnd9zyfd";
};
buildInputs = [ghc perl gmp ncurses];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
];
inherit (ghc.meta) license platforms;
};
# TODO: requires a comment as to what it does and why it is needed.
passthru = {
corePackages = [
[ "Cabal" "1.8.0.2" ]
[ "array" "0.3.0.0" ]
[ "base" "3.0.3.2" ]
[ "base" "4.2.0.0" ]
[ "bin-package-db" "0.0.0.0" ]
[ "bytestring" "0.9.1.5" ]
[ "containers" "0.3.0.0" ]
[ "directory" "1.0.1.0" ]
[ "dph-base" "0.4.0" ]
[ "dph-par" "0.4.0" ]
[ "dph-prim-interface" "0.4.0" ]
[ "dph-prim-par" "0.4.0" ]
[ "dph-prim-seq" "0.4.0" ]
[ "dph-seq" "0.4.0" ]
[ "extensible-exceptions" "0.1.1.1" ]
[ "ffi" "1.0" ]
[ "filepath" "1.1.0.3" ]
[ "ghc" "6.12.1" ]
[ "ghc-binary" "0.5.0.2" ]
[ "ghc-prim" "0.2.0.0" ]
[ "haskell98" "1.0.1.1" ]
[ "hpc" "0.5.0.4" ]
[ "integer-gmp" "0.2.0.0" ]
[ "old-locale" "1.0.0.2" ]
[ "old-time" "1.0.0.3" ]
[ "pretty" "1.0.1.1" ]
[ "process" "1.0.1.2" ]
[ "random" "1.0.0.2" ]
[ "rts" "1.0" ]
[ "syb" "0.1.0.2" ]
[ "template-haskell" "2.4.0.0" ]
[ "time" "1.1.4" ]
[ "unix" "2.4.0.0" ]
[ "utf8-string" "0.3.4" ]
];
};
}

View File

@@ -1,81 +0,0 @@
{stdenv, fetchurl, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.12.2";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "7f1e39f0b3ddaca35b55cd430ca058d1c4678445a7177391c9cb6342b7c41a30";
};
buildInputs = [ghc perl gmp ncurses];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
];
inherit (ghc.meta) license platforms;
};
# TODO: requires a comment as to what it does and why it is needed.
passthru = {
corePackages = [
[ "Cabal" "1.8.0.2" ]
[ "array" "0.3.0.0" ]
[ "base" "3.0.3.2" ]
[ "base" "4.2.0.0" ]
[ "bin-package-db" "0.0.0.0" ]
[ "bytestring" "0.9.1.5" ]
[ "containers" "0.3.0.0" ]
[ "directory" "1.0.1.0" ]
[ "dph-base" "0.4.0" ]
[ "dph-par" "0.4.0" ]
[ "dph-prim-interface" "0.4.0" ]
[ "dph-prim-par" "0.4.0" ]
[ "dph-prim-seq" "0.4.0" ]
[ "dph-seq" "0.4.0" ]
[ "extensible-exceptions" "0.1.1.1" ]
[ "ffi" "1.0" ]
[ "filepath" "1.1.0.3" ]
[ "ghc" "6.12.1" ]
[ "ghc-binary" "0.5.0.2" ]
[ "ghc-prim" "0.2.0.0" ]
[ "haskell98" "1.0.1.1" ]
[ "hpc" "0.5.0.4" ]
[ "integer-gmp" "0.2.0.0" ]
[ "old-locale" "1.0.0.2" ]
[ "old-time" "1.0.0.3" ]
[ "pretty" "1.0.1.1" ]
[ "process" "1.0.1.2" ]
[ "random" "1.0.0.2" ]
[ "rts" "1.0" ]
[ "syb" "0.1.0.2" ]
[ "template-haskell" "2.4.0.0" ]
[ "time" "1.1.4" ]
[ "unix" "2.4.0.0" ]
[ "utf8-string" "0.3.4" ]
];
};
}

View File

@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
preConfigure = ''

View File

@@ -1,67 +0,0 @@
{stdenv, fetchurl, perl, readline, ncurses, gmp}:
stdenv.mkDerivation {
name = if stdenv.system == "i686-darwin" then "ghc-6.6.1-binary" else "ghc-6.4.2-binary";
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = http://tarballs.nixos.org/ghc-6.4.2-i386-unknown-linux.tar.bz2;
md5 = "092fe2e25dab22b926babe97cc77db1f";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://haskell.org/ghc/dist/6.4.2/ghc-6.4.2-x86_64-unknown-linux.tar.bz2;
md5 = "8f5fe48798f715cd05214a10987bf6d5";
}
else if stdenv.system == "i686-darwin" then
/* Yes, this isn't GHC 6.4.2. But IIRC either there was no
6.4.2 binary for Darwin, or it didn't work. In any case, in
Nixpkgs we just need this bootstrapping a "real" GHC. */
fetchurl {
url = http://www.haskell.org/ghc/dist/6.6.1/ghc-6.6.1-i386-apple-darwin.tar.bz2;
sha256 = "1drbsicanr6jlykvs4vs6gbi2q9ac1bcaxz2vzwh3pfv3lfibwia";
}
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl];
# On Linux, use patchelf to modify the executables so that they can
# find readline/gmp.
postBuild = if stdenv.isLinux then "
find . -type f -perm +100 \\
-exec patchelf --interpreter \"$(cat $NIX_CC/nix-support/dynamic-linker)\" \\
--set-rpath \"${readline}/lib:${ncurses}/lib:${gmp}/lib\" {} \\;
" else "";
# Stripping combined with patchelf breaks the executables (they die
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
dontStrip = true;
# The binaries for Darwin use frameworks, so fake those frameworks,
# and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
# that the executables work with no special setup.
postInstall = if stdenv.isDarwin then ''
mkdir -p $out/frameworks/GMP.framework/Versions/A
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
mkdir -p $out/frameworks/GNUreadline.framework/Versions/A
ln -s ${readline}/lib/libreadline.dylib $out/frameworks/GNUreadline.framework/GNUreadline
ln -s ${readline}/lib/libreadline.dylib $out/frameworks/GNUreadline.framework/Versions/A/GNUreadline
mkdir $out/bin-orig
for i in $(cd $out/bin && ls *); do
mv $out/bin/$i $out/bin-orig/$i
echo "#! $SHELL -e" >> $out/bin/$i
extraFlag=
if test $i != ghc-pkg; then extraFlag="-framework-path $out/frameworks"; fi
echo "DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i $extraFlag \"\$@\"" >> $out/bin/$i
chmod +x $out/bin/$i
done
'' else "";
meta.license = stdenv.lib.licenses.bsd3;
meta.platforms = ["i686-darwin" "x86_64-linux" "i686-linux"];
}

View File

@@ -1,28 +0,0 @@
{stdenv, fetchurl, perl, ghc, m4, readline, ncurses, gmp}:
stdenv.mkDerivation {
name = "ghc-6.4.2";
src = fetchurl {
url = http://www.haskell.org/ghc/dist/6.4.2/ghc-6.4.2-src.tar.bz2;
md5 = "a394bf14e94c3bca5507d568fcc03375";
};
buildInputs = [perl ghc m4];
propagatedBuildInputs = [readline ncurses gmp];
configureFlags = "--with-gcc=${stdenv.cc}/bin/gcc";
preConfigure =
''
# Don't you hate build processes that write in $HOME? :-(
export HOME=$(pwd)/fake-home
mkdir -p $HOME
'';
meta = {
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
}

View File

@@ -1,46 +0,0 @@
{stdenv, fetchurl, readline, ghc, perl58, m4, gmp, ncurses}:
stdenv.mkDerivation (rec {
name = "ghc-6.6.1";
src = map fetchurl [
{ url = http://www.haskell.org/ghc/dist/6.6.1/ghc-6.6.1-src.tar.bz2;
md5 = "ba9f4aec2fde5ff1e1548ae69b78aeb0";
}
{ url = http://www.haskell.org/ghc/dist/6.6.1/ghc-6.6.1-src-extralibs.tar.bz2;
md5 = "43a26b81608b206c056adc3032f7da2a";
}
];
buildInputs = [ghc readline perl58 m4 gmp];
meta = {
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
postInstall = ''
mkdir -p "$out/nix-support"
echo "# Path to the GHC compiler directory in the store" > $out/nix-support/setup-hook
echo "ghc=$out" >> $out/nix-support/setup-hook
echo "" >> $out/nix-support/setup-hook
cat $setupHook >> $out/nix-support/setup-hook
'';
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-readline-libraries=${readline}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${gcc}/bin/gcc"
];
preConfigure = ''
# still requires a hack for ncurses
sed -i "s|^\(library-dirs.*$\)|\1 \"${ncurses}/lib\"|" libraries/readline/package.conf.in
# fix for gcc 4.2
echo "SplitObjs=NO" >> mk/build.mk
'';
inherit (stdenv) gcc;
inherit readline gmp ncurses;
})

View File

@@ -1,35 +0,0 @@
{stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses}:
stdenv.mkDerivation (rec {
version = "6.8.2";
name = "ghc-${version}";
homepage = "http://www.haskell.org/ghc";
src = map fetchurl [
{ url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "2d10f973c35e8d7d9f62b53e26fef90177a9a15105cda4b917340ba7696a22d9";
}
{ url = "${homepage}/dist/${version}/${name}-src-extralibs.tar.bz2";
md5 = "d199c50814188fb77355d41058b8613c";
}
];
buildInputs = [ghc readline perl m4 gmp];
meta = {
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-readline-libraries=${readline}/lib"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
preConfigure = "
# still requires a hack for ncurses
sed -i \"s|^\\\(ld-options.*$\\\)|\\\1 -L${ncurses}/lib|\" libraries/readline/readline.buildinfo.in
";
})

View File

@@ -1,37 +0,0 @@
{stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses, haddock}:
stdenv.mkDerivation rec {
version = "6.8.3";
name = "ghc-${version}";
homepage = "http://www.haskell.org/ghc";
src = map fetchurl [
{ url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "1fc1ff82a555532f1c9d2dc628fd9de5e6ebab2ce6ee9490a34174ceb6f76e6b";
}
{ url = "${homepage}/dist/${version}/${name}-src-extralibs.tar.bz2";
sha256 = "ee2f5ba6a46157fc53eae515cb6fa1ed3c5023e7eac15981d92af0af00ee2ba2";
}
];
buildInputs = [ghc readline perl m4 gmp haddock];
meta = {
description = "The Glasgow Haskell Compiler";
inherit (ghc.meta) license platforms;
};
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-readline-libraries=${readline}/lib"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
preConfigure = ''
# still requires a hack for ncurses
sed -i "s|^\(ld-options.*$\)|\1 -L${ncurses}/lib|" libraries/readline/readline.buildinfo.in
# build haddock docs
echo "HADDOCK_DOCS = YES" >> mk/build.mk
'';
}

View File

@@ -1,81 +0,0 @@
{stdenv, fetchurl, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "7.0.1";
name = "ghc-${version}";
src = fetchurl {
url = "http://www.haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "1iciljngxmqy465cw3pkl6jp0ydiils4bfz6ixfaxk7aqv7r7xsi";
};
buildInputs = [ghc perl gmp ncurses];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
];
inherit (ghc.meta) license platforms;
};
# TODO: requires a comment as to what it does and why it is needed.
passthru = {
corePackages = [
[ "Cabal" "1.8.0.2" ]
[ "array" "0.3.0.0" ]
[ "base" "3.0.3.2" ]
[ "base" "4.2.0.0" ]
[ "bin-package-db" "0.0.0.0" ]
[ "bytestring" "0.9.1.5" ]
[ "containers" "0.3.0.0" ]
[ "directory" "1.0.1.0" ]
[ "dph-base" "0.4.0" ]
[ "dph-par" "0.4.0" ]
[ "dph-prim-interface" "0.4.0" ]
[ "dph-prim-par" "0.4.0" ]
[ "dph-prim-seq" "0.4.0" ]
[ "dph-seq" "0.4.0" ]
[ "extensible-exceptions" "0.1.1.1" ]
[ "ffi" "1.0" ]
[ "filepath" "1.1.0.3" ]
[ "ghc" "6.12.1" ]
[ "ghc-binary" "0.5.0.2" ]
[ "ghc-prim" "0.2.0.0" ]
[ "haskell98" "1.0.1.1" ]
[ "hpc" "0.5.0.4" ]
[ "integer-gmp" "0.2.0.0" ]
[ "old-locale" "1.0.0.2" ]
[ "old-time" "1.0.0.3" ]
[ "pretty" "1.0.1.1" ]
[ "process" "1.0.1.2" ]
[ "random" "1.0.0.2" ]
[ "rts" "1.0" ]
[ "syb" "0.1.0.2" ]
[ "template-haskell" "2.4.0.0" ]
[ "time" "1.1.4" ]
[ "unix" "2.4.0.0" ]
[ "utf8-string" "0.3.4" ]
];
};
}

View File

@@ -1,43 +0,0 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec {
version = "7.0.2";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "f0551f1af2f008a8a14a888b70c0557e00dd04f9ae309ac91897306cd04a6668";
};
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
];
inherit (ghc.meta) license platforms;
broken = true;
};
}

View File

@@ -1,43 +0,0 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec {
version = "7.0.3";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "1nfc2c6bdcdfg3f3d9q5v109jrrwhz6by3qa4qi7k0xbip16jq8m";
};
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
];
inherit (ghc.meta) license platforms;
broken = true;
};
}

View File

@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
preConfigure = ''

View File

@@ -0,0 +1,51 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
let
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
DYNAMIC_BY_DEFAULT = NO
'';
in
stdenv.mkDerivation rec {
version = "7.10.0.20141222";
name = "ghc-${version}";
src = fetchurl {
url = "https://downloads.haskell.org/~ghc/7.10.1-rc1/ghc-7.10.0.20141222-src.tar.xz";
sha256 = "0nncvvwksqqz1d991jbag3b4174i275nn0psadriq5hi3px11dkl";
};
buildInputs = [ ghc perl ];
preConfigure = ''
echo >mk/build.mk "${buildMK}"
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
'';
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/cc"
"--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
];
enableParallelBuilding = true;
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags = [ "-S" "--keep-file-symbols" ];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = with stdenv.lib.maintainers; [ marcweber andres simons ];
inherit (ghc.meta) license platforms;
};
}

View File

@@ -1,43 +0,0 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec {
version = "7.2.1";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "099w2bvx07jq4b1k8f1hspri30wbk35dz6ilsivxr2xg661c2qjm";
};
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
stdenv.lib.maintainers.simons
];
inherit (ghc.meta) license platforms;
};
}

View File

@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
preConfigure = ''

View File

@@ -1,43 +0,0 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec {
version = "7.4.1";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "0ycscsagyy9n796a59q6761s6ar50d8inibvnrcp96siksj0j73j";
};
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
stdenv.lib.maintainers.simons
];
platforms = ["x86_64-linux" "i686-linux" "i686-darwin" "x86_64-darwin"];
};
}

View File

@@ -62,8 +62,9 @@ stdenv.mkDerivation rec {
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
${if stdenv.isDarwin then "--with-gcc=${./gcc-clang-wrapper.sh}" else "--with-clang"}
./configure --prefix=$out \
--with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
${stdenv.lib.optionalString stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"}
'';
# Stripping combined with patchelf breaks the executables (they die

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
preConfigure = ''

View File

@@ -1,44 +0,0 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec {
version = "7.6.1";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/7.6.1/${name}-src.tar.bz2";
sha256 = "1q5rqp8z90mq6ysf7h28zkbhfaxlrpva2qy0wnkr43d7214dzp7i";
};
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags=[
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
stdenv.lib.maintainers.simons
];
inherit (ghc.meta) license platforms;
};
}

View File

@@ -1,45 +0,0 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec {
version = "7.6.2";
name = "ghc-${version}";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "d5f45184abeacf7e9c6b4f63c7101a5c1d7b4fe9007901159e2287ecf38de533";
};
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
stdenv.lib.maintainers.simons
];
inherit (ghc.meta) license platforms;
};
}

View File

@@ -22,7 +22,8 @@ in stdenv.mkDerivation rec {
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'' + stdenv.lib.optionalString stdenv.isLinux ''
# Set ghcFlags for building ghc itself
SRC_HC_OPTS += ${ghcFlags}

View File

@@ -1,78 +0,0 @@
{stdenv, fetchurl, perl, ncurses, gmp}:
stdenv.mkDerivation rec {
version = "7.8.3";
name = "ghc-${version}-binary";
src =
if stdenv.system == "x86_64-darwin" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
sha256 = "1ja0cq5xyjcvjpvjmm4nzhkpmwfs2kjlldbc48lxcs9rmqi7rnay";
}
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl];
postUnpack =
# Strip is harmful, see also below. It's important that this happens
# first. The GHC Cabal build system makes use of strip by default and
# has hardcoded paths to /usr/bin/strip in many places. We replace
# those below, making them point to our dummy script.
''
mkdir "$TMP/bin"
for i in strip; do
echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
chmod +x "$TMP/bin/$i"
done
PATH="$TMP/bin:$PATH"
'' +
# We have to patch the GMP paths for the integer-gmp package.
''
find . -name integer-gmp.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
'' +
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
(if stdenv.isLinux then ''
find . -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib \
--with-gmp-includes=${gmp}/include
'';
# Stripping combined with patchelf breaks the executables (they die
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
dontStrip = true;
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
buildPhase = "true";
postInstall =
''
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
'';
meta.license = stdenv.lib.licenses.bsd3;
meta.platforms = ["x86_64-darwin"];
}

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
DYNAMIC_BY_DEFAULT = NO
'';

View File

@@ -1,18 +1,30 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses, happy, alex }:
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
let
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
DYNAMIC_BY_DEFAULT = NO
'';
in
stdenv.mkDerivation rec {
version = "7.10.0.20141222";
version = "7.11.20150118";
name = "ghc-${version}";
src = fetchurl {
url = "https://downloads.haskell.org/~ghc/7.10.1-rc1/ghc-7.10.0.20141222-src.tar.xz";
sha256 = "0nncvvwksqqz1d991jbag3b4174i275nn0psadriq5hi3px11dkl";
url = "http://deb.haskell.org/dailies/2015-01-18/ghc_7.11.20150118.orig.tar.bz2";
sha256 = "1zy960q2faq03camq2n4834bd748vkc15h83bapswc68dqncqj20";
};
buildInputs = [ ghc perl ncurses happy alex ];
buildInputs = [ ghc perl ];
preConfigure = ''
echo >mk/build.mk "DYNAMIC_BY_DEFAULT = NO"
echo >mk/build.mk "${buildMK}"
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"

View File

@@ -50,7 +50,6 @@ stdenv.mkDerivation rec {
buildPhase = ''
# Some comments in files are in UTF-8, so include the locale needed by GHC runtime.
export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive
export LC_ALL=en_US.UTF-8
# PAKCS must be build in place due to embedded filesystem references placed by swi.