guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: gnu: fifengine: Fix runtime error when using Python 3.9 or newer.


From: guix-commits
Subject: 01/04: gnu: fifengine: Fix runtime error when using Python 3.9 or newer.
Date: Sun, 14 Jan 2024 07:05:46 -0500 (EST)

lilyp pushed a commit to branch master
in repository guix.

commit e7823dbe8c32482ef02c53e688433fdc4a453aea
Author: Simon South <simon@simonsouth.net>
AuthorDate: Thu Jan 4 15:33:55 2024 -0500

    gnu: fifengine: Fix runtime error when using Python 3.9 or newer.
    
    * 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
    Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
---
 gnu/local.mk                                       |  1 +
 gnu/packages/games.scm                             |  3 +-
 .../patches/fifengine-python-3.9-compat.patch      | 81 ++++++++++++++++++++++
 3 files changed, 84 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index f1bdfc73e9..aff1977dbb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1175,6 +1175,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch      \
   %D%/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.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 cd20c64dc4..f0f9061717 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -4118,7 +4118,8 @@ Widgets, and allows users to create more.")
                                   "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
+ 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]