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

View File

@ -10,23 +10,24 @@
, electron , electron
, gogdl , gogdl
, legendary-gl , legendary-gl
, nile
}: }:
let appName = "heroic"; let appName = "heroic";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "heroic-unwrapped"; pname = "heroic-unwrapped";
version = "2.8.0"; version = "2.9.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Heroic-Games-Launcher"; owner = "Heroic-Games-Launcher";
repo = "HeroicGamesLauncher"; repo = "HeroicGamesLauncher";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-AZwJRBkWuzBPT+ADVHabiK2KRXe6clZFa0IO99BO2Wk="; hash = "sha256-1FtAcp6cG2qRfWrAgCOQ87DzMvszqqhObfSzepezBGc=";
}; };
offlineCache = fetchYarnDeps { offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock"; yarnLock = "${src}/yarn.lock";
hash = "sha256-xiLK0D9+oL2UMD7b/9htOQJEpYCNayKW+KJ/vNVCgsw="; hash = "sha256-KEzTjtoBcHNJxC/7W/Bft75JZuZUSHieOOAwhbr5d3s=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -37,6 +38,14 @@ in stdenv.mkDerivation rec {
makeWrapper 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 = '' configurePhase = ''
runHook preConfigure runHook preConfigure
@ -74,7 +83,11 @@ in stdenv.mkDerivation rec {
chmod -R u+w "$out/share/${appName}/public/bin" "$out/share/${appName}/build/bin" 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" rm -rf "$out/share/${appName}/public/bin" "$out/share/${appName}/build/bin"
mkdir -p "$out/share/${appName}/build/bin/${binPlatform}" 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" \ makeWrapper "${electron}/bin/electron" "$out/bin/heroic" \
--inherit-argv0 \ --inherit-argv0 \
@ -92,7 +105,7 @@ in stdenv.mkDerivation rec {
''; '';
meta = with lib; { 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"; homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";
changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases"; changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases";
license = licenses.gpl3Only; 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 , buildPythonApplication
, pythonOlder , pythonOlder
, requests , requests
, filelock
}: }:
buildPythonApplication rec { buildPythonApplication rec {
pname = "legendary-gl"; # Name in pypi pname = "legendary-gl"; # Name in pypi
version = "0.20.32"; version = "0.20.33";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "derrod"; owner = "derrod";
repo = "legendary"; repo = "legendary";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
sha256 = "sha256-MsvhVS3lqhgBJ+S/cjXFP70I3rM5WBYT7TyVlRWhNWw="; sha256 = "sha256-fEQUChkxrKV2IkFGORUolZE2qTzA10Xxogjl5Va4TcE=";
}; };
propagatedBuildInputs = [ requests ]; propagatedBuildInputs = [
requests
filelock
];
disabled = pythonOlder "3.8"; 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 { }; nexuiz = callPackage ../games/nexuiz { };
nile = python3Packages.callPackage ../games/nile { };
ninvaders = callPackage ../games/ninvaders { }; ninvaders = callPackage ../games/ninvaders { };
njam = callPackage ../games/njam { }; njam = callPackage ../games/njam { };