Commit graph

228 commits

Author SHA1 Message Date
Jude Taylor
737b466031 fix ghcjs socket.io 2017-11-01 12:16:48 +01:00
John Ericson
139b4cd0e3 haskell generic-builder: Fix pkg-config dependency
It should be a nativeBuidInput
2017-09-21 15:49:55 -04:00
Peter Simons
33e34aa95b haskell-generic-builder: rename withBenchmarkDepends argument to doBenchmark
This partially undoes the change from 8788bfe762.
The 'doBenchmark' name is more consistent with the naming scheme used for
other phases, like 'doCheck', 'doHaddock', etc.
2017-09-19 15:42:51 +02:00
Peter Simons
89f5d52cf4 Revert "Merge pull request #27209 from nc6/nc/haskell-multiple-out"
This reverts commit dfb0f25484, reversing
changes made to 7f8ff02437. These changes broke
the ghcWithPackages wrapper:

    nix-shell -p "haskellPackages.ghcWithPackages (ps: [ps.mtl])" --run "ghc-pkg list mtl"
    /nix/store/szz84j5k1dy3jdashis6ws28d8l8zxxb-ghc-8.0.2-with-packages/lib/ghc-8.0.2/package.conf.d
        (no packages)
2017-09-06 10:19:18 +02:00
Nicholas Clarke
be90e9aa31 Fix broken rebase. 2017-09-04 12:35:58 +01:00
Nicholas Clarke
8c642d5937 Provide hscolour, happy, alex bin to buildInputs.
Use stdenv.lib.getBin instead of `.bin`
2017-09-04 12:35:57 +01:00
Nicholas Clarke
676362494d Enable multiple outputs for Haskell packages. 2017-09-04 12:35:57 +01:00
Peter Simons
5468d5c662 Merge pull request #27991 from Profpatsch/hoogleLocal-fix
Fix the `ghcWithHoogle` function to cope with the presence of separate `doc` outputs.
2017-08-19 16:26:30 +02:00
davidak
3270aa896b replace "Mac OS X" and "OS X" with "macOS"
as it is the official name since 2016

https://en.wikipedia.org/wiki/Macintosh_operating_systems#Desktop

exception are parts refering to older versions of macOS like

"GUI support for Mac OS X 10.6 - 10.12. Note that Emacs 23 and later [...]"
2017-08-07 21:41:30 +02:00
Profpatsch
e9e25ec5fe pkgs/haskell-modules: expose haddockDir as passthru variable
WIP

If the `hoogle.nix` file wants to have any sane chance of finding haddock
outputs, the packages need to export the haddock folders as an identifier.

A few TODOs still stand, like passing self to the package instead of needing to
pass it to `haddockDir`. Maybe the exported identifier should be integrated into
the fixpoint somehow instead of using `passthru`?
2017-08-06 21:48:22 +02:00
Profpatsch
3f27a36912 pkgs/haskell-modules: two small vanity fixes 2017-08-06 21:46:49 +02:00
Franz Pletz
b116fa5ff2
Merge branch 'master' into staging 2017-07-28 16:08:30 +02:00
michael bishop
be63b1994d enable split-output builds for all haskellPackages 2017-07-27 09:12:06 +02:00
John Ericson
9be40841ea Merge remote-tracking branch 'upstream/master' into staging-base
Conflicts:
	pkgs/build-support/cc-wrapper/default.nix
	pkgs/build-support/gcc-wrapper-old/builder.sh
	pkgs/build-support/trivial-builders.nix
	pkgs/desktops/kde-4.14/kde-package/default.nix
	pkgs/development/compilers/openjdk-darwin/8.nix
	pkgs/development/compilers/openjdk-darwin/default.nix
	pkgs/development/compilers/openjdk/7.nix
	pkgs/development/compilers/openjdk/8.nix
	pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
	pkgs/development/compilers/zulu/default.nix
	pkgs/development/haskell-modules/generic-builder.nix
	pkgs/misc/misc.nix
	pkgs/stdenv/generic/builder.sh
	pkgs/stdenv/generic/setup.sh
