livebook: 0.18.6 -> 0.19.8; fix build

Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
(cherry picked from commit 57b89494a6)
This commit is contained in:
phanirithvij 2026-05-31 21:31:39 +05:30 committed by github-actions[bot]
commit 2258deb1b4

View file

@ -1,46 +1,121 @@
{
lib,
beamPackages,
stdenv,
makeWrapper,
fetchFromGitHub,
versionCheckHook,
writableTmpDirAsHomeHook,
bun,
beamPackages,
nixosTests,
nix-update-script,
}:
beamPackages.mixRelease rec {
pname = "livebook";
version = "0.18.6";
version = "0.19.8";
inherit (beamPackages) elixir;
buildInputs = [ beamPackages.erlang ];
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [
bun
makeWrapper
writableTmpDirAsHomeHook
];
src = fetchFromGitHub {
owner = "livebook-dev";
repo = "livebook";
tag = "v${version}";
hash = "sha256-8pFvY86ht2NMUtknjt5M7QasOKnoHvQdYJrOlgTyueU=";
hash = "sha256-cIFnGUJ8yRnEBL9eu4Jpg1sMlTV1t/ybhHusLSFdZEY=";
};
mixFodDeps = beamPackages.fetchMixDeps {
pname = "mix-deps-${pname}";
inherit src version;
hash = "sha256-pfHzcYEEvj+x1/vLKhJ6bAsKGg19UisVK6h0xskhu74=";
hash = "sha256-T74RmUORPdNibxdl+bRGyYyOdnKs1TyjtdutLtfLNLM=";
};
postInstall = ''
wrapProgram $out/bin/livebook \
--prefix PATH : ${
lib.makeBinPath [
beamPackages.elixir
beamPackages.erlang
]
} \
--set MIX_REBAR3 ${beamPackages.rebar3}/bin/rebar3
node_modules = stdenv.mkDerivation {
pname = "${pname}-node_modules";
inherit src version;
nativeBuildInputs = [
bun
writableTmpDirAsHomeHook
];
dontBuild = true;
dontFixup = true;
installPhase = ''
mkdir -p deps/phoenix deps/phoenix_html deps/phoenix_live_view
echo '{"name": "phoenix", "version": "1.0.0"}' > deps/phoenix/package.json
echo '{"name": "phoenix_html", "version": "1.0.0"}' > deps/phoenix_html/package.json
echo '{"name": "phoenix_live_view", "version": "1.0.0"}' > deps/phoenix_live_view/package.json
cd assets
bun install \
--no-cache \
--backend=copyfile \
--cpu="*" \
--frozen-lockfile \
--ignore-scripts \
--no-progress \
--os="*"
mkdir -p $out
cp -r node_modules $out/
rm -rf $out/node_modules/phoenix
rm -rf $out/node_modules/phoenix_html
rm -rf $out/node_modules/phoenix_live_view
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-XtEkedj5QJh1tveKKd5sh4xcC6Gol1DUweQKEw1jLgU=";
};
postPatch = ''
substituteInPlace lib/mix/tasks/compile.ensure_livebook_priv.ex \
--replace-fail 'Mix.Task.run("bun.install", ~w"--if-missing")' ':ok' \
--replace-fail 'Mix.Task.run("bun", ~w"assets install")' ':ok' \
--replace-fail 'Mix.Task.run("bun", ~w" assets run build")' ':ok'
'';
preBuild = ''
cp -r ${node_modules}/node_modules assets/node_modules
chmod -R +w assets/node_modules
ln -sf ../../deps/phoenix assets/node_modules/phoenix
ln -sf ../../deps/phoenix_html assets/node_modules/phoenix_html
ln -sf ../../deps/phoenix_live_view assets/node_modules/phoenix_live_view
pushd assets
bun --bun ./node_modules/vite/bin/vite.js build
popd
'';
postInstall =
let
path = lib.makeBinPath [
beamPackages.elixir
beamPackages.erlang
];
in
''
wrapProgram $out/bin/livebook \
--prefix PATH : ${path} \
--set MIX_REBAR3 ${beamPackages.rebar3}/bin/rebar3
wrapProgram $out/bin/server \
--prefix PATH : ${path}
'';
nativeInstallCheckInputs = [
versionCheckHook
writableTmpDirAsHomeHook
];
versionCheckProgramArg = [ "version" ];
versionCheckKeepEnvironment = [ "HOME" ];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
tests = {
@ -52,6 +127,7 @@ beamPackages.mixRelease rec {
license = lib.licenses.asl20;
homepage = "https://livebook.dev/";
description = "Automate code & data workflows with interactive Elixir notebooks";
mainProgram = "livebook";
maintainers = with lib.maintainers; [
munksgaard
scvalex