cnvogelg / amitools

Various tools for using AmigaOS programs on other platforms
258 stars 72 forks source link

cannot upgrade on CentOS 7 #123

Closed wepl closed 4 years ago

wepl commented 4 years ago

Had old version running fine with Python 2.7. Now tried to rebuild after git pull. Compiles ok.

Running a program gives Error:

Traceback (most recent call last): File "/home/devel/.local/bin/vamos", line 11, in load_entry_point('amitools==0.4.0', 'console_scripts', 'vamos')() File "/usr/lib/python3.6/site-packages/pkg_resources/init.py", line 476, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3.6/site-packages/pkg_resources/init.py", line 2700, in load_entry_point return ep.load() File "/usr/lib/python3.6/site-packages/pkg_resources/init.py", line 2318, in load return self.resolve() File "/usr/lib/python3.6/site-packages/pkg_resources/init.py", line 2324, in resolve module = import(self.module_name, fromlist=['name'], level=0) File "/home/devel/.local/lib/python3.6/site-packages/amitools-0.4.0-py3.6-linux-x86_64.egg/amitools/tools/vamos.py", line 11, in from amitools.vamos.main import main as vmain File "/home/devel/.local/lib/python3.6/site-packages/amitools-0.4.0-py3.6-linux-x86_64.egg/amitools/vamos/init.py", line 1, in from .main import main File "/home/devel/.local/lib/python3.6/site-packages/amitools-0.4.0-py3.6-linux-x86_64.egg/amitools/vamos/main.py", line 7, in from .machine import Machine, MemoryMap File "/home/devel/.local/lib/python3.6/site-packages/amitools-0.4.0-py3.6-linux-x86_64.egg/amitools/vamos/machine/init.py", line 7, in from .machine import Machine File "/home/devel/.local/lib/python3.6/site-packages/amitools-0.4.0-py3.6-linux-x86_64.egg/amitools/vamos/machine/machine.py", line 3, in from musashi import emu ImportError: /home/devel/.local/lib/python3.6/site-packages/amitools-0.4.0-py3.6-linux-x86_64.egg/musashi/emu.cpython-36m-x86_64-linux-gnu.so: undefined symbol: m68k_op_illegal

make test gives similar error:

============================= test session starts ============================== platform linux -- Python 3.6.8, pytest-5.3.2, py-1.8.1, pluggy-0.13.1 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /home/devel/amitools, inifile: tox.ini collected 0 items / 1 error

==================================== ERRORS ==================================== _____ ERROR collecting musashi/emutest.py ____ ImportError while importing test module '/home/devel/amitools/musashi/emu_test.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: ../musashi/emu_test.py:4: in from . import emu E ImportError: /home/devel/amitools/musashi/emu.cpython-36m-x86_64-linux-gnu.so: undefined symbol: m68k_op_illegal !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! =============================== 1 error in 1.22s ===============================

Can you help?

wepl commented 4 years ago

I have made: rm -fr ~/.local/ ~/.cache pip3 install amitools --user this seems to work now. Maybe only a problem with later commits? (I assume pip installs takes not the latest version?)

cnvogelg commented 4 years ago

Make sure to have a clean git repo with no old files around:

make clean_git

should do the trick.

I did a quick check with a clean repo:

git clone https://github.com/cnvogelg/amitools.git
cd amitools
make init
vamos
wepl commented 4 years ago

I made

git clone https://github.com/cnvogelg/amitools.git
cd amitools
make init

this fails because python is 2.7 I changed the Makefile:

python -> python3
pip -> pip3

this fails because write permission on /usr/local I want a user installation. I added --user to all pip calls in the Makefile, this fails:

[devel@ceres amitools]$ make init
pip3 install --upgrade setuptools pip --user
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/af/e7/02db816dc88c598281bacebbb7ccf2c9f1a6164942e88f1a0fded8643659/setuptools-45.0.0-py2.py3-none-any.whl (583kB)
    100% |################################| 593kB 1.6MB/s 
Collecting pip
  Downloading https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl (1.4MB)
    100% |################################| 1.4MB 512kB/s 
Installing collected packages: setuptools, pip
Successfully installed pip-19.3.1 setuptools-45.0.0
pip3 install --upgrade -r requirements-dev.txt --user
Traceback (most recent call last):
  File "/usr/bin/pip3", line 16, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable
make: *** [init] Error 1
cnvogelg commented 4 years ago

ah I see... I never develop with system Python but with a virtualenv and so I don't see such an issue.

fixed naming to pip3, python3 and added make init_user for your kind of setup: a650b41

wepl commented 4 years ago

Thanks but I still get this error:

[devel@ceres amitools]$  make init_user
pip3 install --user --upgrade setuptools pip
Traceback (most recent call last):
  File "/usr/bin/pip3", line 16, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable
make: *** [init_user] Error 1

after some googling the replacement of pip3 install --user --upgrade -r requirements-dev.txt with python3 -m pip install --user --upgrade -r requirements-dev.txt made it working (for all 4 install steps)

wepl commented 4 years ago

I've made a PR for the Makefile adaption...

cnvogelg commented 4 years ago

Thanks a lot for the PR, but I already solved the issue slightly different: 90962e9

wepl commented 4 years ago

thanks :)