2017-07-26 13:46:04 -04:00
John Ericson
ea7d13cf1a stdenv-setup and misc hooks: Work with bash-3.4 for MacOS nix-shell
This is a temporary measure until this impurity is removed from Nix.
2017-07-26 09:08:01 -04:00
John Ericson
f6f40e3fe5 stdenv-setup and misc pkgs: Revert to space-deliminated propagated-* files
We cannot switch to line-delimited yet, because certain Nix commands do
not read in the entire file, but just the first line.
2017-07-26 09:07:55 -04:00
Peter Simons
27ca0cb3d4 haskell-generic-builder: fix syntax high-lightning in Emacs 2017-07-26 10:17:48 +02:00
Peter Simons
e69c7f5641 haskell-generic-builder: include setupHaskellDepends in the generated "env" attribute
We achieve this by moving setupHaskellDepends from the buildInputs attribute
into "otherBuildInputs", which is the attribute the builder uses to construct
the build inputs in both the actual build as well as the "env" attribute.
2017-07-26 10:17:48 +02:00
John Ericson
b087618ac0 Revert "stdenv: Store one package per line in nix-support/propagated-*"
As @oxij points out in [1], this breakage is especially serious because
it changes the contents of built environments without a corresonding
change in their hashes. Also, the revert is easier than I thought.

This reverts commit 3cb745d5a6.

[1]: https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
2017-07-24 01:05:30 -04:00
John Ericson
8d76effc17 stdenv-setup: Make the package accumulators associative arrays instead of strings
This is generally cleaner: less eval, less worrying about separators,
and probably also faster. I got the idea from that python wrapper
script.
2017-07-12 15:30:56 -04:00
John Ericson
3cb745d5a6 stdenv: Store one package per line in nix-support/propagated-*
This makes those files a bit easier to read. Also, for what it's worth,
it brings us one baby step closer to handling spaces in store paths.

Also, I optimized handling of many transitive deps with read. Probably,
not very beneficial, but nice to enforce the pkg-per-line structure.
Doing so let me find much dubious code and fix it.

Two misc notes:

 - `propagated-user-env-packages` also needed to be adjusted as
   sometimes it is copied to/from the propagated input files.

 - `local fd` should ensure that file descriptors aren't clobbered
   during recursion.
2017-07-10 13:32:13 -04:00
Peter Simons
8ddaef6ddf haskell: fix logic error in generic builder introduced in 00892b7e4e
Closes https://github.com/NixOS/nixpkgs/issues/26760.
2017-06-23 12:49:36 +02:00
John Ericson
8a8f0408cd generic-builder: use buildInputs for Haskell dependencies
This actually will matter when I (soon) land cross-compilation support,
and native deps are compiled for the build, instead of host, platform.
But even now, it's good style do this, and one less thing to review
later.

The use of `$nativePkgs` is unfortunate, as it will need to be
swapped out for `$crossPkgs` for build != host builds. This will just a
temporarily cause pain, however, as eventually I will change stdenv to
use a `$runPkgs` (or moral equivalent) in both case.

Closes https://github.com/NixOS/nixpkgs/pull/26480.
2017-06-16 20:18:38 +02:00
David Johnson
00892b7e4e generic-builder.nix: Update doHaddock
By default, `ghcjs` haddocks are precluded from being built. I see no reason to disallow building haddocks on projects built with `ghc` and `ghcjs` (someone can correct me here). `HaLVM` currently does not support `haddock` since it's a Stage 1 `GHC`. https://github.com/GaloisInc/HaLVM/blob/master/src/misc/build.mk.in#L20

Currently, building `haddocks` for `ghcjs` projects requires altering the derivation, which doesn't allow users to take advantage of the cache. This change will relieve that.
2017-06-09 10:04:34 -07:00
Charles Strahan
132b503aac
GHCJS packages: avoid inode explosion
As noted in #25595, a change introduced in 4b77d425aa causes an
explosion of inodes due to the constructions of many, many `ghcEnv`
symlink forests. This commit undoes that change.

To discuss reworking the support for GHCJS plugins, please see: #26192

