hmightypirate / frotzbot

A maubot that allows you to play classic adventure text interactive fiction games
GNU General Public License v2.0
1 stars 0 forks source link

frotzbot in Docker maubot #5

Open sefsh opened 3 years ago

sefsh commented 3 years ago

I'm running maubot with Docker. My problem is that Docker maubot lacks the required packages demanded by frotzbot.

How can I get them inside Docker maubot? I tried adding the frotzbot requirements to the Docker maubot requirements file, after which I built a new Docker maubot version with these additional requirements. I had to modify some versions of the packages for the build not to fail, like so:

pyyaml==5.4.1
#spacy==3.1.1
https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.1.0/en_core_web_sm-3.1.0.tar.gz
langid==1.1.6
spacy
download
#en_core_web_sm
jericho

Running the plugin with this build then yields these errors:


16:37:39ERRORloader.zipTraceback (most recent call last):
  File "/opt/maubot/maubot/loader/zip.py", line 203, in _load
    importer.load_module(module)
  File "/opt/maubot/maubot/lib/zipimport.py", line 282, in load_module
    exec(code, mod.__dict__)
  File "/data/plugins/com.example.frotzbot-v1.0.0.mbp/frotzbot/__init__.py", line 1, in <module>
    from .jerichobot import JerichoBot
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 627, in _load_backward_compatible
  File "<frozen zipimport>", line 259, in load_module
  File "/data/plugins/com.example.frotzbot-v1.0.0.mbp/frotzbot/jerichobot.py", line 5, in <module>
    import jericho
  File "/usr/lib/python3.9/site-packages/jericho/__init__.py", line 1, in <module>
    from .jericho import *
  File "/usr/lib/python3.9/site-packages/jericho/jericho.py", line 23, in <module>
    frotz_lib = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__),
  File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: Error relocating /usr/lib/python3.9/site-packages/jericho/libfrotz.so: __vfprintf_chk: symbol not found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/maubot/maubot/loader/zip.py", line 188, in load
    return self._load(reset_cache)
  File "/opt/maubot/maubot/loader/zip.py", line 207, in _load
    raise MaubotZipLoadError(f"Failed to load module {module}")
maubot.loader.zip.MaubotZipLoadError: Failed to load module frotzbot
16:37:39ERRORserverError in handler
16:37:39ERRORserverTraceback (most recent call last):
  File "/opt/maubot/maubot/loader/zip.py", line 203, in _load
    importer.load_module(module)
  File "/opt/maubot/maubot/lib/zipimport.py", line 282, in load_module
    exec(code, mod.__dict__)
  File "/data/plugins/com.example.frotzbot-v1.0.0.mbp/frotzbot/__init__.py", line 1, in <module>
    from .jerichobot import JerichoBot
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 627, in _load_backward_compatible
  File "<frozen zipimport>", line 259, in load_module
  File "/data/plugins/com.example.frotzbot-v1.0.0.mbp/frotzbot/jerichobot.py", line 5, in <module>
    import jericho
  File "/usr/lib/python3.9/site-packages/jericho/__init__.py", line 1, in <module>
    from .jericho import *
  File "/usr/lib/python3.9/site-packages/jericho/jericho.py", line 23, in <module>
    frotz_lib = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__),
  File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: Error relocating /usr/lib/python3.9/site-packages/jericho/libfrotz.so: __vfprintf_chk: symbol not found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/maubot/maubot/management/api/middleware.py", line 43, in error
    return await handler(request)
  File "/opt/maubot/maubot/management/api/instance.py", line 87, in update_instance
    return await _update_instance(instance, data)
  File "/opt/maubot/maubot/management/api/instance.py", line 71, in _update_instance
    await instance.update_started(data.get("started", None))
  File "/opt/maubot/maubot/instance.py", line 289, in update_started
    await (self.start() if started else self.stop())
  File "/opt/maubot/maubot/instance.py", line 173, in start
    cls = await self.loader.load()
  File "/opt/maubot/maubot/loader/zip.py", line 188, in load
    return self._load(reset_cache)
  File "/opt/maubot/maubot/loader/zip.py", line 207, in _load
    raise MaubotZipLoadError(f"Failed to load module {module}")
dchaves commented 3 years ago

Have you tried installing glibc in the Maubot docker before running the plugin?

sefsh commented 3 years ago

Did try that per your suggestion, but it did not matter.