Change:
# We are not packaging this as an Electron application bundle, so Electron # reports to the application that is is not "packaged", which causes Heroic # to take some incorrect codepaths meant for development environments. <del> substituteInPlace src/**/*.ts --replace 'app.isPackaged' 'true' ''; configurePhase = '' runHook preConfigure export HOME=$(mktemp -d) yarn config --offline set yarn-offline-mirror $offlineCache fixup-yarn-lock yarn.lock yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive patchShebangs node_modules/ runHook postConfigure </del> <ins> substituteInPlace src/**/*.ts --replace-quiet 'app.isPackaged' 'true' </ins> ''; buildPhase = '' runHook preBuild <del> yarn --offline vite build </del> <ins> pnpm --offline electron-vite build </ins> # Remove dev dependencies. <del> yarn install --production --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive </del> <ins> pnpm --ignore-scripts prune --prod # Clean up broken symlinks left behind by `pnpm prune` find node_modules/.bin -xtype l -delete </ins> runHook postBuild ''; # --disable-gpu-compositing is to work around upstream bug # https://github.com/electron/electron/issues/32317 <del> installPhase = let binPlatform = if stdenv.isDarwin then "darwin" else "linux"; in '' </del> <ins> installPhase = '' </ins> runHook preInstall <del> mkdir -p $out/share/{applications,${appName}} cp -r . $out/share/${appName} rm -rf $out/share/${appName}/{.devcontainer,.vscode,.husky,.idea,.github} </del> <ins> mkdir -p $out/share/{applications,heroic} cp -r . $out/share/heroic rm -rf $out/share/heroic/{.devcontainer,.vscode,.husky,.idea,.github} </ins> <del> chmod -R u+w "$out/share/${appName}/public/bin" "$out/share/${appName}/build/bin" rm -rf "$out/share/${appName}/public/bin" "$out/share/${appName}/build/bin" mkdir -p "$out/share/${appName}/build/bin/${binPlatform}" </del> <ins> chmod -R u+w "$out/share/heroic/public/bin" "$out/share/heroic/build/bin" rm -rf "$out/share/heroic/public/bin" "$out/share/heroic/build/bin" mkdir -p "$out/share/heroic/build/bin/x64/linux" </ins> ln -s  <del> "${gogdl}/bin/gogdl"  "${legendary-gl}/bin/legendary"  "${nile}/bin/nile"  "${lib.optionalString stdenv.isLinux "${vulkan-helper}/bin/vulkan-helper"}"  "$out/share/${appName}/build/bin/${binPlatform}" </del> <ins> "${lib.getExe gogdl}"  "${lib.getExe legendary-gl}"  "${lib.getExe nile}"  "${lib.getExe comet-gog}"  "${lib.getExe vulkan-helper}"  "$out/share/heroic/build/bin/x64/linux/" </ins> makeWrapper "${electron}/bin/electron" "$out/bin/heroic"  --inherit-argv0  --add-flags --disable-gpu-compositing  <del> --add-flags $out/share/${appName}  </del> <ins> --add-flags $out/share/heroic  </ins> --add-flags "''${NIXOS_OZONE_WL:+''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime}}" <del> substituteInPlace "$out/share/${appName}/flatpak/com.heroicgameslauncher.hgl.desktop"  --replace "Exec=heroic-run" "Exec=heroic" </del> <ins> substituteInPlace "$out/share/heroic/flatpak/com.heroicgameslauncher.hgl.desktop"  --replace-fail "Exec=heroic-run" "Exec=heroic" </ins> mkdir -p "$out/share/applications" "$out/share/icons/hicolor/512x512/apps" <del> ln -s "$out/share/${appName}/flatpak/com.heroicgameslauncher.hgl.desktop" "$out/share/applications" ln -s "$out/share/${appName}/flatpak/com.heroicgameslauncher.hgl.png" "$out/share/icons/hicolor/512x512/apps" </del> <ins> ln -s "$out/share/heroic/flatpak/com.heroicgameslauncher.hgl.desktop" "$out/share/applications" ln -s "$out/share/heroic/flatpak/com.heroicgameslauncher.hgl.png" "$out/share/icons/hicolor/512x512/apps" </ins> runHook postInstall '';

Discussion:
Package name: heroic Latest released version: 2.15.1 <!-- Search your package here: --- Current version on the unstable channel: 2.14.1 Current version on the stable/release channel: 2.14.1 <!-- Type the name of your package and try to find an open pull request for the package If you find an open pull request, you can review it! There's a high chance that you'll have the new version right away while helping the community! --- Notify maintainers <!-- If the result shows no maintainers, tag the person that last updated the package. --Note for maintainers: Please tag this issue in your PR. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
Need to wait for to be merged, because upstream depends on Electron 31, but the latest currently in nixpkgs is 30.
you can make draft PR and wait :D
Also does UMU need to be packaged for this release?
I think so. Even though Heroic 2.15 downloads UMU, the version it fetches is outdated, (according to one of the developers, in the project discord server).
Actually, given that , and Heroic can download a working version, just without the latest fixes, I am opting to not package UMU in nixpkgs.

Stardew Valley isn't opening in the nixpkgs' Heroic Launcher, and I think there're missing dependencies. Steps to reproduce the behavior: the Heroic Launcher and installs Stardew Valley from GOG running the game The game would open as usual The logs: <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
Stardew Valley depends on an outdated version of OpenSSL that is insecure IIRC (see also ) I just play the Windows version via Wine, also from Heroic Launcher (on the Steam Deck) and that works just fine, if it's acceptable to you I'd just do that instead of trying to hunt down an ancient version of a library.
Thanks for the explanation! Installing the Windows version worked as expected.
That turns out not to be the case here. I happen to own the GOG version of this game, so I was able to test this. It complains about missing ICU; once I that to the Heroic FHS environment, it launched just fine. Will submit a PR.