gnu: unknown-horizons: Fix build and runtime errors.
Apply two upstream commits that allow building with Python 3.9 or newer and running with Python 3.10. * gnu/packages/patches/unknown-horizons-python-3.9.patch: New file. * gnu/packages/patches/unknown-horizons-python-3.10.patch: New file. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/games.scm (unknown-horizons)[source]: Apply them. Change-Id: Icbc8b698b913be01465b09ab26afb29e5fd62a87 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Fixes: Unknown Horizons fails to start <https://bugs.gnu.org/54815>master
parent
e7823dbe8c
commit
3351c5e59d
|
@ -2104,6 +2104,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/ungoogled-chromium-system-ffmpeg.patch \
|
%D%/packages/patches/ungoogled-chromium-system-ffmpeg.patch \
|
||||||
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
|
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
|
||||||
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
|
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
|
||||||
|
%D%/packages/patches/unknown-horizons-python-3.9.patch \
|
||||||
|
%D%/packages/patches/unknown-horizons-python-3.10.patch \
|
||||||
%D%/packages/patches/unzip-CVE-2014-8139.patch \
|
%D%/packages/patches/unzip-CVE-2014-8139.patch \
|
||||||
%D%/packages/patches/unzip-CVE-2014-8140.patch \
|
%D%/packages/patches/unzip-CVE-2014-8140.patch \
|
||||||
%D%/packages/patches/unzip-CVE-2014-8141.patch \
|
%D%/packages/patches/unzip-CVE-2014-8141.patch \
|
||||||
|
|
|
@ -4454,7 +4454,9 @@ also available.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1n747p7h0qp48szgp262swg0xh8kxy1bw8ag1qczs4i26hyzs5x4"))
|
"1n747p7h0qp48szgp262swg0xh8kxy1bw8ag1qczs4i26hyzs5x4"))
|
||||||
(patches (search-patches "unknown-horizons-python-3.8-distro.patch"))))
|
(patches (search-patches "unknown-horizons-python-3.8-distro.patch"
|
||||||
|
"unknown-horizons-python-3.9.patch"
|
||||||
|
"unknown-horizons-python-3.10.patch"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
From 4ff605d6c55fcf3e9b4777ffbcb0c24ef17ba4ca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arti <artism90@googlemail.com>
|
||||||
|
Date: Mon, 28 Feb 2022 21:19:50 +0100
|
||||||
|
Subject: [PATCH] Rename instances of `collections.Iterable` into
|
||||||
|
`collections.abc.Iterable` (#2956)
|
||||||
|
|
||||||
|
---
|
||||||
|
horizons/ai/aiplayer/combat/unitmanager.py | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/horizons/ai/aiplayer/combat/unitmanager.py b/horizons/ai/aiplayer/combat/unitmanager.py
|
||||||
|
index 8449d5563c5..57db0d47061 100644
|
||||||
|
--- a/horizons/ai/aiplayer/combat/unitmanager.py
|
||||||
|
+++ b/horizons/ai/aiplayer/combat/unitmanager.py
|
||||||
|
@@ -151,7 +151,7 @@ def _ship_state_rule(self, state_dict, ship_states):
|
||||||
|
"""
|
||||||
|
Rule stating that ship has to be in any of given states.
|
||||||
|
"""
|
||||||
|
- if not isinstance(ship_states, collections.Iterable):
|
||||||
|
+ if not isinstance(ship_states, collections.abc.Iterable):
|
||||||
|
ship_states = (ship_states,)
|
||||||
|
return lambda ship: (state_dict[ship] in ship_states)
|
||||||
|
|
||||||
|
@@ -178,7 +178,7 @@ def filter_ships(self, ships, rules):
|
||||||
|
@param rules: conditions each ship has to meet (AND)
|
||||||
|
@type rules: iterable of lambda(ship) or single lambda(ship)
|
||||||
|
"""
|
||||||
|
- if not isinstance(rules, collections.Iterable):
|
||||||
|
+ if not isinstance(rules, collections.abc.Iterable):
|
||||||
|
rules = (rules,)
|
||||||
|
return [ship for ship in ships if all((rule(ship) for rule in rules))]
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
From 7f6f613826aef9810999c1599c8354e8a78fbdb4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lukas1818 <44570204+Lukas1818@users.noreply.github.com>
|
||||||
|
Date: Fri, 19 Feb 2021 21:08:44 +0100
|
||||||
|
Subject: [PATCH] fixs for Phyton 3.9 (#2955)
|
||||||
|
|
||||||
|
* change deprecated isAlive() to is_alive()
|
||||||
|
|
||||||
|
* remove unsupported keyword "encoding"
|
||||||
|
|
||||||
|
Co-authored-by: Lukas1818 <git@lukas1818.de>
|
||||||
|
---
|
||||||
|
horizons/util/loaders/jsondecoder.py | 2 +-
|
||||||
|
horizons/util/preloader.py | 4 ++--
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/horizons/util/loaders/jsondecoder.py b/horizons/util/loaders/jsondecoder.py
|
||||||
|
index ea2ddfb3308..138a948f42a 100644
|
||||||
|
--- a/horizons/util/loaders/jsondecoder.py
|
||||||
|
+++ b/horizons/util/loaders/jsondecoder.py
|
||||||
|
@@ -37,4 +37,4 @@ def _decode_dict(dct):
|
||||||
|
return newdict
|
||||||
|
|
||||||
|
with open(path, "r") as f:
|
||||||
|
- return json.load(f, encoding="ascii", object_hook=_decode_dict)
|
||||||
|
+ return json.load(f, object_hook=_decode_dict)
|
||||||
|
diff --git a/horizons/util/preloader.py b/horizons/util/preloader.py
|
||||||
|
index 5689cc68152..2e072fcc642 100644
|
||||||
|
--- a/horizons/util/preloader.py
|
||||||
|
+++ b/horizons/util/preloader.py
|
||||||
|
@@ -79,9 +79,9 @@ def wait_for_finish(self):
|
||||||
|
"""
|
||||||
|
self.lock.acquire()
|
||||||
|
# wait until it finished its current action
|
||||||
|
- if self.isAlive():
|
||||||
|
+ if self.is_alive():
|
||||||
|
self.join()
|
||||||
|
- assert not self.isAlive()
|
||||||
|
+ assert not self.is_alive()
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
self.lock.release()
|
Reference in New Issue