WIP Elm 0.19
This commit is contained in:
parent
9e44b46bab
commit
db11c832fb
@ -40,28 +40,13 @@ let
|
||||
EOF
|
||||
'' + lib.concatStrings cmds;
|
||||
|
||||
hsPkgs = haskell.packages.ghc802.override {
|
||||
hsPkgs = haskell.packages.ghc822.override {
|
||||
overrides = self: super:
|
||||
let hlib = haskell.lib;
|
||||
elmRelease = import ./packages/release.nix { inherit (self) callPackage; };
|
||||
elmPkgs' = elmRelease.packages;
|
||||
elmPkgs = elmPkgs' // {
|
||||
|
||||
elm-reactor = hlib.overrideCabal elmPkgs'.elm-reactor (drv: {
|
||||
buildTools = drv.buildTools or [] ++ [ self.elm-make ];
|
||||
preConfigure = makeElmStuff (import ./packages/elm-reactor-elm.nix);
|
||||
});
|
||||
|
||||
elm-repl = hlib.overrideCabal elmPkgs'.elm-repl (drv: {
|
||||
doCheck = false;
|
||||
buildTools = drv.buildTools or [] ++ [ makeWrapper ];
|
||||
postInstall =
|
||||
let bins = lib.makeBinPath [ nodejs self.elm-make ];
|
||||
in ''
|
||||
wrapProgram $out/bin/elm-repl \
|
||||
--prefix PATH ':' ${bins}
|
||||
'';
|
||||
});
|
||||
elmPkgs = {
|
||||
elm = hlib.overrideCabal (self.callPackage ./packages/elm.nix { }) {
|
||||
preConfigure = "export HOME=`pwd`";
|
||||
};
|
||||
|
||||
/*
|
||||
This is not a core Elm package, and it's hosted on GitHub.
|
||||
@ -72,37 +57,11 @@ let
|
||||
where foo is a tag for a new version, for example "0.3.1-alpha".
|
||||
*/
|
||||
elm-format = self.callPackage ./packages/elm-format.nix { };
|
||||
elm-interface-to-json = self.callPackage ./packages/elm-interface-to-json.nix {
|
||||
aeson-pretty = self.aeson-pretty_0_7_2;
|
||||
either = hlib.overrideCabal self.either (drv :{
|
||||
jailbreak = true;
|
||||
version = "4.4.1.1";
|
||||
sha256 = "1lrlwqqnm6ibfcydlv5qvvssw7bm0c6yypy0rayjzv1znq7wp1xh";
|
||||
libraryHaskellDepends = drv.libraryHaskellDepends or [] ++ [
|
||||
self.exceptions self.free self.mmorph self.monad-control
|
||||
self.MonadRandom self.profunctors self.transformers
|
||||
self.transformers-base
|
||||
];
|
||||
});
|
||||
};
|
||||
elm-interface-to-json = self.callPackage ./packages/elm-interface-to-json.nix {};
|
||||
};
|
||||
in elmPkgs // {
|
||||
inherit elmPkgs;
|
||||
elmVersion = elmRelease.version;
|
||||
# https://github.com/elm-lang/elm-compiler/issues/1566
|
||||
indents = hlib.overrideCabal super.indents (drv: {
|
||||
version = "0.3.3";
|
||||
#test dep tasty has a version mismatch
|
||||
doCheck = false;
|
||||
sha256 = "16lz21bp9j14xilnq8yym22p3saxvc9fsgfcf5awn2a6i6n527xn";
|
||||
libraryHaskellDepends = drv.libraryHaskellDepends ++ [super.concatenative];
|
||||
});
|
||||
elmVersion = elmPkgs.elm.version;
|
||||
};
|
||||
};
|
||||
in hsPkgs.elmPkgs // {
|
||||
elm = lib.hiPrio (buildEnv {
|
||||
name = "elm-${hsPkgs.elmVersion}";
|
||||
paths = lib.mapAttrsToList (name: pkg: pkg) hsPkgs.elmPkgs;
|
||||
pathsToLink = [ "/bin" ];
|
||||
});
|
||||
}
|
||||
in hsPkgs.elmPkgs
|
||||
|
@ -1,41 +0,0 @@
|
||||
{ mkDerivation, aeson, aeson-pretty_0_7_2, ansi-terminal, ansi-wl-pprint
|
||||
, base, binary, bytestring, containers, directory, edit-distance
|
||||
, fetchgit, filemanip, filepath, HUnit, indents
|
||||
, language-ecmascript, language-glsl, mtl, parsec, pretty, process
|
||||
, QuickCheck, stdenv, test-framework, test-framework-hunit
|
||||
, test-framework-quickcheck2, text, union-find
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "elm-compiler";
|
||||
version = "0.18";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/elm-lang/elm-compiler";
|
||||
sha256 = "09fmrbfpc1kzc3p9h79w57b9qjhajdswc4jfm9gyjw95vsiwasgh";
|
||||
rev = "eb97f2a5dd5421c708a91b71442e69d02453cc80";
|
||||
};
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
libraryHaskellDepends = [
|
||||
aeson aeson-pretty_0_7_2 ansi-terminal ansi-wl-pprint base binary
|
||||
bytestring containers directory edit-distance filepath indents
|
||||
language-ecmascript language-glsl mtl parsec pretty process text
|
||||
union-find
|
||||
];
|
||||
executableHaskellDepends = [
|
||||
aeson base binary directory filepath process text
|
||||
];
|
||||
testHaskellDepends = [
|
||||
aeson aeson-pretty_0_7_2 ansi-terminal ansi-wl-pprint base binary
|
||||
bytestring containers directory edit-distance filemanip filepath
|
||||
HUnit indents language-ecmascript language-glsl mtl parsec pretty
|
||||
process QuickCheck test-framework test-framework-hunit
|
||||
test-framework-quickcheck2 text union-find
|
||||
];
|
||||
jailbreak = true;
|
||||
homepage = http://elm-lang.org;
|
||||
description = "Values to help with elm-package, elm-make, and elm-lang.org.";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
# added manually since tests are not passing
|
||||
# https://travis-ci.org/elm-lang/elm-compiler/builds/176845852
|
||||
doCheck = false;
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
{ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base, binary
|
||||
, blaze-html, blaze-markup, bytestring, containers, directory
|
||||
, elm-compiler, elm-package, fetchgit, filepath, mtl
|
||||
, optparse-applicative, raw-strings-qq, stdenv, text, time
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "elm-make";
|
||||
version = "0.18";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/elm-lang/elm-make";
|
||||
sha256 = "1yq4w4yqignlc2si5ns53pmz0a99gix5d2qgi6x7finf7i6sxyw2";
|
||||
rev = "1a554833a70694ab142b9179bfac996143f68d9e";
|
||||
};
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = [
|
||||
aeson ansi-terminal ansi-wl-pprint base binary blaze-html
|
||||
blaze-markup bytestring containers directory elm-compiler
|
||||
elm-package filepath mtl optparse-applicative raw-strings-qq text
|
||||
time
|
||||
];
|
||||
jailbreak = true;
|
||||
homepage = http://elm-lang.org;
|
||||
description = "A build tool for Elm projects";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
{ mkDerivation, aeson, aeson-pretty_0_7_2, ansi-wl-pprint, base, binary
|
||||
, bytestring, containers, directory, edit-distance, elm-compiler
|
||||
, fetchgit, fetchurl, filepath, HTTP, http-client, http-client-tls
|
||||
, http-types, mtl, network, optparse-applicative, parallel-io
|
||||
, pretty, stdenv, text, time, unordered-containers, vector
|
||||
, zip-archive
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "elm-package";
|
||||
version = "0.18";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/elm-lang/elm-package";
|
||||
sha256 = "19krnkjvfk02gmmic5h5i1i0lw7s30927bnd5g57cj8nqbigysv7";
|
||||
rev = "8bd150314bacab5b6fc451927aa01deec2276fbf";
|
||||
};
|
||||
patches = fetchurl {
|
||||
url = https://github.com/jerith666/elm-package/commit/40bab60c2fbff70812cc24cdd97f5e09db3844ad.patch;
|
||||
sha256 = "0j6pi6cv3h9s6vz68bh0c73fysvk83yhhk56kgshvnrmnpcb3jib";
|
||||
};
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
libraryHaskellDepends = [
|
||||
aeson aeson-pretty_0_7_2 ansi-wl-pprint base binary bytestring containers
|
||||
directory edit-distance elm-compiler filepath HTTP http-client
|
||||
http-client-tls http-types mtl network parallel-io text time
|
||||
unordered-containers vector zip-archive
|
||||
];
|
||||
executableHaskellDepends = [
|
||||
aeson aeson-pretty_0_7_2 ansi-wl-pprint base binary bytestring containers
|
||||
directory edit-distance elm-compiler filepath HTTP http-client
|
||||
http-client-tls http-types mtl network optparse-applicative
|
||||
parallel-io pretty text time unordered-containers vector
|
||||
zip-archive
|
||||
];
|
||||
jailbreak = true;
|
||||
homepage = https://github.com/elm-lang/elm-package;
|
||||
description = "Package manager for Elm libraries";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
{ mkDerivation, base, binary, bytestring, bytestring-trie, cmdargs
|
||||
, containers, directory, elm-compiler, elm-package, fetchgit
|
||||
, filepath, haskeline, HUnit, mtl, parsec, QuickCheck, stdenv
|
||||
, test-framework, test-framework-hunit, test-framework-quickcheck2
|
||||
, text
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "elm-repl";
|
||||
version = "0.18";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/elm-lang/elm-repl";
|
||||
sha256 = "112fzykils4lqz4pc44q4mwvxg0px0zfwx511bfvblrxkwwqlfb5";
|
||||
rev = "85f0bcfc28ea6c8a99a360d55c21ff25a556f9fe";
|
||||
};
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = [
|
||||
base binary bytestring bytestring-trie cmdargs containers directory
|
||||
elm-compiler elm-package filepath haskeline mtl parsec text
|
||||
];
|
||||
testHaskellDepends = [
|
||||
base bytestring bytestring-trie cmdargs directory elm-compiler
|
||||
elm-package filepath haskeline HUnit mtl parsec QuickCheck
|
||||
test-framework test-framework-hunit test-framework-quickcheck2
|
||||
];
|
||||
jailbreak = true;
|
||||
homepage = https://github.com/elm-lang/elm-repl;
|
||||
description = "a REPL for Elm";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
30
pkgs/development/compilers/elm/packages/elm.nix
Normal file
30
pkgs/development/compilers/elm/packages/elm.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ mkDerivation, ansi-terminal, ansi-wl-pprint, base, binary
|
||||
, bytestring, containers, directory, edit-distance, fetchgit
|
||||
, file-embed, filepath, ghc-prim, haskeline, HTTP, http-client
|
||||
, http-client-tls, http-types, language-glsl, logict, mtl, network
|
||||
, parsec, process, raw-strings-qq, scientific, SHA, snap-core
|
||||
, snap-server, stdenv, template-haskell, text, time
|
||||
, unordered-containers, utf8-string, vector, zip-archive
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "elm";
|
||||
version = "0.19.0";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/elm/compiler";
|
||||
sha256 = "0s93z9vr0vp5w894ghc5s34nsq09sg1msf59zfiba87sid5vgjqy";
|
||||
rev = "32059a289d27e303fa1665e9ada0a52eb688f302";
|
||||
};
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = [
|
||||
ansi-terminal ansi-wl-pprint base binary bytestring containers
|
||||
directory edit-distance file-embed filepath ghc-prim haskeline HTTP
|
||||
http-client http-client-tls http-types language-glsl logict mtl
|
||||
network parsec process raw-strings-qq scientific SHA snap-core
|
||||
snap-server template-haskell text time unordered-containers
|
||||
utf8-string vector zip-archive
|
||||
];
|
||||
homepage = "http://elm-lang.org";
|
||||
description = "The `elm` command line interface";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
# Take those from https://github.com/elm-lang/elm-platform/blob/master/installers/BuildFromSource.hs
|
||||
$elm_version = "0.18.0"
|
||||
$elm_packages = { "elm-compiler" => "0.18.0",
|
||||
"elm-package" => "0.18.0",
|
||||
"elm-make" => "0.18.0",
|
||||
"elm-reactor" => "0.18.0",
|
||||
"elm-repl" => "0.18.0"
|
||||
}
|
||||
|
||||
for pkg, ver in $elm_packages
|
||||
system "cabal2nix https://github.com/elm-lang/#{pkg} --revision refs/tags/#{ver} --jailbreak > packages/#{pkg}.nix"
|
||||
end
|
||||
|
||||
File.open("packages/release.nix", 'w') do |file|
|
||||
file.puts "# This file is auto-generated by ./update-elm.rb."
|
||||
file.puts "# Please, do not modify it by hand!"
|
||||
file.puts "{ callPackage }:"
|
||||
file.puts "{"
|
||||
file.puts " version = \"#{$elm_version}\";"
|
||||
file.puts " packages = {"
|
||||
for pkg, ver in $elm_packages
|
||||
file.puts " #{pkg} = callPackage ./#{pkg}.nix { };"
|
||||
end
|
||||
file.puts " };"
|
||||
file.puts "}"
|
||||
end
|
Loading…
Reference in New Issue
Block a user