diff --git a/pkgs/by-name/rm/rmfakecloud/package.nix b/pkgs/by-name/rm/rmfakecloud/package.nix index f68229b10a162b..e57dc8350084ae 100644 --- a/pkgs/by-name/rm/rmfakecloud/package.nix +++ b/pkgs/by-name/rm/rmfakecloud/package.nix @@ -2,36 +2,52 @@ lib, fetchFromGitHub, buildGoModule, - callPackage, enableWebui ? true, + pnpm_9, + nodejs, nixosTests, }: buildGoModule rec { pname = "rmfakecloud"; - version = "0.0.21"; + version = "0.0.23"; src = fetchFromGitHub { owner = "ddvk"; - repo = pname; + repo = "rmfakecloud"; rev = "v${version}"; - hash = "sha256-Opx39FUo4Kzezi96D9iraA8gkqCPVfMf4LhxtVpsuNQ="; + hash = "sha256-XlKqh6GKGreWLPjS8XfEUJCMMxiOw8pP2qX8otD+RCo="; }; vendorHash = "sha256-9tfxE03brUvCYusmewiqNpCkKyIS9qePqylrzDWrJLY="; - ui = callPackage ./webui.nix { inherit version src; }; - - postPatch = - if enableWebui then - '' - mkdir -p ui/build - cp -r ${ui}/* ui/build - '' - else - '' - sed -i '/go:/d' ui/assets.go - ''; + # if using webUI build it + # use env because of https://github.com/NixOS/nixpkgs/issues/358844 + env.pnpmRoot = "ui"; + env.pnpmDeps = pnpm_9.fetchDeps { + inherit pname version src; + sourceRoot = "${src.name}/ui"; + pnpmLock = "${src}/ui/pnpm-lock.yaml"; + hash = "sha256-VNmCT4um2W2ii8jAm+KjQSjixYEKoZkw7CeRwErff/o="; + }; + preBuild = lib.optionals enableWebui '' + # using sass-embedded fails at executing node_modules/sass-embedded-linux-x64/dart-sass/src/dart + rm -r ui/node_modules/sass-embedded ui/node_modules/.pnpm/sass-embedded* + + # avoid re-running pnpm i... + touch ui/pnpm-lock.yaml + + make ui/dist + ''; + nativeBuildInputs = lib.optionals enableWebui [ + nodejs + pnpm_9.configHook + ]; + + # ... or don't embed it in the server + postPatch = lib.optionals (!enableWebui) '' + sed -i '/go:/d' ui/assets.go + ''; ldflags = [ "-s" diff --git a/pkgs/by-name/rm/rmfakecloud/webui.nix b/pkgs/by-name/rm/rmfakecloud/webui.nix deleted file mode 100644 index 928a624cba2b42..00000000000000 --- a/pkgs/by-name/rm/rmfakecloud/webui.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ version, src, stdenv, lib, fetchYarnDeps, fixup-yarn-lock, yarn, nodejs }: - -stdenv.mkDerivation rec { - inherit version src; - - pname = "rmfakecloud-webui"; - - yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/ui/yarn.lock"; - hash = "sha256-9//uQ4ZLLTf2N1WSwsOwFjBuDmThuMtMXU4SzMljAMM="; - }; - - nativeBuildInputs = [ fixup-yarn-lock yarn nodejs ]; - - buildPhase = '' - export HOME=$(mktemp -d) - cd ui - fixup-yarn-lock yarn.lock - yarn config --offline set yarn-offline-mirror ${yarnOfflineCache} - yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress - patchShebangs node_modules - export PATH=$PWD/node_modules/.bin:$PATH - ./node_modules/.bin/react-scripts build - mkdir -p $out - cd .. - ''; - - installPhase = '' - cp -r ui/build/* $out - ''; - - meta = with lib; { - description = "Only the webui files for rmfakecloud"; - homepage = "https://ddvk.github.io/rmfakecloud/"; - license = licenses.agpl3Only; - }; -}