2025-09-07T20:36:53,877 Created temporary directory: /tmp/pip-build-tracker-avddpfrn 2025-09-07T20:36:53,877 Initialized build tracking at /tmp/pip-build-tracker-avddpfrn 2025-09-07T20:36:53,878 Created build tracker: /tmp/pip-build-tracker-avddpfrn 2025-09-07T20:36:53,878 Entered build tracker: /tmp/pip-build-tracker-avddpfrn 2025-09-07T20:36:53,878 Created temporary directory: /tmp/pip-wheel-e9lsqx8d 2025-09-07T20:36:53,881 Created temporary directory: /tmp/pip-ephem-wheel-cache-q6lyc491 2025-09-07T20:36:53,940 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-07T20:36:53,942 2 location(s) to search for versions of v4l2capture: 2025-09-07T20:36:53,942 * https://pypi.org/simple/v4l2capture/ 2025-09-07T20:36:53,942 * https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:36:53,942 Fetching project page and analyzing links: https://pypi.org/simple/v4l2capture/ 2025-09-07T20:36:53,943 Getting page https://pypi.org/simple/v4l2capture/ 2025-09-07T20:36:53,944 Found index url https://pypi.org/simple/ 2025-09-07T20:36:54,014 Fetched page https://pypi.org/simple/v4l2capture/ as application/vnd.pypi.simple.v1+json 2025-09-07T20:36:54,015 Found link https://files.pythonhosted.org/packages/44/5a/94fb53537f12d360965cabd96a7b2495f0604ae4a5ea62288b6d1f02ebb5/v4l2capture-1.1.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 1.1 2025-09-07T20:36:54,016 Found link https://files.pythonhosted.org/packages/a5/26/88a64e740d356c7f1e21b62549038e4d8d1732aad5064e5023a7a3d64d72/v4l2capture-1.2.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 1.2 2025-09-07T20:36:54,016 Found link https://files.pythonhosted.org/packages/bb/70/0d6fb67f0a2a41ec115051537e5cf71ed97f4c37d285efd8e23b41fb0441/v4l2capture-1.3.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 1.3 2025-09-07T20:36:54,016 Found link https://files.pythonhosted.org/packages/c7/b6/42c576e132761cc533f2114f2dac5dff8a414899ee3b18cf1444a41aebad/v4l2capture-1.4.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 1.4 2025-09-07T20:36:54,016 Found link https://files.pythonhosted.org/packages/1a/50/447c6b4053a2eb9f7fa8c541f2bb52d07c4e6e0af74bae7242d2718314db/v4l2capture-9.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 9 2025-09-07T20:36:54,017 Found link https://files.pythonhosted.org/packages/be/b1/f2aa525e5a96e509ab1566dfd5ceb1ae10d31a1309a106f3903d90be82c7/v4l2capture-10.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 10 2025-09-07T20:36:54,017 Found link https://files.pythonhosted.org/packages/59/33/dbf42b3ce4857923c496c5338df1acd388982977ddfbcda02dcb949cfcfb/v4l2capture-12.tar.gz (from https://pypi.org/simple/v4l2capture/), version: 12 2025-09-07T20:36:54,017 Fetching project page and analyzing links: https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:36:54,017 Getting page https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:36:54,018 Found index url https://www.piwheels.org/simple/ 2025-09-07T20:36:54,108 Fetched page https://www.piwheels.org/simple/v4l2capture/ as text/html 2025-09-07T20:36:54,109 Skipping link: not a file: https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:36:54,109 Skipping link: not a file: https://pypi.org/simple/v4l2capture/ 2025-09-07T20:36:54,131 Given no hashes to check 1 links for project 'v4l2capture': discarding no candidates 2025-09-07T20:36:54,132 Collecting v4l2capture==1.2 2025-09-07T20:36:54,134 Created temporary directory: /tmp/pip-unpack-5vlp494u 2025-09-07T20:36:54,277 Downloading v4l2capture-1.2.tar.gz (5.2 kB) 2025-09-07T20:36:54,296 Added v4l2capture==1.2 from https://files.pythonhosted.org/packages/a5/26/88a64e740d356c7f1e21b62549038e4d8d1732aad5064e5023a7a3d64d72/v4l2capture-1.2.tar.gz to build tracker '/tmp/pip-build-tracker-avddpfrn' 2025-09-07T20:36:54,298 Running setup.py (path:/tmp/pip-wheel-e9lsqx8d/v4l2capture_c79c993c58ea4e329309d221eea65f20/setup.py) egg_info for package v4l2capture 2025-09-07T20:36:54,299 Created temporary directory: /tmp/pip-pip-egg-info-i87ss62w 2025-09-07T20:36:54,299 Preparing metadata (setup.py): started 2025-09-07T20:36:54,301 Running command python setup.py egg_info 2025-09-07T20:36:55,281 /usr/local/lib/python3.13/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-09-07T20:36:55,281 !! 2025-09-07T20:36:55,281 ******************************************************************************** 2025-09-07T20:36:55,281 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-09-07T20:36:55,281 License :: Public Domain 2025-09-07T20:36:55,282 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-09-07T20:36:55,282 ******************************************************************************** 2025-09-07T20:36:55,282 !! 2025-09-07T20:36:55,282 self._finalize_license_expression() 2025-09-07T20:36:55,762 Preparing metadata (setup.py): finished with status 'done' 2025-09-07T20:36:55,767 Source in /tmp/pip-wheel-e9lsqx8d/v4l2capture_c79c993c58ea4e329309d221eea65f20 has version 1.2, which satisfies requirement v4l2capture==1.2 from https://files.pythonhosted.org/packages/a5/26/88a64e740d356c7f1e21b62549038e4d8d1732aad5064e5023a7a3d64d72/v4l2capture-1.2.tar.gz 2025-09-07T20:36:55,767 Removed v4l2capture==1.2 from https://files.pythonhosted.org/packages/a5/26/88a64e740d356c7f1e21b62549038e4d8d1732aad5064e5023a7a3d64d72/v4l2capture-1.2.tar.gz from build tracker '/tmp/pip-build-tracker-avddpfrn' 2025-09-07T20:36:55,770 Created temporary directory: /tmp/pip-unpack-t1j3o0qr 2025-09-07T20:36:55,770 Created temporary directory: /tmp/pip-unpack-7l73ilxy 2025-09-07T20:36:55,770 Building wheels for collected packages: v4l2capture 2025-09-07T20:36:55,772 Created temporary directory: /tmp/pip-wheel-ysetxoyr 2025-09-07T20:36:55,772 DEPRECATION: Building 'v4l2capture' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'v4l2capture'. Discussion can be found at https://github.com/pypa/pip/issues/6334 2025-09-07T20:36:55,773 Building wheel for v4l2capture (setup.py): started 2025-09-07T20:36:55,774 Destination directory: /tmp/pip-wheel-ysetxoyr 2025-09-07T20:36:55,774 Running command python setup.py bdist_wheel 2025-09-07T20:36:56,748 /usr/local/lib/python3.13/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-09-07T20:36:56,749 !! 2025-09-07T20:36:56,749 ******************************************************************************** 2025-09-07T20:36:56,749 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-09-07T20:36:56,749 License :: Public Domain 2025-09-07T20:36:56,749 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-09-07T20:36:56,749 ******************************************************************************** 2025-09-07T20:36:56,750 !! 2025-09-07T20:36:56,750 self._finalize_license_expression() 2025-09-07T20:36:57,865 v4l2capture.c: In function ‘Video_device_dealloc’: 2025-09-07T20:36:57,865 v4l2capture.c:93:7: error: ‘Video_device’ has no member named ‘ob_type’ 2025-09-07T20:36:57,865 93 | self->ob_type->tp_free((PyObject *)self); 2025-09-07T20:36:57,865 | ^~ 2025-09-07T20:36:57,879 v4l2capture.c: In function ‘Video_device_fileno’: 2025-09-07T20:36:57,879 v4l2capture.c:138:10: error: implicit declaration of function ‘PyInt_FromLong’; did you mean ‘PyLong_FromLong’? [-Wimplicit-function-declaration] 2025-09-07T20:36:57,879 138 | return PyInt_FromLong(self->fd); 2025-09-07T20:36:57,880 | ^~~~~~~~~~~~~~ 2025-09-07T20:36:57,880 | PyLong_FromLong 2025-09-07T20:36:57,880 v4l2capture.c:138:10: error: returning ‘int’ from a function with return type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T20:36:57,880 138 | return PyInt_FromLong(self->fd); 2025-09-07T20:36:57,880 | ^~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,883 v4l2capture.c: In function ‘Video_device_create_buffers’: 2025-09-07T20:36:57,883 v4l2capture.c:255:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘__u32’ {aka ‘unsigned int’} [-Wsign-compare] 2025-09-07T20:36:57,883 255 | for(i = 0; i < reqbuf.count; i++) 2025-09-07T20:36:57,883 | ^ 2025-09-07T20:36:57,911 v4l2capture.c: In function ‘Video_device_read_internal’: 2025-09-07T20:36:57,911 v4l2capture.c:329:22: error: implicit declaration of function ‘PyString_FromStringAndSize’; did you mean ‘PyBytes_FromStringAndSize’? [-Wimplicit-function-declaration] 2025-09-07T20:36:57,911 329 | PyObject *result = PyString_FromStringAndSize( 2025-09-07T20:36:57,911 | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,911 | PyBytes_FromStringAndSize 2025-09-07T20:36:57,912 v4l2capture.c:329:22: error: initialization of ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T20:36:57,913 v4l2capture.c: At top level: 2025-09-07T20:36:57,913 v4l2capture.c:442:41: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T20:36:57,913 442 | static PyTypeObject Video_device_type = { 2025-09-07T20:36:57,913 | ^ 2025-09-07T20:36:57,914 In file included from /usr/include/python3.13/Python.h:72, 2025-09-07T20:36:57,914 from v4l2capture.c:14: 2025-09-07T20:36:57,914 /usr/include/python3.13/object.h:138:9: error: initialization of ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T20:36:57,914 138 | (type) \ 2025-09-07T20:36:57,914 | ^ 2025-09-07T20:36:57,915 v4l2capture.c:443:3: note: in expansion of macro ‘PyObject_HEAD_INIT’ 2025-09-07T20:36:57,915 443 | PyObject_HEAD_INIT(NULL) 2025-09-07T20:36:57,915 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,915 /usr/include/python3.13/object.h:138:9: note: (near initialization for ‘Video_device_type.ob_base.ob_size’) 2025-09-07T20:36:57,915 138 | (type) \ 2025-09-07T20:36:57,915 | ^ 2025-09-07T20:36:57,915 v4l2capture.c:443:3: note: in expansion of macro ‘PyObject_HEAD_INIT’ 2025-09-07T20:36:57,915 443 | PyObject_HEAD_INIT(NULL) 2025-09-07T20:36:57,915 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,915 v4l2capture.c:442:41: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T20:36:57,915 442 | static PyTypeObject Video_device_type = { 2025-09-07T20:36:57,916 | ^ 2025-09-07T20:36:57,916 v4l2capture.c:444:10: error: initialization of ‘int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T20:36:57,916 444 | 0, "v4l2capture.Video_device", sizeof(Video_device), 0, 2025-09-07T20:36:57,916 | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,916 v4l2capture.c:444:10: note: (near initialization for ‘Video_device_type.tp_basicsize’) 2025-09-07T20:36:57,916 v4l2capture.c:445:7: error: initialization of ‘int’ from ‘void (*)(PyObject *)’ {aka ‘void (*)(struct _object *)’} makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T20:36:57,916 445 | (destructor)Video_device_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2025-09-07T20:36:57,916 | ^ 2025-09-07T20:36:57,916 v4l2capture.c:445:7: note: (near initialization for ‘Video_device_type.tp_vectorcall_offset’) 2025-09-07T20:36:57,916 v4l2capture.c:446:30: error: initialization of ‘int (*)(PyObject *, int (*)(PyObject *, void *), void *)’ {aka ‘int (*)(struct _object *, int (*)(struct _object *, void *), void *)’} from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 2025-09-07T20:36:57,917 446 | 0, Py_TPFLAGS_DEFAULT, "Video_device(path)\n\nOpens the video device at " 2025-09-07T20:36:57,917 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,917 v4l2capture.c:446:30: note: (near initialization for ‘Video_device_type.tp_traverse’) 2025-09-07T20:36:57,917 v4l2capture.c:449:16: error: initialization of ‘PyMemberDef *’ from incompatible pointer type ‘PyMethodDef *’ [-Wincompatible-pointer-types] 2025-09-07T20:36:57,917 449 | 0, 0, 0, Video_device_methods, 0, 0, 0, 0, 0, 0, 0, 2025-09-07T20:36:57,917 | ^~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:36:57,917 v4l2capture.c:449:16: note: (near initialization for ‘Video_device_type.tp_members’) 2025-09-07T20:36:57,917 v4l2capture.c:450:7: error: initialization of ‘PyObject * (*)(PyTypeObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _typeobject *, int)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types] 2025-09-07T20:36:57,917 450 | (initproc)Video_device_init 2025-09-07T20:36:57,917 | ^ 2025-09-07T20:36:57,917 v4l2capture.c:450:7: note: (near initialization for ‘Video_device_type.tp_alloc’) 2025-09-07T20:36:57,918 v4l2capture.c:442:41: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T20:36:57,918 442 | static PyTypeObject Video_device_type = { 2025-09-07T20:36:57,918 | ^ 2025-09-07T20:36:57,918 v4l2capture.c: In function ‘initv4l2capture’: 2025-09-07T20:36:57,918 v4l2capture.c:463:7: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch] 2025-09-07T20:36:57,918 463 | return; 2025-09-07T20:36:57,918 | ^~~~~~ 2025-09-07T20:36:57,918 v4l2capture.c:457:16: note: declared here 2025-09-07T20:36:57,918 457 | PyMODINIT_FUNC initv4l2capture(void) 2025-09-07T20:36:57,919 | ^~~~~~~~~~~~~~~ 2025-09-07T20:36:57,935 v4l2capture.c:466:22: error: implicit declaration of function ‘Py_InitModule3’ [-Wimplicit-function-declaration] 2025-09-07T20:36:57,936 466 | PyObject *module = Py_InitModule3("v4l2capture", module_methods, 2025-09-07T20:36:57,936 | ^~~~~~~~~~~~~~ 2025-09-07T20:36:57,936 v4l2capture.c:466:22: error: initialization of ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T20:36:57,936 v4l2capture.c:471:7: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch] 2025-09-07T20:36:57,936 471 | return; 2025-09-07T20:36:57,936 | ^~~~~~ 2025-09-07T20:36:57,936 v4l2capture.c:457:16: note: declared here 2025-09-07T20:36:57,936 457 | PyMODINIT_FUNC initv4l2capture(void) 2025-09-07T20:36:57,937 | ^~~~~~~~~~~~~~~ 2025-09-07T20:36:57,950 error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1 2025-09-07T20:36:58,096 ERROR: python setup.py bdist_wheel exited with 1 2025-09-07T20:36:58,108 [bold magenta]full command[/]: [blue]/usr/bin/python3 -u -c ' 2025-09-07T20:36:58,108 exec(compile('"'"''"'"''"'"' 2025-09-07T20:36:58,108 # This is -- a caller that pip uses to run setup.py 2025-09-07T20:36:58,108 # 2025-09-07T20:36:58,108 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-07T20:36:58,108 # import from `distutils.core` to work with newer packaging standards. 2025-09-07T20:36:58,108 # - It provides a clear error message when setuptools is not installed. 2025-09-07T20:36:58,108 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-07T20:36:58,108 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-07T20:36:58,108 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-07T20:36:58,108 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-07T20:36:58,108 import os, sys, tokenize, traceback 2025-09-07T20:36:58,108 2025-09-07T20:36:58,108 try: 2025-09-07T20:36:58,108 import setuptools 2025-09-07T20:36:58,108 except ImportError: 2025-09-07T20:36:58,108 print( 2025-09-07T20:36:58,108 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-07T20:36:58,108 "the build environment with exception:", 2025-09-07T20:36:58,108 file=sys.stderr, 2025-09-07T20:36:58,108 ) 2025-09-07T20:36:58,108 traceback.print_exc() 2025-09-07T20:36:58,108 sys.exit(1) 2025-09-07T20:36:58,108 2025-09-07T20:36:58,108 __file__ = %r 2025-09-07T20:36:58,108 sys.argv[0] = __file__ 2025-09-07T20:36:58,108 2025-09-07T20:36:58,108 if os.path.exists(__file__): 2025-09-07T20:36:58,108 filename = __file__ 2025-09-07T20:36:58,108 with tokenize.open(__file__) as f: 2025-09-07T20:36:58,108 setup_py_code = f.read() 2025-09-07T20:36:58,108 else: 2025-09-07T20:36:58,108 filename = "" 2025-09-07T20:36:58,108 setup_py_code = "from setuptools import setup; setup()" 2025-09-07T20:36:58,108 2025-09-07T20:36:58,108 exec(compile(setup_py_code, filename, "exec")) 2025-09-07T20:36:58,108 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-e9lsqx8d/v4l2capture_c79c993c58ea4e329309d221eea65f20/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-ysetxoyr[/] 2025-09-07T20:36:58,108 [bold magenta]cwd[/]: /tmp/pip-wheel-e9lsqx8d/v4l2capture_c79c993c58ea4e329309d221eea65f20/ 2025-09-07T20:36:58,108 Building wheel for v4l2capture (setup.py): finished with status 'error' 2025-09-07T20:36:58,109 ERROR: Failed building wheel for v4l2capture 2025-09-07T20:36:58,109 Running setup.py clean for v4l2capture 2025-09-07T20:36:58,110 Running command python setup.py clean 2025-09-07T20:36:59,101 /usr/local/lib/python3.13/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-09-07T20:36:59,101 !! 2025-09-07T20:36:59,101 ******************************************************************************** 2025-09-07T20:36:59,101 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-09-07T20:36:59,101 License :: Public Domain 2025-09-07T20:36:59,102 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-09-07T20:36:59,102 ******************************************************************************** 2025-09-07T20:36:59,102 !! 2025-09-07T20:36:59,102 self._finalize_license_expression() 2025-09-07T20:36:59,321 'build/lib.linux-armv7l-cpython-313' does not exist -- can't clean it 2025-09-07T20:36:59,321 'build/bdist.linux-armv7l' does not exist -- can't clean it 2025-09-07T20:36:59,321 'build/scripts-3.13' does not exist -- can't clean it 2025-09-07T20:36:59,432 Failed to build v4l2capture 2025-09-07T20:36:59,433 ERROR: Failed to build one or more wheels 2025-09-07T20:36:59,434 Exception information: 2025-09-07T20:36:59,434 Traceback (most recent call last): 2025-09-07T20:36:59,434 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-07T20:36:59,434 status = _inner_run() 2025-09-07T20:36:59,434 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-07T20:36:59,434 return self.run(options, args) 2025-09-07T20:36:59,434 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-07T20:36:59,434 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-07T20:36:59,434 return func(self, options, args) 2025-09-07T20:36:59,434 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 180, in run 2025-09-07T20:36:59,434 raise CommandError("Failed to build one or more wheels") 2025-09-07T20:36:59,434 pip._internal.exceptions.CommandError: Failed to build one or more wheels 2025-09-07T20:36:59,438 Removed build tracker: '/tmp/pip-build-tracker-avddpfrn'