GNS3 / gns3-server

GNS3 server
GNU General Public License v3.0
811 stars 263 forks source link

gns3server requires development files at runtime #8

Closed anubisg1 closed 10 years ago

anubisg1 commented 10 years ago

gns3 server seems to run some check before starting. gns3 server uses gcc to compile something and requires python3-zmq headers. at runtime no compiler nor develpment headers should be needed.

[root@localhost ~]# gns3server /usr/lib64/python3.3/site-packages/zmq/backend/cffi/pycache/_cffi__xa8bce778x28aeb39d.c:153:17: fatal error: zmq.h: No such file or directory

include

             ^

compilation terminated. Traceback (most recent call last): File "/usr/lib64/python3.3/site-packages/zmq/backend/init.py", line 27, in _ns = select_backend('zmq.backend.cython') File "/usr/lib64/python3.3/site-packages/zmq/backend/select.py", line 31, in select_backend mod = import(name, fromlist=public_api) File "/usr/lib64/python3.3/site-packages/zmq/backend/cython/init.py", line 26, in from . import (constants, error, message, context, ImportError: /usr/lib64/python3.3/site-packages/zmq/backend/cython/utils.cpython-33m.so: undefined symbol: zmq_curve_keypair

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/lib64/python3.3/distutils/unixccompiler.py", line 126, in _compile extra_postargs) File "/usr/lib64/python3.3/distutils/ccompiler.py", line 909, in spawn spawn(cmd, dry_run=self.dry_run) File "/usr/lib64/python3.3/distutils/spawn.py", line 32, in spawn _spawn_posix(cmd, search_path, dry_run=dry_run) File "/usr/lib64/python3.3/distutils/spawn.py", line 163, in _spawn_posix % (cmd[0], exit_status)) distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/lib64/python3.3/site-packages/cffi/ffiplatform.py", line 47, in _build dist.run_command('build_ext') File "/usr/lib64/python3.3/distutils/dist.py", line 948, in run_command cmd_obj.run() File "/usr/lib64/python3.3/distutils/command/build_ext.py", line 354, in run self.build_extensions() File "/usr/lib64/python3.3/distutils/command/build_ext.py", line 463, in build_extensions self.build_extension(ext) File "/usr/lib64/python3.3/distutils/command/build_ext.py", line 518, in build_extension depends=ext.depends) File "/usr/lib64/python3.3/distutils/ccompiler.py", line 574, in compile self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts) File "/usr/lib64/python3.3/distutils/unixccompiler.py", line 128, in _compile raise CompileError(msg) distutils.errors.CompileError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/lib64/python3.3/site-packages/zmq/backend/cffi/_cffi.py", line 187, in _version_info = zmq_version_info() File "/usr/lib64/python3.3/site-packages/zmq/backend/cffi/_cffi.py", line 159, in zmq_version_info runtime_library_dirs=cfg['runtime_library_dirs'], File "/usr/lib64/python3.3/site-packages/cffi/api.py", line 311, in verify lib = self.verifier.load_library() File "/usr/lib64/python3.3/site-packages/cffi/verifier.py", line 68, in load_library self.compile_module() File "/usr/lib64/python3.3/site-packages/cffi/verifier.py", line 56, in compile_module self._compile_module() File "/usr/lib64/python3.3/site-packages/cffi/verifier.py", line 142, in _compile_module outputfilename = ffiplatform.compile(tmpdir, self.get_extension()) File "/usr/lib64/python3.3/site-packages/cffi/ffiplatform.py", line 25, in compile outputfilename = _build(tmpdir, ext) File "/usr/lib64/python3.3/site-packages/cffi/ffiplatform.py", line 50, in _build raise VerificationError('%s: %s' % (e.class.name, e)) cffi.ffiplatform.VerificationError: CompileError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/bin/gns3server", line 9, in load_entry_point('gns3-server==1.0a3.dev2', 'console_scripts', 'gns3server')() File "/usr/lib/python3.3/site-packages/pkg_resources.py", line 357, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3.3/site-packages/pkg_resources.py", line 2394, in load_entry_point return ep.load() File "/usr/lib/python3.3/site-packages/pkg_resources.py", line 2108, in load entry = import(self.module_name, globals(),globals(), ['name']) File "/usr/lib/python3.3/site-packages/gns3server/main.py", line 25, in from gns3server.server import Server File "/usr/lib/python3.3/site-packages/gns3server/server.py", line 22, in import zmq File "/usr/lib64/python3.3/site-packages/zmq/init.py", line 60, in from zmq.backend import * File "/usr/lib64/python3.3/site-packages/zmq/backend/init.py", line 29, in _ns = select_backend('zmq.backend.cffi') File "/usr/lib64/python3.3/site-packages/zmq/backend/select.py", line 31, in select_backend mod = import(name, fromlist=public_api) File "/usr/lib64/python3.3/site-packages/zmq/backend/cffi/init.py", line 12, in from zmq.backend.cffi import (constants, error, message, context, socket, File "/usr/lib64/python3.3/site-packages/zmq/backend/cffi/constants.py", line 4, in from ._cffi import C, c_constant_names File "/usr/lib64/python3.3/site-packages/zmq/backend/cffi/_cffi.py", line 190, in "Please check that you have zeromq headers and libraries." % e) ImportError: PyZMQ CFFI backend couldn't find zeromq: CompileError: command 'gcc' failed with exit status 1 Please check that you have zeromq headers and libraries.

grossmj commented 10 years ago

Apparently this is a problem with PyZMQ looking for ZeroMQ libraries. I would recommend checking/reinstalling pyzmq.

What do you have with pip3 freeze | grep pyzmq?

anubisg1 commented 10 years ago

[root@localhost ~]# pip-python3 freeze | grep pyzmq pyzmq==14.2.0

i don't think the problem is zeromq or pyzmq install itself.

if you check again what the server is trying to do:

"error: zmq.h: No such file or directory

include

^ compilation terminated."

ImportError: PyZMQ CFFI backend couldn't find zeromq: CompileError: command 'gcc' failed with exit status 1

it seems that one of the latest added dependencies, python3-cffi, is trying to compile something using zeromq headers. this header, is part of -devel packages and not usually required at any runtime.

[root@localhost ~]# rpm -ql zeromq-devel | grep include /usr/include/zmq.h <--------- /usr/include/zmq_utils.h

installing zeromq-devel fixed the issue. Any idea why is this happening on the first place ?

anubisg1 commented 10 years ago

i was checking it might be zeromq itself. Fedora 20 comes with zeromq 3.2.4

I took care of uprading zeromq to 4.0.4, and afterwards recompiling pyzmq on top of zeromq 4...

it seems like python3-cffi is not required anymore and this strange behavior of cffi trying to compile something doesn't occur anymore...

grossmj commented 10 years ago

I think so too, pyzmq has 2 back-ends, cffi and cython. It uses the later by default in recent versions.

anubisg1 commented 10 years ago

i verified and i can confirm. The problem was the older zeromq version that required ciffi and the header file ...

using a newer version with cython the problem doesn't exist.

grossmj commented 10 years ago

Ok, thanks for the confirmation. I'll simply display the ZeroMQ version when the server starts for now.