soldag / python-pwmled

Control LEDs connected to a micro controller using pulse-width modulation.
MIT License
11 stars 4 forks source link

Can't install pwmled in Homeassitant Operating system #9

Open antonverburg opened 12 months ago

antonverburg commented 12 months ago

Since Homeassistant Operating system (HA OS) is using python 3.10 it uses musllinux wheels (explanation: https://github.com/home-assistant/core/issues/75672#issuecomment-1193184688). So if you install a component with pwmled as requirement, you can't use 2022.7+ because it will try to find muslinux wheels, and if it can't, it will try to build from source (which fails). More information can be found also in this issue description: https://github.com/RedMeKool/HA-Raspberry-pi-GPIO-PWM/issues/9

For this reasons, the https://github.com/RedMeKool/HA-Raspberry-pi-GPIO-PWM repro has moved to the use of gpiozero instead of pwmled. However, they lost support for the pca9685, as well as for transitions and RGB/RGBW Leds by that move. It would be nicer if we change the gpio driver of pwmled to work via gpiozero, so that the compilation step is no longer required. Do you support it if I move from pippio to the gpiozero driver?

After some fiddling around, it was shown that just updating the version numbers of the dependent packages plus adding RPi.GPIO will fix this issue. A temporary test version of this package is available at https://pypi.org/project/pwmled-ant/.

antonverburg commented 12 months ago

This is in my homeassitant core log if I try to use the current pwmled:

Home Assistant Core
2023-09-07 20:24:21.202 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration pi4ioe5v9xxxx which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-09-07 20:24:21.209 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration pca9685 which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-09-07 20:24:21.216 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-09-07 20:24:21.222 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration onewire_sysbus which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-09-07 20:24:53.763 WARNING (MainThread) [homeassistant.setup] Setup of bluetooth is taking over 10 seconds.
2023-09-07 20:24:53.807 WARNING (MainThread) [homeassistant.setup] Setup of hardware is taking over 10 seconds.
2023-09-07 20:25:46.797 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: raspberry_pi
2023-09-07 20:26:46.891 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: raspberry_pi
2023-09-07 20:27:46.975 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: raspberry_pi
2023-09-07 20:27:55.550 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package pwmled==1.6.10: error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
running bdist_wheel
running build
running build_py
Compiling ws281x library...
creating build
creating build/lib.linux-aarch64-cpython-311
creating build/lib.linux-aarch64-cpython-311/rpi_ws281x
copying rpi_ws281x/rpi_ws281x.py -> build/lib.linux-aarch64-cpython-311/rpi_ws281x
copying rpi_ws281x/__init__.py -> build/lib.linux-aarch64-cpython-311/rpi_ws281x
running build_ext
building '_rpi_ws281x' extension
creating build/temp.linux-aarch64-cpython-311
creating build/temp.linux-aarch64-cpython-311/lib
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I. -I/usr/local/include/python3.11 -c lib/dma.c -o build/temp.linux-aarch64-cpython-311/lib/dma.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for rpi_ws281x
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
******************************************************************************
* Setup can't determine the value of PAGE_SIZE on your system, so it will
* default to 4096 which may not be correct.
*
* Please report this message and your operating system info to the package
* maintainer listed in the README file.
******************************************************************************
running bdist_wheel
running build
running build_ext
building 'sysv_ipc' extension
creating build
creating build/temp.linux-aarch64-cpython-311
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.11 -c common.c -o build/temp.linux-aarch64-cpython-311/common.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for sysv_ipc
ERROR: Could not build wheels for rpi_ws281x, sysv_ipc, which is required to install pyproject.toml-based projects
[notice] A new release of pip is available: 23.1.2 -> 23.2.1
[notice] To update, run: pip install --upgrade pip
2023-09-07 20:28:47.058 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: raspberry_pi
2023-09-07 20:29:47.141 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: raspberry_pi
2023-09-07 20:30:40.853 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package pwmled==1.6.10: error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
running bdist_wheel
running build
running build_py
Compiling ws281x library...
creating build
creating build/lib.linux-aarch64-cpython-311
creating build/lib.linux-aarch64-cpython-311/rpi_ws281x
copying rpi_ws281x/rpi_ws281x.py -> build/lib.linux-aarch64-cpython-311/rpi_ws281x
copying rpi_ws281x/__init__.py -> build/lib.linux-aarch64-cpython-311/rpi_ws281x
running build_ext
building '_rpi_ws281x' extension
creating build/temp.linux-aarch64-cpython-311
creating build/temp.linux-aarch64-cpython-311/lib
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I. -I/usr/local/include/python3.11 -c lib/dma.c -o build/temp.linux-aarch64-cpython-311/lib/dma.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for rpi_ws281x
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
******************************************************************************
* Setup can't determine the value of PAGE_SIZE on your system, so it will
* default to 4096 which may not be correct.
*
* Please report this message and your operating system info to the package
* maintainer listed in the README file.
******************************************************************************
running bdist_wheel
running build
running build_ext
building 'sysv_ipc' extension
creating build
creating build/temp.linux-aarch64-cpython-311
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.11 -c common.c -o build/temp.linux-aarch64-cpython-311/common.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for sysv_ipc
ERROR: Could not build wheels for rpi_ws281x, sysv_ipc, which is required to install pyproject.toml-based projects
[notice] A new release of pip is available: 23.1.2 -> 23.2.1
[notice] To update, run: pip install --upgrade pip
2023-09-07 20:30:47.220 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: raspberry_pi
2023-09-07 20:30:59.665 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Raspberry Pi for raspberry_pi
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/raspberry_pi/__init__.py", line 22, in async_setup_entry
await hass.config_entries.flow.async_init(
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 846, in async_init
flow, result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 864, in _async_init
flow = await self.async_create_flow(handler, context=context, data=data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 966, in async_create_flow
handler = await _async_get_flow_handler(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2063, in _async_get_flow_handler
await _load_integration(hass, domain, hass_config)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2039, in _load_integration
await async_process_deps_reqs(hass, hass_config, integration)
File "/usr/src/homeassistant/homeassistant/setup.py", line 420, in async_process_deps_reqs
await requirements.async_get_integration_with_requirements(
File "/usr/src/homeassistant/homeassistant/requirements.py", line 52, in async_get_integration_with_requirements
return await manager.async_get_integration_with_requirements(domain)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/requirements.py", line 157, in async_get_integration_with_requirements
await int_or_evt.wait()
File "/usr/local/lib/python3.11/asyncio/locks.py", line 213, in wait
await fut
asyncio.exceptions.CancelledError: Global task timeout
2023-09-07 20:30:59.719 WARNING (MainThread) [homeassistant.bootstrap] Setup timed out for stage 2 - moving forward
2023-09-07 20:33:44.538 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package pwmled==1.6.10: error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
running bdist_wheel
running build
running build_py
Compiling ws281x library...
creating build
creating build/lib.linux-aarch64-cpython-311
creating build/lib.linux-aarch64-cpython-311/rpi_ws281x
copying rpi_ws281x/rpi_ws281x.py -> build/lib.linux-aarch64-cpython-311/rpi_ws281x
copying rpi_ws281x/__init__.py -> build/lib.linux-aarch64-cpython-311/rpi_ws281x
running build_ext
building '_rpi_ws281x' extension
creating build/temp.linux-aarch64-cpython-311
creating build/temp.linux-aarch64-cpython-311/lib
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I. -I/usr/local/include/python3.11 -c lib/dma.c -o build/temp.linux-aarch64-cpython-311/lib/dma.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for rpi_ws281x
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
******************************************************************************
* Setup can't determine the value of PAGE_SIZE on your system, so it will
* default to 4096 which may not be correct.
*
* Please report this message and your operating system info to the package
* maintainer listed in the README file.
******************************************************************************
running bdist_wheel
running build
running build_ext
building 'sysv_ipc' extension
creating build
creating build/temp.linux-aarch64-cpython-311
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.11 -c common.c -o build/temp.linux-aarch64-cpython-311/common.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for sysv_ipc
ERROR: Could not build wheels for rpi_ws281x, sysv_ipc, which is required to install pyproject.toml-based projects
[notice] A new release of pip is available: 23.1.2 -> 23.2.1
[notice] To update, run: pip install --upgrade pip
antonverburg commented 12 months ago

Seems like the issue is caused by dependencies of adafruit-blinka. Upgrading the version of adafruit-blinka to 8.21 seems to help. Currently testing this.