From 7c542d0c86ad5958d2772026cf48939c3aee2aa7 Mon Sep 17 00:00:00 2001 From: Domen Kožar Date: Sat, 25 Aug 2018 11:52:48 +0100 Subject: Elm: 0.19 builds with elm-format --- pkgs/development/compilers/elm/default.nix | 53 +++++++++++++++------- .../compilers/elm/packages/elm-format.nix | 19 +++----- .../elm/packages/elm-interface-to-json.nix | 24 ---------- .../compilers/elm/packages/elm-reactor-elm.nix | 22 --------- .../compilers/elm/packages/elm-reactor.nix | 28 ------------ .../development/compilers/elm/packages/indents.nix | 11 +++++ .../development/compilers/elm/packages/release.nix | 13 ------ pkgs/development/compilers/elm/update.sh | 3 ++ 8 files changed, 56 insertions(+), 117 deletions(-) delete mode 100644 pkgs/development/compilers/elm/packages/elm-interface-to-json.nix delete mode 100644 pkgs/development/compilers/elm/packages/elm-reactor-elm.nix delete mode 100644 pkgs/development/compilers/elm/packages/elm-reactor.nix create mode 100644 pkgs/development/compilers/elm/packages/indents.nix delete mode 100644 pkgs/development/compilers/elm/packages/release.nix create mode 100755 pkgs/development/compilers/elm/update.sh (limited to 'pkgs/development/compilers') diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 51f76f1108af..70be5a95105f 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -1,10 +1,12 @@ -{ lib, stdenv, buildEnv, haskell, nodejs, fetchurl, makeWrapper }: +{ lib, stdenv, buildEnv, haskell, nodejs, fetchurl, makeWrapper, git }: # To update: -# 1) Update versions in ./update-elm.rb and run it. -# 2) Checkout elm-reactor and run `elm-package install -y` inside. -# 3) Run ./elm2nix.rb in elm-reactor's directory. -# 4) Move the resulting 'package.nix' to 'packages/elm-reactor-elm.nix'. + +# 1) Modify ./update.sh and run it +# 2) XXX: generate packages/elm-elm.nix +# 3) XXX: versions.dat + +# Notes: # the elm binary embeds a piece of pre-compiled elm code, used by 'elm # reactor'. this means that the build process for 'elm' effectively @@ -48,22 +50,25 @@ let in '' mkdir -p .elm/${ver}/package/${name} cp -R ${pkg} .elm/${ver}/package/${name}/${info.version} - chmod -R +w .elm/${ver}/package/${name}/${info.version} '') deps; - in '' + in (lib.concatStrings cmds) + '' mkdir -p .elm/${ver}/package; - ln -s ${versionsDat} .elm/${ver}/package/versions.dat; - '' + lib.concatStrings cmds; + cp ${versionsDat} .elm/${ver}/package/versions.dat; + chmod -R +w .elm + ''; hsPkgs = haskell.packages.ghc822.override { - overrides = self: super: - let hlib = haskell.lib; - elmPkgs = { - elm = hlib.overrideCabal (self.callPackage ./packages/elm.nix { }) { + overrides = self: super: with haskell.lib; + let elmPkgs = { + elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (attrs: { + # sadly with parallelism most of the time breaks compilation + enableParallelBuilding = false; preConfigure = '' export ELM_HOME=`pwd`/.elm '' + (makeDotElm "0.19.0" (import ./packages/elm-elm.nix)); - }; + }); + + /* This is not a core Elm package, and it's hosted on GitHub. @@ -71,14 +76,28 @@ let cabal2nix --jailbreak --revision refs/tags/foo http://github.com/avh4/elm-format > packages/elm-format.nix - 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.8.0". */ - elm-format = self.callPackage ./packages/elm-format.nix { }; - elm-interface-to-json = self.callPackage ./packages/elm-interface-to-json.nix {}; + elm-format = overrideCabal (self.callPackage ./packages/elm-format.nix { }) (drv: { + # https://github.com/avh4/elm-format/issues/529 + patchPhase = '' + cat >Setup.hs < packages/elm.nix +cabal2nix --no-check cabal://indents-0.3.3 > packages/indents.nix +cabal2nix --no-haddock --no-check --jailbreak --revision refs/tags/0.8.0 http://github.com/avh4/elm-format > packages/elm-format.nix -- cgit 1.4.1