Skip to content

Commit

Permalink
minigalaxy: 1.2.2 -> 1.3.0, cleanup
Browse files Browse the repository at this point in the history
Co-authored-by: Sandro Jäckel <[email protected]>
  • Loading branch information
ozkutuk and SuperSandro2000 committed Jul 27, 2024
1 parent 809f20b commit 7974a4b
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 24 deletions.
53 changes: 29 additions & 24 deletions pkgs/applications/misc/minigalaxy/default.nix
Original file line number Diff line number Diff line change
@@ -1,68 +1,73 @@
{ lib
, fetchFromGitHub
, docutils
, gettext
, glibcLocales
, glib-networking
, gobject-introspection
, gtk3
, python3
, libnotify
, python3Packages
, steam-run
, substituteAll
, unzip
, webkitgtk
, wrapGAppsHook3
}:

python3Packages.buildPythonApplication rec {
pname = "minigalaxy";
version = "1.2.2";
version = "1.3.0";

src = fetchFromGitHub {
owner = "sharkwouter";
repo = pname;
repo = "minigalaxy";
rev = "refs/tags/${version}";
sha256 = "sha256-bpNtdMYBl2dJ4PQsxkhm/Y+3A0dD/Y2XC0VaUYyRhvM=";
hash = "sha256-CMPBKnNrcjHVpsbBjY97FiygEJNG9jKHR/LoVMfuxG4=";
};

checkPhase = ''
runHook preCheck
env HOME=$PWD LC_ALL=en_US.UTF-8 pytest
runHook postCheck
patches = [
(substituteAll {
src = ./inject-launcher-steam-run.diff;
steamrun = lib.getExe steam-run;
})
];

postPatch = ''
substituteInPlace minigalaxy/installer.py \
--replace-fail '"unzip"' "\"${lib.getExe unzip}\"" \
--replace-fail "'unzip'" "\"${lib.getExe unzip}\""
'';

nativeBuildInputs = [
gettext
wrapGAppsHook3
gobject-introspection
];

buildInputs = [
glib-networking
gtk3
libnotify
];

nativeCheckInputs = with python3Packages; [
glibcLocales
pytest
tox
pytestCheckHook
simplejson
];

preCheck = ''
export HOME=$(mktemp -d)
'';

pythonPath = [
docutils
python3.pkgs.pygobject3
python3.pkgs.requests
python3.pkgs.setuptools
python3.pkgs.simplejson
steam-run
unzip
python3Packages.pygobject3
python3Packages.requests
webkitgtk
];

# Run Linux games using the Steam Runtime by using steam-run in the wrapper
# FIXME: not working with makeBinaryWrapper
postFixup = ''
sed -e 's#exec -a "$0"#exec -a "$0" ${steam-run}/bin/steam-run#' -i $out/bin/minigalaxy
dontWrapGApps = true;

preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';

meta = with lib; {
Expand Down
32 changes: 32 additions & 0 deletions pkgs/applications/misc/minigalaxy/inject-launcher-steam-run.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
diff --git a/minigalaxy/launcher.py b/minigalaxy/launcher.py
index 641db77..712c55b 100644
--- a/minigalaxy/launcher.py
+++ b/minigalaxy/launcher.py
@@ -77,6 +77,7 @@ def get_execute_command(game) -> list:
if game.get_info("use_mangohud") is True:
exe_cmd.insert(0, "mangohud")
exe_cmd.insert(1, "--dlsym")
+ exe_cmd.insert(0, "@steamrun@")
exe_cmd = get_exe_cmd_with_var_command(game, exe_cmd)
logger.info("Launch command for %s: %s", game.name, " ".join(exe_cmd))
return exe_cmd
diff --git a/tests/test_installer.py b/tests/test_installer.py
index 8e6cb76..a9d9f46 100644
--- a/tests/test_installer.py
+++ b/tests/test_installer.py
@@ -296,13 +296,13 @@ def test_get_exec_line(self, mock_list_dir, mock_which):
mock_list_dir.return_value = ["data", "docs", "scummvm", "support", "beneath.ini", "gameinfo", "start.sh"]

result1 = installer.get_exec_line(game1)
- self.assertEqual(result1, "scummvm -c beneath.ini")
+ self.assertEqual(result1, "@steamrun@ scummvm -c beneath.ini")

game2 = Game("Blocks That Matter", install_dir="/home/test/GOG Games/Blocks That Matter", platform="linux")
mock_list_dir.return_value = ["data", "docs", "support", "gameinfo", "start.sh"]

result2 = installer.get_exec_line(game2)
- self.assertEqual(result2, "./start.sh")
+ self.assertEqual(result2, "@steamrun@ ./start.sh")

@mock.patch('os.path.getsize')
@mock.patch('os.listdir')

0 comments on commit 7974a4b

Please sign in to comment.