Commit graph

197 commits

Author SHA1 Message Date
Peter Simons cb21683794 ghc: disable parallel building
It sucks, I know, but GHC just doesn't compile reliably when built with
some -j<n> option. :-( We have build errors because of apparent race
conditions all over the place on Hydra. This causes so much trouble for
users that it's not worth keeping this option enabled, IMHO.
2014-01-21 20:35:49 +01:00
Vladimír Čunát 2848336491 ghc-7.6.3: disable parallel building (fails on Hydra) 2014-01-17 21:57:30 +01:00
Peter Simons c32bf83301 Merge remote-tracking branch 'origin/master' into stdenv-updates.
Conflicts:
	pkgs/development/interpreters/perl/5.16/default.nix
	pkgs/tools/networking/curl/default.nix
	pkgs/top-level/all-packages.nix
	pkgs/top-level/release-python.nix
	pkgs/top-level/release-small.nix
	pkgs/top-level/release.nix
2013-12-04 18:33:52 +01:00
Peter Simons dc662dcaa2 ghc-head: update to today's git snapshot and arbitrarily dub it version 7.7.20131202 2013-12-03 22:23:20 +01:00
Peter Simons e4d841eef4 Re-implement ghcWithPackagesOld as a variant of ghcWithPackages that ignores collisions.
This change is intended to fix <https://github.com/NixOS/nixpkgs/issues/1161>
and to address some of the concerns that come up during the discussion of
<d64917ad17>.
2013-11-09 20:41:52 +01:00
Peter Simons 981c287355 ghc: several enhancements to the new "with-packages" wrapper
1) The wrapper erroneously used the ghc-pkg flag "--package-db" instead of
    "--global-package-db". The result was that packages installed locally in
    ~/.ghc and ~/.cabal were invisible to GHC. This has been fixed.

 2) The wrapper now deals gracefully with an empty package set: if no package
    is requested to be included in the wrapped environment, the wrapper just
    installs a pristine GHC.

 3) Correctly configure the "docdir" path returned by ghc-paths.

 4) Added some comments that describe the idea behind our ghc-paths patches and
    gives users same sample shell code that can be used to import our special
    environment variables into the currently running shell, so that programs
    outside of the wrapped environment can use them, too.
2013-11-09 20:36:25 +01:00
Peter Simons f92a5cbfc6 pkgs/development/compilers/ghc/with-packages.nix: add 'ignoreCollisions' parameter
The ghcWithPackage expression now has an argument 'ignoreCollisions' that
allows users to disable the path collision check like so:

  (pkgs.haskellPackages.ghcWithPackages (pkgs: with pkgs; [ haskellPlatform ])).override { ignoreCollisions = true; };

See d64917ad17
for a long and detailed discussion of why these path collisions may occur.
2013-11-07 12:14:19 +01:00
Peter Simons 89c566fcfd pkgs/development/compilers/ghc/with-packages.nix: improve recognition of Haskell packages
Haskell packages -- i.e. packages built by our Cabal builder -- invariably have
the attributes 'pname' and 'version'. We use the absence of these attributes to
recognize non-Haskell packages and filter them from the closed package set
generated by closePropagation. We do this so that the generated Haskell
environment won't contain paths like "/lib/libz.a", which are part of the
closure but have nothing to do with Haskell.

The previous scheme used the attribute 'ghc' to accomplish the same thing, but
unfortunately other packages to contain a 'ghc' attribute, too, like the
old-style ghc-wrapper. Including the ghc-wrapper in this environment is
pointless, obviously. The new approach filters the ghc-wrapper successfully.
2013-11-07 12:14:19 +01:00
Peter Simons 0e831bd525 Resurrect the old ghcWithPackages wrapper under the attribute name 'ghcWithPackagesOld'. 2013-11-04 19:42:49 +01:00
Mathijs Kwik 609f8dc04b Merge branch 'master' into stdenv-updates
Conflicts:
	pkgs/top-level/all-packages.nix
