2025-09-07T20:29:40,105 Created temporary directory: /tmp/pip-build-tracker-c_p4x5w9 2025-09-07T20:29:40,106 Initialized build tracking at /tmp/pip-build-tracker-c_p4x5w9 2025-09-07T20:29:40,106 Created build tracker: /tmp/pip-build-tracker-c_p4x5w9 2025-09-07T20:29:40,106 Entered build tracker: /tmp/pip-build-tracker-c_p4x5w9 2025-09-07T20:29:40,106 Created temporary directory: /tmp/pip-wheel-o5r8qfu8 2025-09-07T20:29:40,110 Created temporary directory: /tmp/pip-ephem-wheel-cache-lnwydi4b 2025-09-07T20:29:40,171 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-07T20:29:40,173 2 location(s) to search for versions of v4l2capture: 2025-09-07T20:29:40,173 * https://pypi.org/simple/v4l2capture/ 2025-09-07T20:29:40,173 * https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:29:40,174 Fetching project page and analyzing links: https://pypi.org/simple/v4l2capture/ 2025-09-07T20:29:40,174 Getting page https://pypi.org/simple/v4l2capture/ 2025-09-07T20:29:40,175 Found index url https://pypi.org/simple/ 2025-09-07T20:29:40,323 Fetched page https://pypi.org/simple/v4l2capture/ as application/vnd.pypi.simple.v1+json 2025-09-07T20:29:40,326 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:29:40,326 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:29:40,327 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:29:40,328 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:29:40,328 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:29:40,329 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:29:40,329 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:29:40,330 Fetching project page and analyzing links: https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:29:40,330 Getting page https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:29:40,332 Found index url https://www.piwheels.org/simple/ 2025-09-07T20:29:40,426 Fetched page https://www.piwheels.org/simple/v4l2capture/ as text/html 2025-09-07T20:29:40,427 Skipping link: not a file: https://www.piwheels.org/simple/v4l2capture/ 2025-09-07T20:29:40,427 Skipping link: not a file: https://pypi.org/simple/v4l2capture/ 2025-09-07T20:29:40,453 Given no hashes to check 1 links for project 'v4l2capture': discarding no candidates 2025-09-07T20:29:40,454 Collecting v4l2capture==1.1 2025-09-07T20:29:40,456 Created temporary directory: /tmp/pip-unpack-mqxi_x5c 2025-09-07T20:29:40,595 Downloading v4l2capture-1.1.tar.gz (4.9 kB) 2025-09-07T20:29:40,610 Added v4l2capture==1.1 from https://files.pythonhosted.org/packages/44/5a/94fb53537f12d360965cabd96a7b2495f0604ae4a5ea62288b6d1f02ebb5/v4l2capture-1.1.tar.gz to build tracker '/tmp/pip-build-tracker-c_p4x5w9' 2025-09-07T20:29:40,612 Running setup.py (path:/tmp/pip-wheel-o5r8qfu8/v4l2capture_804e419bd48741788e771f6f5213a8d1/setup.py) egg_info for package v4l2capture 2025-09-07T20:29:40,612 Created temporary directory: /tmp/pip-pip-egg-info-eh6lf_7f 2025-09-07T20:29:40,613 Preparing metadata (setup.py): started 2025-09-07T20:29:40,614 Running command python setup.py egg_info 2025-09-07T20:29:41,643 /usr/local/lib/python3.13/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-09-07T20:29:41,643 !! 2025-09-07T20:29:41,643 ******************************************************************************** 2025-09-07T20:29:41,643 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-09-07T20:29:41,644 License :: Public Domain 2025-09-07T20:29:41,644 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-09-07T20:29:41,644 ******************************************************************************** 2025-09-07T20:29:41,644 !! 2025-09-07T20:29:41,644 self._finalize_license_expression() 2025-09-07T20:29:42,135 Preparing metadata (setup.py): finished with status 'done' 2025-09-07T20:29:42,140 Source in /tmp/pip-wheel-o5r8qfu8/v4l2capture_804e419bd48741788e771f6f5213a8d1 has version 1.1, which satisfies requirement v4l2capture==1.1 from https://files.pythonhosted.org/packages/44/5a/94fb53537f12d360965cabd96a7b2495f0604ae4a5ea62288b6d1f02ebb5/v4l2capture-1.1.tar.gz 2025-09-07T20:29:42,140 Removed v4l2capture==1.1 from https://files.pythonhosted.org/packages/44/5a/94fb53537f12d360965cabd96a7b2495f0604ae4a5ea62288b6d1f02ebb5/v4l2capture-1.1.tar.gz from build tracker '/tmp/pip-build-tracker-c_p4x5w9' 2025-09-07T20:29:42,143 Created temporary directory: /tmp/pip-unpack-msik2gbl 2025-09-07T20:29:42,143 Created temporary directory: /tmp/pip-unpack-h7tzymc3 2025-09-07T20:29:42,143 Building wheels for collected packages: v4l2capture 2025-09-07T20:29:42,144 Created temporary directory: /tmp/pip-wheel-1tgwk3xk 2025-09-07T20:29:42,145 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:29:42,146 Building wheel for v4l2capture (setup.py): started 2025-09-07T20:29:42,146 Destination directory: /tmp/pip-wheel-1tgwk3xk 2025-09-07T20:29:42,147 Running command python setup.py bdist_wheel 2025-09-07T20:29:43,172 /usr/local/lib/python3.13/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-09-07T20:29:43,173 !! 2025-09-07T20:29:43,173 ******************************************************************************** 2025-09-07T20:29:43,173 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-09-07T20:29:43,173 License :: Public Domain 2025-09-07T20:29:43,173 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-09-07T20:29:43,173 ******************************************************************************** 2025-09-07T20:29:43,174 !! 2025-09-07T20:29:43,174 self._finalize_license_expression() 2025-09-07T20:29:44,341 v4l2capture.c: In function ‘Video_device_dealloc’: 2025-09-07T20:29:44,341 v4l2capture.c:93:7: error: ‘Video_device’ has no member named ‘ob_type’ 2025-09-07T20:29:44,341 93 | self->ob_type->tp_free((PyObject *)self); 2025-09-07T20:29:44,341 | ^~ 2025-09-07T20:29:44,354 v4l2capture.c: In function ‘Video_device_fileno’: 2025-09-07T20:29:44,354 v4l2capture.c:138:10: error: implicit declaration of function ‘PyInt_FromLong’; did you mean ‘PyLong_FromLong’? [-Wimplicit-function-declaration] 2025-09-07T20:29:44,354 138 | return PyInt_FromLong(self->fd); 2025-09-07T20:29:44,355 | ^~~~~~~~~~~~~~ 2025-09-07T20:29:44,355 | PyLong_FromLong 2025-09-07T20:29:44,355 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:29:44,355 138 | return PyInt_FromLong(self->fd); 2025-09-07T20:29:44,355 | ^~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,357 v4l2capture.c: In function ‘Video_device_create_buffers’: 2025-09-07T20:29:44,357 v4l2capture.c:255:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘__u32’ {aka ‘unsigned int’} [-Wsign-compare] 2025-09-07T20:29:44,357 255 | for(i = 0; i < reqbuf.count; i++) 2025-09-07T20:29:44,357 | ^ 2025-09-07T20:29:44,383 v4l2capture.c: In function ‘Video_device_read_internal’: 2025-09-07T20:29:44,383 v4l2capture.c:329:22: error: implicit declaration of function ‘PyString_FromStringAndSize’; did you mean ‘PyBytes_FromStringAndSize’? [-Wimplicit-function-declaration] 2025-09-07T20:29:44,384 329 | PyObject *result = PyString_FromStringAndSize( 2025-09-07T20:29:44,384 | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,384 | PyBytes_FromStringAndSize 2025-09-07T20:29:44,384 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:29:44,385 v4l2capture.c: At top level: 2025-09-07T20:29:44,385 v4l2capture.c:442:41: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T20:29:44,385 442 | static PyTypeObject Video_device_type = { 2025-09-07T20:29:44,386 | ^ 2025-09-07T20:29:44,386 In file included from /usr/include/python3.13/Python.h:72, 2025-09-07T20:29:44,386 from v4l2capture.c:14: 2025-09-07T20:29:44,387 /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:29:44,387 138 | (type) \ 2025-09-07T20:29:44,387 | ^ 2025-09-07T20:29:44,387 v4l2capture.c:443:3: note: in expansion of macro ‘PyObject_HEAD_INIT’ 2025-09-07T20:29:44,387 443 | PyObject_HEAD_INIT(NULL) 2025-09-07T20:29:44,387 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,387 /usr/include/python3.13/object.h:138:9: note: (near initialization for ‘Video_device_type.ob_base.ob_size’) 2025-09-07T20:29:44,387 138 | (type) \ 2025-09-07T20:29:44,387 | ^ 2025-09-07T20:29:44,387 v4l2capture.c:443:3: note: in expansion of macro ‘PyObject_HEAD_INIT’ 2025-09-07T20:29:44,388 443 | PyObject_HEAD_INIT(NULL) 2025-09-07T20:29:44,388 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,388 v4l2capture.c:442:41: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T20:29:44,388 442 | static PyTypeObject Video_device_type = { 2025-09-07T20:29:44,388 | ^ 2025-09-07T20:29:44,388 v4l2capture.c:444:10: error: initialization of ‘int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T20:29:44,388 444 | 0, "v4l2capture.Video_device", sizeof(Video_device), 0, 2025-09-07T20:29:44,388 | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,388 v4l2capture.c:444:10: note: (near initialization for ‘Video_device_type.tp_basicsize’) 2025-09-07T20:29:44,388 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:29:44,388 445 | (destructor)Video_device_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2025-09-07T20:29:44,389 | ^ 2025-09-07T20:29:44,389 v4l2capture.c:445:7: note: (near initialization for ‘Video_device_type.tp_vectorcall_offset’) 2025-09-07T20:29:44,389 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:29:44,389 446 | 0, Py_TPFLAGS_DEFAULT, "Video_device(path)\n\nOpens the video device at " 2025-09-07T20:29:44,389 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,389 v4l2capture.c:446:30: note: (near initialization for ‘Video_device_type.tp_traverse’) 2025-09-07T20:29:44,389 v4l2capture.c:449:16: error: initialization of ‘PyMemberDef *’ from incompatible pointer type ‘PyMethodDef *’ [-Wincompatible-pointer-types] 2025-09-07T20:29:44,389 449 | 0, 0, 0, Video_device_methods, 0, 0, 0, 0, 0, 0, 0, 2025-09-07T20:29:44,389 | ^~~~~~~~~~~~~~~~~~~~ 2025-09-07T20:29:44,389 v4l2capture.c:449:16: note: (near initialization for ‘Video_device_type.tp_members’) 2025-09-07T20:29:44,390 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:29:44,390 450 | (initproc)Video_device_init 2025-09-07T20:29:44,390 | ^ 2025-09-07T20:29:44,390 v4l2capture.c:450:7: note: (near initialization for ‘Video_device_type.tp_alloc’) 2025-09-07T20:29:44,390 v4l2capture.c:442:41: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T20:29:44,390 442 | static PyTypeObject Video_device_type = { 2025-09-07T20:29:44,390 | ^ 2025-09-07T20:29:44,390 v4l2capture.c: In function ‘initv4l2capture’: 2025-09-07T20:29:44,390 v4l2capture.c:463:7: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch] 2025-09-07T20:29:44,390 463 | return; 2025-09-07T20:29:44,391 | ^~~~~~ 2025-09-07T20:29:44,391 v4l2capture.c:457:16: note: declared here 2025-09-07T20:29:44,391 457 | PyMODINIT_FUNC initv4l2capture(void) 2025-09-07T20:29:44,391 | ^~~~~~~~~~~~~~~ 2025-09-07T20:29:44,408 v4l2capture.c:466:22: error: implicit declaration of function ‘Py_InitModule3’ [-Wimplicit-function-declaration] 2025-09-07T20:29:44,408 466 | PyObject *module = Py_InitModule3("v4l2capture", module_methods, 2025-09-07T20:29:44,408 | ^~~~~~~~~~~~~~ 2025-09-07T20:29:44,408 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:29:44,408 v4l2capture.c:471:7: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch] 2025-09-07T20:29:44,408 471 | return; 2025-09-07T20:29:44,408 | ^~~~~~ 2025-09-07T20:29:44,408 v4l2capture.c:457:16: note: declared here 2025-09-07T20:29:44,409 457 | PyMODINIT_FUNC initv4l2capture(void) 2025-09-07T20:29:44,409 | ^~~~~~~~~~~~~~~ 2025-09-07T20:29:44,422 error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1 2025-09-07T20:29:44,569 ERROR: python setup.py bdist_wheel exited with 1 2025-09-07T20:29:44,582 [bold magenta]full command[/]: [blue]/usr/bin/python3 -u -c ' 2025-09-07T20:29:44,582 exec(compile('"'"''"'"''"'"' 2025-09-07T20:29:44,582 # This is -- a caller that pip uses to run setup.py 2025-09-07T20:29:44,582 # 2025-09-07T20:29:44,582 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-07T20:29:44,582 # import from `distutils.core` to work with newer packaging standards. 2025-09-07T20:29:44,582 # - It provides a clear error message when setuptools is not installed. 2025-09-07T20:29:44,582 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-07T20:29:44,582 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-07T20:29:44,582 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-07T20:29:44,582 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-07T20:29:44,582 import os, sys, tokenize, traceback 2025-09-07T20:29:44,582 2025-09-07T20:29:44,582 try: 2025-09-07T20:29:44,582 import setuptools 2025-09-07T20:29:44,582 except ImportError: 2025-09-07T20:29:44,582 print( 2025-09-07T20:29:44,582 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-07T20:29:44,582 "the build environment with exception:", 2025-09-07T20:29:44,582 file=sys.stderr, 2025-09-07T20:29:44,582 ) 2025-09-07T20:29:44,582 traceback.print_exc() 2025-09-07T20:29:44,582 sys.exit(1) 2025-09-07T20:29:44,582 2025-09-07T20:29:44,582 __file__ = %r 2025-09-07T20:29:44,582 sys.argv[0] = __file__ 2025-09-07T20:29:44,582 2025-09-07T20:29:44,582 if os.path.exists(__file__): 2025-09-07T20:29:44,582 filename = __file__ 2025-09-07T20:29:44,582 with tokenize.open(__file__) as f: 2025-09-07T20:29:44,582 setup_py_code = f.read() 2025-09-07T20:29:44,582 else: 2025-09-07T20:29:44,582 filename = "" 2025-09-07T20:29:44,582 setup_py_code = "from setuptools import setup; setup()" 2025-09-07T20:29:44,582 2025-09-07T20:29:44,582 exec(compile(setup_py_code, filename, "exec")) 2025-09-07T20:29:44,582 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-o5r8qfu8/v4l2capture_804e419bd48741788e771f6f5213a8d1/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-1tgwk3xk[/] 2025-09-07T20:29:44,582 [bold magenta]cwd[/]: /tmp/pip-wheel-o5r8qfu8/v4l2capture_804e419bd48741788e771f6f5213a8d1/ 2025-09-07T20:29:44,582 Building wheel for v4l2capture (setup.py): finished with status 'error' 2025-09-07T20:29:44,583 ERROR: Failed building wheel for v4l2capture 2025-09-07T20:29:44,584 Running setup.py clean for v4l2capture 2025-09-07T20:29:44,585 Running command python setup.py clean 2025-09-07T20:29:45,610 /usr/local/lib/python3.13/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-09-07T20:29:45,610 !! 2025-09-07T20:29:45,610 ******************************************************************************** 2025-09-07T20:29:45,610 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-09-07T20:29:45,610 License :: Public Domain 2025-09-07T20:29:45,611 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-09-07T20:29:45,611 ******************************************************************************** 2025-09-07T20:29:45,611 !! 2025-09-07T20:29:45,611 self._finalize_license_expression() 2025-09-07T20:29:45,832 'build/lib.linux-armv7l-cpython-313' does not exist -- can't clean it 2025-09-07T20:29:45,833 'build/bdist.linux-armv7l' does not exist -- can't clean it 2025-09-07T20:29:45,833 'build/scripts-3.13' does not exist -- can't clean it 2025-09-07T20:29:45,944 Failed to build v4l2capture 2025-09-07T20:29:45,945 ERROR: Failed to build one or more wheels 2025-09-07T20:29:45,946 Exception information: 2025-09-07T20:29:45,946 Traceback (most recent call last): 2025-09-07T20:29:45,946 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-07T20:29:45,946 status = _inner_run() 2025-09-07T20:29:45,946 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-07T20:29:45,946 return self.run(options, args) 2025-09-07T20:29:45,946 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-07T20:29:45,946 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-07T20:29:45,946 return func(self, options, args) 2025-09-07T20:29:45,946 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 180, in run 2025-09-07T20:29:45,946 raise CommandError("Failed to build one or more wheels") 2025-09-07T20:29:45,946 pip._internal.exceptions.CommandError: Failed to build one or more wheels 2025-09-07T20:29:45,951 Removed build tracker: '/tmp/pip-build-tracker-c_p4x5w9'