Commit graph

74 commits

Author SHA1 Message Date
Peter Simons 4cf52df32e Merge pull request #5663 from ryantrinkle/fix-cabal-js
Use Cabal_1_22_0_0 instead of Cabal_HEAD in cabalJs
2015-01-09 15:33:03 +01:00
Ryan Trinkle 20710afb46 Use Cabal_1_22_0_0 instead of Cabal_HEAD in cabalJs
Cabal_HEAD no longer exists.  When Cabal_1_22_0_0 or later becomes the default, this should be updated again to point to Cabal
2015-01-09 08:29:56 -05:00
John Wiegley 268da01677 cabal: Allow optional use of cpphs as a preprocessor
Pinging @peti.  This is needed on Darwin/Yosemite because clang's
preprocessor is broken there.
2015-01-08 11:55:11 -06:00
Ryan Trinkle b1e967958e Eliminate incorrect version checks from cabalJs 2015-01-02 12:30:19 -05:00
Charles Strahan df55381b65 ghcjs: restructure 2014-12-31 00:03:43 -05:00
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