Commit Graph

175 Commits

Author SHA1 Message Date
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
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
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
898348a80d ghc-head: update to version 7.7.20130816 2013-08-16 23:47:59 +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
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
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
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
83d0a3a37c ghc: add meta.license attribute to all compiler versions 2013-03-23 15:58:14 +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
Peter Simons
52454d7593 ghc-7.4.2: add binary snapshot required for bootstrapping ghc 7.7.x 2012-09-13 15:49:42 +02:00
Peter Simons
eb288cf12e ghc-wrapper: choose '-package-conf' or '-package-db' flag depending on the version of GHC that's being wrapped 2012-09-13 15:13:00 +02:00
Peter Simons
13be1ff86e ghc-wrapper.nix: cosmetic 2012-09-13 15:12:43 +02:00
Peter Simons
15df3d131a ghc-7.6.1: parallel builds of this package fail
I got the following error in 4 consecutive attempts:

  building rts/dist/build/AutoApply.debug_o
  building rts/dist/build/AutoApply.thr_o
    rts_dist_HC rts/dist/build/AutoApply.debug_o
  /nix/store/1iigiim5855m8j7pmwf5xrnpf705s4dh-binutils-2.21.1a/bin/ld: cannot find libraries/integer-gmp/dist-install/build/cbits/gmp-wrappers_o_split/gmp-wrappers__1.o
  collect2: ld returned 1 exit status
  make[1]: *** [libraries/integer-gmp/dist-install/build/cbits/gmp-wrappers.p_o] Error 1
2012-09-10 12:28:25 +02:00
Peter Simons
64c0d7a490 ghc: bump 7.6.1-rc1 to version 7.6.1 2012-09-10 11:30:12 +02:00
Andres Loeh
e093d7ea38 ghc-7.6.1-rc1: Add release candidate. 2012-08-13 16:29:01 +02:00
Andres Loeh
83505f15b2 ghc-head: bump snapshot version 2012-07-18 11:02:00 +02:00
Andres Loeh
945a3480d4 ghc-HEAD: update to a new snapshot 2012-07-11 20:04:15 +02:00
Peter Simons
09321105f1 ghc: added version 7.4.2
svn path=/nixpkgs/trunk/; revision=34460
2012-06-11 16:25:45 +00:00
Andres Löh
789df7619e Updated GHC HEAD snapshot.
svn path=/nixpkgs/trunk/; revision=34379
2012-06-08 08:25:30 +00:00
Andres Löh
e5e2432277 Upgrade ghc stable snapshot to 7.4.2rc1.
svn path=/nixpkgs/trunk/; revision=34137
2012-05-16 12:00:05 +00:00
Ludovic Courtès
d44d30b0ba GHC 7.4.2: Remove `darwinInstallNameToolUtility'.
svn path=/nixpkgs/trunk/; revision=33897
2012-04-23 16:28:10 +00:00
Ludovic Courtès
04600bbec1 Darwin: Add mig', lipo', etc. to `stdenvNative'.
Consequently, remove `darwinLipoUtility', `darwinArchUtility', etc.

svn path=/nixpkgs/trunk/; revision=33893
2012-04-23 15:47:31 +00:00
Andres Löh
1a355ca2ea Updated the GHC HEAD snapshot.
svn path=/nixpkgs/trunk/; revision=33879
2012-04-22 16:31:21 +00:00
Peter Simons
f412a1fbe7 development/compilers/ghc/head.nix: fixed sha256 hash
svn path=/nixpkgs/trunk/; revision=33863
2012-04-20 20:17:07 +00:00
Andres Löh
8915da0a6b New GHC snapshots.
svn path=/nixpkgs/trunk/; revision=33858
2012-04-20 12:22:23 +00:00
Peter Simons
3fbeca3ebc pkgs/development/compilers/ghc/wrapper.nix: removed extraneous closing bracket that broke the script
svn path=/nixpkgs/trunk/; revision=33371
2012-03-23 11:26:28 +00:00
Shea Levy
6aa06a6699 ghc-packages: Darwin's native readlink doesn't support -f
svn path=/nixpkgs/trunk/; revision=33366
2012-03-23 03:01:58 +00:00
Peter Simons
115b3d943a pkgs/development/compilers/ghc/with-packages.nix: renamed this expression from "ghc-${ghc.version}-linkdir" to "haskell-env-${ghc.name}"
This change allows use of the with-packages wrapper in user profiles that are
being updated with "nix-env -u \*". The previous name this expression generated
was considered by Nix to be an older version of "ghc-7.0.4-wrapper", because
that name has a higher priority.

svn path=/nixpkgs/trunk/; revision=33325
2012-03-21 11:46:15 +00:00
Peter Simons
d8e65ee71d pkgs/development/compilers/ghc/with-packages.nix: trivial changes to fix syntax highlighting in Emacs
svn path=/nixpkgs/trunk/; revision=33324
2012-03-21 11:46:12 +00:00
Andres Löh
ec99325d80 Explicitly set platforms for 7.4.1 rather than inheriting them.
I hope this will enable darwin builds for 7.4.1 on Hydra.

svn path=/nixpkgs/trunk/; revision=32903
2012-03-08 16:22:01 +00:00
Yury G. Kudryashov
215a07c1a9 svn merge ^/nixpkgs/trunk
Merge conflicts:
* unzip (almost trivial)
* dvswitch (trivial)
* gmp (copied result of `git merge`)

The last item introduced gmp-5.0.3, thus full rebuild.
+ensureDir->mkdir -p in TeX packages was catched by git but not svn.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32091
2012-02-06 23:03:12 +00:00