Issue installing on Fedora 44. I think this is an issue with a version mismatch between Python 3.14 and the version of av.
$ sudo pip3 install -r requirements.txt
... REDACTED ...
Building wheels for collected packages: Pillow, av
Building wheel for Pillow (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for Pillow (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [284 lines of output]
/tmp/pip-build-env-c_9qy3on/overlay/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated
!!
********************************************************************************
Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).
By 2027-Feb-18, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
corresp(dist, value, root_dir)
/tmp/pip-build-env-c_9qy3on/overlay/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: Historical Permission Notice and Disclaimer (HPND)
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
dist._finalize_license_expression()
/tmp/pip-build-env-c_9qy3on/overlay/lib/python3.14/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: Historical Permission Notice and Disclaimer (HPND)
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/report.py -> build/lib.linux-x86_64-cpython-314/PIL
...
copying src/PIL/BdfFontFile.py -> build/lib.linux-x86_64-cpython-314/PIL
running egg_info
writing src/pillow.egg-info/PKG-INFO
writing dependency_links to src/pillow.egg-info/dependency_links.txt
writing requirements to src/pillow.egg-info/requires.txt
writing top-level names to src/pillow.egg-info/top_level.txt
reading manifest file 'src/pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.c'
warning: no files found matching '*.h'
warning: no files found matching '*.sh'
warning: no files found matching '*.txt'
warning: no files found matching '.flake8'
warning: no previously-included files found matching '.appveyor.yml'
warning: no previously-included files found matching '.clang-format'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.editorconfig'
warning: no previously-included files found matching '.readthedocs.yml'
warning: no previously-included files found matching 'codecov.yml'
warning: no previously-included files found matching 'renovate.json'
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
no previously-included directories found matching '.ci'
no previously-included directories found matching 'wheels'
adding license file 'LICENSE'
writing manifest file 'src/pillow.egg-info/SOURCES.txt'
copying src/PIL/_imaging.pyi -> build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/_imagingcms.pyi -> build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/_imagingft.pyi -> build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/_imagingmath.pyi -> build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/_imagingmorph.pyi -> build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/_webp.pyi -> build/lib.linux-x86_64-cpython-314/PIL
copying src/PIL/py.typed -> build/lib.linux-x86_64-cpython-314/PIL
running build_ext
building 'PIL._imaging' extension
building 'PIL._imagingft' extension
creating build/temp.linux-x86_64-cpython-314/src
building 'PIL._webp' extension
creating build/temp.linux-x86_64-cpython-314/src
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -DHAVE_WEBPMUX -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/_webp.c -o build/temp.linux-x86_64-cpython-314/src/_webp.o
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/_imagingft.c -o build/temp.linux-x86_64-cpython-314/src/_imagingft.o
creating build/temp.linux-x86_64-cpython-314/src
building 'PIL._imagingtk' extension
creating build/temp.linux-x86_64-cpython-314/src/libImaging
creating build/temp.linux-x86_64-cpython-314/src/Tk
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -DHAVE_LIBJPEG -DHAVE_OPENJPEG -DHAVE_LIBZ -DHAVE_XCB -DPILLOW_VERSION=\"10.4.0\" -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/_imaging.c -o build/temp.linux-x86_64-cpython-314/src/_imaging.o
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/Tk/tkImaging.c -o build/temp.linux-x86_64-cpython-314/src/Tk/tkImaging.o
src/_webp.c:930:28: error: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(void)’ {aka ‘struct _object * (*)(void)’} [-Wincompatible-pointer-types]
930 | {"WebPDecoderVersion", WebPDecoderVersion_wrapper, METH_NOARGS, "WebPVersion"},
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/_webp.c:930:28: note: (near initialization for ‘webpMethods[4].ml_meth’)
src/_webp.c:887:1: note: ‘WebPDecoderVersion_wrapper’ declared here
887 | WebPDecoderVersion_wrapper() {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/_webp.c:932:6: error: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(void)’ {aka ‘struct _object * (*)(void)’} [-Wincompatible-pointer-types]
932 | WebPDecoderBuggyAlpha_wrapper,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/_webp.c:932:6: note: (near initialization for ‘webpMethods[5].ml_meth’)
src/_webp.c:915:1: note: ‘WebPDecoderBuggyAlpha_wrapper’ declared here
915 | WebPDecoderBuggyAlpha_wrapper() {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
building 'PIL._imagingmath' extension
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/_imagingmath.c -o build/temp.linux-x86_64-cpython-314/src/_imagingmath.o
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/_imagingtk.c -o build/temp.linux-x86_64-cpython-314/src/_imagingtk.o
gcc -shared build/temp.linux-x86_64-cpython-314/src/Tk/tkImaging.o build/temp.linux-x86_64-cpython-314/src/_imagingtk.o -L/usr/lib64 -L/usr/lib -L/usr/lib64/pipewire-0.3/jack -L/usr/lib64/iscsi -L/usr/local/lib -L/usr/lib64 -o build/lib.linux-x86_64-cpython-314/PIL/_imagingtk.cpython-314-x86_64-linux-gnu.so
building 'PIL._imagingmorph' extension
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/_imagingmorph.c -o build/temp.linux-x86_64-cpython-314/src/_imagingmorph.o
gcc -shared build/temp.linux-x86_64-cpython-314/src/_imagingmorph.o -L/usr/lib64 -L/usr/lib -L/usr/lib64/pipewire-0.3/jack -L/usr/lib64/iscsi -L/usr/local/lib -L/usr/lib64 -o build/lib.linux-x86_64-cpython-314/PIL/_imagingmorph.cpython-314-x86_64-linux-gnu.so
gcc -shared build/temp.linux-x86_64-cpython-314/src/_imagingft.o -L/usr/lib64 -L/usr/lib -L/usr/lib64/pipewire-0.3/jack -L/usr/lib64/iscsi -L/usr/local/lib -L/usr/lib64 -lfreetype -o build/lib.linux-x86_64-cpython-314/PIL/_imagingft.cpython-314-x86_64-linux-gnu.so
gcc -shared build/temp.linux-x86_64-cpython-314/src/_imagingmath.o -L/usr/lib64 -L/usr/lib -L/usr/lib64/pipewire-0.3/jack -L/usr/lib64/iscsi -L/usr/local/lib -L/usr/lib64 -o build/lib.linux-x86_64-cpython-314/PIL/_imagingmath.cpython-314-x86_64-linux-gnu.so
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -DHAVE_LIBJPEG -DHAVE_OPENJPEG -DHAVE_LIBZ -DHAVE_XCB -DPILLOW_VERSION=\"10.4.0\" -I/usr/include/freetype2 -I/usr/include/openjpeg-2.5 -I/usr/include -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/local/include -I/usr/include/python3.14 -c src/decode.c -o build/temp.linux-x86_64-cpython-314/src/decode.o.
...
build/temp.linux-x86_64-cpython-314/src/map.o build/temp.linux-x86_64-cpython-314/src/outline.o build/temp.linux-x86_64-cpython-314/src/path.o -L/usr/lib64 -L/usr/lib -L/usr/lib64/pipewire-0.3/jack -L/usr/lib64/iscsi -L/usr/local/lib -L/usr/lib64 -ljpeg -lopenjp2 -lz -lxcb -o build/lib.linux-x86_64-cpython-314/PIL/_imaging.cpython-314-x86_64-linux-gnu.so
error: command '/usr/sbin/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 Pillow
Building wheel for av (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for av (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [192 lines of output]
/tmp/pip-build-env-3fq3owru/overlay/lib/python3.14/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: BSD License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-314/av
copying av/datasets.py -> build/lib.linux-x86_64-cpython-314/av
copying av/about.py -> build/lib.linux-x86_64-cpython-314/av
...
copying include/libavcodec/avcodec.pxd -> build/lib.linux-x86_64-cpython-314/av/include/libavcodec
running build_ext
building 'av.utils' extension
creating build/temp.linux-x86_64-cpython-314/src/av
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/ffmpeg -I/usr/include/python3.14 -c src/av/utils.c -o build/temp.linux-x86_64-cpython-314/src/av/utils.o
gcc -shared build/temp.linux-x86_64-cpython-314/src/av/utils.o -L/usr/lib64 -lavdevice -lavfilter -lavformat -lavcodec -lswscale -lswresample -lavutil -o build/lib.linux-x86_64-cpython-314/av/utils.cpython-314-x86_64-linux-gnu.so
building 'av.stream' extension
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -O3 -fPIC -I/usr/include/ffmpeg -I/usr/include/python3.14 -c src/av/stream.c -o build/temp.linux-x86_64-cpython-314/src/av/stream.o
src/av/stream.c: In function ‘__pyx_f_2av_6stream_6Stream__get_side_data’:
src/av/stream.c:4733:29: error: ‘struct AVStream’ has no member named ‘nb_side_data’
4733 | __pyx_t_1 = __pyx_v_stream->nb_side_data;
| ^~
src/av/stream.c:4767:33: error: ‘struct AVStream’ has no member named ‘side_data’
4767 | __pyx_t_5 = ((__pyx_v_stream->side_data[__pyx_v_i]).type == AV_PKT_DATA_DISPLAYMATRIX);
| ^~
src/av/stream.c:4777:95: error: ‘struct AVStream’ has no member named ‘side_data’
4777 | __pyx_t_2 = PyFloat_FromDouble(av_display_rotation_get(((int32_t const *)(__pyx_v_stream->side_data[__pyx_v_i]).data))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
| ^~
error: command '/usr/sbin/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 av
Failed to build Pillow av
error: failed-wheel-build-for-install
× Failed to build installable wheels for some pyproject.toml based projects
╰─> Pillow, av
Issue installing on Fedora 44. I think this is an issue with a version mismatch between Python 3.14 and the version of av.
Some output redacted: