Remove obsolete, broken, and unnecessary versions of GHC.

These versions have been removed:

 - 6.4.2-binary.nix
 - 6.4.2.nix
 - 6.6.1.nix
 - 6.8.2.nix
 - 6.8.3.nix
 - 6.10.1-binary.nix
 - 6.10.1.nix
 - 6.10.2.nix
 - 6.10.3.nix
 - 6.11.nix
 - 6.12.1-binary.nix
 - 6.12.1.nix
 - 6.12.2.nix
 - 7.0.1.nix
 - 7.0.2.nix
 - 7.0.3.nix
 - 7.2.1.nix
 - 7.4.1.nix
 - 7.6.1.nix
 - 7.6.2.nix
 - 7.8.3-binary.nix

As a rule of thumb, we keep the latest version in every major release. If
someone feels up to the task of fixing versions 6.4.x, 6.6.x, and 6.8.x, then
please don't hesitate to revive those builds.

Fixes https://github.com/NixOS/nixpkgs/issues/5630.
This commit is contained in:
Peter Simons 2015-01-16 22:51:21 +01:00
parent 54bbfd5440
commit 20560e667a
23 changed files with 10 additions and 1290 deletions

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,83 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,83 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,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,83 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,45 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,45 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,45 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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.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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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

@ -1,46 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,47 +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"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
'';
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,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

@ -134,7 +134,6 @@
binary = super.binary_0_7_2_2.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; binary = super.binary_0_7_2_2.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2; cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2;
caseInsensitive = super.caseInsensitive.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; caseInsensitive = super.caseInsensitive.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
GLUT = self.GLUT_2_2_2_1;
happy = super.happy.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; happy = super.happy.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
hashable = super.hashable.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; hashable = super.hashable.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
hashtables = super.hashtables.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; hashtables = super.hashtables.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
@ -142,8 +141,6 @@
HTTP = super.HTTP.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; HTTP = super.HTTP.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
HUnit = super.HUnit.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; HUnit = super.HUnit.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
network = super.network_2_2_1_7.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; network = super.network_2_2_1_7.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
OpenGLRaw = self.OpenGLRaw_1_3_0_0;
OpenGL = self.OpenGL_2_6_0_1;
parsec = super.parsec.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; parsec = super.parsec.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
QuickCheck = super.QuickCheck.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; QuickCheck = super.QuickCheck.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
stm = self.stm_2_4_2.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; stm = self.stm_2_4_2.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
@ -158,20 +155,17 @@
# Abstraction for Haskell packages collections # Abstraction for Haskell packages collections
packagesFun = makeOverridable packagesFun = makeOverridable
({ ghcPath ({ ghc
, ghcBinary ? ghc6101Binary
, prefFun , prefFun
, extension ? (self : super : {}) , extension ? (self : super : {})
, profExplicit ? false, profDefault ? false , profExplicit ? false, profDefault ? false
, modifyPrio ? lowPrio , modifyPrio ? lowPrio
, extraArgs ? {}
} : } :
let haskellPackagesClass = import ./haskell-packages.nix { let haskellPackagesClass = import ./haskell-packages.nix {
inherit pkgs newScope modifyPrio; inherit pkgs newScope ghc modifyPrio;
enableLibraryProfiling = enableLibraryProfiling =
if profExplicit then profDefault if profExplicit then profDefault
else config.cabal.libraryProfiling or profDefault; else config.cabal.libraryProfiling or profDefault;
ghc = callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs);
}; };
haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super; haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super;
haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super; haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super;
@ -195,60 +189,19 @@
modifyPrio = defaultVersionPrioFun true; }; modifyPrio = defaultVersionPrioFun true; };
}; };
# Binary versions of GHC
#
# GHC binaries are around for bootstrapping purposes
ghc6101Binary = lowPrio (callPackage ../development/compilers/ghc/6.10.1-binary.nix {
gmp = pkgs.gmp4;
});
ghc6102Binary = lowPrio (callPackage ../development/compilers/ghc/6.10.2-binary.nix {
gmp = pkgs.gmp4;
});
ghc6121Binary = lowPrio (callPackage ../development/compilers/ghc/6.12.1-binary.nix {
gmp = pkgs.gmp4;
});
ghc704Binary = lowPrio (callPackage ../development/compilers/ghc/7.0.4-binary.nix {
gmp = pkgs.gmp4;
});
ghc742Binary = lowPrio (callPackage ../development/compilers/ghc/7.4.2-binary.nix {
gmp = pkgs.gmp4;
});
ghc783Binary = lowPrio (callPackage ../development/compilers/ghc/7.8.3-binary.nix {});
ghc6101BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
ghc6121BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
# Compiler configurations # Compiler configurations
# #
# Here, we associate compiler versions with bootstrap compiler versions and # Here, we associate compiler versions with bootstrap compiler versions and
# preference functions. # preference functions.
packages_ghcHEAD =
packages { ghcPath = ../development/compilers/ghc/head.nix;
ghcBinary = pkgs.haskellPackages.ghcPlain;
prefFun = ghcHEADPrefs;
extraArgs = {
happy = pkgs.haskellPackages.happy;
alex = pkgs.haskellPackages.alex;
};
};
packages_ghc784 = packages_ghc784 =
packages { ghcPath = ../development/compilers/ghc/7.8.4.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc784;
ghcBinary = if stdenv.isDarwin then ghc783Binary else ghc742Binary;
prefFun = ghc784Prefs; prefFun = ghc784Prefs;
}; };
packages_ghcjs = packages_ghcjs =
packages { packages {
ghcPath = ../development/compilers/ghc/7.8.4.nix; ghc = pkgs.haskell-ng.compiler.ghc784;
ghcBinary = if stdenv.isDarwin then ghc783Binary else ghc742Binary;
prefFun = self : super : super // { prefFun = self : super : super // {
ghc = let parent = packages_ghc784; in ghc = let parent = packages_ghc784; in
callPackage ../development/compilers/ghcjs/wrapper.nix { callPackage ../development/compilers/ghcjs/wrapper.nix {
@ -329,36 +282,32 @@
}; };
packages_ghc763 = packages_ghc763 =
packages { ghcPath = ../development/compilers/ghc/7.6.3.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc763;
ghcBinary = ghc704Binary;
prefFun = ghc763Prefs; prefFun = ghc763Prefs;
}; };
packages_ghc742 = packages_ghc742 =
packages { ghcPath = ../development/compilers/ghc/7.4.2.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc742;
ghcBinary = ghc6121BinaryDarwin;
prefFun = ghc742Prefs; prefFun = ghc742Prefs;
}; };
packages_ghc722 = packages_ghc722 =
packages { ghcPath = ../development/compilers/ghc/7.2.2.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc722;
ghcBinary = ghc6121BinaryDarwin;
prefFun = ghc722Prefs; prefFun = ghc722Prefs;
}; };
packages_ghc704 = packages_ghc704 =
packages { ghcPath = ../development/compilers/ghc/7.0.4.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc704;
ghcBinary = ghc6101BinaryDarwin;
prefFun = ghc704Prefs; prefFun = ghc704Prefs;
}; };
packages_ghc6123 = packages_ghc6123 =
packages { ghcPath = ../development/compilers/ghc/6.12.3.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc6123;
prefFun = ghc6123Prefs; prefFun = ghc6123Prefs;
}; };
packages_ghc6104 = packages_ghc6104 =
packages { ghcPath = ../development/compilers/ghc/6.10.4.nix; packages { ghc = pkgs.haskell-ng.compiler.ghc6104;
prefFun = ghc6104Prefs; prefFun = ghc6104Prefs;
}; };

