[solved] RaspberryPi + ARM + zwave

So RaspberryPi users with zwave dongle can’t upgrade to >= 0.91. homeassistant-pyozw-0.1.3 failed to compiled. Does anyone else have the issue ?

Are you running a venv installation? Verify the zwave dependencies are installed.

Yes I’m using venv, yes it worked until 0.90 but homeassistant-pyozw >= 0.1.3 fails to compile, it is an internal compilation issue (https://github.com/home-assistant/home-assistant/issues/23028).
Are you on arm ? do you use pip to deploy hass ?

When I first tried updating to 0.90.1 last weekend I had similar issues when updating the venv on my Pi, using pip3 in my venv. It turned out I was missing some of those required libraries. After I added those dependencies it compiled fine.

I have changed my installation since then though.

Hi,
thank you, it seems that libopenzwave1.5-dev is now required, re-trying after deploying the package.

Nope, still the compilation issue:

    creating build/temp.linux-armv7l-3.5/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-6waWnr/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_LIB_VERSION=0.1.3 -DPY_SSIZE_T_CLEAN=1 -DPY_LIB_FLAVOR=embed -DPY_LIB_BACKEND=cpp -Isrc-lib/libopenzwave/ -Iopenzwave-embed/open-zwave-hass/cpp/src -Iopenzwave-embed/open-zwave-hass/cpp/src/value_classes -Iopenzwave-embed/open-zwave-hass/cpp/src/platform -Iopenzwave-embed/open-zwave-hass/cpp/build/linux -I/usr/include/python3.5m -I/home/homeassistant/py35/include/python3.5m -c openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp -o build/temp.linux-armv7l-3.5/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:3:0: warning: "PY_SSIZE_T_CLEAN" redefined
     #define PY_SSIZE_T_CLEAN
    
    <command-line>:0:0: note: this is the location of the previous definition
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:15405:67: warning: macro "__DATE__" might prevent reproducible builds [-Wdate-time]
       __pyx_t_4 = __pyx_convert_PyUnicode_string_to_py_std__in_string(PY_LIB_DATE_STRING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error)
                                                                       ^~~~~~~~~~~~~~~~~~
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:15407:67: warning: macro "__TIME__" might prevent reproducible builds [-Wdate-time]
       __pyx_t_5 = __pyx_convert_PyUnicode_string_to_py_std__in_string(PY_LIB_TIME_STRING); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1411, __pyx_L1_error)
                                                                       ^~~~~~~~~~~~~~~~~~
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp: In function ‘PyObject* __pyx_pf_12libopenzwave_9PyManager_272beginControllerCommand(__pyx_obj_12libopenzwave_PyManager*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*)’:
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:31713:204: warning: ‘bool OpenZWave::Manager::BeginControllerCommand(uint32, OpenZWave::Driver::ControllerCommand, OpenZWave::Driver::pfnControllerCallback_t, void*, bool, uint8, uint8)’ is deprecated [-Wdeprecated-declarations]
       __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_self->manager->BeginControllerCommand(__pyx_t_1, __pyx_t_2, __pyx_f_12libopenzwave_ctrl_callback, ((void *)__pyx_v_pythonfunc), __pyx_t_3, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4207, __pyx_L1_error)
                                                                                                                                                                                                                ^
    In file included from openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:623:0:
    openzwave-embed/open-zwave-hass/cpp/src/Manager.h:1732:19: note: declared here
       DEPRECATED bool BeginControllerCommand( uint32 const _homeId, Driver::ControllerCommand _command, Driver::pfnControllerCallback_t _callback = NULL, void* _context = NULL, bool _highPower = false, uint8 _nodeId = 0xff, uint8 _arg = 0 );
                       ^~~~~~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fdebug-prefix-map=/build/python3.5-6waWnr/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.5/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.o openzwave-embed/open-zwave-hass/libopenzwave.a -ludev -lstdc++ -lresolv -o build/lib.linux-armv7l-3.5/libopenzwave.cpython-35m-arm-linux-gnueabihf.so
    arm-linux-gnueabihf-g++: error: openzwave-embed/open-zwave-hass/libopenzwave.a: No such file or directory
    error: command 'arm-linux-gnueabihf-g++' failed with exit status 1

----------------------------------------

Command “/home/homeassistant/py35/bin/python3.5 -u -c “import setuptools, tokenize;file=’/tmp/pip-install-st4_84xs/homeassistant-pyozw/setup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().replace(’\r\n’, ‘\n’);f.close();exec(compile(code, file, ‘exec’))” install --record /tmp/pip-record-elogitpm/install-record.txt --single-version-externally-managed --compile --install-headers /home/homeassistant/py35/include/site/python3.5/homeassistant-pyozw” failed with error code 1 in /tmp/pip-install-st4_84xs/homeassistant-pyozw/

Hi,
installing libudev-dev did it ! thank you

1 Like

I feel your frustration. that was me last weekend.