WIP Elm 0.19
This commit is contained in:
parent
9e44b46bab
commit
db11c832fb
@ -40,28 +40,13 @@ let
|
|||||||
EOF
|
EOF
|
||||||
'' + lib.concatStrings cmds;
|
'' + lib.concatStrings cmds;
|
||||||
|
|
||||||
hsPkgs = haskell.packages.ghc802.override {
|
hsPkgs = haskell.packages.ghc822.override {
|
||||||
overrides = self: super:
|
overrides = self: super:
|
||||||
let hlib = haskell.lib;
|
let hlib = haskell.lib;
|
||||||
elmRelease = import ./packages/release.nix { inherit (self) callPackage; };
|
elmPkgs = {
|
||||||
elmPkgs' = elmRelease.packages;
|
elm = hlib.overrideCabal (self.callPackage ./packages/elm.nix { }) {
|
||||||
elmPkgs = elmPkgs' // {
|
preConfigure = "export HOME=`pwd`";
|
||||||
|
};
|
||||||
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}
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This is not a core Elm package, and it's hosted on GitHub.
|
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".
|
where foo is a tag for a new version, for example "0.3.1-alpha".
|
||||||
*/
|
*/
|
||||||
elm-format = self.callPackage ./packages/elm-format.nix { };
|
elm-format = self.callPackage ./packages/elm-format.nix { };
|
||||||
elm-interface-to-json = self.callPackage ./packages/elm-interface-to-json.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
|
|
||||||
];
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
in elmPkgs // {
|
in elmPkgs // {
|
||||||
inherit elmPkgs;
|
inherit elmPkgs;
|
||||||
elmVersion = elmRelease.version;
|
elmVersion = elmPkgs.elm.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];
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in hsPkgs.elmPkgs // {
|
in hsPkgs.elmPkgs
|
||||||
elm = lib.hiPrio (buildEnv {
|
|
||||||
name = "elm-${hsPkgs.elmVersion}";
|
|
||||||
paths = lib.mapAttrsToList (name: pkg: pkg) hsPkgs.elmPkgs;
|
|
||||||
pathsToLink = [ "/bin" ];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
@ -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