Page MenuHomeSolus

Unknown Horizons fails to launch
Open, NormalPublic

Description

The game Unknown Horizons (from the repo) fails to launch with the following error:

Traceback (most recent call last):
  File "/usr/bin/unknown-horizons", line 381, in <module>
    main()
  File "/usr/bin/unknown-horizons", line 122, in main
    ret = horizons.main.start(options)
  File "/usr/lib/python3.9/site-packages/horizons/main.py", line 113, in start
    horizons.globals.fife = Fife()
  File "/usr/lib/python3.9/site-packages/horizons/engine/engine.py", line 46, in __init__
    self._setting = Settings(PATHS.USER_CONFIG_FILE, PATHS.SETTINGS_TEMPLATE_FILE)
  File "/usr/lib/python3.9/site-packages/horizons/engine/settings.py", line 39, in __init__
    self._settings_serializer.load(settings_file)
  File "/usr/lib/python3.9/site-packages/fife/extensions/serializers/simplexml.py", line 132, in load
    self._validateTree()
  File "/usr/lib/python3.9/site-packages/fife/extensions/serializers/simplexml.py", line 386, in _validateTree
    for c in self._root_element.getchildren():
AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 'getchildren'

After a bit of research it seems we should add the following patch to fifengine, to restore compatibility with Python >= 3.9 and fix this error:
https://github.com/fifengine/fifengine/commit/78c07b9ac4df03329bcaf052557b9c9450b18d3a

There is also a Python 3.9 fix commit for Unknown Horizons itself, which might be worth including while we're at it:
https://github.com/unknown-horizons/unknown-horizons/commit/7f6f613826aef9810999c1599c8354e8a78fbdb4

(and maybe this to fix a warning: https://github.com/unknown-horizons/unknown-horizons/commit/05267e0d7f1223ddd0517f4f02c4d8444668f559)

Adding @DataDrake because she is the maintainer.

Event Timeline

joebonrichie added a subscriber: joebonrichie.

Patched fifengine but this package is still completely borked. Read AUR comments: https://aur.archlinux.org/packages/unknown-horizons

X Error of failed request:  GLXBadDrawable
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  297
  Current serial number in output stream:  297

Fifengine development seems to have stalled. If someone makes a patch for fifengine then this package may work again, upstream mentions they are trying to port to godot. It might be better to deprecate this package.

R748:e0b083f33017

joebonrichie moved this task from Backlog to Package Fixes on the Software board.

Tried a few things to maybe get it to work still, but unfortunately without success. Will keep an eye on it in case a solution surfaces, but looks like it might actually be best to give up on it.