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

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 { };