From 6da4584acf4478b04457d57f3881b3aca7d3f7b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Thu, 3 Jan 2019 16:31:00 +0000 Subject: [PATCH 1/3] Elm: automate packaging with elm2nix - rewrite documentation - automate whole process into update.sh - remove all legacy snippets --- doc/package-notes.xml | 18 ++--- pkgs/development/compilers/elm/README.md | 24 +++++++ pkgs/development/compilers/elm/default.nix | 54 +-------------- pkgs/development/compilers/elm/elm2nix.rb | 26 -------- .../compilers/elm/packages/elm-elm.nix | 50 -------------- .../compilers/elm/packages/elm-srcs.nix | 62 ++++++++++++++++++ .../compilers/elm/packages/elm.nix | 1 + pkgs/development/compilers/elm/update.sh | 9 ++- pkgs/development/compilers/elm/versions.dat | Bin 83377 -> 94810 bytes 9 files changed, 104 insertions(+), 140 deletions(-) create mode 100644 pkgs/development/compilers/elm/README.md delete mode 100755 pkgs/development/compilers/elm/elm2nix.rb delete mode 100644 pkgs/development/compilers/elm/packages/elm-elm.nix create mode 100644 pkgs/development/compilers/elm/packages/elm-srcs.nix diff --git a/doc/package-notes.xml b/doc/package-notes.xml index 803d343aa09..e23593107d8 100644 --- a/doc/package-notes.xml +++ b/doc/package-notes.xml @@ -307,23 +307,19 @@ packageOverrides = pkgs: { +
Elm - The Nix expressions for Elm reside in - pkgs/development/compilers/elm. They are generated - automatically by update-elm.rb script. One should specify - versions of Elm packages inside the script, clear the - packages directory and run the script from inside it. - elm-reactor is special because it also has Elm package - dependencies. The process is not automated very much for now -- you should - get the elm-reactor source tree (e.g. with - nix-shell) and run elm2nix.rb inside - it. Place the resulting package.nix file into - packages/elm-reactor-elm.nix. + To update Elm compiler, see nixpkgs/pkgs/development/compilers/elm/README.md. + + + + To package Elm applications, read about elm2nix.
+
Interactive shell helpers diff --git a/pkgs/development/compilers/elm/README.md b/pkgs/development/compilers/elm/README.md new file mode 100644 index 00000000000..f0254d0f954 --- /dev/null +++ b/pkgs/development/compilers/elm/README.md @@ -0,0 +1,24 @@ +# To update Elm: + +Modify revision in ./update.sh and run it + +# Notes about the build process: + +The elm binary embeds a piece of pre-compiled elm code, used by 'elm +reactor'. This means that the build process for 'elm' effectively +executes 'elm make'. that in turn expects to retrieve the elm +dependencies of that code (elm/core, etc.) from +package.elm-lang.org, as well as a cached bit of metadata +(versions.dat). + +The makeDotElm function lets us retrieve these dependencies in the +standard nix way. we have to copy them in (rather than symlink) and +make them writable because the elm compiler writes other .dat files +alongside the source code. versions.dat was produced during an +impure build of this same code; the build complains that it can't +update this cache, but continues past that warning. + +Finally, we set ELM_HOME to point to these pre-fetched artifacts so +that the default of ~/.elm isn't used. + +More: https://blog.hercules-ci.com/elm/2019/01/03/elm2nix-0.1/ diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 47a0d459a93..3c8ae70981e 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -2,54 +2,6 @@ , haskell, nodejs , fetchurl, fetchpatch, makeWrapper, git }: -# To update: - -# 1) Modify ./update.sh and run it - -# 2) to generate versions.dat: -# 2.1) git clone https://github.com/elm/compiler.git -# 2.2) cd compiler -# 2.3) cabal2nix --shell . | sed 's/"default",/"ghc822",/' > shell.nix -# 2.4) nix-shell -# 2.5) mkdir .elm -# 2.6) export ELM_HOME=$(pwd)/.elm -# 2.7) cabal build -# 2.8) cp .elm/0.19.0/package/versions.dat ... - -# 3) generate a template for elm-elm.nix with: -# ( -# echo "{"; -# jq '.dependencies | .direct, .indirect | to_entries | .[] | { (.key) : { version : .value, sha256: "" } } ' \ -# < ui/browser/elm.json \ -# | sed 's/:/ =/' \ -# | sed 's/^[{}]//' \ -# | sed -E 's/(["}]),?$/\1;/' \ -# | sed -E 's/"(version|sha256)"/\1/' \ -# | grep -v '^$'; -# echo "}" -# ) -# -# ... then fill in the sha256s - -# 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 -# executes 'elm make'. that in turn expects to retrieve the elm -# dependencies of that code (elm/core, etc.) from -# package.elm-lang.org, as well as a cached bit of metadata -# (versions.dat). - -# the makeDotElm function lets us retrieve these dependencies in the -# standard nix way. we have to copy them in (rather than symlink) and -# make them writable because the elm compiler writes other .dat files -# alongside the source code. versions.dat was produced during an -# impure build of this same code; the build complains that it can't -# update this cache, but continues past that warning. - -# finally, we set ELM_HOME to point to these pre-fetched artifacts so -# that the default of ~/.elm isn't used. - let fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; }; hsPkgs = haskell.packages.ghc822.override { @@ -58,8 +10,8 @@ let elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: { # sadly with parallelism most of the time breaks compilation enableParallelBuilding = false; - preConfigure = fetchElmDeps { - elmPackages = (import ./packages/elm-elm.nix); + preConfigure = self.fetchElmDeps { + elmPackages = (import ./packages/elm-srcs.nix); versionsDat = ./versions.dat; }; buildTools = drv.buildTools or [] ++ [ makeWrapper ]; @@ -75,8 +27,6 @@ let ''; }); - - /* The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: `pacakge/nix/build.sh` diff --git a/pkgs/development/compilers/elm/elm2nix.rb b/pkgs/development/compilers/elm/elm2nix.rb deleted file mode 100755 index fab5551ca15..00000000000 --- a/pkgs/development/compilers/elm/elm2nix.rb +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env ruby - -require 'json' - -system("elm-package install -y") -depsSrc = JSON.parse(File.read("elm-stuff/exact-dependencies.json")) -deps = Hash[ depsSrc.map { |pkg, ver| - url = "https://github.com/#{pkg}/archive/#{ver}.tar.gz" - sha256 = `nix-prefetch-url #{url}` - - [ pkg, { version: ver, - sha256: sha256.strip - } - ] -} ] - -File.open("package.nix", 'w') do |file| - file.puts "{" - for pkg, info in deps - file.puts " \"#{pkg}\" = {" - file.puts " version = \"#{info[:version]}\";" - file.puts " sha256 = \"#{info[:sha256]}\";" - file.puts " };" - end - file.puts "}" -end diff --git a/pkgs/development/compilers/elm/packages/elm-elm.nix b/pkgs/development/compilers/elm/packages/elm-elm.nix deleted file mode 100644 index a38e21daa06..00000000000 --- a/pkgs/development/compilers/elm/packages/elm-elm.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - "elm/browser" = { - version = "1.0.0"; - sha256 = "1apmvyax93nvmagwj00y16zx10kfv640cxpi64xgqbgy7d2wphy4"; - }; - "elm/core" = { - version = "1.0.0"; - sha256 = "10kr86h4v5h4p0586q406a5wbl8xvr1jyrf6097zp2wb8sv21ylw"; - }; - "elm/html" = { - version = "1.0.0"; - sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k"; - }; - "elm/http" = { - version = "1.0.0"; - sha256 = "1igmm89ialzrjib1j8xagkxalq1x2gj4l0hfxcd66mpwmvg7psl8"; - }; - "elm/json" = { - version = "1.0.0"; - sha256 = "1g0hafkqf2q633r7ir9wxpb1lnlzskhpsyi0h5bkzj0gl072zfnb"; - }; - "elm/project-metadata-utils" = { - version = "1.0.0"; - sha256 = "1d4rd4grrnbdvj9gf00h7dr6hbkjzawgkzpizfrkp1z1pyr3mvq9"; - }; - "elm/svg" = { - version = "1.0.0"; - sha256 = "08x0v8p9wm699jjmsnbq69pxv3jh60j4f6fg7y6hyr7xxj85y390"; - }; - "elm-explorations/markdown" = { - version = "1.0.0"; - sha256 = "0k3110ixa4wwf3vkkdplagwah9ypr965qxr1y147rnsc1xsxmr6y"; - }; - "elm/parser" = { - version = "1.0.0"; - sha256 = "0k4zlq30lrvawqvzwbvsl0hrmwf9s832mb41z7fdspm4549dj7wc"; - }; - "elm/time" = { - version = "1.0.0"; - sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1"; - }; - "elm/url" = { - version = "1.0.0"; - sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4"; - }; - "elm/virtual-dom" = { - version = "1.0.0"; - sha256 = "0hm8g92h7z39km325dlnhk8n00nlyjkqp3r3jppr37k2k13md6aq"; - }; -} diff --git a/pkgs/development/compilers/elm/packages/elm-srcs.nix b/pkgs/development/compilers/elm/packages/elm-srcs.nix new file mode 100644 index 00000000000..e1f941626dd --- /dev/null +++ b/pkgs/development/compilers/elm/packages/elm-srcs.nix @@ -0,0 +1,62 @@ +{ + + "elm-explorations/markdown" = { + sha256 = "0k3110ixa4wwf3vkkdplagwah9ypr965qxr1y147rnsc1xsxmr6y"; + version = "1.0.0"; + }; + + "elm/json" = { + sha256 = "1g0hafkqf2q633r7ir9wxpb1lnlzskhpsyi0h5bkzj0gl072zfnb"; + version = "1.0.0"; + }; + + "elm/html" = { + sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k"; + version = "1.0.0"; + }; + + "elm/svg" = { + sha256 = "08x0v8p9wm699jjmsnbq69pxv3jh60j4f6fg7y6hyr7xxj85y390"; + version = "1.0.0"; + }; + + "elm/project-metadata-utils" = { + sha256 = "1d4rd4grrnbdvj9gf00h7dr6hbkjzawgkzpizfrkp1z1pyr3mvq9"; + version = "1.0.0"; + }; + + "elm/browser" = { + sha256 = "1apmvyax93nvmagwj00y16zx10kfv640cxpi64xgqbgy7d2wphy4"; + version = "1.0.0"; + }; + + "elm/core" = { + sha256 = "10kr86h4v5h4p0586q406a5wbl8xvr1jyrf6097zp2wb8sv21ylw"; + version = "1.0.0"; + }; + + "elm/http" = { + sha256 = "1igmm89ialzrjib1j8xagkxalq1x2gj4l0hfxcd66mpwmvg7psl8"; + version = "1.0.0"; + }; + + "elm/parser" = { + sha256 = "0k4zlq30lrvawqvzwbvsl0hrmwf9s832mb41z7fdspm4549dj7wc"; + version = "1.0.0"; + }; + + "elm/url" = { + sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4"; + version = "1.0.0"; + }; + + "elm/time" = { + sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1"; + version = "1.0.0"; + }; + + "elm/virtual-dom" = { + sha256 = "0hm8g92h7z39km325dlnhk8n00nlyjkqp3r3jppr37k2k13md6aq"; + version = "1.0.0"; + }; +} diff --git a/pkgs/development/compilers/elm/packages/elm.nix b/pkgs/development/compilers/elm/packages/elm.nix index 41998f4c9b3..67e63ea2b8e 100644 --- a/pkgs/development/compilers/elm/packages/elm.nix +++ b/pkgs/development/compilers/elm/packages/elm.nix @@ -13,6 +13,7 @@ mkDerivation { url = "https://github.com/elm/compiler"; sha256 = "13jks6c6i80z71mjjfg46ri570g5ini0k3xw3857v6z66zcl56x4"; rev = "d5cbc41aac23da463236bbc250933d037da4055a"; + fetchSubmodules = true; }; isLibrary = false; isExecutable = true; diff --git a/pkgs/development/compilers/elm/update.sh b/pkgs/development/compilers/elm/update.sh index 2b5d85feeb2..920b95e5ad9 100755 --- a/pkgs/development/compilers/elm/update.sh +++ b/pkgs/development/compilers/elm/update.sh @@ -1 +1,8 @@ -cabal2nix https://github.com/elm/compiler --revision 32059a289d27e303fa1665e9ada0a52eb688f302 > packages/elm.nix +#!/usr/bin/env nix-shell +#!nix-shell -p cabal2nix elm2nix -i bash ../../.. + +cabal2nix https://github.com/elm/compiler --revision d5cbc41aac23da463236bbc250933d037da4055a > packages/elm.nix +elm2nix snapshot > versions.dat +pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/ui/browser" + elm2nix convert > $OLDPWD/packages/elm-srcs.nix +popd diff --git a/pkgs/development/compilers/elm/versions.dat b/pkgs/development/compilers/elm/versions.dat index 824ab383057f2138d4dcd431b52851a2e6b8b127..9dcfd8a2808f666b0cff1a54b79a6543e46451d9 100644 GIT binary patch delta 11082 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 delta 5238 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 Date: Fri, 4 Jan 2019 13:03:24 +0000 Subject: [PATCH 2/3] elm: get to compile on GHC 8.6.3 --- pkgs/development/compilers/elm/default.nix | 15 +++++---------- .../compilers/elm/packages/tasty-quickcheck.nix | 14 -------------- 2 files changed, 5 insertions(+), 24 deletions(-) delete mode 100644 pkgs/development/compilers/elm/packages/tasty-quickcheck.nix diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 3c8ae70981e..ba35e093f6a 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -4,7 +4,7 @@ let fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; }; - hsPkgs = haskell.packages.ghc822.override { + hsPkgs = haskell.packages.ghc863.override { overrides = self: super: with haskell.lib; let elmPkgs = { elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: { @@ -15,12 +15,7 @@ let versionsDat = ./versions.dat; }; buildTools = drv.buildTools or [] ++ [ makeWrapper ]; - patches = [ - (fetchpatch { - url = "https://github.com/elm/compiler/pull/1784/commits/78d2d8eab310552b1b877a3e90e1e57e7a09ddec.patch"; - sha256 = "0vdhk16xqm2hxw12s1b91a0bmi8w4wsxc086qlzglgnjxrl5b3w4"; - }) - ]; + jailbreak = true; postInstall = '' wrapProgram $out/bin/elm \ --prefix PATH ':' ${lib.makeBinPath [ nodejs ]} @@ -31,16 +26,16 @@ let The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: `pacakge/nix/build.sh` */ - elm-format = self.callPackage ./packages/elm-format.nix {}; + elm-format = doJailbreak (self.callPackage ./packages/elm-format.nix {}); + inherit fetchElmDeps; + elmVersion = elmPkgs.elm.version; }; in elmPkgs // { inherit elmPkgs; - elmVersion = elmPkgs.elm.version; # Needed for elm-format indents = self.callPackage ./packages/indents.nix {}; - tasty-quickcheck = self.callPackage ./packages/tasty-quickcheck.nix {}; }; }; in hsPkgs.elmPkgs diff --git a/pkgs/development/compilers/elm/packages/tasty-quickcheck.nix b/pkgs/development/compilers/elm/packages/tasty-quickcheck.nix deleted file mode 100644 index 54235489edf..00000000000 --- a/pkgs/development/compilers/elm/packages/tasty-quickcheck.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ mkDerivation, base, pcre-light, QuickCheck, random, stdenv -, tagged, tasty, tasty-hunit -}: -mkDerivation { - pname = "tasty-quickcheck"; - version = "0.9.2"; - sha256 = "c5920adeab6e283d5e3ab45f3c80a1b011bedfbe4a3246a52606da2e1da95873"; - libraryHaskellDepends = [ base QuickCheck random tagged tasty ]; - testHaskellDepends = [ base pcre-light tasty tasty-hunit ]; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty"; - description = "QuickCheck support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; -} From 28293fb169ac78df15360c6d98da5022bda8f25a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Fri, 4 Jan 2019 13:55:06 +0000 Subject: [PATCH 3/3] fix #52118 --- pkgs/development/compilers/elm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index ba35e093f6a..aa8d9da9faa 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -26,7 +26,7 @@ let The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: `pacakge/nix/build.sh` */ - elm-format = doJailbreak (self.callPackage ./packages/elm-format.nix {}); + elm-format = justStaticExecutables (doJailbreak (self.callPackage ./packages/elm-format.nix {})); inherit fetchElmDeps; elmVersion = elmPkgs.elm.version;