2013-11-01 08:31:54 +01:00
Peter Simons 094edba311 ghc-with-packages.nix: make sure that GHC itself is included in the environment 2013-10-28 17:54:28 +01:00
Peter Simons 9eea6c64fb Merge branch 'origin/master' into stdenv-updates. 2013-10-27 10:58:24 +01:00
Peter Simons f5e8f1ccc1 ghc: update HEAD version to 7.7.20130828 2013-10-27 10:22:21 +01:00
Peter Simons d64917ad17 Back-port Haskell-related improvements from stdenv-updates.
* There now is full support for building Haskell packages as shared libraries
   for GHC versions 7.4.2 or later. The Cabal builder recognizes the following
   attributes:

    - enableSharedLibraries configures Cabal to build of shared libraries in
      addition to static ones. This option requires that all dependencies of
      the package have been compiled for use in shared libraries, too.

    - enableSharedExecutables configures Cabal to prefer shared libraries when
      linking executables.

   The default values for these attributes are arguments to the haskellPackages
   expression.

 * Haskell builds now run in a LANG="en_US.UTF-8" environment to avoid plenty
   of build and test suite errors. Without this setting, GHC seems unable to
   deal with the UTF-8 character encoding that's generally considered standard
   in the Haskell world.

 * The Cabal builder supports a new attribute 'testTarget' to specify the exact
   set of tests to be run during the check phase.

 * The ghc-wrapper attribute ghcVersion has been removed. Instead, we use the
   ghc.version attribute, which exists in unwrapped GHC derivations, too.
2013-10-27 10:09:36 +01:00
Peter Simons fae8fd8ef1 ghc-wrapper: rename 'ghcVersion' attribute to 'version' for consistency 2013-10-20 15:40:36 +02:00
Peter Simons e9163ad4c9 ghc: configure RPATH that allows ghc's shared libraries to find each other
Prior to this patch, libHSrts.so didn't know how to load libffi.so.
See issue #1081 for further details.
2013-10-18 18:39:04 +02:00
Peter Simons f998111d2c ghc-7.6.3: undo commit 7c8ba75
The change was supposed to trigger a re-build to fix a broken GHC binary
on the Hydra build farm, but now it turns out that the cause for the
errors we're seeing isn't GHC: all kinds of (non-Haskell) packages are
broken.
2013-09-21 09:51:35 +02:00
Peter Simons 7c8ba7557c ghc-7.6.3: cosmetic change to force a re-build 2013-09-20 19:27:22 +02:00
Peter Simons 0d7118814b Merge branch 'origin/master' into stdenv. 2013-08-17 10:00:16 +02:00
Peter Simons 898348a80d ghc-head: update to version 7.7.20130816 2013-08-16 23:47:59 +02:00
Peter Simons 76244ac2e2 Merge branch 'master' into stdenv-updates
Conflicts:
	pkgs/development/compilers/ghc/with-packages.nix
2013-08-16 22:51:13 +02:00
Peter Simons bb312b77b5 ghc-head: update to version 7.7.20130811 2013-08-11 23:50:05 +02:00
Gergely Risko de35a6dbb9 Export ghci config files for ghc-vis and ghc-heap-view 2013-08-11 23:50:04 +02:00
Vladimír Čunát 8ba92b8895 Merge master into stdenv-updates
Conflicts (simple):
	pkgs/development/tools/misc/binutils/default.nix
	pkgs/tools/package-management/disnix/default.nix
	pkgs/top-level/all-packages.nix
2013-07-08 10:48:05 +02:00
Eelco Dolstra acba9240cd nixos.org/tarballs -> tarballs.nixos.org
It's currently the same machine, but tarballs.nixos.org should become
an S3/CloudFront site eventually.
2013-06-25 14:12:16 +02:00
Shea Levy fde3526e7d Merge branch 'master' into stdenv-updates
Conflict in kerberos, which was updated both in master and in
stdenv-updates. Kept the stdenv-updates version, except pulled in the
enableParallelBuilding change from master.

Signed-off-by: Shea Levy <shea@shealevy.com>

Conflicts:
	pkgs/development/libraries/kerberos/krb5.nix
2013-05-04 18:28:48 -04:00
Peter Simons e0b57c9fb9 ghc: bump HEAD compiler to version 7.7 2013-04-24 13:21:05 +02:00
Peter Simons fdf1d45a38 ghc: add version 7.6.3 (and a corresponding package set) 2013-04-21 20:10:27 +02:00
Peter Simons 431b774cc0 ghc: greatly simplify the GHC compiler wrapper
The wrapper script accumulated some cruft over the last couple of months
because we did changes in freaky ways to avoid triggering re-builds of all
Haskell packages. Most of these kludges have been thrown out now.

This patch doesn't change the behavior of the wrapper except for one thing: the
internal helper scripts "ghc-get-packages.sh" and "ghc-packages.sh" are no
longer installed in the bin directory of the generated derivation.
2013-04-20 23:28:53 +02:00
Peter Simons 4dd05a51ed ghc-binary: don't refer to /bin/sh 2013-04-20 23:28:11 +02:00
Peter Simons 2ffd0b6dac Merge changes from branch 'origin/master' into stdenv-updates. 2013-04-20 22:19:39 +02:00
Patrick John Wheeler 3bf0d2b960 ghc-wrapper: install the GHC documentation into the user's profile
The freaky implementation was done that way in order to avoid unnecessary
re-builds of all Haskell packages by changing the wrapper script used
internally in those builds.

