home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.99k stars 31.04k forks source link

Error while installing/compiling ha-av on armv7l #129696

Open 0xFEEDC0DE64 opened 3 weeks ago

0xFEEDC0DE64 commented 3 weeks ago

The problem

Hi, I tried checking out latest dev version, script/setup also succeeds, but then when homeassistant boots up, it tries to install ha-av==10.1.1 where no arm binaries seem to be available pre-built, and then gcc fails to compile. I am using latest ffmpeg from archlinux arm and it seems like a certain struct member was renamed?

please see the output:

(venv) feedc0de@odroid-xu4:~/homeassistant (dev)$ LC_ALL=C pip install ha-av==10.1.1                                                                                                                                                                                                                                          Collecting ha-av==10.1.1                                          
  Using cached ha-av-10.1.1.tar.gz (3.6 MB)                        
  Installing build dependencies ... done                                                                                                                                                                                                                                                                                        Getting requirements to build wheel ... done                                                                                                                                                                                                                                                                                  Preparing metadata (pyproject.toml) ... done                       
Building wheels for collected packages: ha-av                                                                                                                                                                                                                                                                                   Building wheel for ha-av (pyproject.toml) ... error               
  error: subprocess-exited-with-error                              
                                                                                                                                                                                                                                                                                                                                × Building wheel for ha-av (pyproject.toml) did not run successfully.                                                                                                                                                                                                                                                         │ exit code: 1                                                                                                                                               
  ╰─> [144 lines of output]                                                                                                                                                                                                                                                                                                         /tmp/pip-build-env-b08_h856/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite'
        warnings.warn(msg)                                                                                                                                     
      running bdist_wheel                                                                                                                                                                                                                                                                                                           running build                                                                                                                                                                                                                                                                                                                 running build_py                                                         
      creating build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                                                copying av/__init__.py -> build/lib.linux-armv7l-cpython-312/av                                                                                          
      copying av/__main__.py -> build/lib.linux-armv7l-cpython-312/av                                                                                          
      copying av/about.py -> build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                                  copying av/datasets.py -> build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                               copying av/deprecation.py -> build/lib.linux-armv7l-cpython-312/av       
      creating build/lib.linux-armv7l-cpython-312/av/audio                                                                                                                                                                                                                                                                          copying av/audio/__init__.py -> build/lib.linux-armv7l-cpython-312/av/audio         
      creating build/lib.linux-armv7l-cpython-312/av/bitstream                                                                                                 
      copying av/bitstream/__init__.py -> build/lib.linux-armv7l-cpython-312/av/bitstream                                                                                                                                                                                                                                           creating build/lib.linux-armv7l-cpython-312/av/codec                                                                                                                                                                                                                                                                          copying av/codec/__init__.py -> build/lib.linux-armv7l-cpython-312/av/codec     
      creating build/lib.linux-armv7l-cpython-312/av/container                                                                                                                                                                                                                                                                      copying av/container/__init__.py -> build/lib.linux-armv7l-cpython-312/av/container
      creating build/lib.linux-armv7l-cpython-312/av/data                     
      copying av/data/__init__.py -> build/lib.linux-armv7l-cpython-312/av/data                                                                                                                                                                                                                                                     creating build/lib.linux-armv7l-cpython-312/av/filter                                                                                                                                                                                                                                                                         copying av/filter/__init__.py -> build/lib.linux-armv7l-cpython-312/av/filter
      creating build/lib.linux-armv7l-cpython-312/av/sidedata                                                                                                  
      copying av/sidedata/__init__.py -> build/lib.linux-armv7l-cpython-312/av/sidedata                                        
      creating build/lib.linux-armv7l-cpython-312/av/subtitles                 
      copying av/subtitles/__init__.py -> build/lib.linux-armv7l-cpython-312/av/subtitles
      creating build/lib.linux-armv7l-cpython-312/av/video                                                                                                     
      copying av/video/__init__.py -> build/lib.linux-armv7l-cpython-312/av/video       
      copying av/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                         
      copying av/buffer.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                                copying av/bytesource.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                       
      copying av/descriptor.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                       
      copying av/dictionary.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                            copying av/enum.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                                  copying av/error.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                            
      copying av/format.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                           
      copying av/frame.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                            
      copying av/logging.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                          
      copying av/option.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                           
      copying av/packet.pxd -> build/lib.linux-armv7l-cpython-312/av
      copying av/plane.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                            
      copying av/stream.pxd -> build/lib.linux-armv7l-cpython-312/av
      copying av/utils.pxd -> build/lib.linux-armv7l-cpython-312/av                                                                                                                                                                                                                                                           
      copying av/audio/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/audio                                                                                                                                                                                                                                            
      copying av/audio/codeccontext.pxd -> build/lib.linux-armv7l-cpython-312/av/audio                                                                         
      copying av/audio/fifo.pxd -> build/lib.linux-armv7l-cpython-312/av/audio
      copying av/audio/format.pxd -> build/lib.linux-armv7l-cpython-312/av/audio                                                                     
      copying av/audio/frame.pxd -> build/lib.linux-armv7l-cpython-312/av/audio                                                                                
      copying av/audio/layout.pxd -> build/lib.linux-armv7l-cpython-312/av/audio
      copying av/audio/plane.pxd -> build/lib.linux-armv7l-cpython-312/av/audio                                                                                                                                                                                                                                               
      copying av/audio/resampler.pxd -> build/lib.linux-armv7l-cpython-312/av/audio                                              
      copying av/audio/stream.pxd -> build/lib.linux-armv7l-cpython-312/av/audio              
      copying av/bitstream/context.pxd -> build/lib.linux-armv7l-cpython-312/av/bitstream                                                                                                                                                                                                                                     
      copying av/bitstream/filter.pxd -> build/lib.linux-armv7l-cpython-312/av/bitstream                                                                       
      copying av/codec/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/codec
      copying av/codec/codec.pxd -> build/lib.linux-armv7l-cpython-312/av/codec                                                                                                                                                                                                                                               
      copying av/codec/context.pxd -> build/lib.linux-armv7l-cpython-312/av/codec                                                                                                                                                                                                                                             
      copying av/container/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/container
      copying av/container/core.pxd -> build/lib.linux-armv7l-cpython-312/av/container
      copying av/container/input.pxd -> build/lib.linux-armv7l-cpython-312/av/container
      copying av/container/output.pxd -> build/lib.linux-armv7l-cpython-312/av/container
      copying av/container/pyio.pxd -> build/lib.linux-armv7l-cpython-312/av/container
      copying av/container/streams.pxd -> build/lib.linux-armv7l-cpython-312/av/container
      copying av/data/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/data
      copying av/data/stream.pxd -> build/lib.linux-armv7l-cpython-312/av/data
      copying av/filter/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/filter
      copying av/filter/context.pxd -> build/lib.linux-armv7l-cpython-312/av/filter
      copying av/filter/filter.pxd -> build/lib.linux-armv7l-cpython-312/av/filter
      copying av/filter/graph.pxd -> build/lib.linux-armv7l-cpython-312/av/filter
      copying av/filter/link.pxd -> build/lib.linux-armv7l-cpython-312/av/filter
      copying av/filter/pad.pxd -> build/lib.linux-armv7l-cpython-312/av/filter
      copying av/sidedata/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/sidedata
      copying av/sidedata/motionvectors.pxd -> build/lib.linux-armv7l-cpython-312/av/sidedata
      copying av/sidedata/sidedata.pxd -> build/lib.linux-armv7l-cpython-312/av/sidedata
      copying av/subtitles/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/subtitles
      copying av/subtitles/codeccontext.pxd -> build/lib.linux-armv7l-cpython-312/av/subtitles
      copying av/subtitles/stream.pxd -> build/lib.linux-armv7l-cpython-312/av/subtitles
      copying av/subtitles/subtitle.pxd -> build/lib.linux-armv7l-cpython-312/av/subtitles
      copying av/video/__init__.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      copying av/video/codeccontext.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      copying av/video/format.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      copying av/video/frame.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      copying av/video/plane.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      copying av/video/reformatter.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      copying av/video/stream.pxd -> build/lib.linux-armv7l-cpython-312/av/video
      running build_ext
      building 'av._core' extension
      creating build/temp.linux-armv7l-cpython-312/src/av
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/_core.c -o 
build/temp.linux-armv7l-cpython-312/src/av/_core.o
      src/av/_core.c: In function '__Pyx_PyInt_AndObjC':
      src/av/_core.c:3379:36: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare]
       3379 |         if ((intval & PyLong_MASK) == intval) {
            |                                    ^~
      src/av/_core.c:3381:71: warning: operand of '?:' changes signedness from 'long int' to 'long unsigned int' due to unsignedness of other operand [-Wsign-compare]
       3381 |             long result = intval & (likely(__Pyx_PyLong_IsPos(op1)) ? last_digit : (PyLong_MASK - last_digit + 1));
            |                                                                       ^~~~~~~~~~
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/_core.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-cpyth
on-312/av/_core.cpython-312-arm-linux-gnueabihf.so
      building 'av.buffer' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/buffer.c -o
 build/temp.linux-armv7l-cpython-312/src/av/buffer.o
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/buffer.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-cpyt
hon-312/av/buffer.cpython-312-arm-linux-gnueabihf.so
      building 'av.bytesource' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/bytesource.
c -o build/temp.linux-armv7l-cpython-312/src/av/bytesource.o
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/bytesource.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-
cpython-312/av/bytesource.cpython-312-arm-linux-gnueabihf.so
      building 'av.descriptor' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/descriptor.
c -o build/temp.linux-armv7l-cpython-312/src/av/descriptor.o
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/descriptor.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-
cpython-312/av/descriptor.cpython-312-arm-linux-gnueabihf.so
      building 'av.dictionary' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/dictionary.
c -o build/temp.linux-armv7l-cpython-312/src/av/dictionary.o
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/dictionary.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-
cpython-312/av/dictionary.cpython-312-arm-linux-gnueabihf.so
      building 'av.enum' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/enum.c -o b
uild/temp.linux-armv7l-cpython-312/src/av/enum.o
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/enum.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-cpytho
n-312/av/enum.cpython-312-arm-linux-gnueabihf.so
      building 'av.error' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/error.c -o 
build/temp.linux-armv7l-cpython-312/src/av/error.o
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/error.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-cpyth
on-312/av/error.cpython-312-arm-linux-gnueabihf.so
      building 'av.format' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/format.c -o
 build/temp.linux-armv7l-cpython-312/src/av/format.o
      src/av/format.c: In function '__pyx_pf_2av_6format_15ContainerFormat___cinit__':
      src/av/format.c:3300:24: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       3300 |     __pyx_v_self->iptr = av_find_input_format(__pyx_t_4);
            |                        ^
      src/av/format.c:3337:24: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       3337 |     __pyx_v_self->optr = av_guess_format(__pyx_t_5, NULL, NULL);
            |                        ^
      gcc -shared -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now build/temp.linux-armv7l-cpython-312/src/av/format.o -L/usr/lib -lavformat -lavcodec -lavdevice -lavutil -lavfilter -lswscale -lswresample -o build/lib.linux-armv7l-cpyt
hon-312/av/format.cpython-312-arm-linux-gnueabihf.so
      building 'av.frame' extension
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOU
RCE=3 -Wformat -Werror=format-security -fstack-clash-protection -march=armv7-a -mfloat-abi=hard -mfpu=neon -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fPIC -I/home/feedc0de/homeassistant/venv/include -I/usr/include/python3.12 -c src/av/frame.c -o 
build/temp.linux-armv7l-cpython-312/src/av/frame.o
      src/av/frame.c: In function '__pyx_f_2av_5frame_5Frame__copy_internal_attributes':
      src/av/frame.c:3681:38: error: 'struct AVFrame' has no member named 'channel_layout'; did you mean 'ch_layout'?
       3681 |     __pyx_t_1 = __pyx_v_source->ptr->channel_layout;
            |                                      ^~~~~~~~~~~~~~
            |                                      ch_layout
      src/av/frame.c:3682:24: error: 'struct AVFrame' has no member named 'channel_layout'; did you mean 'ch_layout'?
       3682 |     __pyx_v_self->ptr->channel_layout = __pyx_t_1;
            |                        ^~~~~~~~~~~~~~
            |                        ch_layout
      src/av/frame.c:3691:36: error: 'struct AVFrame' has no member named 'channels'
       3691 |     __pyx_t_1 = __pyx_v_source->ptr->channels;
            |                                    ^~
      src/av/frame.c:3692:22: error: 'struct AVFrame' has no member named 'channels'
       3692 |     __pyx_v_self->ptr->channels = __pyx_t_1;
            |                      ^~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for ha-av
Failed to build ha-av
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (ha-av)

ffmpeg version:

$ LC_ALL=C pacman -Qi ffmpeg
Name            : ffmpeg
Version         : 2:7.0.2-3.1
Description     : Complete solution to record, convert and stream audio and video
Architecture    : armv7h
URL             : https://ffmpeg.org
Licenses        : GPL-3.0-only
Groups          : None
Provides        : libavcodec.so=61-32  libavdevice.so=61-32  libavfilter.so=10-32  libavformat.so=61-32  libavutil.so=59-32  libpostproc.so=58-32  libswresample.so=5-32  libswscale.so=8-32
Depends On      : alsa-lib  bzip2  cairo  dav1d  fontconfig  freetype2  fribidi  glib2  glibc  gmp  gnutls  gsm  harfbuzz  jack  lame  libass  libavc1394  libbluray  libbs2b  libdrm  libdvdnav  libdvdread  libgl  libiec61883  libjxl  libmodplug  libopenmpt  libplacebo  libpulse  libraw1394  librsvg  libsoxr  libssh
                  libtheora  libva  libvdpau  libvorbis  libvpx  libwebp  libx11  libxcb  libxext  libxml2  libxv  ocl-icd  opencore-amr  openjpeg2  opus  rubberband  sdl2  snappy  speex  srt  v4l-utils  vapoursynth  vid.stab  vulkan-icd-loader  x264  x265  xvidcore  xz  zeromq  zimg  zlib  libass.so=9-32
                  libbluray.so=2-32  libbs2b.so=0-32  libdav1d.so=7-32  libfreetype.so=6-32  libharfbuzz.so=0-32  libjxl.so=0.11-32  libopenmpt.so=0-32  libplacebo.so=349-32  librsvg-2.so=2-32  librubberband.so=2-32  libva.so=2-32  libva-drm.so=2-32  libva-x11.so=2-32  libvidstab.so=1.2-32  libvorbisenc.so=2-32
                  libvorbis.so=0-32  libvpx.so=9-32  libx264.so=164-32  libx265.so=209-32  libxvidcore.so=4-32  libzimg.so=2-32  libzmq.so=5-32
Optional Deps   : avisynthplus: AviSynthPlus support
                  frei0r-plugins: Frei0r video effects support
                  ladspa: LADSPA filters
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 34.47 MiB
Packager        : Arch Linux ARM Build System <builder+xu4@archlinuxarm.org>
Build Date      : Sat Sep 21 17:53:38 2024
Install Date    : Sat Nov 2 10:19:13 2024
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

What else can I do to get it compiling again? Patching av ffmpeg sources doesnt seem to be very nice

What version of Home Assistant Core has the issue?

dev branch

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Core

Integration causing the issue

No response

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

liblit commented 3 weeks ago

I see the same problem on Fedora 41, with a Home Assistant configuration that was previously working under Fedora 40. Fedora 41 uses ffmpeg-free-7.0.2, whereas Fedora 40 used ffmpeg-free-6.1.2.