Commit graph

69 commits

Author SHA1 Message Date
Charles Strahan
347a9674c1 ghcjs: cleanup 2014-12-27 18:48:12 -05:00
Charles Strahan
a188373640 Merge branch 'master' of github.com:nixos/nixpkgs into ryghcjs
Conflicts:
	pkgs/development/libraries/haskell/ghcjs-dom/default.nix
	pkgs/top-level/haskell-packages.nix
2014-12-27 14:35:01 -05:00
John Wiegley
28b6fb61e6 Change occurrences of gcc to the more general cc
This is done for the sake of Yosemite, which does not have gcc, and yet
this change is also compatible with Linux.
2014-12-26 11:06:21 -06:00
Charles Strahan
fb59151109 purify ghcjs 2014-12-11 20:56:41 -05:00
Bas van Dijk
6fa969839a Merge branch 'master' of https://github.com/NixOS/nixpkgs into update
Conflicts:
	pkgs/development/libraries/haskell/text-binary/default.nix
	pkgs/top-level/haskell-defaults.nix
	pkgs/top-level/haskell-packages.nix
2014-12-05 07:54:48 +01:00
Bas van Dijk
35cdb19f03 Use mkdir -p instead of deprecated ensureDir 2014-11-29 14:24:31 +01:00
Peter Simons
c7d3f60217 cabal: add support for "editedCabalFile" attribute to address https://github.com/NixOS/cabal2nix/issues/84
When 'editedCabalFile' is set to an SHA256 hash, the build driver replaces the
original Cabal instructions with the new version that is downloaded from
"http://hackage.haskell.org/package/${fname}/${pname}.cabal".
2014-11-26 14:24:45 +01:00
Peter Simons
ffb635eb65 cabal: fix GHC 6.10.4 builds
3e8344d334 added some magic -optP-P flag that the old compiler
version doesn't support.
2014-11-15 18:20:40 +01:00
Luca Bruno
83221f3886 Merge branch 'master' into staging
Makes the build more useful:
- Disabled hybrid iso, makes installer tests pass again
- Imagemagick fixes to the "Illegal instruction" thing
2014-11-08 15:56:40 +01:00
Peter Simons
44273088ad cabal: enable multi-threaded builds with GHC 7.8.x or later for executables
Multi-threaded builds exacerbate the non-determinism in ghc package ids, which
is a serious problem for libraries. Packages that define only executables,
however, should be safe to  build with parallelism enabled.
2014-11-07 23:22:27 +01:00
Peter Simons
40bb2781ee cabal: add "-hidir $TMPDIR" parameter to ghc call that compiles Setup.hs
Packages that don't have a Setup.hs file get to use a default version that
lives in the Nix store. By default ghc tries to put the Setup.o and Setup.hi
files in the same directory as the source file, which isn't writable. This
leads to build errors [1]. Thus, we re-direct those paths to a build-local
writable location: $TMPDIR.

Arguably, we could also use "." or copy the /nix/store/deadbeef-Setup.hs file
into the local source directory before compiling, which would work fine, too.

[1] https://github.com/NixOS/nixpkgs/issues/4851
2014-11-07 23:22:25 +01:00
Eelco Dolstra
7495c61d49 Merge remote-tracking branch 'origin/darwin-clang-stdenv' into staging
Conflicts:
	pkgs/applications/editors/vim/macvim.nix
2014-11-04 14:30:43 +01:00
Peter Simons
bddf342631 Patch 7a20d76 failed when the Haskell expression lacked a meta attribute. This commit fixes that issue. 2014-10-22 00:23:12 +02:00
Peter Simons
7a20d76482 Disable all Haskell builds for Darwin on Hydra.
Hydra generates a GHC closure for Darwin that for no apparent reason
contains an ancient, broken Haddock binary -- probably because of an
impurity in the build system. That bug makes those GHC binaries
unusable: <https://github.com/NixOS/nixpkgs/issues/2689>.
2014-10-21 23:54:51 +02:00
Shea Levy
a3ffe238e7 Revert "cabal: enable multi-threaded builds with GHC 7.8.x or later"
This likely exacerbates the non-determinism in ghc package ids, so until
that is fixed let's live with the slow builds.

This reverts commit 817c0e4144.
2014-10-16 13:17:30 -04:00
Ryan Trinkle
e4ff3fd348 Add defaultSetupHs to ghcjs, and fix it in regular cabal 2014-09-20 18:54:09 -04:00
Joel Taylor
3e8344d334 suitable clang stdenv 2014-09-09 13:54:24 -07:00
Ryan Trinkle
68648f5581 Merge branch 'ghcjs-old' into HEAD
Conflicts:
	pkgs/development/tools/haskell/ghcjs/default.nix
