Merge pull request #246288 from aidalgol/heroic-2.9

Update Heroic Games Launcher and dependencies
This commit is contained in:
K900 2023-08-20 09:43:34 +03:00 committed by GitHub
commit f410499cb1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 159 additions and 11 deletions

View file

@ -1,4 +1,5 @@
{ lib
, fetchpatch
, writeScript
, buildPythonApplication
, fetchFromGitHub
@ -10,14 +11,14 @@
buildPythonApplication rec {
pname = "gogdl";
version = "0.7.2";
version = "0.7.3";
format = "pyproject";
src = fetchFromGitHub {
owner = "Heroic-Games-Launcher";
repo = "heroic-gogdl";
rev = "d7f29dfef5818e8b323d04761e18a9abb750f93e";
hash = "sha256-9dAenawt9h/sz5paVYoqk+nmzPrInlqyh1EgshI25CE=";
rev = "d2fa34bfba7beb2ecc0e3fc70a657f2c612c8a10";
hash = "sha256-YCqtfY49lDg6sLrF/INOZVD9cMCwvejhySzUWrxHKAw=";
};
disabled = pythonOlder "3.8";
@ -27,6 +28,13 @@ buildPythonApplication rec {
requests
];
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/Heroic-Games-Launcher/heroic-gogdl/pull/37.patch";
hash = "sha256-oZLetPoWzsEDrL0Bh89HB4hTn70FTh8aXj9mKGr4Dqw=";
})
];
pythonImportsCheck = [ "gogdl" ];
meta = with lib; {

View file

@ -10,23 +10,24 @@
, electron
, gogdl
, legendary-gl
, nile
}:
let appName = "heroic";
in stdenv.mkDerivation rec {
pname = "heroic-unwrapped";
version = "2.8.0";
version = "2.9.1";
src = fetchFromGitHub {
owner = "Heroic-Games-Launcher";
repo = "HeroicGamesLauncher";
rev = "v${version}";
hash = "sha256-AZwJRBkWuzBPT+ADVHabiK2KRXe6clZFa0IO99BO2Wk=";
hash = "sha256-1FtAcp6cG2qRfWrAgCOQ87DzMvszqqhObfSzepezBGc=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-xiLK0D9+oL2UMD7b/9htOQJEpYCNayKW+KJ/vNVCgsw=";
hash = "sha256-KEzTjtoBcHNJxC/7W/Bft75JZuZUSHieOOAwhbr5d3s=";
};
nativeBuildInputs = [
@ -37,6 +38,14 @@ in stdenv.mkDerivation rec {
makeWrapper
];
patches = [
# 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
# Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic.
./fix-non-steam-shortcuts.patch
];
configurePhase = ''
runHook preConfigure
@ -74,7 +83,11 @@ in stdenv.mkDerivation rec {
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}"
ln -s "${gogdl}/bin/gogdl" "${legendary-gl}/bin/legendary" "$out/share/${appName}/build/bin/${binPlatform}"
ln -s \
"${gogdl}/bin/gogdl" \
"${legendary-gl}/bin/legendary" \
"${nile}"/bin/nile \
"$out/share/${appName}/build/bin/${binPlatform}"
makeWrapper "${electron}/bin/electron" "$out/bin/heroic" \
--inherit-argv0 \
@ -92,7 +105,7 @@ in stdenv.mkDerivation rec {
'';
meta = with lib; {
description = "A Native GOG and Epic Games Launcher for Linux, Windows and Mac";
description = "A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac";
homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";
changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases";
license = licenses.gpl3Only;

View file

@ -0,0 +1,13 @@
diff --git a/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts b/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts
index ebef6aa4..c8bd853d 100644
--- a/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts
+++ b/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts
@@ -252,7 +252,7 @@ async function addNonSteamGame(props: {
// add new Entry
const newEntry = {} as ShortcutEntry
newEntry.AppName = props.gameInfo.title
- newEntry.Exe = `"${app.getPath('exe')}"`
+ newEntry.Exe = `"heroic"`
newEntry.StartDir = `"${process.cwd()}"`
if (isFlatpak) {

View file

@ -0,0 +1,24 @@
diff --git a/src/backend/main.ts b/src/backend/main.ts
index 2cd1a28f..a60e04d0 100644
--- a/src/backend/main.ts
+++ b/src/backend/main.ts
@@ -19,8 +19,7 @@ import {
powerSaveBlocker,
protocol,
screen,
- clipboard,
- components
+ clipboard
} from 'electron'
import 'backend/updater'
import { autoUpdater } from 'electron-updater'
@@ -286,8 +285,7 @@ if (!gotTheLock) {
initImagesCache()
if (!process.env.CI) {
- await components.whenReady()
- logInfo(['DRM module staus', components.status()])
+ logInfo('DRM modules disabled for nixpkgs')
}
// try to fix notification app name on windows

View file

@ -4,20 +4,24 @@
, buildPythonApplication
, pythonOlder
, requests
, filelock
}:
buildPythonApplication rec {
pname = "legendary-gl"; # Name in pypi
version = "0.20.32";
version = "0.20.33";
src = fetchFromGitHub {
owner = "derrod";
repo = "legendary";
rev = "refs/tags/${version}";
sha256 = "sha256-MsvhVS3lqhgBJ+S/cjXFP70I3rM5WBYT7TyVlRWhNWw=";
sha256 = "sha256-fEQUChkxrKV2IkFGORUolZE2qTzA10Xxogjl5Va4TcE=";
};
propagatedBuildInputs = [ requests ];
propagatedBuildInputs = [
requests
filelock
];
disabled = pythonOlder "3.8";

View file

@ -0,0 +1,84 @@
{ lib
, writeScript
, buildPythonApplication
, fetchFromGitHub
, pythonOlder
, setuptools
, requests
, protobuf
, pycryptodome
, zstandard
, json5
, platformdirs
, cacert
}:
buildPythonApplication rec {
pname = "nile";
version = "1.0.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "imLinguin";
repo = "nile";
rev = "f5f3b96f6483c59cfc646afbda6e97cb0bd94778";
hash = "sha256-HibY3U9/MibEDwHY+YiErW/pz6qwtps8wwjhznTISgA=";
};
disabled = pythonOlder "3.8";
propagatedBuildInputs = [
setuptools
requests
protobuf
pycryptodome
zstandard
json5
platformdirs
];
pyprojectAppendix = ''
[tool.setuptools.packages.find]
include = ["nile*"]
'';
postPatch = ''
echo "$pyprojectAppendix" >> pyproject.toml
'';
pythonImportsCheck = [ "nile" ];
meta = with lib; {
description = "Unofficial Amazon Games client";
homepage = "https://github.com/imLinguin/nile";
license = with licenses; [ gpl3 ];
maintainers = with maintainers; [ aidalgol ];
};
# Upstream does not create git tags when bumping the version, so we have to
# extract it from the source code on the main branch.
passthru.updateScript = writeScript "gogdl-update-script" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused jq common-updater-scripts
set -eou pipefail;
owner=imLinguin
repo=nile
path='nile/__init__.py'
version=$(
curl --cacert "${cacert}/etc/ssl/certs/ca-bundle.crt" \
https://raw.githubusercontent.com/$owner/$repo/main/$path |
sed -n 's/^\s*version\s*=\s*"\([0-9]\.[0-9]\.[0-9]\)"\s*$/\1/p')
commit=$(curl --cacert "${cacert}/etc/ssl/certs/ca-bundle.crt" \
https://api.github.com/repos/$owner/$repo/commits?path=$path |
jq -r '.[0].sha')
update-source-version \
${pname} \
"$version" \
--file=./pkgs/games/nile/default.nix \
--rev=$commit
'';
}

View file

@ -37916,6 +37916,8 @@ with pkgs;
nexuiz = callPackage ../games/nexuiz { };
nile = python3Packages.callPackage ../games/nile { };
ninvaders = callPackage ../games/ninvaders { };
njam = callPackage ../games/njam { };