From b7f315079317bafd646c5fa9a467e41bb1eb4585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Sun, 10 Mar 2024 20:48:23 +0100 Subject: [PATCH] incus.ui: upgrade zabbly patches, split from lxd --- pkgs/by-name/in/incus/ui.nix | 87 +++++++++++++++++++++++++++++------- 1 file changed, 71 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/in/incus/ui.nix b/pkgs/by-name/in/incus/ui.nix index ebf052ed8782..705d715f0cfd 100644 --- a/pkgs/by-name/in/incus/ui.nix +++ b/pkgs/by-name/in/incus/ui.nix @@ -1,32 +1,87 @@ -{ lxd +{ lib +, stdenv , fetchFromGitHub +, fetchYarnDeps +, nodejs +, prefetch-yarn-deps +, yarn +, nixosTests , git }: -lxd.ui.overrideAttrs(prev: rec { +stdenv.mkDerivation rec { pname = "incus-ui"; + version = "0.6"; + + src = fetchFromGitHub { + owner = "canonical"; + repo = "lxd-ui"; + rev = "refs/tags/${version}"; + hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs="; + }; + + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o="; + }; zabbly = fetchFromGitHub { owner = "zabbly"; repo = "incus"; - rev = "8bbe23f42beedd845bd95069c06f4d0c85e450b6"; - hash = "sha256-X0I8vrhvg5mLGAY8oEU/nr2pvDJ8ZqLUSY9WBqwmolE="; + rev = "3eabc1960e99e7e515916e3ea7068a412a8c420b"; + hash = "sha256-Kw53Qjurc6WPswB38v6wuRhuuGE34uYxNoAKH4UmTBE="; }; - nativeBuildInputs = prev.nativeBuildInputs ++ [ - git - ]; - patchPhase = '' - for p in $zabbly/patches/ui-canonical*; do + for p in $zabbly/patches/ui-canonical*patch; do echo "applying patch $p" git apply -p1 "$p" done - sed -i "s/LXD/Incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - sed -i "s/devlxd/guestapi/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - sed -i "s/dev\/lxd/dev\/incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - sed -i "s/lxd_/incus_/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - sed -i "s/\"lxd\"/\"incus\"/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - + sed -i -f "$zabbly/patches/ui-canonical-renames.sed" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* ''; -}) + + nativeBuildInputs = [ + nodejs + prefetch-yarn-deps + yarn + git + ]; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror "$offlineCache" + fixup-yarn-lock yarn.lock + yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install + patchShebangs node_modules + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn --offline build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -r build/ui/ $out + + runHook postInstall + ''; + + passthru.tests.default = nixosTests.incus.ui; + + meta = { + description = "Web user interface for Incus, based on LXD webui"; + homepage = "https://github.com/canonical/lxd-ui"; + license = lib.licenses.gpl3; + maintainers = lib.teams.lxc.members; + platforms = lib.platforms.linux; + }; +}