GNU bug report logs - #66173
Package unknown-horizons fails during build process

Previous Next

Package: guix;

Reported by: Rodrigo Morales <moralesrodrigo1100 <at> gmail.com>

Date: Sun, 24 Sep 2023 02:37:02 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Simon South <simon <at> simonsouth.net>
To: 66173 <at> debbugs.gnu.org
Subject: bug#66173: [PATCH 1/2] gnu: fifengine: Fix runtime error when using Python 3.9 or newer.
Date: Thu,  4 Jan 2024 15:33:55 -0500
* gnu/packages/patches/fifengine-python-3.9-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/games.scm (fifengine)[source]: Apply it.

Change-Id: I61001d6b87db00c71f1e2e6ca3bac8581e941451
---
 gnu/local.mk                                  |  1 +
 gnu/packages/games.scm                        |  3 +-
 .../patches/fifengine-python-3.9-compat.patch | 81 +++++++++++++++++++
 3 files changed, 84 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/fifengine-python-3.9-compat.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f804f4ef5b..f66db809a9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1166,6 +1166,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fenics-dolfin-boost.patch		\
   %D%/packages/patches/fenics-dolfin-config-slepc.patch		\
   %D%/packages/patches/fifengine-boost-compat.patch		\
+  %D%/packages/patches/fifengine-python-3.9-compat.patch	\
   %D%/packages/patches/fifengine-swig-compat.patch		\
   %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch		\
   %D%/packages/patches/fifo-map-remove-catch.hpp.patch		\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index c7813790a1..333dbfcec5 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -4060,7 +4060,8 @@ (define-public fifengine
                                   "fifengine/tar.gz/" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (patches (search-patches "fifengine-swig-compat.patch"
-                                       "fifengine-boost-compat.patch"))
+                                       "fifengine-boost-compat.patch"
+                                       "fifengine-python-3.9-compat.patch"))
               (sha256
                (base32
                 "1y4grw25cq5iqlg05rnbyxw1njl11ypidnlsm3qy4sm3xxdvb0p8"))))
diff --git a/gnu/packages/patches/fifengine-python-3.9-compat.patch b/gnu/packages/patches/fifengine-python-3.9-compat.patch
new file mode 100644
index 0000000000..2def4681cd
--- /dev/null
+++ b/gnu/packages/patches/fifengine-python-3.9-compat.patch
@@ -0,0 +1,81 @@
+Fix runtime error when using Python 3.9 or newer.
+
+Taken from upstream:
+https://github.com/fifengine/fifengine/commit/cf295fd98a8fba080f6305c27be56d10ab7ce94d
+
+diff --git a/engine/python/fife/extensions/serializers/simplexml.py b/engine/python/fife/extensions/serializers/simplexml.py
+index c4e10f4f8..d05567936 100644
+--- a/engine/python/fife/extensions/serializers/simplexml.py
++++ b/engine/python/fife/extensions/serializers/simplexml.py
+@@ -200,7 +200,7 @@ def get(self, module, name, defaultValue=None):
+ 		#get the module tree: for example find tree under module FIFE
+ 		moduleTree = self._getModuleTree(module)
+ 		element = None
+-		for e in moduleTree.getchildren():
++		for e in moduleTree:
+ 			if e.tag == "Setting" and e.get("name", "") == name:
+ 				element = e
+ 				break
+@@ -275,7 +275,7 @@ def set(self, module, name, value, extra_attrs={}):
+ 			e_type = "str"
+ 			value = str(value)
+ 
+-		for e in moduleTree.getchildren():
++		for e in moduleTree:
+ 			if e.tag != "Setting": continue
+ 			if e.get("name", "") == name:
+ 				e.text = value
+@@ -305,7 +305,7 @@ def remove(self, module, name):
+ 
+ 		moduleTree = self._getModuleTree(module)
+ 
+-		for e in moduleTree.getchildren():
++		for e in moduleTree:
+ 			if e.tag != "Setting": continue
+ 			if e.get("name", "") == name:
+ 				moduleTree.remove(e)
+@@ -321,7 +321,7 @@ def getModuleNameList(self):
+ 			self._initialized = True
+ 
+ 		moduleNames = []
+-		for c in self._root_element.getchildren():
++		for c in self._root_element:
+ 			if c.tag == "Module":
+ 				name = c.get("name","")
+ 				if not isinstance(name, basestring):
+@@ -344,7 +344,7 @@ def getAllSettings(self, module):
+ 		
+ 		# now from the tree read every value, and put the necessary values
+ 		# to the list
+-		for e in moduleTree.getchildren():
++		for e in moduleTree:
+ 			if e.tag == "Setting":
+ 				name = e.get("name", "")
+ 	
+@@ -383,7 +383,7 @@ def _validateTree(self):
+ 		
+ 		Raises an InvalidFormat exception if there is a format error.
+ 		"""
+-		for c in self._root_element.getchildren():
++		for c in self._root_element:
+ 			if c.tag != "Module":
+ 				raise InvalidFormat("Invalid tag in " + self._file + \
+ 									". Expected Module, got: " + c.tag)
+@@ -391,7 +391,7 @@ def _validateTree(self):
+ 				raise InvalidFormat("Invalid tag in " + self._file + \
+ 									". Module name is empty.")
+ 			else:
+-				for e in c.getchildren():
++				for e in c:
+ 					if e.tag != "Setting":
+ 						raise InvalidFormat("Invalid tag in " + self._file + \
+ 											" in module: " + c.tag + \
+@@ -414,7 +414,7 @@ def _getModuleTree(self, module):
+ 			raise AttributeError("Settings:_getModuleTree: Invalid type for "
+ 								 "module argument.")
+ 
+-		for c in self._root_element.getchildren():
++		for c in self._root_element:
+ 			if c.tag == "Module" and c.get("name", "") == module:
+ 				return c
+ 
-- 
2.41.0





This bug report was last modified 1 year and 127 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.