mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
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:
parent
709d2a7120
commit
2258deb1b4
1 changed files with 90 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue