Merge pull request #17276 from ryantrinkle/ghcjs-8.0-support
ghcjs: refactor stage2 handling
This commit is contained in:
commit
0905aea14e
4 changed files with 9 additions and 7 deletions
|
@ -136,6 +136,9 @@ in mkDerivation (rec {
|
|||
isGhcjs = true;
|
||||
inherit nodejs ghcjsBoot;
|
||||
inherit (ghcjsNodePkgs) "socket.io";
|
||||
mkStage2 = import ./stage2.nix {
|
||||
inherit ghcjsBoot;
|
||||
};
|
||||
};
|
||||
|
||||
homepage = "https://github.com/ghcjs/ghcjs";
|
||||
|
|
5
pkgs/development/haskell-modules/ghcjs/gen-stage2.rb → pkgs/development/compilers/ghcjs/gen-stage2.rb
Normal file → Executable file
5
pkgs/development/haskell-modules/ghcjs/gen-stage2.rb → pkgs/development/compilers/ghcjs/gen-stage2.rb
Normal file → Executable file
|
@ -26,10 +26,10 @@ stage2_packages = [
|
|||
]
|
||||
|
||||
nixpkgs = File.expand_path("../../../../..", __FILE__)
|
||||
boot = `nix-build #{nixpkgs} -A haskell.packages.ghcjs.ghc.ghcjsBoot`.chomp
|
||||
boot = ARGV[0] || `nix-build #{nixpkgs} -A haskell.packages.ghcjs.ghc.ghcjsBoot`.chomp
|
||||
|
||||
out = "".dup
|
||||
out << "{ ghcjsBoot, callPackage }:\n"
|
||||
out << "{ ghcjsBoot }: { callPackage }:\n"
|
||||
out << "\n"
|
||||
out << "{\n"
|
||||
|
||||
|
@ -37,6 +37,7 @@ stage2_packages.each do |package|
|
|||
name = Pathname.new(package).basename
|
||||
nix = `cabal2nix file://#{boot}/#{package} --jailbreak`
|
||||
nix.sub!(/src =.*?$/, "src = \"${ghcjsBoot}/#{package}\";")
|
||||
nix.sub!(" doCheck = false;\n", "")
|
||||
nix.sub!("libraryHaskellDepends", "doCheck = false;\n libraryHaskellDepends")
|
||||
# cabal2nix somehow generates the deps for 'text' as if it had selected flag
|
||||
# 'integer-simple' (despite not passing the flag within the generated
|
|
@ -1,4 +1,4 @@
|
|||
{ ghcjsBoot, callPackage }:
|
||||
{ ghcjsBoot }: { callPackage }:
|
||||
|
||||
{
|
||||
async = callPackage
|
|
@ -9,11 +9,9 @@ with import ./lib.nix { inherit pkgs; };
|
|||
|
||||
self: super:
|
||||
# The stage 2 packages. Regenerate with ./ghcjs/gen-stage2.rb
|
||||
let stage2 =
|
||||
(import ./ghcjs/stage2.nix {
|
||||
let stage2 = super.ghc.mkStage2 {
|
||||
inherit (self) callPackage;
|
||||
inherit (self.ghc) ghcjsBoot;
|
||||
}); in stage2 // {
|
||||
}; in stage2 // {
|
||||
|
||||
old-time = overrideCabal stage2.old-time (drv: {
|
||||
postPatch = ''
|
||||
|
|
Loading…
Reference in a new issue