2014-08-30 16:30:58 -04:00
Ryan Trinkle
fa211963ed Another try at fixing the install_name_tool issue. 2014-08-27 13:23:10 -04:00
Ryan Trinkle
bc92dcd08c Prevent install_name_tool from causing a failure when it encounters a non-Mach-O file (e.g.: a bash script). 2014-08-27 13:15:33 -04:00
Ryan Trinkle
4394858433 Integrate ghcjs
Use nixpkgs.haskellPackages_ghcjs to build packages with ghcjs.
2014-08-26 13:35:29 -04:00
Ryan Trinkle
1c9166f649 Factor out ghcjs's libdir better. 2014-08-25 18:46:52 -04:00
Ryan Trinkle
a5e6027ece Get rid of debugging output. 2014-08-24 16:27:44 -04:00
Ryan Trinkle
6142b27760 ghcjs working. 2014-08-23 15:00:13 -04:00
Ryan Trinkle
df0e96175c ghcjs is mostly working. 2014-08-21 14:56:04 -04:00
Peter Simons
817c0e4144 cabal: enable multi-threaded builds with GHC 7.8.x or later
https://github.com/NixOS/nixpkgs/issues/3220
2014-08-17 00:20:12 +02:00
Peter Simons
462e067f45 cabal: cosmetic 2014-08-17 00:20:12 +02:00
Peter Simons
a9fad50181 cabal: minor code re-factoring of shleavy's patch that allows building packages without a Setup.hs file
https://github.com/NixOS/nixpkgs/pull/3585
2014-08-17 00:20:12 +02:00
Shea Levy
dc285e6895 cabal.mkDerivation: Use defaultMain if no Setup.{l,}hs exists.
This mirrors the default behaviour of cabal-install for the Simple build type
2014-08-16 00:13:14 -05:00
Peter Simons
b76a7504bb cabal: cosmetic fix to syntax highlighting in Emacs 2014-08-04 12:39:11 +02:00
Eelco Dolstra
ff97b7dbe6 Merge remote-tracking branch 'origin/master' into staging 2014-07-14 17:04:55 +02:00
Peter Simons
5c677f7117 cabal: cosmetic 2014-07-12 15:13:58 +02:00
Eelco Dolstra
06fc1ec34d Merge remote-tracking branch 'origin/master' into staging
Conflicts:
	pkgs/servers/serfdom/default.nix
2014-07-01 11:25:41 +02:00
Eelco Dolstra
40f7b0f9df Another attempt to eradicate ensureDir
See c556a6ea46.
2014-06-30 14:56:10 +02:00
Benno Fünfstück
c052d7297b cabal-builder: Use hackage mirror
It's now possible to use the mirror system for the cabal builder.
2014-06-28 20:01:40 +02:00
Peter Simons
7d1c124647 Merge pull request #2767 from jwiegley/hscolour
Build Haddocks with source hyperlinks unless doHscolour is false
2014-06-03 10:50:04 +02:00
John Wiegley
176797576c Build Haddocks with source hyperlinks unless doHscolour is false 2014-05-29 20:00:04 -05:00
John Wiegley
b09a788e13 Correct patch the rpath for GHC-built executables on Darwin
@peti This addresses #2488.
2014-05-25 03:29:24 -05:00
Peter Simons
fd0f9e6fc1 Re-write the Haskell Platform out of haskell-defaults.nix.
1) Packages formerly called haskell-haskell-platform-ghcXYZ-VVVV.X.Y.Z are
    now called haskell-platform-VVVV.X.Y.Z. The latest version can be
    installed by running "nix-env -i haskell-platform".

 2) The attributes haskellPackages_ghcXYZ.haskellPlatform no longer exist.
    Instead, we have attributes like haskellPlatformPackages."2012_4_0_0".
    (The last numeric bit must be quoted when used in a Nix file, but not on
    the command line to nix-env, nix-build, etc.) The latest Platform has a
    top-level alias called simply haskellPlatform.

 3) The haskellPackages_ghcXYZ package sets offer the latest version of every
    library that GHC x.y.z can compile. For example, if 2.7 is the latest
    version of QuickCheck and if GHC 7.0.4 can compile that version, then
    haskellPackages_ghc704.QuickCheck refers to version 2.7.

 4) All intermediate GHC releases were dropped from all-packages.nix to
    simplify our configuration. What remains is a haskellPackages_ghcXYZ set
    for the latest version of every major release branch, i.e. GHC 6.10.4,
    6.12.3, 7.0.4, 7.2.2, 7.4.2, 7.6.3, 7.8.2, and 7.9.x (HEAD snapshot).

 5) The ghcXYZPrefs functions in haskell-defaults.nix now inherit overrides
    from newer to older compilers, i.e. an override configured for GHC 7.0.4
    will automatically apply to GHC 6.12.3 and 6.10.4, too. This change has
    reduced the redundancy in those configuration functions. The downside is
    that overriding an attribute for only one particular GHC version has become
    more difficult. In practice, this case doesn't occur much, though.

 6) The 'cabal' builder has a brand-new argument called 'extension'. That
    function is "self : super : {}" by default and users can override it to
    mess with the attribute set passed to cabal.mkDerivation. An example use
    would be the definition of darcs in all-packages.nix:

    | darcs = haskellPackages.darcs.override {
    |   cabal = haskellPackages.cabal.override {
    |     extension = self : super : {
    |       isLibrary = false;
    |       configureFlags = "-f-library " + super.configureFlags or "";
    |     };
    |   };
    | };

    In this case, extension disables building the library part of the package
    to give us an executable-only version that has no dependencies on GHC or
    any other Haskell packages.

    The 'self' argument refers to the final version of the attribute set and
    'super' refers to the original attribute set.

