Skip to content

Greenlet fails to compile during the setup script run #1034

@spitfire

Description

@spitfire

Description

I'm running the installation script from the no-pkg-resources branch and it's failing

curl \
  --silent \
  --show-error \
  https://raw.githubusercontent.com/tiny-pilot/tinypilot/no-pkg-resources/quick-install | \
    bash - && \
  sudo reboot

What's the behavior that you expect?

I'd expect the build would succeed

What's happening instead?

TASK [ansible-role-tinypilot : create TinyPilot virtualenv] ********************
fatal: [localhost]: FAILED! => {"changed": false, "cmd": ["/opt/tinypilot/venv/bin/pip3", "install", "-r", "/opt/tinypilot/requirements.txt"], "msg": "stdout: Collecting eventlet==0.31.0\n  Using cached eventlet-0.31.0-py2.py3-none-any.whl (224 kB)\nCollecting Flask==1.1.1\n  Using cached Flask-1.1.1-py2.py3-none-any.whl (94 kB)\nCollecting Flask-SocketIO==5.0.1\n  Using cached Flask_SocketIO-5.0.1-py2.py3-none-any.whl (16 kB)\nCollecting Flask-WTF==0.14.3\n  Using cached Flask_WTF-0.14.3-py2.py3-none-any.whl (13 kB)\nRequirement already satisfied: pyyaml==5.4.1 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 7)) (5.4.1)\nCollecting bidict==0.21.2\n  Using cached bidict-0.21.2-py2.py3-none-any.whl (37 kB)\nCollecting click==7.1.2\n  Using cached click-7.1.2-py2.py3-none-any.whl (82 kB)\nCollecting dnspython==1.16.0\n  Using cached dnspython-1.16.0-py2.py3-none-any.whl (188 kB)\nCollecting greenlet==1.0.0\n  Using cached greenlet-1.0.0.tar.gz (84 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nRequirement already satisfied: itsdangerous==1.1.0 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 14)) (1.1.0)\nCollecting Jinja2==2.11.3\n  Using cached Jinja2-2.11.3-py2.py3-none-any.whl (125 kB)\nRequirement already satisfied: MarkupSafe==1.1.1 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 16)) (1.1.1)\nRequirement already satisfied: monotonic==1.5 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 17)) (1.5)\nRequirement already satisfied: python-engineio==4.0.1 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 18)) (4.0.1)\nCollecting python-socketio==5.1.0\n  Using cached python_socketio-5.1.0-py2.py3-none-any.whl (53 kB)\nRequirement already satisfied: six==1.15.0 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 20)) (1.15.0)\nRequirement already satisfied: Werkzeug==1.0.1 in /opt/tinypilot/venv/lib/python3.10/site-packages (from -r /opt/tinypilot/requirements.txt (line 21)) (1.0.1)\nCollecting WTForms==2.3.3\n  Using cached WTForms-2.3.3-py2.py3-none-any.whl (169 kB)\nUsing legacy 'setup.py install' for greenlet, since package 'wheel' is not installed.\nInstalling collected packages: WTForms, Jinja2, greenlet, dnspython, click, bidict, python-socketio, Flask, eventlet, Flask-WTF, Flask-SocketIO\n  Running setup.py install for greenlet: started\n  Running setup.py install for greenlet: finished with status 'error'\n\n:stderr:   error: subprocess-exited-with-error\n  \n  × Running setup.py install for greenlet did not run successfully.\n  │ exit code: 1\n  ╰─> [87 lines of output]\n      running install\n      /opt/tinypilot/venv/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.\n        warnings.warn(\n      running build\n      running build_py\n      creating build\n      creating build/lib.linux-armv7l-3.10\n      creating build/lib.linux-armv7l-3.10/greenlet\n      copying src/greenlet/__init__.py -> build/lib.linux-armv7l-3.10/greenlet\n      creating build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_extension_interface.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_contextvars.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_stack_saved.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_throw.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_generator.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_cpp.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_tracing.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_version.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_greenlet.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_generator_nested.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_gc.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_weakref.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/test_leaks.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/__init__.py -> build/lib.linux-armv7l-3.10/greenlet/tests\n      running egg_info\n      writing src/greenlet.egg-info/PKG-INFO\n      writing dependency_links to src/greenlet.egg-info/dependency_links.txt\n      writing requirements to src/greenlet.egg-info/requires.txt\n      writing top-level names to src/greenlet.egg-info/top_level.txt\n      reading manifest file 'src/greenlet.egg-info/SOURCES.txt'\n      reading manifest template 'MANIFEST.in'\n      no previously-included directories found matching 'docs/_build'\n      warning: no files found matching '*.py' under directory 'appveyor'\n      warning: no previously-included files matching '*.pyc' found anywhere in distribution\n      warning: no previously-included files matching '*.pyd' found anywhere in distribution\n      warning: no previously-included files matching '*.so' found anywhere in distribution\n      warning: no previously-included files matching '.coverage' found anywhere in distribution\n      adding license file 'LICENSE'\n      adding license file 'LICENSE.PSF'\n      adding license file 'AUTHORS'\n      writing manifest file 'src/greenlet.egg-info/SOURCES.txt'\n      copying src/greenlet/greenlet.c -> build/lib.linux-armv7l-3.10/greenlet\n      copying src/greenlet/greenlet.h -> build/lib.linux-armv7l-3.10/greenlet\n      copying src/greenlet/slp_platformselect.h -> build/lib.linux-armv7l-3.10/greenlet\n      creating build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_mips_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_s390_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_x32_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/platform/switch_x86_unix.h -> build/lib.linux-armv7l-3.10/greenlet/platform\n      copying src/greenlet/tests/_test_extension.c -> build/lib.linux-armv7l-3.10/greenlet/tests\n      copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.linux-armv7l-3.10/greenlet/tests\n      running build_ext\n      building 'greenlet._greenlet' extension\n      creating build/temp.linux-armv7l-3.10\n      creating build/temp.linux-armv7l-3.10/src\n      creating build/temp.linux-armv7l-3.10/src/greenlet\n      arm-linux-gnueabihf-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/opt/tinypilot/venv/include -I/usr/include/python3.10 -c src/greenlet/greenlet.c -o build/temp.linux-armv7l-3.10/src/greenlet/greenlet.o\n      src/greenlet/greenlet.c: In function ‘g_calltrace’:\n      src/greenlet/greenlet.c:570:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘use_tracing’; did you mean ‘tracing’?\n        570 |     tstate->use_tracing = 0;\n            |             ^~~~~~~~~~~\n            |             tracing\n      src/greenlet/greenlet.c:573:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘use_tracing’; did you mean ‘tracing’?\n        573 |     tstate->use_tracing =\n            |             ^~~~~~~~~~~\n            |             tracing\n      error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1\n      [end of output]\n  \n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: legacy-install-failure\n\n× Encountered error while trying to install package.\n╰─> greenlet\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for output from the failure.\n"}

What are the steps to reproduce this behavior?

Try installing it on Armbian 22.05 (Based on ubuntu 22.04)
(I know you probably can't reproduce it with this non-supported OS, but maybe you can find what's wrong from the logs).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions