diff --git a/pkgs/by-name/po/podman-desktop/package.nix b/pkgs/by-name/po/podman-desktop/package.nix index c372014a9642..9ede1352de4c 100644 --- a/pkgs/by-name/po/podman-desktop/package.nix +++ b/pkgs/by-name/po/podman-desktop/package.nix @@ -15,10 +15,12 @@ nix, jq, gnugrep, + podman, }: let electron = electron_37; + appName = "Podman Desktop"; in stdenv.mkDerivation (finalAttrs: { pname = "podman-desktop"; @@ -72,6 +74,7 @@ stdenv.mkDerivation (finalAttrs: { ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; nativeBuildInputs = [ + makeWrapper nodejs pnpm_10.configHook ] @@ -103,29 +106,39 @@ stdenv.mkDerivation (finalAttrs: { runHook postBuild ''; - installPhase = '' - runHook preInstall + installPhase = + let + commonWrapperArgs = "--prefix PATH : ${lib.makeBinPath [ podman ]}"; + in + ( + '' + runHook preInstall - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - mkdir -p $out/Applications - mv dist/mac*/Podman\ Desktop.app $out/Applications - '' - + lib.optionalString (!stdenv.hostPlatform.isDarwin) '' - mkdir -p "$out/share/lib/podman-desktop" - cp -r dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/podman-desktop" + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p "$out/Applications" + mv dist/mac*/"${appName}.app" "$out/Applications" - install -Dm644 buildResources/icon.svg "$out/share/icons/hicolor/scalable/apps/podman-desktop.svg" + wrapProgram "$out/Applications/${appName}.app/Contents/MacOS/${appName}" \ + ${commonWrapperArgs} + '' + + lib.optionalString (!stdenv.hostPlatform.isDarwin) '' + mkdir -p "$out/share/lib/podman-desktop" + cp -r dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/podman-desktop" - makeWrapper '${electron}/bin/electron' "$out/bin/podman-desktop" \ - --add-flags "$out/share/lib/podman-desktop/resources/app.asar" \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ - --inherit-argv0 - '' - + '' + install -Dm644 buildResources/icon.svg "$out/share/icons/hicolor/scalable/apps/podman-desktop.svg" - runHook postInstall - ''; + makeWrapper '${electron}/bin/electron' "$out/bin/podman-desktop" \ + --add-flags "$out/share/lib/podman-desktop/resources/app.asar" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ + ${commonWrapperArgs} \ + --inherit-argv0 + '' + + '' + + runHook postInstall + '' + ); # see: https://github.com/containers/podman-desktop/blob/main/.flatpak.desktop desktopItems = [ @@ -133,11 +146,11 @@ stdenv.mkDerivation (finalAttrs: { name = "podman-desktop"; exec = "podman-desktop %U"; icon = "podman-desktop"; - desktopName = "Podman Desktop"; + desktopName = appName; genericName = "Desktop client for podman"; comment = finalAttrs.meta.description; categories = [ "Utility" ]; - startupWMClass = "Podman Desktop"; + startupWMClass = appName; }) ]; @@ -148,7 +161,6 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.asl20; maintainers = with lib.maintainers; [ booxter - panda2134 ]; inherit (electron.meta) platforms; mainProgram = "podman-desktop";