From 217dfcd3897e40091660dd5bc2b87caef940cc9e Mon Sep 17 00:00:00 2001 From: Erwin Boskma Date: Mon, 26 Feb 2024 17:01:24 +0100 Subject: [PATCH] incus-ui: Use function with mkDerivation instead of rec --- pkgs/incus-ui/default.nix | 124 +++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 61 deletions(-) diff --git a/pkgs/incus-ui/default.nix b/pkgs/incus-ui/default.nix index 2edca00..6111e1b 100644 --- a/pkgs/incus-ui/default.nix +++ b/pkgs/incus-ui/default.nix @@ -10,79 +10,81 @@ rsync, }: -stdenv.mkDerivation rec { - pname = "incus-ui"; - version = "0.6"; +stdenv.mkDerivation ( + finalAttrs: { + pname = "incus-ui"; + version = "0.6"; - src = fetchFromGitHub { - owner = "canonical"; - repo = "lxd-ui"; - rev = version; - # hash = "sha256-52MRf7bk8Un9wqz00+JjDmuJgPKYhgAhIbMbcAuf8W8="; - hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs="; - }; + src = fetchFromGitHub { + owner = "canonical"; + repo = "lxd-ui"; + rev = finalAttrs.version; + # hash = "sha256-52MRf7bk8Un9wqz00+JjDmuJgPKYhgAhIbMbcAuf8W8="; + hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs="; + }; - offlineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; - hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o="; - }; + offlineCache = fetchYarnDeps { + yarnLock = "${finalAttrs.src}/yarn.lock"; + hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o="; + }; - patches = [ - ./ui-canonical-0001-Branding.patch - ./ui-canonical-0002-Update-navigation.patch - ./ui-canonical-0003-Update-certificate-generation.patch - ./ui-canonical-0004-Remove-external-links.patch - ./ui-canonical-0005-Remove-Canonical-image-servers.patch - ./ui-canonical-0006-Remove-version-check.patch - ]; + patches = [ + ./ui-canonical-0001-Branding.patch + ./ui-canonical-0002-Update-navigation.patch + ./ui-canonical-0003-Update-certificate-generation.patch + ./ui-canonical-0004-Remove-external-links.patch + ./ui-canonical-0005-Remove-Canonical-image-servers.patch + ./ui-canonical-0006-Remove-version-check.patch + ]; - nativeBuildInputs = [ - nodejs - prefetch-yarn-deps - yarn - ]; + nativeBuildInputs = [ + nodejs + prefetch-yarn-deps + yarn + ]; - configurePhase = '' - runHook preConfigure + configurePhase = '' + runHook preConfigure - ${gnused}/bin/sed -i "s/LXD/Incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - ${gnused}/bin/sed -i "s/devlxd/guestapi/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - ${gnused}/bin/sed -i "s/dev\/lxd/dev\/incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - ${gnused}/bin/sed -i "s/lxd_/incus_/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - ${gnused}/bin/sed -i "s/\"lxd\"/\"incus\"/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* + ${gnused}/bin/sed -i "s/LXD/Incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* + ${gnused}/bin/sed -i "s/devlxd/guestapi/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* + ${gnused}/bin/sed -i "s/dev\/lxd/dev\/incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* + ${gnused}/bin/sed -i "s/lxd_/incus_/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* + ${gnused}/bin/sed -i "s/\"lxd\"/\"incus\"/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* - 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 - cp ${./favicon-32x32.png} public/assets/img/favicon-32x32.png + 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 + cp ${./favicon-32x32.png} public/assets/img/favicon-32x32.png - runHook postConfigure - ''; + runHook postConfigure + ''; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - yarn --offline build + yarn --offline build - runHook postBuild - ''; + runHook postBuild + ''; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - mkdir -p $out - ${rsync}/bin/rsync -a build/ui/ $out/ + mkdir -p $out + ${rsync}/bin/rsync -a build/ui/ $out/ - runHook postInstall - ''; + runHook postInstall + ''; - meta = with lib; { - description = "Easy and accessible container and virtual machine management. A browser interface for LXD"; - homepage = "https://github.com/canonical/lxd-ui"; - license = licenses.gpl3; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - }; -} + meta = with lib; { + description = "Easy and accessible container and virtual machine management. A browser interface for LXD"; + homepage = "https://github.com/canonical/lxd-ui"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; + } +)