eve-echoes-tools icon indicating copy to clipboard operation
eve-echoes-tools copied to clipboard

Major dependency/build fixes

Open Blaumeise03 opened this issue 1 year ago • 1 comments

The current version of this repo does not properly extract the staticdata, because the script decompilation does not work. The main problems are caused by neox-tools because the script_redirect plugin was missing and some dependencies have introduced breaking changes/are incompatible with Python 3.11.

The first dependency that was, as far as I can tell, missing, is unnpk. I am not sure why it is missing, especially because unnpk contains .py files with the same names as neox-tools. So I am not sure if unnpk is really required, but the script_redirect.py file is trying to load it without sucess.

Going further, it seems like that the uncompyle6 submodule is not working properly. I don't know exactly why, but I have replaced it with the pip package which seems to be working normaly. This requires an update of neox-tools (refer to the pull request).

The next problem was xdis, a dependency of uncompyle6. It does not support Python 3.11, so I have adjusted the installation instructions for Python 3.10. Also xdis has an hardcoded list of available Python versions, but the latest version are missing. I have added an check and hotfix script that is able to insert the installed Python version into xdis. This does only work for Python 3.10.xx, older versions have to be inserted manually (there are instructions available). This is a very hacky solution, because the script edits the packaged directly. But because the decompilation is a separate process, it is the only solution (adding the version during runtime does not work).

Because I know that neox-tools is also used for other games, I tried to fix everything in this repo so I don't introduce any breaking changes to neox-tools. Only some slight modifications were required to ensure the pip version of uncompyle6 gets used if available. This pull request does not work until the pull request in neox-tools gets approved: https://github.com/xforce/neox-tools/pull/19

I also have updated the Dockerfile to fix these problems. This include the change from alpine:edge to python:3.10-alpine because the latest version of alpine only has Python 3.11 available. I also added unnpk to the cargo-build section, so it gets build and copied into the final image. This does also include some new dependencies that are required to build unnpk.

I have added detailed installation instructions, both for the manual installation, as well as for the docker build. This does also include a list of the specific packaged and dependency versions. Should some packages introduce breaking changes in the future, these lists can be used to build a functional version of eve-echoes-tools.

Blaumeise03 avatar Oct 02 '23 14:10 Blaumeise03