Commit Graph

67 Commits

Author SHA1 Message Date
Moritz Angermann
87afa66a63 haskell infra: Adds buildFlags logic 2018-05-23 10:27:42 -04:00
Peter Simons
5db3a9df5e
Revert "ghc, haskell infra: #40642 direct to master" 2018-05-23 09:36:16 +02:00
Peter Simons
0e35858252
Merge pull request #40929 from obsidiansystems/cross-ghc-for-master
ghc, haskell infra: #40642 direct to master
2018-05-22 20:37:45 +02:00
Moritz Angermann
82a847a04b haskell infra: Adds buildFlags logic 2018-05-21 15:11:11 -04:00
Will Fancher
5523ec8f3c Make getHaskellBuildInputs / shellFor work with overrideCabal 2018-05-17 20:35:53 -04:00
Ben Gamari
d79fd43c9d haskell.lib: Add {en,dis}ableExecutableProfiling transformer
We already have {en,dis}ableLibraryProfiling and the builder already
accepts the executable profiling attribute; let's make it easy to use.
2018-03-29 13:33:48 -04:00
Matthew Bauer
970f2b5063 Revert "justStaticExecutables: enable -dead_strip on mac to shrink closure"
This reverts commit 24d313e2039b6d89f8a1ba4c5be12b134479fe67.

Fixes #37750
2018-03-26 20:57:32 -05:00
Peter Simons
a8d9a94574 haskell.lib.markBroken: explicitly disable Hydra builds
Recent changes [1] allow Hydra to build packages that are marked broken. To
avoid plenty of evaluation errors on Hydra, explicitly disable Hydra builds of
broken packages.

[1] https://github.com/NixOS/nixpkgs/issues/7541#issuecomment-357541243
2018-01-20 21:40:38 +01:00
Will Fancher
9047a7dd33 Move packageSourceOverrides to haskellLib 2018-01-18 16:42:56 -05:00
Robert Hensing
f40ecb29aa Add documentation for haskell-modules/lib.nix 2018-01-12 10:48:03 +01:00
Shea Levy
3a763b9196
haskellLib: Add shellAware function 2018-01-10 12:08:36 -05:00
Shea Levy
1ee61d8f23
Revert "Revert "hslib: Function to extract the haskell build inputs of a package.""
Trying again, without changing the generic builder.

This reverts commit 65138e8a411244c81aefa21be280323d30010b96.
2017-12-29 14:37:24 -05:00
Peter Simons
65138e8a41 Revert "hslib: Function to extract the haskell build inputs of a package."
This reverts commit d545ef3fa11198f12e525b641aeb33887694f97f. Please don't
commit substantial changes to the generic Haskell builder without giving me a
chance to review them.
2017-12-28 19:23:41 +01:00
Shea Levy
d545ef3fa1
hslib: Function to extract the haskell build inputs of a package.
This works by extracting out some logic from generic-builder.nix to
make it possible to get at the relevant information by overriding
mkDerivation for the haskell package.
2017-12-23 11:44:18 -05:00
Peter Simons
8d8061ec20
Revert "Revive multiple outputs for Haskell packages." 2017-12-05 09:36:08 +01:00
Nicholas Clarke
d90165c7db Revert "Revert "Merge pull request #27209 from nc6/nc/haskell-multiple-out""
This reverts commit 89f5d52cf44baec14a7f542a605243777b16e7a5.
2017-11-27 16:05:22 +00:00
Peter Simons
2439a83072 haskell.lib: strip trailing whitespace 2017-09-19 15:55:50 +02:00
Peter Simons
a8b69958cf haskell.lib: add doBenchmark helper function 2017-09-19 15:55:16 +02:00
Bas van Dijk
b4ea459eab haskell: introduce failOnAllWarnings
Applying `haskell.lib.failOnAllWarnings` to a Haskell package enables the
`-Wall` and `-Werror` GHC options to turn all warnings into build failures.
2017-09-10 13:09:52 +02:00
Peter Simons
89f5d52cf4 Revert "Merge pull request #27209 from nc6/nc/haskell-multiple-out"
This reverts commit dfb0f254844150d05d34150a975e6479b883d409, reversing
changes made to 7f8ff024372f985e96b438fa5591d9b43fc6e7bd. 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
a1d78fa5bc Don't build separate bin output for alex.
It has files in /usr/share which reference the bin output.
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
Domen Kožar
991654fa4a haskell: add combinator to enable DWARF debugging
Tested using:

$ cat test-strip.nix
with (import ./. {});
with haskell.lib;

haskell.packages.ghc802.override {
  overrides = self: super: {
    microlens = enableDWARFDebugging super.microlens;
  };
}

