Opened 2 years ago
Closed 2 years ago
#6474 closed defect (fixed)
[macOS] Spidermonkey fails to build - part 2
Reported by: | Langbart | Owned by: | |
---|---|---|---|
Priority: | Should Have | Milestone: | Alpha 26 |
Component: | Core engine | Keywords: | |
Cc: | Patch: | Phab:D4607 |
Description (last modified by )
to reproduce
- Try to build
Spidermonkey
- Error
AttributeError: module 'distutils' has no attribute 'sysconfig' ERROR: Error building spidermonkey
Related
Around 2 weeks ago a different issue was solved (#6447), between now and then nothing was changed for the patch.sh
file.
Why could I build SM 2 weeks ago and now it fails?
Two players (kumikumi
and minohaka
) have also reported this issue.
- IRC 0ad-dev - 13/Mar/22
07:31 < kumikumi> I spent some time today trying to build the latest release on M1, with not particularly high expectations. I had to upgrade some dependencies and I tried to do something with python and virtualenv, now I'm stuck at "AttributeError: module 'distutils' has no attribute 'sysconfig'" 07:31 < kumikumi> but I think there may still be some bigger obstacles ahead
- IRC 0ad-dev 26/Mar/22
15:05 < minohaka> I got an m1 mac and python v3.10.0 installed through pyenv 15:06 < minohaka> whenever I try to build the libs I get this error: AttributeError: module 'distutils' has no attribute 'sysconfig'. Did you mean: 'config'? 15:07 <@Stan> Hey minohaka
Both players also tested the special wraitii/0ad/tree/esr91-0AD branch from wraitii
and the issue did not occur there.
Traceback
Traceback (most recent call last): File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/build-debug/../js/src/../../configure.py", line 181, in <module> sys.exit(main(sys.argv)) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/build-debug/../js/src/../../configure.py", line 52, in main sandbox.run(os.path.join(os.path.dirname(__file__), 'moz.configure')) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 445, in run self.include_file(path) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 436, in include_file exec_(code, self) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/util.py", line 53, in exec_ exec(object, globals, locals) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/moz.configure", line 7, in <module> include('build/moz.configure/init.configure') File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 773, in include_impl self.include_file(what) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 436, in include_file exec_(code, self) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/util.py", line 53, in exec_ exec(object, globals, locals) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/build/moz.configure/init.configure", line 254, in <module> def virtualenv_python3(env_python, build_env, mozconfig, help): File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 756, in decorator depends = DependsFunction(self, func, dependencies, when=when) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 129, in __init__ sandbox._value_for(self) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 542, in _value_for return self._value_for_depends(obj) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/util.py", line 1018, in method_call cache[args] = self.func(instance, *args) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 551, in _value_for_depends value = obj.result() File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/util.py", line 1018, in method_call cache[args] = self.func(instance, *args) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 155, in result return self._func(*resolved_args) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 1161, in wrapped return new_func(*args, **kwargs) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/build/moz.configure/init.configure", line 378, in virtualenv_python3 if not distutils.sysconfig.get_python_lib(): AttributeError: module 'distutils' has no attribute 'sysconfig' ERROR: Error building spidermonkey
possible workaround
Adding the following lines to FixMacBuild.diff solved the problem for me and made it possible to build Spidermonkey.
--- a/build/moz.configure/init.configure +++ b/build/moz.configure/init.configure @@ -375,9 +375,6 @@ sys.exit(subprocess.call([python] + sys.argv)) # We are now in the virtualenv - if not distutils.sysconfig.get_python_lib(): - die('Could not determine python site packages directory') - str_version = '.'.join(str(v) for v in version) return namespace(
The lines were also removed by mhentges (Mitchell Hentges)
with diff D129863 - Bug 1730712: Use consistent Python version throughout configure.
Wacky way for the time being to build Spidermonkey until wraitii
moves 0 A.D. to SM91.
Change History (7)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
Description: | modified (diff) |
---|
Adding the Traceback
to the description.
I am testing it with the same Python 3.9.10
.
comment:4 by , 2 years ago
Description: | modified (diff) |
---|
comment:5 by , 2 years ago
Patch: | → Phab:D4572 |
---|
comment:6 by , 2 years ago
Patch: | Phab:D4572 → Phab:D4607 |
---|
comment:7 by , 2 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Allow native builds on Mac OS M1 / Apple Silicon
Update GMP to a version that supports arm64 darwin Patch spidermonkey 78 to build and run on arm64 darwin Choose the correct architecture dynamically in build scripts Include python workaround that fixes python related errors on spidermonkey build Based on a patch by: kumikumi Based on a patch by: Langbart
Fixes #6474
Differential Revision: https://code.wildfiregames.com/D4607
Was your python updated in the meantime?