Note that ...

 - Haskell Platform packages always provide the Haddock binary that came with
   the compiler.

 - Haskell Platform 2009.2.0.2 is broken because of build failures in cgi and
   cabal-install.

 - Haskell Platform 2010.1.0.0 is broken becasue of build failures in cgi.
2014-05-14 14:59:52 +02:00
Peter Simons
fc51c1d163 cabal: enable the split-objects feature again for current versions of GHC 2014-05-07 19:13:06 +02:00
Peter Simons
5849a91e8d pkgs/build-support/cabal: revert "the release version of GHC 7.8.x no longer requires"
This reverts commit a2a398fbda. The
issue *does* still exist in GHC 7.8.2. Compiled binaries have no -rpath
into their own install directory ("$out") and thus cannot find their own
shared libraries. To work around this issue, we pass an explicit -rpath
argument at configure time. We do that only on Linux, though, because
-rpath is known to cause trouble on Darwin, which was the reason I
originally reverted that patch.
2014-05-01 23:14:55 +02:00
Peter Simons
a2a398fbda pkgs/build-support/cabal: the release version of GHC 7.8.x no longer requires
the -rpath hack added in 63c60638fc and
edaa56041c to produce dynamically linked
executables
2014-04-18 01:23:45 +02:00
Gergely Risko
2c8e492691 Generate hoogle databases beside HTML haddock documentation for Haskell packages 2014-02-04 18:11:57 +01:00
Peter Simons
631ad32b5d pkgs/build-support/cabal: the configure-phase warning check can be
disabled by setting 'strictConfigurePhase' to 'false'

This is necessary for some packages, like dns, because cabal warns about
multiple versions of the same dependency being used, but the usage is fine,
actually, so we want the build to succeed. Packages that depend on 'doctest'
also have this issue <https://github.com/sol/doctest-haskell/issues/69>.
2013-12-29 12:26:05 +01:00
Peter Simons
6209bb8556 pkgs/build-support/cabal: add 'buildTarget' attribute to allow passing flags to "./Setup build" 2013-12-29 12:26:05 +01:00
Peter Simons
63c60638fc pkgs/build-support/cabal: clean up the code that sets rpath for shared executables 2013-12-29 12:26:05 +01:00
Peter Simons
7d577eb822 build-support/cabal: recognize the "this package indirectly depends on
multiple versions of the same package" warning from Cabal and abort the
build if it occurs.
2013-12-29 12:26:05 +01:00
Peter Simons
edaa56041c pkgs/build-support/cabal: configure a proper library rpath for dynamically linked executables 2013-12-16 21:11:29 +01:00
Benno Fünfstück
ebdff3841a haskell: Propagate cabal dependencies to user env
Before this commit, if a haskell library X depends on Y, and X was added to
systemPackages, only X would be available in the user environment. Y
would not be avialable, which causes X to be broken. This commit solves
the issue by setting propagatedUserEnvPkgs to all packages X depends
on when X is a library.
2013-12-10 20:41:36 +01:00
Peter Simons
ea20904aef cabal: add support for the enableStaticLibrary flag to enable/disable building of static libraries
Disabling static libraries is supported only in GHC 7.7 or later.
2013-12-10 20:41:36 +01:00