Fixes #25595
2017-05-28 14:36:37 -04:00
Judah Jacobson
3ef04024d9 Remove unused local command. 2017-05-07 16:39:50 -07:00
Judah Jacobson
2caa7b88ae Fix use of isDarwin conditionals. 2017-05-05 09:53:08 -07:00
Judah Jacobson
7131e06214 haskell: work around linker limits on Mac OS X Sierra.
The Sierra linker added a limit on the number of paths that any one
dynamic library (`*.dylib`) can reference.  This causes problems when
a Haskell library has many immediate dependencies (#22810).

We follow a similar fix as GHC/Cabal/Stack: for each derivation,
create a new directory with symlinks to all the dylibs of its immediate
dependencies, and patch its package DB to reference that directory
using the new `dynamic-library-dirs` field.

Note that this change is a no-op for older versions of GHC, i.e., they will
continue to fail on some packages as before.

Also note that this change causes the bootstrapped versions of GHC to be
recompiled, since they depend on `hscolour` which is built by
`generic-builder.nix`.

Tested by building the `stack` binary as described in #22810.
2017-05-05 09:26:58 -07:00
Leon Isenberg
e73e5c884f haskell: set LD_LIBRARY_PATH in shellHook
LD_LIBRARY_PATH is considered by GHCI.
Previously e.g. `cabal repl` failed on packages with
system library dependencies.
2017-05-03 15:18:45 +02:00
Jörg Thalheim
26f5fa8f97 Merge pull request #24922 from phunehehe/haskell-shell-hook
haskell-modules: fix shell hook
2017-04-15 12:34:41 +02:00
Hoang Xuan Phu
2fde20e271 haskell-modules: fix shell hook
26623240e9 lacks a newline
2017-04-15 16:33:07 +08:00
David Johnson
6f69681dad Add hardening, bump hash to HaLVM 2017-04-14 00:34:02 -05:00
Shea Levy
5e984362f6 haskell generic builder: Use ghcjs's hsc2hs.
This is required when using ghcjs to compile Setup.hs, which we do since #23614.

See comments on c35350a212
2017-04-06 03:16:00 -04:00
Leon Isenberg
2553ceb982 haskell: use GHCJS to build Setup.hs for GHCJS packages
Closes https://github.com/NixOS/nixpkgs/pull/23614.
2017-03-29 20:30:28 +02:00
Jörg Thalheim
d0922896be Merge pull request #23097 from dmjio/halvm
Initial commit of HaLVM support
2017-03-12 18:31:29 +01:00
David Johnson
26623240e9 Init HaLVM at 2.4.0 2017-03-10 19:31:12 -06:00
Peter Simons
060f7cb94d haskell-generic-builder: remove unused nodePackages argument 2017-03-08 09:38:12 +01:00
3noch
4b77d425aa
Fix GHCJS HEAD patch; support GHCJS libdir link; use full ghcEnv for GHCJS
Original:
f3110651c8

(With some tweaks from @cstrahan)

closes #23199
2017-03-02 11:35:11 -05:00
Peter Simons
feffadefed haskell generic-builder: Revert "Pass through the ghcEnv."
This reverts commit a27bc8b317. Please don't add
random stuff to the interface provided by the generic builder without
coordinating with others. There is a proper effort underway to provide that
information in https://github.com/NixOS/nixpkgs/pull/23023.
2017-03-01 19:57:40 +01:00
Peter Simons
3001b821c9 haskell generic-builder: Revert "Pass through the list of haskell build inputs."
This reverts commit c153036525. Please don't add
random stuff to the interface provided by the generic builder without
coordinating with others. There is a proper effort underway to provide that
information in https://github.com/NixOS/nixpkgs/pull/23023.
2017-03-01 19:57:18 +01:00
Shea Levy
c153036525 haskell generic-builder: Pass through the list of haskell build inputs.
Useful for building custom envs.
2017-03-01 13:00:57 -05:00
Shea Levy
a27bc8b317 haskell generic-builder: Pass through the ghcEnv.
Will be useful for nix-buffer
2017-03-01 11:05:50 -05:00
Joe Hermaszewski
8788bfe762 haskell-packages: use benchmark over bench 2017-02-28 09:27:29 +00:00
Joe Hermaszewski
4ab570a6d0 haskell-packages: Add minimal benchDepends support
See also: https://github.com/NixOS/cabal2nix/pull/262
2017-02-27 12:23:11 +00:00
Joe Hermaszewski
fdd9d7fe4c haskell-packages: Add minimal benchDepends support
See also: https://github.com/NixOS/cabal2nix/pull/262
2017-02-27 11:56:33 +00:00
Bas van Dijk
8a928708b4 haskell: add support for Haskell Program Coverage (HPC) to the generic builder
A function is added to enable the generation of a HPC report. For example:

  pkgs.haskell.lib.doCoverage drv

will create a HPC report of the Haskell package drv in the directory:

  $out/share/hpc

Closes https://github.com/NixOS/nixpkgs/pull/22797/files.
2017-02-15 16:17:41 +01:00
Domen Kožar
f031f3105a
GHC 8.0.2: use -split-sections
-split-sections replaced -split-objs with following upsides:

1) -split-objs adds considerable overhead to compile time

2) combined with stripping, it causes issues when cross-compiling

For upstream see https://ghc.haskell.org/trac/ghc/ticket/8405

This is supported only for Linux/Windows using ld linker.

GHC master also turns on -split-sections by default.

Example using stack:

