From 7c5a1b1d5178b69833f7df77ae7192df464897e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 6 Jul 2014 13:37:46 +0200 Subject: [PATCH 01/10] haskellPackages: use static-enabled 'gmp' to enable statically linked Haskell binaries Pass '-optl-static -optl-pthread' to GHC to enable static linking. Fixes . Further details can be found at . --- pkgs/development/libraries/gmp/5.1.x.nix | 15 +++++++++------ pkgs/top-level/all-packages.nix | 5 ++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix index cba8d394c2ba..9e28334804bd 100644 --- a/pkgs/development/libraries/gmp/5.1.x.nix +++ b/pkgs/development/libraries/gmp/5.1.x.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, m4, cxx ? true }: +{ stdenv, fetchurl, m4, cxx ? true, withStatic ? false }: with { inherit (stdenv.lib) optional; }; -stdenv.mkDerivation rec { +stdenv.mkDerivation (rec { name = "gmp-5.1.3"; src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv @@ -27,10 +27,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = { + meta = with stdenv.lib; { homepage = "http://gmplib.org/"; description = "GMP, the GNU multiple precision arithmetic library"; - license = stdenv.lib.licenses.gpl3Plus; + license = licenses.gpl3Plus; longDescription = '' GMP is a free library for arbitrary precision arithmetic, operating @@ -54,7 +54,10 @@ stdenv.mkDerivation rec { asymptotically faster algorithms. ''; - platforms = stdenv.lib.platforms.all; - maintainers = [ stdenv.lib.maintainers.simons ]; + platforms = platforms.all; + maintainers = [ maintainers.simons ]; }; } + // stdenv.lib.optionalAttrs withStatic { dontDisableStatic = true; } +) + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 685a8b7705dd..fd81f36e379f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2933,7 +2933,10 @@ let # Import Haskell infrastructure. - haskell = callPackage ./haskell-defaults.nix { inherit pkgs; }; + haskell = let pkgs_ = pkgs // { gmp = gmp.override { withStatic = true; }; }; + callPackage = newScope pkgs_; + newScope = extra: lib.callPackageWith (pkgs_ // pkgs_.xorg // extra); + in callPackage ./haskell-defaults.nix { pkgs = pkgs_; inherit callPackage newScope; }; # Available GHC versions. From 48a2253974674b9c8a004d42cfd6ebba9fa69a42 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 12:15:16 +0200 Subject: [PATCH 02/10] ghc: update version 7.8.2 to 7.8.3 --- .../development/compilers/ghc/{7.8.2.nix => 7.8.3.nix} | 6 +++--- pkgs/top-level/haskell-defaults.nix | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) rename pkgs/development/compilers/ghc/{7.8.2.nix => 7.8.3.nix} (88%) diff --git a/pkgs/development/compilers/ghc/7.8.2.nix b/pkgs/development/compilers/ghc/7.8.3.nix similarity index 88% rename from pkgs/development/compilers/ghc/7.8.2.nix rename to pkgs/development/compilers/ghc/7.8.3.nix index 8200c8c759e7..dbcba36fa8ff 100644 --- a/pkgs/development/compilers/ghc/7.8.2.nix +++ b/pkgs/development/compilers/ghc/7.8.3.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, ghc, perl, gmp, ncurses }: stdenv.mkDerivation rec { - version = "7.8.2"; + version = "7.8.3"; name = "ghc-${version}"; src = fetchurl { - url = "http://www.haskell.org/ghc/dist/7.8.2/${name}-src.tar.xz"; - sha256 = "15kyz98zq22sgwkzy2bkx0yz98qkrzgdigz919vafd7fxnkf3la5"; + url = "http://www.haskell.org/ghc/dist/7.8.3/${name}-src.tar.xz"; + sha256 = "0n5rhwl83yv8qm0zrbaxnyrf8x1i3b6si927518mwfxs96jrdkdh"; }; buildInputs = [ ghc perl gmp ncurses ]; diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index d55a8be08f0b..38d4774ce131 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -20,13 +20,13 @@ transformersCompat = super.transformersCompat_0_3_3; }; - ghc782Prefs = self : super : ghcHEADPrefs self super // { + ghc783Prefs = self : super : ghcHEADPrefs self super // { cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = self.Cabal_1_20_0_1; }; codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_1; }; }; mtl = self.mtl_2_1_2; }; - ghc763Prefs = self : super : ghc782Prefs self super // { + ghc763Prefs = self : super : ghc783Prefs self super // { ariadne = super.ariadne.override { haskellNames = self.haskellNames.override { haskellPackages = self.haskellPackages.override { Cabal = self.Cabal_1_18_1_3; }; @@ -214,10 +214,10 @@ }; }; - packages_ghc782 = - packages { ghcPath = ../development/compilers/ghc/7.8.2.nix; + packages_ghc783 = + packages { ghcPath = ../development/compilers/ghc/7.8.3.nix; ghcBinary = ghc742Binary; - prefFun = ghc782Prefs; + prefFun = ghc783Prefs; }; packages_ghc763 = From 098a2c07faab407c2071fecf33414a49bd575707 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 12:15:29 +0200 Subject: [PATCH 03/10] haskell-packages.nix: cosmetic --- pkgs/top-level/haskell-packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index d9f451d860f7..d464529de976 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1358,7 +1358,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in additionalPackages = [ self.lambdabot ]; }; }; - + lambdabotUtils = callPackage ../development/libraries/haskell/lambdabot-utils {}; lambdacubeEngine = callPackage ../development/libraries/haskell/lambdacube-engine {}; @@ -2364,7 +2364,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in transformers_0_2_2_0 = callPackage ../development/libraries/haskell/transformers/0.2.2.0.nix {}; transformers_0_3_0_0 = callPackage ../development/libraries/haskell/transformers/0.3.0.0.nix {}; transformers_0_4_1_0 = callPackage ../development/libraries/haskell/transformers/0.4.1.0.nix {}; - transformers = null; # core package since ghc >= 7.8.2 + transformers = null; # core package since ghc >= 7.8.x transformersBase = callPackage ../development/libraries/haskell/transformers-base {}; From a183c7eca11b984b096821b6dfeb374190dae8ef Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 12:15:51 +0200 Subject: [PATCH 04/10] Switch default Haskell compiler to GHC 7.8.3. --- pkgs/top-level/all-packages.nix | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fd81f36e379f..921544317048 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2954,7 +2954,7 @@ let builtins.substring 0 (builtins.stringLength "packages_") name == "packages_" ) haskell)); - haskellPackages = haskellPackages_ghc763; + haskellPackages = haskellPackages_ghc783; haskellPlatform = haskellPlatformPackages."2013_2_0_0"; haskellPackages_ghc6104 = haskell.packages_ghc6104; @@ -2962,15 +2962,10 @@ let haskellPackages_ghc704 = haskell.packages_ghc704; haskellPackages_ghc722 = haskell.packages_ghc722; haskellPackages_ghc742 = haskell.packages_ghc742; - # For the default version, we build profiling versions of the libraries, too. - # The following three lines achieve that: the first two make Hydra build explicit - # profiling and non-profiling versions; the final respects the user-configured - # default setting. - haskellPackages_ghc763_no_profiling = recurseIntoAttrs haskell.packages_ghc763.noProfiling; - haskellPackages_ghc763_profiling = recurseIntoAttrs haskell.packages_ghc763.profiling; - haskellPackages_ghc763 = recurseIntoAttrs haskell.packages_ghc763.highPrio; - # Reasonably current HEAD snapshot. - haskellPackages_ghc782 = haskell.packages_ghc782; + haskellPackages_ghc763 = haskell.packages_ghc763; + haskellPackages_ghc783_no_profiling = recurseIntoAttrs haskell.packages_ghc783.noProfiling; + haskellPackages_ghc783_profiling = recurseIntoAttrs haskell.packages_ghc783.profiling; + haskellPackages_ghc783 = recurseIntoAttrs haskell.packages_ghc783.highPrio; haskellPackages_ghcHEAD = haskell.packages_ghcHEAD; haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; }); From 5c677f71171d9e7001a1013be2777d674a2212c8 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 13:17:21 +0200 Subject: [PATCH 05/10] cabal: cosmetic --- pkgs/build-support/cabal/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index bb349b3a1f57..6c806c4bf1fb 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -29,7 +29,7 @@ assert enableSharedExecutables -> versionOlder "7.4" ghc.version; # Our GHC 6.10.x builds do not provide sharable versions of their core libraries. assert enableSharedLibraries -> versionOlder "6.12" ghc.version; -# Our GHC 6.10.x builds do not provide sharable versions of their core libraries. +# Pure shared library builds don't work before GHC 7.8.x. assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; { From ebdd966bc6c7d356fafc29a7561c8b15ba97c54b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 15:12:46 +0200 Subject: [PATCH 06/10] cryptol2: build with ghc 7.6.3 to avoid errors with 7.8.x --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 921544317048..819eaad27b18 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2582,7 +2582,7 @@ let compcert = callPackage ../development/compilers/compcert {}; cryptol1 = lowPrio (callPackage ../development/compilers/cryptol/1.8.x.nix {}); - cryptol2 = haskellPackages.cryptol; + cryptol2 = haskellPackages_ghc763.cryptol; # doesn't compile with the lastest 7.8.3 release cython = pythonPackages.cython; cython3 = python3Packages.cython; From 21a83ed49b4186f7f4bb0bd39ef17fdced4e786e Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 15:13:03 +0200 Subject: [PATCH 07/10] darcs: build with ghc 7.6.3 to avoid errors with 7.8.x --- pkgs/top-level/all-packages.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 819eaad27b18..cb7ac23cf3b5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8270,10 +8270,11 @@ let d4x = callPackage ../applications/misc/d4x { }; - darcs = haskellPackages.darcs.override { + darcs = haskellPackages_ghc763.darcs.override { # A variant of the Darcs derivation that containts only the executable and - # thus has no dependencies on other Haskell packages. - cabal = haskellPackages.cabal.override { + # thus has no dependencies on other Haskell packages. We have to use the older + # GHC 7.6.3 package set because darcs won't compile with 7.8.x. + cabal = haskellPackages_ghc763.cabal.override { extension = self : super : { isLibrary = false; configureFlags = "-f-library " + super.configureFlags or ""; From 283f13e5a69af62a4de0327c08fe317a7308d3e5 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 16:00:57 +0200 Subject: [PATCH 08/10] haskell-platform: build 2009.x with sufficiently old version of 'mtl' to avoid build errors in CGI library --- .../libraries/haskell/haskell-platform/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/haskell/haskell-platform/default.nix b/pkgs/development/libraries/haskell/haskell-platform/default.nix index b222df29b5a8..2de2809cf53b 100644 --- a/pkgs/development/libraries/haskell/haskell-platform/default.nix +++ b/pkgs/development/libraries/haskell/haskell-platform/default.nix @@ -257,6 +257,8 @@ let stm = self.stm_2_1_1_2; xhtml = self.xhtml_3000_2_0_1; happy = self.happy_1_18_4; + # not actually specified, but important to make the whole thing build + mtl = self.mtl_1_1_0_2; }; }; @@ -285,6 +287,8 @@ let cabalInstall = self.cabalInstall_0_6_2; alex = self.alex_2_3_1; happy = self.happy_1_18_4; + # not actually specified, but important to make the whole thing build + mtl = self.mtl_1_1_0_2; }; }; From 9705c25dd6b4b245f72fbb6d0e8f04ff6af9b13d Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 16:29:24 +0200 Subject: [PATCH 09/10] haskell-platform-2010.1.0.0: mark as broken, the source code is no longer available from haskell.org --- .../libraries/haskell/haskell-platform/2010.1.0.0.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix b/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix index a5107a5fe031..8c1630752ecf 100644 --- a/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix +++ b/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix @@ -22,5 +22,6 @@ cabal.mkDerivation (self : { license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; maintainers = with self.stdenv.lib.maintainers; [andres simons]; + broken = true; # The source code is no longer available from haskell.org. }; }) From 78fccddde31535b90ff555f5f745a596cdad0b5b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 10 Jul 2014 16:33:28 +0200 Subject: [PATCH 10/10] ghc 7.0.2 and 7.0.3 are "broken" because of build errors with recent versions of GCC rts/StgCRun.c: In function 'StgRunIsImplementedInAssembler': rts/StgCRun.c:208:1: error: frame pointer required, but reserved StgRunIsImplementedInAssembler(void) ^ In file included from includes/Stg.h:230:0: 0, from rts/StgCRun.c:70: includes/stg/Regs.h:323:20: note: for 'Sp' GLOBAL_REG_DECL(P_,Sp,REG_Sp) ^ includes/stg/Regs.h:174:54: note: in definition of macro 'GLOBAL_REG_DECL' #define GLOBAL_REG_DECL(type,name,reg) register type name REG(reg); ^ --- pkgs/development/compilers/ghc/7.0.2.nix | 1 + pkgs/development/compilers/ghc/7.0.3.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/pkgs/development/compilers/ghc/7.0.2.nix b/pkgs/development/compilers/ghc/7.0.2.nix index 6706b99e2034..5dd2e14b0c6f 100644 --- a/pkgs/development/compilers/ghc/7.0.2.nix +++ b/pkgs/development/compilers/ghc/7.0.2.nix @@ -37,6 +37,7 @@ stdenv.mkDerivation rec { stdenv.lib.maintainers.andres ]; inherit (ghc.meta) license platforms; + broken = true; }; } diff --git a/pkgs/development/compilers/ghc/7.0.3.nix b/pkgs/development/compilers/ghc/7.0.3.nix index 0b422043ae28..c8d4b2648048 100644 --- a/pkgs/development/compilers/ghc/7.0.3.nix +++ b/pkgs/development/compilers/ghc/7.0.3.nix @@ -37,6 +37,7 @@ stdenv.mkDerivation rec { stdenv.lib.maintainers.andres ]; inherit (ghc.meta) license platforms; + broken = true; }; }