From b59f712535453ac971239ddec28196a1a071ae42 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 24 Mar 2021 01:59:29 +0200 Subject: [PATCH] fix(gemma): Fix build by backporting Elm 0.18 Backports an old version of the Elm language (before the release where they made everyone rewrite their programs), from the same old nixpkgs commit as was previously used in overrides (see CL/2646). Change-Id: I0ae4cc611aa40269b290651ab982c1db93518d8a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2649 Tested-by: BuildkiteCI Reviewed-by: sterni --- fun/gemma/default.nix | 13 ++++++------- third_party/elmPackages_0_18/default.nix | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 third_party/elmPackages_0_18/default.nix diff --git a/fun/gemma/default.nix b/fun/gemma/default.nix index a47365924..dbfaf5eff 100644 --- a/fun/gemma/default.nix +++ b/fun/gemma/default.nix @@ -1,12 +1,13 @@ -{ depot, ... }: +{ depot, pkgs, ... }: let - inherit (depot.third_party) cacert iana-etc libredirect stdenv runCommandNoCC writeText; + inherit (pkgs) cacert iana-etc libredirect stdenv runCommandNoCC writeText; + elmPackages = pkgs.elmPackages_0_18; frontend = stdenv.mkDerivation { name = "gemma-frontend.html"; src = ./frontend; - buildInputs = [ cacert iana-etc ]; # elmPackages.elm + buildInputs = [ cacert iana-etc elmPackages.elm ]; # The individual Elm packages this requires are not packaged and I # can't be bothered to do that now, so lets open the escape hatch: @@ -35,7 +36,7 @@ let in depot.nix.buildLisp.program { name = "gemma"; - deps = with depot.third_party.lisp; [ + deps = with pkgs.lisp; [ cl-json cl-prevalence hunchentoot @@ -46,6 +47,4 @@ in depot.nix.buildLisp.program { ./src/gemma.lisp injectFrontend ]; -# depot does not currently have Gemma's frontend dependencies, thus -# the build is disabled. -} // { meta.ci = false; } +} diff --git a/third_party/elmPackages_0_18/default.nix b/third_party/elmPackages_0_18/default.nix new file mode 100644 index 000000000..55d66f062 --- /dev/null +++ b/third_party/elmPackages_0_18/default.nix @@ -0,0 +1,15 @@ +# Backports Elm packages for Elm 0.18 from an older channel of +# nixpkgs. +# +# Elm 0.19 changed the language & package ecosystem completely, +# essentially requiring a partial rewrite of all Elm apps. However, +# //fun/gemma uses Elm 0.18 and I don't have time to rewrite it. + +{ pkgs, ... }: + +(import (pkgs.fetchFromGitHub { + owner = "NixOS"; + repo = "nixpkgs"; + rev = "14f9ee66e63077539252f8b4550049381a082518"; + sha256 = "1wn7nmb1cqfk2j91l3rwc6yhimfkzxprb8wknw5wi57yhq9m6lv1"; +}) {}).elmPackages