$ nix-build -A microlens test-strip.nix
$ objdump -t <path-to-so-file>
2017-09-02 11:25:50 +01:00
Bas van Dijk
e410a191a1 haskell: add the checkUnusedPackages function including docs 2017-08-30 14:40:54 +02:00
Moritz Kiefer
291da85ed9 haskell: remove any extraneous outputs from sdistTarball 2017-08-10 08:48:59 +02:00
John Ericson
74f5fe5068 haskell infra: Misc cleanups
- The haskell lib is very close to not relying on Nixpkgs. I think
   this is good---simpler to think about and matches Nixpkgs's lib.

 - The haskell lib is only imported once

 - stdenv is exposed more shallowly so it can be overriden more easily.
   I'll eventually use this on Darwin to avoid the Sierra shared
   library problems (unless changes are to be made system-wide).

Closes https://github.com/NixOS/nixpkgs/pull/27840.
2017-08-03 13:12:01 +02:00
Peter Simons
47e3245691 haskell.lib: drop obsolete hasNoDataOutput and hasNoDocOutput functions 2017-07-29 12:39:26 +02:00
michael bishop
be63b1994d enable split-output builds for all haskellPackages 2017-07-27 09:12:06 +02:00
michael bishop
24d313e203
justStaticExecutables: enable -dead_strip on mac to shrink closure 2017-06-14 14:23:53 -03:00
Benno Fünfstück
5f33eb493f haskell-packages: factor package set construction in new file
Closes https://github.com/NixOS/nixpkgs/pull/24850.
2017-04-21 16:25:53 +02:00
Shea Levy
a6c39ed207 haskell-lib: Add overrideSrc helper 2017-04-08 16:21:57 -04:00
Bas van Dijk
c865b8e35e haskell: add the linkWithGold function to link packages with ld.gold
Also support linking the double-conversion package with ld.gold.
2017-04-07 09:44:11 +02: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
Domen Kožar
db23fe1581
haskell: add justStaticExecutables combinator 2017-03-07 18:13:59 +01:00
Domen Kožar
e649974271 Merge pull request #22613 from shajra/fix/9871-3
Haskell infrastructure: fix #9871 (overrideCabal)
2017-02-27 12:54:27 +01: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
Sukant Hajra
98617ccb99 Haskell infrastructure: fix #9871 (overrideCabal)
As per the recommendation by @Mathnerd314, this change seems to work
with the testing I did.

It makes sense to me why it works, but I think it's in an important
enough place that someone with much deeper knowledge of Haskell
infrastructure in Nixpkgs should give it a really heavy review.

I also consolidated all the overrideCabal definitions (there were two)
into a single definition in haskell-modules/lib.nix.
2017-02-09 23:07:40 -06: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
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
Peter Simons
8d86c8274f callHackage: generate expressions for the appropriate target system and compiler 2016-06-13 23:09:56 +02:00
Peter Simons
52aad6c77d haskell.lib.withHoogle: remove obsolete function 2016-06-12 08:37:06 +02:00
Mathieu Boespflug
b1b85ddb81 buildStackPackage: Fix path to generic-stack-builder.nix.
Before:

```
error: getting status of
‘/home/user/nixpkgs/pkgs/development/development/haskell-modules/generic-stack-builder.nix’:
No such file or directory
```
2016-03-06 10:35:25 +01:00
Peter Simons
86d0a9c420 haskell.lib: fix use of callPackage 2016-03-04 22:17:53 +01:00
Mathieu Boespflug
7fedb7c992 Move buildStackProject to haskell.lib. 2016-03-04 21:24:42 +01:00
Peter Simons
c58c68a037 haskell.lib.addPkgconfigDepends: fix broken function
The function is supposed to modify pkgconfigDepends, not buildInputs.
2015-12-17 00:32:16 +01:00
Peter Simons
7802f5c793 haskell.lib: add doDistribute function as a dual to dontDistribute 2015-09-15 16:23:46 +02:00
Peter Simons
78f1720532 haskell-lib: make sdistTarball and buildStrictly functions fuzzier to cope with Hydra builds
In Hydra CI environments, the version strings we get from Hydra don't
necessarily match those hard-coded into the Cabal files. To make those builds
succeed anyway, we have to apply some pattern matching.
2015-08-30 15:20:21 +02:00
Jan Malakhovski
c80af74a84 haskell-packages: throw withHoogle away from the lib 2015-08-18 19:56:17 +00:00
Jan Malakhovski
0013743845 haskell-packages: make hoogle wrapper much more helpful
* Build most of the stuff on /tmp, not in /nix/store.
* Generate hoogle database for all the dependencies.
* Generate haddock index and contents files.
* Cleanup.
2015-08-18 19:56:17 +00:00
Peter Simons
7bcc1bfc11 haskell: add 'addPkgconfigDepend' combinator to lib.nix 2015-08-07 15:13:13 +02:00