Open
Bug 1952789
Opened 1 year ago
Updated 1 year ago
`mach python-test` fails on python 3.12 due to `multidict` compilation error
Categories
(Testing :: Python Test, defect, P2)
Testing
Python Test
Tracking
(Not tracked)
NEW
People
(Reporter: glob, Unassigned)
References
(Blocks 1 open bug)
Details
dev/mozilla-central$ MACH_SHOW_PIP_OUTPUT=1 ./mach python-test
Installing pip requirements to the 'python-test' site.
Using Python 3.12.9 environment at: /Users/byron/.mozbuild/srcdirs/mozilla-central-0aa7e5c7e374/_virtualenvs/python-test
Resolved 39 packages in 18ms
× Failed to build `multidict==6.0.4`
├─▶ The build backend returned an error
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stdout]
*********************
* Accelerated build *
*********************
running bdist_wheel
running build
running build_py
copying multidict/_multidict_py.py -> build/lib.macosx-15.0-arm64-cpython-312/multidict
copying multidict/_abc.py -> build/lib.macosx-15.0-arm64-cpython-312/multidict
copying multidict/__init__.py -> build/lib.macosx-15.0-arm64-cpython-312/multidict
copying multidict/_multidict_base.py -> build/lib.macosx-15.0-arm64-cpython-312/multidict
copying multidict/_compat.py -> build/lib.macosx-15.0-arm64-cpython-312/multidict
running egg_info
writing multidict.egg-info/PKG-INFO
writing dependency_links to multidict.egg-info/dependency_links.txt
writing top-level names to multidict.egg-info/top_level.txt
reading manifest file 'multidict.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'multidict.egg-info/SOURCES.txt'
copying multidict/__init__.pyi -> build/lib.macosx-15.0-arm64-cpython-312/multidict
copying multidict/py.typed -> build/lib.macosx-15.0-arm64-cpython-312/multidict
running build_ext
building 'multidict._multidict' extension
clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -arch arm64 -I/Users/byron/Library/Caches/uv/builds-v0/.tmprjEGm3/include
-I/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c multidict/_multidict.c -o build/temp.macosx-15.0-arm64-cpython-312/multidict/_multidict.o -O2 -std=c99 -Wall -Wsign-compare -Wconversion -fno-strict-aliasing -pedantic
[stderr]
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files found matching 'multidict/_multidict.html'
warning: no previously-included files found matching 'multidict/*.so'
warning: no previously-included files found matching 'multidict/*.pyd'
warning: no previously-included files found matching 'multidict/*.pyd'
no previously-included directories found matching 'docs/_build'
/Users/byron/Library/Caches/uv/builds-v0/.tmprjEGm3/lib/python3.12/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'multidict._multilib' is absent from the `packages` configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'multidict._multilib' as an importable package[^1],
but it is absent from setuptools' `packages` configuration.
This leads to an ambiguous overall configuration. If you want to distribute this
package, please make sure that 'multidict._multilib' is explicitly added
to the `packages` configuration field.
Alternatively, you can also rely on setuptools' discovery methods
(for example by using `find_namespace_packages(...)`/`find_namespace:`
instead of `find_packages(...)`/`find:`).
You can read more about "package discovery" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
If you don't want 'multidict._multilib' to be distributed and are
already explicitly excluding 'multidict._multilib' via
`find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
you can try to use `exclude_package_data`, or `include-package-data=False` in
combination with a more fine grained `package-data` configuration.
You can read more about "package data files" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/datafiles.html
[^1]: For Python, any directory (with suitable naming) can be imported,
even if it does not contain any `.py` files.
On the other hand, currently there is no concept of package data
directory, all directories are treated like packages.
********************************************************************************
!!
check.warn(importable)
In file included from multidict/_multidict.c:9:
multidict/_multilib/iter.h:225:20: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
225 | multidict_iter_init()
| ^
| void
In file included from multidict/_multidict.c:10:
multidict/_multilib/views.h:388:21: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
388 | multidict_views_init()
| ^
| void
multidict/_multidict.c:458:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
458 | static _PyArg_Parser _parser = {NULL, _keywords, "getall", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:458:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
458 | static _PyArg_Parser _parser = {NULL, _keywords, "getall", 0};
| ^~~~~~~~~
multidict/_multidict.c:458:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[7]' [-Wincompatible-pointer-types]
458 | static _PyArg_Parser _parser = {NULL, _keywords, "getall", 0};
| ^~~~~~~~
multidict/_multidict.c:503:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
503 | static _PyArg_Parser _parser = {NULL, _keywords, "getone", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:503:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
503 | static _PyArg_Parser _parser = {NULL, _keywords, "getone", 0};
| ^~~~~~~~~
multidict/_multidict.c:503:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[7]' [-Wincompatible-pointer-types]
503 | static _PyArg_Parser _parser = {NULL, _keywords, "getone", 0};
| ^~~~~~~~
multidict/_multidict.c:538:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
538 | static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:538:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
538 | static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
| ^~~~~~~~~
multidict/_multidict.c:538:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[4]' [-Wincompatible-pointer-types]
538 | static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
| ^~~~~
multidict/_multidict.c:712:5: warning: 'UsingDeprecatedTrashcanMacro' is deprecated [-Wdeprecated-declarations]
712 | Py_TRASHCAN_SAFE_BEGIN(self);
| ^
/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/object.h:551:9: note: expanded from macro 'Py_TRASHCAN_SAFE_BEGIN'
551 | UsingDeprecatedTrashcanMacro cond=1; \
| ^
/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/object.h:548:1: note: 'UsingDeprecatedTrashcanMacro' has been explicitly marked deprecated here
548 | Py_DEPRECATED(3.11) typedef int UsingDeprecatedTrashcanMacro;
| ^
/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
317 | #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
| ^
multidict/_multidict.c:780:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
780 | static _PyArg_Parser _parser = {NULL, _keywords, "add", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:780:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
780 | static _PyArg_Parser _parser = {NULL, _keywords, "add", 0};
| ^~~~~~~~~
multidict/_multidict.c:780:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[4]' [-Wincompatible-pointer-types]
780 | static _PyArg_Parser _parser = {NULL, _keywords, "add", 0};
| ^~~~~
multidict/_multidict.c:839:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
839 | static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:839:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
839 | static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0};
| ^~~~~~~~~
multidict/_multidict.c:839:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[11]' [-Wincompatible-pointer-types]
839 | static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0};
| ^~~~~~~~~~~~
multidict/_multidict.c:875:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
875 | static _PyArg_Parser _parser = {NULL, _keywords, "popone", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:875:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
875 | static _PyArg_Parser _parser = {NULL, _keywords, "popone", 0};
| ^~~~~~~~~
multidict/_multidict.c:875:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[7]' [-Wincompatible-pointer-types]
875 | static _PyArg_Parser _parser = {NULL, _keywords, "popone", 0};
| ^~~~~~~~
multidict/_multidict.c:922:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
922 | static _PyArg_Parser _parser = {NULL, _keywords, "pop", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:922:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
922 | static _PyArg_Parser _parser = {NULL, _keywords, "pop", 0};
| ^~~~~~~~~
multidict/_multidict.c:922:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[4]' [-Wincompatible-pointer-types]
922 | static _PyArg_Parser _parser = {NULL, _keywords, "pop", 0};
| ^~~~~
multidict/_multidict.c:970:37: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
970 | static _PyArg_Parser _parser = {NULL, _keywords, "popall", 0};
| ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/16/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
26 | #define NULL ((void *)0)
| ^~~~~~~~~~~
multidict/_multidict.c:970:43: warning: incompatible pointer types initializing 'const char *' with an expression of type 'const char *const[3]' [-Wincompatible-pointer-types]
970 | static _PyArg_Parser _parser = {NULL, _keywords, "popall", 0};
| ^~~~~~~~~
multidict/_multidict.c:970:54: warning: incompatible pointer types initializing 'const char *const *' with an expression of type 'char[7]' [-Wincompatible-pointer-types]
970 | static _PyArg_Parser _parser = {NULL, _keywords, "popall", 0};
| ^~~~~~~~
multidict/_multidict.c:1684:18: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
1684 | PyInit__multidict()
| ^
| void
20 warnings and 8 errors generated.
error: command '/usr/bin/clang' failed with exit code 1
Worked without issue with python3.10: python3.10 ./mach python-test
Comment 1•1 year ago
|
||
The severity field is not set for this bug.
:jmaher, could you have a look please?
For more information, please visit BugBot documentation.
Flags: needinfo?(jmaher)
Updated•1 year ago
|
Severity: -- → S3
Flags: needinfo?(jmaher)
Priority: -- → P2
You need to log in
before you can comment on or make changes to this bug.
Description
•