From efcd1fbf90529e5f0e6820c36639d8382f7459d9 Mon Sep 17 00:00:00 2001 From: Marek Fajkus Date: Thu, 28 Dec 2023 14:14:21 +0100 Subject: [PATCH 1/4] elmPackages.elm: use ghc96 --- pkgs/development/compilers/elm/default.nix | 27 ++++++++++++------- .../compilers/elm/packages/elm.nix | 11 +++++--- .../compilers/elm/packages/elmi-to-json.nix | 5 ++-- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 9ae727f93767..df969af940d8 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -7,8 +7,8 @@ let fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { }; - # Haskell packages that require ghc 8.10 - hs810Pkgs = self: pkgs.haskell.packages.ghc810.override { + # Haskell packages that require ghc 9.2 + hs96Pkgs = self: pkgs.haskell.packages.ghc92.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; let elmPkgs = rec { elm = overrideCabal (drv: { @@ -20,7 +20,6 @@ let registryDat = ./registry.dat; }; buildTools = drv.buildTools or [] ++ [ makeWrapper ]; - jailbreak = true; postInstall = '' wrapProgram $out/bin/elm \ --prefix PATH ':' ${lib.makeBinPath [ nodejs ]} @@ -32,6 +31,17 @@ let maintainers = with maintainers; [ domenkozar turbomack ]; }) (self.callPackage ./packages/elm.nix { }); + inherit fetchElmDeps; + elmVersion = elmPkgs.elm.version; + }; + in { + inherit elmPkgs; + }; + }; + + hs810Pkgs = self: pkgs.haskell.packages.ghc810.override { + overrides = self: super: with pkgs.haskell.lib.compose; with lib; + let elmPkgs = { elmi-to-json = justStaticExecutables (overrideCabal (drv: { prePatch = '' substituteInPlace package.yaml --replace "- -Werror" "" @@ -49,18 +59,15 @@ let prePatch = '' sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place ''; - jailbreak = true; # Tests are failing because of missing instances for Eq and Show type classes doCheck = false; + jailbreak = true; description = "Instrument Elm code as a preprocessing step for elm-coverage"; homepage = "https://github.com/zwilias/elm-instrument"; license = licenses.bsd3; maintainers = [ maintainers.turbomack ]; }) (self.callPackage ./packages/elm-instrument.nix {})); - - inherit fetchElmDeps; - elmVersion = elmPkgs.elm.version; }; in elmPkgs // { inherit elmPkgs; @@ -82,7 +89,7 @@ let # Haskell packages that require ghc 9.2 hs92Pkgs = self: pkgs.haskell.packages.ghc92.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; - let elmPkgs = rec { + let elmPkgs = { /* The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: `package/nix/build.sh` @@ -131,7 +138,7 @@ in lib.makeScope pkgs.newScope (self: with self; { `patchNpmElm` function also defined in `packages/lib.nix`. */ elmLib = let - hsElmPkgs = hs810Pkgs self; + hsElmPkgs = hs96Pkgs self; in import ./packages/lib.nix { inherit lib; inherit (pkgs) writeScriptBin stdenv; @@ -143,7 +150,7 @@ in lib.makeScope pkgs.newScope (self: with self; { elm-test-rs = callPackage ./packages/elm-test-rs.nix { }; elm-test = callPackage ./packages/elm-test.nix { }; -} // (hs810Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (with elmLib; with (hs810Pkgs self).elmPkgs; { +} // (hs96Pkgs self).elmPkgs // (hs810Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (with elmLib; with (hs810Pkgs self).elmPkgs; { elm-verify-examples = let patched = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples // { meta = with lib; nodePkgs.elm-verify-examples.meta // { diff --git a/pkgs/development/compilers/elm/packages/elm.nix b/pkgs/development/compilers/elm/packages/elm.nix index a0c248af17bb..5b877e8a6a76 100644 --- a/pkgs/development/compilers/elm/packages/elm.nix +++ b/pkgs/development/compilers/elm/packages/elm.nix @@ -8,12 +8,15 @@ }: mkDerivation { pname = "elm"; - version = "0.19.1"; + # We're building binaries from commit that npm installer is using since + # November 1st release called 0.19.1-6. + # These binaries are built with newer ghc version and also support Aarch64 for Linux and Darwin. + # Upstream git tag for 0.19.1 is still pointing to original commit from 2019. + version = "0.19.1-6"; src = fetchgit { url = "https://github.com/elm/compiler"; - sha256 = "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"; - rev = "c9aefb6230f5e0bda03205ab0499f6e4af924495"; - fetchSubmodules = true; + rev = "2f6dd29258e880dbb7effd57a829a0470d8da48b"; + sha256 = "sha256-6PXucwc9nFN6TxxsSBuwEkKelThtJ6CLshjfsCmHMsE="; }; isLibrary = false; isExecutable = true; diff --git a/pkgs/development/compilers/elm/packages/elmi-to-json.nix b/pkgs/development/compilers/elm/packages/elmi-to-json.nix index 3362ce5cc7a7..f82f3e5179ac 100644 --- a/pkgs/development/compilers/elm/packages/elmi-to-json.nix +++ b/pkgs/development/compilers/elm/packages/elmi-to-json.nix @@ -8,9 +8,8 @@ mkDerivation { version = "1.3.0"; src = fetchgit { url = "https://github.com/stoeffel/elmi-to-json"; - sha256 = "11j56vcyhijkwi9hzggkwwmxlhzhgm67ab2m7kxkhcbbqgpasa8n"; - rev = "ae40d1aa1e3d6878f2af514e611d44890e7abc1e"; - fetchSubmodules = true; + rev = "bd18efb59d247439b362272b480e67a16a4e424e"; + sha256 = "sha256-9fScXRSyTkqzeXwh/Jjza6mnENCThlU6KI366CLFcgY="; }; isLibrary = true; isExecutable = true; From b481fa58d5fa16f2675a1fe016c5c5b7cb847755 Mon Sep 17 00:00:00 2001 From: Marek Fajkus Date: Sat, 6 Jan 2024 13:21:44 +0100 Subject: [PATCH 2/4] fix ghc version --- 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 df969af940d8..444334306956 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -8,7 +8,7 @@ let fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { }; # Haskell packages that require ghc 9.2 - hs96Pkgs = self: pkgs.haskell.packages.ghc92.override { + hs96Pkgs = self: pkgs.haskell.packages.ghc96.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; let elmPkgs = rec { elm = overrideCabal (drv: { From 910829801085e98d9617be19da13dd916f290973 Mon Sep 17 00:00:00 2001 From: Marek Fajkus Date: Sat, 6 Jan 2024 14:21:12 +0100 Subject: [PATCH 3/4] fix build --- pkgs/development/compilers/elm/default.nix | 17 ++++++++++------- .../compilers/elm/fetchElmDeps.nix | 3 +-- .../compilers/elm/packages/elm.nix | 9 +++------ pkgs/development/compilers/elm/registry.dat | Bin 132822 -> 130280 bytes pkgs/development/compilers/elm/update.sh | 2 +- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 444334306956..c28a231760e4 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -7,7 +7,7 @@ let fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { }; - # Haskell packages that require ghc 9.2 + # Haskell packages that require ghc 9.6 hs96Pkgs = self: pkgs.haskell.packages.ghc96.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; let elmPkgs = rec { @@ -34,14 +34,15 @@ let inherit fetchElmDeps; elmVersion = elmPkgs.elm.version; }; - in { + in elmPkgs // { inherit elmPkgs; }; }; + # Haskell packages that require ghc 8.10 hs810Pkgs = self: pkgs.haskell.packages.ghc810.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; - let elmPkgs = { + let elmPkgs = rec { elmi-to-json = justStaticExecutables (overrideCabal (drv: { prePatch = '' substituteInPlace package.yaml --replace "- -Werror" "" @@ -59,15 +60,17 @@ let prePatch = '' sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place ''; + jailbreak = true; # Tests are failing because of missing instances for Eq and Show type classes doCheck = false; - jailbreak = true; description = "Instrument Elm code as a preprocessing step for elm-coverage"; homepage = "https://github.com/zwilias/elm-instrument"; license = licenses.bsd3; maintainers = [ maintainers.turbomack ]; }) (self.callPackage ./packages/elm-instrument.nix {})); + + elmVersion = elmPkgs.elm.version; }; in elmPkgs // { inherit elmPkgs; @@ -89,7 +92,7 @@ let # Haskell packages that require ghc 9.2 hs92Pkgs = self: pkgs.haskell.packages.ghc92.override { overrides = self: super: with pkgs.haskell.lib.compose; with lib; - let elmPkgs = { + let elmPkgs = rec { /* The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: `package/nix/build.sh` @@ -138,7 +141,7 @@ in lib.makeScope pkgs.newScope (self: with self; { `patchNpmElm` function also defined in `packages/lib.nix`. */ elmLib = let - hsElmPkgs = hs96Pkgs self; + hsElmPkgs = hs810Pkgs self; in import ./packages/lib.nix { inherit lib; inherit (pkgs) writeScriptBin stdenv; @@ -150,7 +153,7 @@ in lib.makeScope pkgs.newScope (self: with self; { elm-test-rs = callPackage ./packages/elm-test-rs.nix { }; elm-test = callPackage ./packages/elm-test.nix { }; -} // (hs96Pkgs self).elmPkgs // (hs810Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (with elmLib; with (hs810Pkgs self).elmPkgs; { +} // (hs96Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (hs810Pkgs self).elmPkgs // (with elmLib; with (hs96Pkgs self).elmPkgs; { elm-verify-examples = let patched = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples // { meta = with lib; nodePkgs.elm-verify-examples.meta // { diff --git a/pkgs/development/compilers/elm/fetchElmDeps.nix b/pkgs/development/compilers/elm/fetchElmDeps.nix index 05dffaa9e2eb..9715bfbe037d 100644 --- a/pkgs/development/compilers/elm/fetchElmDeps.nix +++ b/pkgs/development/compilers/elm/fetchElmDeps.nix @@ -3,8 +3,7 @@ {elmPackages, registryDat, elmVersion}: let - makeDotElm = import ./makeDotElm.nix {inherit stdenv lib fetchurl registryDat;}; - + makeDotElm = import ./makeDotElm.nix { inherit stdenv lib fetchurl registryDat; }; in '' export ELM_HOME=`pwd`/.elm diff --git a/pkgs/development/compilers/elm/packages/elm.nix b/pkgs/development/compilers/elm/packages/elm.nix index 5b877e8a6a76..1071d50a84c9 100644 --- a/pkgs/development/compilers/elm/packages/elm.nix +++ b/pkgs/development/compilers/elm/packages/elm.nix @@ -8,15 +8,12 @@ }: mkDerivation { pname = "elm"; - # We're building binaries from commit that npm installer is using since - # November 1st release called 0.19.1-6. - # These binaries are built with newer ghc version and also support Aarch64 for Linux and Darwin. - # Upstream git tag for 0.19.1 is still pointing to original commit from 2019. - version = "0.19.1-6"; + version = "0.19.1"; src = fetchgit { url = "https://github.com/elm/compiler"; + sha256 = "1h9jhwlv1pqqna5s09vd72arwhhjn0dlhv0w9xx5771x0xryxxg8"; rev = "2f6dd29258e880dbb7effd57a829a0470d8da48b"; - sha256 = "sha256-6PXucwc9nFN6TxxsSBuwEkKelThtJ6CLshjfsCmHMsE="; + fetchSubmodules = true; }; isLibrary = false; isExecutable = true; diff --git a/pkgs/development/compilers/elm/registry.dat b/pkgs/development/compilers/elm/registry.dat index 248a1503a3c0014142da7e620ab304cbe4a1a35e..a1c3b2f71c3e8dfd0bbb91ced769308f2b6297b7 100644 GIT binary patch delta 15767 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 delta 18169 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 packages/elm.nix +cabal2nix https://github.com/elm/compiler --revision 2f6dd29258e880dbb7effd57a829a0470d8da48b > packages/elm.nix echo "need to manually copy registry.dat from an existing elm project" #elm2nix snapshot > registry.dat pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/reactor" From 6f3ec49a11c50e6b36f48d520e18d80d8ddd0f94 Mon Sep 17 00:00:00 2001 From: Marek Fajkus Date: Sat, 6 Jan 2024 14:31:32 +0100 Subject: [PATCH 4/4] Move comment and fix elmLib --- pkgs/development/compilers/elm/default.nix | 4 +--- pkgs/development/compilers/elm/update.sh | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index c28a231760e4..6815eb71e25f 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -69,8 +69,6 @@ let license = licenses.bsd3; maintainers = [ maintainers.turbomack ]; }) (self.callPackage ./packages/elm-instrument.nix {})); - - elmVersion = elmPkgs.elm.version; }; in elmPkgs // { inherit elmPkgs; @@ -141,7 +139,7 @@ in lib.makeScope pkgs.newScope (self: with self; { `patchNpmElm` function also defined in `packages/lib.nix`. */ elmLib = let - hsElmPkgs = hs810Pkgs self; + hsElmPkgs = (hs810Pkgs self) // (hs96Pkgs self); in import ./packages/lib.nix { inherit lib; inherit (pkgs) writeScriptBin stdenv; diff --git a/pkgs/development/compilers/elm/update.sh b/pkgs/development/compilers/elm/update.sh index 60ddacb3108a..ecd24de46f67 100755 --- a/pkgs/development/compilers/elm/update.sh +++ b/pkgs/development/compilers/elm/update.sh @@ -1,9 +1,15 @@ #!/usr/bin/env nix-shell #!nix-shell -p cabal2nix elm2nix -i bash ../../.. +# We're building binaries from commit that npm installer is using since +# November 1st release called 0.19.1-6 in npm registry. +# These binaries are built with newer ghc version and also support Aarch64 for Linux and Darwin. +# Upstream git tag for 0.19.1 is still pointing to original commit from 2019. cabal2nix https://github.com/elm/compiler --revision 2f6dd29258e880dbb7effd57a829a0470d8da48b > packages/elm.nix + echo "need to manually copy registry.dat from an existing elm project" #elm2nix snapshot > registry.dat + pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/reactor" elm2nix convert > $OLDPWD/packages/elm-srcs.nix popd