View File

@ -9,7 +9,6 @@ rec {
ghc6102Binary = callPackage ../development/compilers/ghc/6.10.2-binary.nix { gmp = pkgs.gmp4; }; ghc6102Binary = callPackage ../development/compilers/ghc/6.10.2-binary.nix { gmp = pkgs.gmp4; };
ghc704Binary = callPackage ../development/compilers/ghc/7.0.4-binary.nix { gmp = pkgs.gmp4; }; ghc704Binary = callPackage ../development/compilers/ghc/7.0.4-binary.nix { gmp = pkgs.gmp4; };
ghc742Binary = callPackage ../development/compilers/ghc/7.4.2-binary.nix { gmp = pkgs.gmp4; }; ghc742Binary = callPackage ../development/compilers/ghc/7.4.2-binary.nix { gmp = pkgs.gmp4; };
ghc783Binary = callPackage ../development/compilers/ghc/7.8.3-binary.nix { gmp = pkgs.gmp4; };
ghc6104 = callPackage ../development/compilers/ghc/6.10.4.nix { ghc = compiler.ghc6102Binary; gmp = pkgs.gmp.override { withStatic = true; }; }; ghc6104 = callPackage ../development/compilers/ghc/6.10.4.nix { ghc = compiler.ghc6102Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc6123 = callPackage ../development/compilers/ghc/6.12.3.nix { ghc = compiler.ghc6102Binary; gmp = pkgs.gmp.override { withStatic = true; }; }; ghc6123 = callPackage ../development/compilers/ghc/6.12.3.nix { ghc = compiler.ghc6102Binary; gmp = pkgs.gmp.override { withStatic = true; }; };