Unverified Commit 89d60fb9 authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

podman-desktop: pin nodejs version for fetchPnpmDeps; extract nodejs version...

podman-desktop: pin nodejs version for fetchPnpmDeps; extract nodejs version from package.json (#508777)
parents 03ecd1a1 edbc8101
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
  makeBinaryWrapper,
  copyDesktopItems,
  electron_41,
  nodejs,
  nodejs_24,
  pnpm_10_29_2,
  fetchPnpmDeps,
  pnpmConfigHook,
@@ -21,6 +21,8 @@
}:

let
  nodejs = nodejs_24;
  pnpm = pnpm_10_29_2.override { inherit nodejs; };
  electron = electron_41;
  appName = "Podman Desktop";
in
@@ -43,8 +45,15 @@ stdenv.mkDerivation (finalAttrs: {
      };
      text = ''
        new_src="$(nix-build --attr "pkgs.$PNAME.src" --no-out-link)"
        new_electron_major="$(jq '.devDependencies.electron' "$new_src/package.json" | grep --perl-regexp --only-matching '\d+' | head -n 1)"
        new_pnpm_major="$(jq '.packageManager' "$new_src/package.json" | grep --perl-regexp --only-matching '\d+' | head -n 1)"
        get_major_version() {
          jq -r "$1" "$new_src/package.json" | grep --perl-regexp --only-matching '[0-9]+' | head -n 1
        }

        new_node_major="$(get_major_version '.engines.node')"
        new_electron_major="$(get_major_version '.devDependencies.electron')"
        new_pnpm_major="$(get_major_version '.packageManager')"

        sed -i -E "s/nodejs_[0-9]+/nodejs_$new_node_major/g" "$PKG_FILE"
        sed -i -E "s/electron_[0-9]+/electron_$new_electron_major/g" "$PKG_FILE"
        sed -i -E "s/pnpm_[0-9]+/pnpm_$new_pnpm_major/g" "$PKG_FILE"
      '';
@@ -64,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {

  pnpmDeps = fetchPnpmDeps {
    inherit (finalAttrs) pname version src;
    pnpm = pnpm_10_29_2;
    inherit pnpm;
    fetcherVersion = 2;
    hash = "sha256-tCp5qLZVo93H8VIToU3mkmwNsVXOAd1IEsL6RlazPXo=";
  };
@@ -83,8 +92,8 @@ stdenv.mkDerivation (finalAttrs: {
  nativeBuildInputs = [
    makeBinaryWrapper
    nodejs
    pnpm
    pnpmConfigHook
    pnpm_10_29_2
  ]
  ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
    copyDesktopItems