10 , desktopToDarwinBundle
15 stdenv.mkDerivation (finalAttrs: {
16 pname = "podman-desktop";
19 src = fetchFromGitHub {
21 repo = "podman-desktop";
22 rev = "v${finalAttrs.version}";
23 sha256 = "sha256-gEjcI+bfETYZB/pHDXRcNxNVDsbwuqQL1E22fMkIJHI=";
26 offlineCache = fetchYarnDeps {
27 yarnLock = "${finalAttrs.src}/yarn.lock";
28 sha256 = "sha256-x0hqNxi6r1i3vBe1tJQl+Oht2St9VIH3Eq27MZLkojA=";
32 # podman should be installed with nix; disable auto-installation
33 ./patches/extension-no-download-podman.patch
34 ./patches/fix-yarn-lock-deterministic.patch
38 for file in packages/main/src/tray-animate-icon.ts extensions/podman/src/util.ts packages/main/src/plugin/certificates.ts; do
39 substituteInPlace "$file" \
40 --replace 'process.resourcesPath' "'$out/share/lib/podman-desktop/resources'" \
41 --replace '(process as any).resourcesPath' "'$out/share/lib/podman-desktop/resources'"
45 ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
54 ++ lib.optionals stdenv.isDarwin [
62 yarn config --offline set yarn-offline-mirror "$offlineCache"
63 fixup_yarn_lock yarn.lock
64 yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
65 patchShebangs node_modules/
73 yarn --offline run build
74 yarn --offline run electron-builder --dir \
75 --config .electron-builder.config.cjs \
76 -c.electronDist=${electron}/libexec/electron \
77 -c.electronVersion=${electron.version}
85 mkdir -p "$out/share/lib/podman-desktop"
86 cp -r dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/podman-desktop"
88 install -Dm644 buildResources/icon.svg "$out/share/icons/hicolor/scalable/apps/podman-desktop.svg"
90 makeWrapper '${electron}/bin/electron' "$out/bin/podman-desktop" \
91 --add-flags "$out/share/lib/podman-desktop/resources/app.asar" \
92 --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
98 # see: https://github.com/containers/podman-desktop/blob/main/.flatpak.desktop
101 name = "podman-desktop";
102 exec = "podman-desktop %U";
103 icon = "podman-desktop";
104 desktopName = "Podman Desktop";
105 genericName = "Desktop client for podman";
106 comment = finalAttrs.meta.description;
107 categories = [ "Utility" ];
108 startupWMClass = "Podman Desktop";
113 description = "A graphical tool for developing on containers and Kubernetes";
114 homepage = "https://podman-desktop.io";
115 changelog = "https://github.com/containers/podman-desktop/releases/tag/v${finalAttrs.version}";
116 license = licenses.asl20;
117 maintainers = with maintainers; [ panda2134 ];
118 inherit (electron.meta) platforms;