Without splitting

  $ du /nix/store/5paayhibayr73zqfaj458g4k4mv108jn-stack-1.3.2
  4       /nix/store/5paayhibayr73zqfaj458g4k4mv108jn-stack-1.3.2/share/bash-completion/completions
  4       /nix/store/5paayhibayr73zqfaj458g4k4mv108jn-stack-1.3.2/share/bash-completion
  4       /nix/store/5paayhibayr73zqfaj458g4k4mv108jn-stack-1.3.2/share
  23416   /nix/store/5paayhibayr73zqfaj458g4k4mv108jn-stack-1.3.2/bin
  23420   /nix/store/5paayhibayr73zqfaj458g4k4mv108jn-stack-1.3.2

With -split-objs

  $ du /nix/store/fypymm529adpx71gdzm0851xz42wdbz0-stack-1.3.2
  20632   /nix/store/fypymm529adpx71gdzm0851xz42wdbz0-stack-1.3.2/bin
  4 /nix/store/fypymm529adpx71gdzm0851xz42wdbz0-stack-1.3.2/share/bash-completion/completions
  4 /nix/store/fypymm529adpx71gdzm0851xz42wdbz0-stack-1.3.2/share/bash-completion
  4       /nix/store/fypymm529adpx71gdzm0851xz42wdbz0-stack-1.3.2/share
  20636   /nix/store/fypymm529adpx71gdzm0851xz42wdbz0-stack-1.3.2

With -split-sections

  $ du /nix/store/40l6krinx1zx41lr87c4m12hxj4ldf3x-stack-1.3.2
  4       /nix/store/40l6krinx1zx41lr87c4m12hxj4ldf3x-stack-1.3.2/share/bash-completion/completions
  4       /nix/store/40l6krinx1zx41lr87c4m12hxj4ldf3x-stack-1.3.2/share/bash-completion
  4       /nix/store/40l6krinx1zx41lr87c4m12hxj4ldf3x-stack-1.3.2/share
  20672   /nix/store/40l6krinx1zx41lr87c4m12hxj4ldf3x-stack-1.3.2/bin
  20676   /nix/store/40l6krinx1zx41lr87c4m12hxj4ldf3x-stack-1.3.2

Note: you currently need following overrides to build stack on 802:

   vector-algorithms = dontCheck super.vector-algorithms;
   path-io = doJailbreak super.path-io;
   stack = doJailbreak super.stack;

Note: Should also work on GHC 8.0.1, but I'm being careful here.
      We could backport later on.
2017-02-07 14:21:54 +01:00
Shea Levy
2154108270 haskell-modules/generic-builder: Fix copy-paste error 2017-01-23 11:35:59 -05:00
Shea Levy
0ff6b6fc0f (haskellPackages.callPackage foo).env: Set the right env vars when cross-compiling 2017-01-22 17:05:19 -05:00
Shea Levy
60918113af haskellPackages.mkDerivation: Use native hsc2hs when cross-compiling 2017-01-11 13:26:08 -05:00
Domen Kožar
663048f378 Revert "haskell: workaround for bug with dynamic libraries on darwin"
This reverts commit 19e2e7290a.

See the correct fix in aa64994b48a29ea8d12323942f1743fa4133527a

General purpose solution will be once we implement
https://github.com/NixOS/nixpkgs/issues/21624
2017-01-03 23:10:24 +01:00
Peter Simons
711c235777 haskell: clean-up for the generic builder
Clean up the implementation from d0250ad884.
2017-01-03 10:52:50 +01:00
Daiderd Jordan
19e2e7290a haskell: workaround for bug with dynamic libraries on darwin 2016-12-24 16:15:35 +01:00
Domen Kožar
d0250ad884 Haskell generic builder: enable parallel builds for GHC 8.0.2
This reverts https://github.com/NixOS/nixpkgs/pull/4554
2016-12-16 22:25:40 +01:00
Joe Hermaszewski
757638acae ghcWithPackages: fix env NIX_GHC_LIBDIR value
Ideally the duplication between the environment shellHook and the ghc
wrapper would be removed.

