Change:
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.

Discussion:
{ lib , stdenv , fetchFromGitHub <del> , fetchYarnDeps , yarn , fixup-yarn-lock </del> <ins> , pnpm </ins> , nodejs <del> , python3 </del> , makeWrapper , electron , vulkan-helper , gogdl , legendary-gl , nile <ins> , comet-gog </ins> }: <del> let appName = "heroic"; in stdenv.mkDerivation rec { </del> <ins> stdenv.mkDerivation (finalAttrs: { </ins> pname = "heroic-unwrapped"; <del> version = "2.14.1"; </del> <ins> version = "2.15.1"; </ins> src = fetchFromGitHub { owner = "Heroic-Games-Launcher"; repo = "HeroicGamesLauncher"; <del> rev = "v${version}"; hash = "sha256-AnyltqNP+XyVzgCobM3g6DIXntD3spKecYtCRx+8oic="; </del> <ins> rev = "v${finalAttrs.version}"; hash = "sha256-+OQRcBOf9Y34DD7FOp/3SO05mREG6or/HPiOkasHWPM="; </ins> }; <del> offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; hash = "sha256-3CYSw1Qy363eyhy3UyFgihSau+miNHwvKjhlq/kWxWQ="; </del> <ins> pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; hash = "sha256-3PiB8CT7wxGmvRuQQ5FIAmBqBm9+R55ry+N/qUYWzuk="; </ins> }; nativeBuildInputs = [ <del> yarn fixup-yarn-lock </del> nodejs <del> python3 </del> <ins> pnpm.configHook </ins> makeWrapper ]; patches = [ <del> # Reverts part of upstream PR 2761 so that we don't have to use a non-free Electron fork. # https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/2761 ./remove-drm-support.patch </del> # Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic. ./fix-non-steam-shortcuts.patch ];

# 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 '';

changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases"; license = licenses.gpl3Only; maintainers = with maintainers; [ aidalgol ]; <del> platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; mainProgram = appName; </del> <ins> # Heroic may work on nix-darwin, but it needs a dedicated maintainer for the platform. # It may also work on other Linux targets, but all the game stores only # support x86 Linux, so it would require extra hacking to run games via QEMU # user emulation.  Upstream provide Linux builds only for x86_64. platforms = [ "x86_64-linux" ]; mainProgram = "heroic"; </ins> }; <del> } </del> <ins> }) </ins>

glib gnutls gtk3 <ins> icu </ins> lcms2 libevdev libgcrypt

<del> diff --git a/src/backend/main.ts b/src/backend/main.ts index 83b58bb2..f61656fa 100644 --- a/src/backend/main.ts +++ b/src/backend/main.ts @@ -19,7 +19,6 @@ import { protocol, screen, clipboard, -  components, session } from 'electron' import 'backend/updater' @@ -310,14 +309,7 @@ if (!gotTheLock) { } if (!process.env.CI) { -      await components.whenReady().catch((e) => { -        logError([ -          'Failed to download / update DRM components.', -          'Make sure you do not block update.googleapis.com domain if you want to use WideVine in Browser sideloaded apps', -          e -        ]) -      }) -      logInfo(['DRM module staus', components.status()]) +      logInfo('DRM modules disabled for nixpkgs') } // try to fix notification app name on windows </del>

heroic-unwrapped = callPackage ../games/heroic { # Match the version used by the upstream package. <del> electron = electron_29; </del> <ins> electron = electron_31; </ins> }; heroic = callPackage ../games/heroic/fhsenv.nix { };