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 <sternenseemann@systemli.org>
This commit is contained in:
Vincent Ambo 2021-03-24 01:59:29 +02:00 committed by tazjin
parent 63e1706096
commit b59f712535
2 changed files with 21 additions and 7 deletions

View file

@ -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; }
}

View file

@ -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