Fixes #20730
2016-11-26 12:06:56 +00:00
Vladimír Čunát
2aea31b52e
Merge branch 'staging' 2016-11-19 21:55:26 +01:00
Shea Levy
64ec4dd87b Add haskell packages set for cross ghc 2016-11-18 10:44:53 -05:00
Shea Levy
3995655d2c Revert "Merge pull request #17145 from kalhauge/haskell_darwin_dyld"
This fix doesn't actually fix the cabal bug (see #16357), but it does
cause other bugs (see #20476)

Fixes #20476

This reverts commit b89fa5fd5c, reversing
changes made to e4b146b041.
2016-11-17 07:25:42 -05:00
Peter Simons
b59b89d9e3 Revert "Extend Haskell generic builder to use new --ipid flag."
This reverts commit ec8b816154. The change told
the Cabal build system to use the hash-part of $out as the internal identifier
for the library it's building (rather than generating such an ID itself). While
a good idea in theory, this choice had an unfortunate side-effect: When Cabal
links libraries X, Y, and Z into an executable, then the generated binary
contains their respective IDs. Now, Nix finds those strings and treats them as
an indication that there is a *run-time dependency* on the corresponding store
paths. This means that the generated executable will always depend on the store
paths of all the Haskell libraries that went into it, even when linked
statically.
2016-10-08 10:45:48 +02:00
Peter Simons
ec8b816154 Extend Haskell generic builder to use new --ipid flag. 2016-10-05 09:46:53 +02:00
Peter Simons
97fd905823 haskell: add support for 'hardeningDisable' to the generic builder
We also have a new helper function 'disableHardening' to use in
overrides. Fixes https://github.com/NixOS/nixpkgs/issues/14820.
2016-09-15 09:12:03 +02:00
Christian Gram Kalhauge
1a08805358 Make the implementation clean 2016-07-21 14:56:45 +02:00
Christian Gram Kalhauge
9bca29d4ef Change if to optionalString 2016-07-21 14:23:56 +02:00
Christian Gram Kalhauge
de5a2ee034 Reduce computation time for non-darwin users 2016-07-21 11:39:52 +02:00
Christian Gram Kalhauge
475c8bfb7d Fix DLYD problem with haskell libraries on Darwin
This commit fixes a problem that occurs with externally linked haskell
libraries on Darwin. It does this by adding the libraries to the
--extra-lib-dirs flag and the DYLD_LIBRARY_PATH environment variable.
2016-07-20 14:21:53 +02:00
Michael Alan Dorman
b40e1efe00 haskell generic-builder: don't propagate setupHaskellDepends
Without this patch, attempts to install at least some of the packages
that start to use setupHaskellDepends (mostly gtk-related packages)
results in collisions:

    building path(s) ‘/nix/store/63k5smns43f5r2ad8wcc242x0gwd70m3-ghc-8.0.1’
    collision between `/nix/store/k18i1nm5hgnb82y9w2g9hmlwhk3szjld-ghc-8.0.1/lib/ghc-8.0.1/Cabal-1.24.0.0/Distribution/Compat/Binary.dyn_hi' and `/nix/store/0rwhbwsg9kmywgbrib2bs29p2hmi80za-Cabal-1.24.0.0/lib/ghc-8.0.1/Cabal-1.24.0.0/Distribution/Compat/Binary.dyn_hi'
    builder for ‘/nix/store/vrjkfpm8sb96m9i5k74h8vn0rwddgy4v-ghc-8.0.1.drv’ failed with exit code 25

This would appear to me to be a consequence of setupHaskellDepends
entries being added to propagateBuildInputs.  It is sufficient in the
cases I'm familiar with (taffyBar), and I think correct, to simply add
it to the otherBuildInputs.
2016-06-13 09:51:35 +02:00
Peter Simons
8ffcd238c3 haskell-generic-builder: add support for setupHaskellDepends 2016-06-12 08:37:01 +02:00
Jude Taylor
4686bc54a6 add socket.io to interactive ghcjs environments 2016-03-01 16:06:29 -08:00
John Ericson
f13eede7e5 haskell: Tiny refactor in generic-builder. No hashes/interfaces changed. 2016-02-21 10:16:13 -08:00
John Ericson
51b66ed4d9 haskell: Add notion of cross compiler and define nativeGhc with it
Tested to not change hashes
2016-02-21 10:16:13 -08:00
Charles Strahan
97d9071b95 ghcjs: use native ghc to build Setup.hs 2016-02-18 03:15:59 -05:00
Charles Strahan
bbce88302a ghcjs: fix building with cabal-install-1.22.8.0 2016-02-18 03:15:59 -05:00
Charles Strahan
95d892ec26 ghcjs: update and fix ghcjs/reflex libs
Set dontStrip when building ghcjs libs, which fixes the ghcjs-dom lib
and also makes the logs cleaner.
2016-01-24 17:13:45 -05:00
Charles Strahan
4fd985b9ae haskell-packages: properly set postPatch
The existing code overrode the postPatch, instead of combining the
jailbreak commands with the user supplied postPatch.
2016-01-24 13:32:56 -05:00
Peter Simons
9815d92d91 haskell-generic-builder: GHC 8.0.x wants --disable-profiling instead of --disable-executable-profiling 2016-01-17 12:29:03 +01:00
Peter Simons
a3540d9bb7 haskell-generic-builder: drop "haskell-" prefix from interactive environment's names 2015-09-10 19:51:47 +02:00
Allen Nelson
d2457ea991 add shellHook argument so that users can pass in their own 2015-09-09 12:58:28 -05:00
Peter Simons
dc5bf39bfe haskell-generic-builder: improve meta.platforms vs. meta.hydraPlatforms logic
hydraPlatforms now defaults to the value of meta.platforms rather than
defaulting to ghc.meta.hydraPlatforms. This solution is, in fact, still
sub-optimal. See https://github.com/NixOS/nixpkgs/issues/9608 for further
details.
2015-09-02 16:51:35 +02:00
Peter Simons
4a8797d827 haskell-generic-builder: stop pre-pending "haskell-" to package names
A derivation of the Hackage package "foo" is called "haskell-foo" if it is a
library, but only "foo" if it is an executable (without a library). This
distinction used to be fine when Haskell packages where visible to operations
like "nix-env -qa" or "nix-env -i", but after our switch to Haskell NG it has
no more purpose. Consequently, this patch removes the name prefix from all
Haskell packages -- every Haskell package is now called exactly like it's
called on Hackage.

Closes https://github.com/NixOS/nixpkgs/pull/9538.
2015-08-31 16:50:12 +02:00
William A. Kennington III
64cd711f5c Merge branch 'master.upstream' into staging.upstream 2015-08-21 15:17:26 -07:00
Benno Fünfstück
c51f0dbd52 haskell: disable haddock on GHC <7.8 on darwin
Fixes NixOS/nixpkgs#812
2015-08-20 21:51:19 +02:00
William A. Kennington III
a106080623 Merge branch 'master.upstream' into staging.upstream 2015-08-14 13:22:00 -07:00
Peter Simons
167e54b257 haskell-generic-builder: allow users to specify their own install phase 2015-08-14 21:23:42 +02:00
William A. Kennington III
4624985561 Merge branch 'master.upstream' into staging.upstream 2015-08-07 13:40:39 -07:00
Peter Simons
7064e4fb46 haskell-generic-builder: add support for build-tools in the test suite stanza 2015-08-07 15:13:14 +02:00
Peter Simons
6229ec91da Add 'enableExecutableProfiling' argument to the generic Haskell builder.
Closes https://github.com/NixOS/nixpkgs/issues/2734.
2015-08-06 16:13:10 +02:00
Peter Simons
ab77228749 haskell-generic-builder: improve recognition of pkgconfig dependencies 2015-08-05 21:36:20 +02:00
Peter Simons
6cd9a820ad haskell: extend generic builder to support upcoming format change from cabal2nix 2015-07-19 10:31:13 +02:00
Peter Simons
7e04b7319c haskell: disable parallel compilation for libraries to mitigate the effects of GHC's non-deterministic library ID bug
Further details can be found at <https://github.com/peti/ghc-library-id-bug>
and <https://ghc.haskell.org/trac/ghc/ticket/4012>.
2015-06-05 23:55:01 +02:00
Ryan Trinkle
82bd3a5580 Do not use install_name_tool on "executables" built by GHCJS
These executables are really .jsexe directories, and install_name_tool will fail
2015-05-31 03:18:13 -04:00
Charles Strahan
31dde16881 ghcjs: set NIX_GHCJS_* variables in env. 2015-05-08 11:53:28 -04:00
Charles Strahan
929dc4199a ghcjs: properly wrap binaries in environment
This also:

 1  Builds Setup.hs with ghcjs, which (among other things) defines
    __GHCJS__ and ghcjs_HOST_OS during pre-processing.
 2  Fixes ghc-paths to point at ghcjs and use NIX_GHCJS_* env-vars.
 3  Boots ghcjs into $prefix/lib/$compiler.
2015-05-08 11:33:44 -04:00
Nikolay Amiantov
196e34279d haskellng.generic-builder: move jailbreak-cabal to postPatch
Closes https://github.com/NixOS/nixpkgs/pull/7208.
2015-04-18 20:43:22 +02:00
Cray Elliott
880e0950d8 Revert "add patchFlags to haskell-ng's generic-builder"
Oops! Didn't realize that the stripLen option can be passed to fetchpatch.
Seems a cleaner than my method

This reverts commit eb7362a36c.
2015-04-05 01:06:20 -07:00
Cray Elliott
eb7362a36c add patchFlags to haskell-ng's generic-builder
I use this to get yesod-bin working with ghc 7.10.1
2015-04-05 00:48:12 -07:00
Peter Simons
945269a48f haskell-generic-builder: gratuitous cosmetic change to trigger a complete re-build
hydra.nixos.org serves broken binaries because of our favorite non-deterministic
package IDs in GHC bug. :-( Re-building everything from scratch seems like the
easiest way to recover.
2015-04-01 22:54:45 +02:00
Peter Simons
7eda2f9ebb haskell-generic-builder: allow use of 'env' attributes in nix-shell
We disabled this to prevent users from accidentally running nix-build on
an 'env' attribute, but in fact the ability to use those in combination
with "nix-shell -p" is quite useful, so the restriction is lifted.
2015-04-01 22:54:45 +02:00
Peter Simons
59a1969f88 haskell-generic-builder: enable parallel building of libraries with GHC version >= 7.10.1
We'll blame @Fuuzetsu if this change produces broken binaries left and right.
2015-04-01 22:54:45 +02:00
Peter Simons
943bc26762 haskell-generic-builder: when replacing an edited Cabal file, show the download URL rather than the store path 2015-04-01 22:54:45 +02:00
Charles Strahan
d590a0f4b6 ghcjs: support for Haskell-NG
closes #5828
closes #6786
2015-03-29 03:34:04 +02:00
Eelco Dolstra
5c0eb64d43 Set more precise meta.position for Haskell packages 2015-03-27 16:17:48 +01:00
Peter Simons
013b12a54c haskell-ng: expose Hackage's revision number in hackage-packages.nix and use it to generate stable download URLs for edited Cabal files
Fixes https://github.com/NixOS/nixpkgs/issues/6914.
2015-03-25 14:37:15 +01:00
Peter Simons
c776477350 haskell-generic-builder: update and jailbreak cabal files before patchPhase is run
The updated and jailbroken Cabal file must be in place before the
'patchPhase' hook is run, otherwise we cannot use that hook to patch the
Cabal file! Resolves https://github.com/NixOS/nixpkgs/issues/5922.

As an added bonus, this change makes the "jailbreakPhase" obsolete.
2015-03-09 15:55:25 +01:00
Peter Simons
3e9e1a2f4e haskell-generic-builder: set LOCALE_ARCHIVE only on Linux 2015-03-09 15:55:25 +01:00
Peter Simons
0a97e2153e haskell-generic-builder.nix: don't add lib64 directories to the search path
Packages that provide 32 and 64-bit libraries in the same store path are rare
and usually require manual overrides anyway. It seems pointless to try and
guess proper settings for them. The effect is that we'll end up with bogus
settings that take more effort to correct that it takes to configure proper
settings in the first place. Point in case: haskell-cuda and it's configuration
for "cudatools".

Fixes https://github.com/NixOS/nixpkgs/issues/6564.
2015-03-09 15:55:25 +01:00
Peter Simons
c4ff9d10ba haskell-generic-builder: consistently use $TMPDIR to refer to the designated place for temporary files
Resolves https://github.com/NixOS/nixpkgs/issues/6525.
2015-03-09 15:55:24 +01:00
Joel Taylor
8bfa1a2efc Patches for a lot of packages for GHC 7.10 2015-02-22 17:33:10 -08:00
Peter Simons
5d5b51dfc0 haskell-generic-builder: add a passthru attribute 'isHaskellLibrary' to every derivation
The presence of this attribute allows us to recognize Haskell derivations.
Furthermore, we can use it to distinguish libraries from executables (which is
useful for the code that's generating the wrapper).
2015-02-22 22:13:10 +01:00
Peter Simons
9db348d7f9 ghc-7.10.x: compile Setup.hs with -threaded to avoid hanging test suites
Closes https://github.com/NixOS/nixpkgs/issues/6259.
2015-02-13 22:24:32 +01:00
Peter Simons
69cda1a7c0 haskell-generic-builder: set locale to "UTF-8" in nix-shell environments
The package builder did this already, but I forgot to add the setting in
the interactive environment.

Fixes https://github.com/NixOS/nixpkgs/issues/5904.
2015-01-23 08:19:46 +01:00
Peter Simons
9ab8a12b06 haskell-generic-builder: re-enable the checkPhase that was accidentally broken in the earlier re-factoring 2015-01-20 16:17:14 +01:00
Peter Simons
8959aade32 haskell-generic-builder: allow setting preUnpack and postUnpack hooks
This is useful for Hydra builds that have more than one package in the
same repository and need to change to the proper directory.
2015-01-19 23:15:29 +01:00
Peter Simons
380114738f haskell-ng: rename "noHaddock" attribute to "doHaddock"
This makes the attribute (a) consistent with "doCheck" and friends and (b)
avoids the double negation "noHaddock = false" meaning "doHaddock = true".

Fixes https://github.com/NixOS/cabal2nix/issues/63.
2015-01-18 12:58:31 +01:00
Peter Simons
54bbfd5440 haskell-generic-builder: re-factor for improved modularity 2015-01-17 20:29:00 +01:00
Peter Simons
e6ecb1fb83 haskell-ng: enable package sets for GHC 6.12.3, 7.0.4, 7.2.2, and 7.4.2 2015-01-17 20:29:00 +01:00
Eric Seidel
ed1ca3928d don't use cpphs by default on darwin 2015-01-15 13:40:04 -08:00
Peter Simons
df76eb1268 ghc: revert "propagate 'gmp' and 'ncurses' to ensure users can link the 'haskeline' library, etc."
I thought that [1] could be fixed by ensuring that ncurses is available in the
environment (because ghc exports it as a propagateBuildInput), and indeed that
change fixed *some* build failures we've had before. However, the same error
still occurs with other packages, like hledger [2] and Agda [3]. Frankly, I
have no idea why those packages fail and others don't. But clearly the fix was
inadequate, so I'm reverting commit a8076c76.

[1] https://github.com/NixOS/nixpkgs/issues/5616
[2] http://hydra.cryp.to/build/372451/nixlog/1/raw
[2] http://hydra.cryp.to/build/373161/nixlog/1/raw
2015-01-14 22:24:33 +01:00
Peter Simons
a8076c7654 ghc: propagate 'gmp' and 'ncurses' to ensure users can link the 'haskeline' library, etc.
Fixes https://github.com/NixOS/nixpkgs/issues/5616.
2015-01-14 11:24:59 +01:00
Peter Simons
007628fd49 haskell-generic-builder: use cpphs pre-processor by default on Darwin
Allegedly, the cpp implementation of Clang is weird and causes errors.
2015-01-13 22:33:17 +01:00
Peter Simons
67312f83ad haskell-generic-builder: pass "--with-gcc=$CC" on Darwin to help Cabal find Clang
Suggested in https://github.com/NixOS/nixpkgs/pull/5746.
2015-01-13 22:33:01 +01:00
Shea Levy
67460ea19f haskellng: Fix amazonka-core on 7.8
Required adding a flag to the generic builder to build Setup.hs with
core packages even if there is an override in buildInputs, to break
circular dependencies.
2015-01-12 15:41:03 -05:00
Peter Simons
bca9b8d867 haskell-generic-builder: make $shellHook in 'env' attribute more robust
In case our GHC environment is empty, the old code ended up running
'grep export' on a GHC binary, which doesn't seem like a good idea.
2015-01-11 11:59:47 +01:00
Peter Simons
dbb4012fdc haskell-generic-builder: add a helpful message that explains why it makes no sense to build an 'env' attribute 2015-01-11 11:39:16 +01:00
Peter Simons
b31082d246 haskell-generic-builder: propagate build inputs only if we're building a library 2015-01-10 23:54:30 +01:00
Peter Simons
89b5d9ee14 haskell-generic-builder: add an 'env' attribute to every Haskell expression that can be used with nix-shell to create an interactive build environment for this package
For example:

  nix-shell --pure ~/.nix-defexpr -A haskell-ng.packages.ghc784.hsdns.env
2015-01-10 15:55:47 +01:00
Peter Simons
afca6145d4 haskell-generic-builder: simplify "package.conf.d" management
The builder creates a temporary package.conf.d database in $TMP that
contains everything required to build the current package (i.e. the
transitive closure of the package's propagated build inputs). These
files are no longer installed, however, we just install the package.conf
file for the package we're actually building. This means that
package.conf.d directory in $out won't have collisions anymore, which
simplifies the with-packages-wrapper.nix a bit.
2015-01-10 15:55:47 +01:00
Peter Simons
2f2f767813 haskell-generic-builder: allow selective enabling/disabling of the --hoogle flag to Haddock 2015-01-09 19:55:25 +01:00
Peter Simons
54baa53df1 Say hello to our brand-new Haskell infrastructure. 2015-01-07 23:45:21 +01:00