See <https://github.com/NixOS/nixpkgs/pull/466> for further details.
2013-04-20 22:14:44 +02:00
Peter Simons 0823aea0a6 Merge branch 'master' into stdenv-updates.
Conflicts:
	pkgs/development/libraries/libxslt/default.nix

Commit 1764ea2b0a introduced changes to libxslt
in an awkward way to avoid re-builds on Linux. This patch has been simplified
during this merge.
2013-03-25 13:43:45 +01:00
Peter Simons 83d0a3a37c ghc: add meta.license attribute to all compiler versions 2013-03-23 15:58:14 +01:00
Peter Simons 264ac17a0f ghc-with-packages: set NIX_GHC_XXX variables for runhaskell and runghc, too 2013-03-21 16:26:18 +01:00
Peter Simons 459234db20 ghc-with-packages: include only derivations in the generated environment that have a ghc attribute
This predicate filters out packages that weren't created by the Cabal builder.
Doing that greatly reduces the likelihood of file collisions in the generated
environment, because Haskell packages tend to have a lot of propagated build
inputs.

For example, both zeromq 2.x and 3.x use the same names for their header files.
Users of haskell-zeromq don't need those headers, so we just don't include them
in the generated environment to avoid the collision that would otherwise occur
when haskell-zeromq 2.x and 3.x are installed into the same environment.
2013-03-21 16:25:50 +01:00
Peter Simons 90fc42c2f2 pkgs/development/compilers/ghc/with-packages.nix: simply this wrapper on top of buildenv 2013-03-15 21:11:31 +01:00
Peter Simons d09269a22e Use the same directory layout for user-installed Haskell libraries that GHC
uses for its core libraries, so that these files integrate seamlessly into one
profile, living right next to each other. This change is eventually going to
simply our with-packages wrapper quite a bit.
2013-03-15 20:38:15 +01:00
Peter Simons 893c684e99 pkgs/development/compilers/ghc/with-packages.nix: include share/emacs/site-lisp in the generated environment
This change allows 'ghc-mod' to be included in such a GHC environment,
which is important because the tool is GHC version-specific.
2013-03-15 19:58:08 +01:00
Andres Loeh 54e0fe3ec1 ghc: update HEAD snapshot 2013-03-10 21:14:45 +01:00
Peter Simons 97faa4c319 ghc-with-packages.nix: include man pages in the generated profile 2013-02-11 23:26:06 +01:00
Peter Simons f929eecfa7 ghc-7.6.2: cosmetic, no functional change 2013-01-30 17:30:51 +01:00
Peter Simons 7848756283 Parallel building is enabled again in GHC 7.6.2, because we hope the issues
we've had with earlier versions have been remedied. If anyone experiences build
errors with this package, please file issue at Github!
2013-01-30 17:30:25 +01:00
Peter Simons 75fcdfbb9e ghc-head: update to snapshot version 7.7.20121213 2013-01-30 12:25:38 +01:00
Aristid Breitkreuz 3a68505c6e GHC 7.6.2 2013-01-29 20:42:28 +01:00
Andres Loeh d068aa9861 Patch ghc-paths to interact better with ghcWithPackages.
When the ghc-paths library is compiled, the paths of the
compiler it is compiled with are being hardcoded in the
library (and can then be queried from other applications
using the library).

But on Nix, packages are compiled with ghc-wrapper, and
subsequently possibly used with a special version of ghc
generated for a particular environment of packages. So
one version of ghc-paths may potentially end up being
used by lots of different instances of ghc. The hardcoding
approach fails.

As a work-around, we now patch ghc-paths so that it allows
setting the paths that can be queried via environment
variables. Specific GHC environments can then set these
environment variables in the wrapper shell script that
invokes GHC.

This should at least partially solve issue #213.
2012-12-16 14:25:15 +01:00
Andres Loeh 8c4f5d02aa Updating ghc HEAD snapshot. 2012-11-07 14:45:32 +01:00
Peter Simons b1169e5509 ghc-*-binary: remove redundant assertion
Any attempt to instantiate these expressions on an unsupported platform is
going to 'throw' an error. The call to 'assert' doesn't add any value to
that (and generates less readable error messages, too). Further details are
available at <https://github.com/NixOS/nix/issues/56>.
2012-10-12 15:23:05 +02:00
Peter Simons 3a34ac175f pkgs/development/compilers/ghc/with-packages.nix: include bash completion files in the generated environment 2012-09-25 15:05:49 +02:00
Peter Simons 33e67e8394 ghc-head: update to version 7.7.20120912 2012-09-13 15:50:15 +02:00