Opened 2 years ago
Closed 2 years ago
#6447 closed defect (fixed)
[macOS] Building Spidermonkey fails
Reported by: | Langbart | Owned by: | wraitii |
---|---|---|---|
Priority: | Should Have | Milestone: | Alpha 26 |
Component: | Core engine | Keywords: | |
Cc: | Patch: | Phab:D4542 |
Description (last modified by )
Current version [26557], even after I uninstalled Python@3.9 and Python@3.10 from my system, I could not build Spidermonkey.
to reproduce
- Try to build Spidermonkey
bisect
The first commit which allows me to build Spidermonkey is [26207], at [26208] it fails.
- Commit [26208] refers to D4424, on the 9/Jan/22 I could build Spidermonkey.
- I was also able to build Spidermonkey on the 15/Jan/22 as described on patch D4437.
Traceback (most recent call last):
File "../js/src/../../configure.py", line 181, in <module> sys.exit(main(sys.argv)) File "../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 324, in virtualenv_python3 found_python = find_program(python) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 1160, in wrapped self._apply_imports(func, glob) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 883, in _apply_imports glob[what] = self._get_one_import('%s%s' % (_from, what)) File "/Users/paria/0ad/libraries/source/spidermonkey/mozjs-78.6.0/python/mozbuild/mozbuild/configure/__init__.py", line 963, in _get_one_import exec_(import_line, {}, glob) 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 "<string>", line 1, in <module> ModuleNotFoundError: No module named 'mozfile' ERROR: Error building spidermonkey
Workaround
The module virtualenv==20.13.1
works. The issue lies in virtualenv==20.13.2
, which was released on 24/Feb/22 and is currently the latest version (see virtualenv/#history). Commit [26208] added a line of code to upgrade to the latest module.
-
ps/trunk/libraries/source/spidermonkey/patch.sh
2 2 # Apply patches if needed 3 3 # This script gets called from build.sh. 4 4 5 # SM78 fails to create virtual envs on macs with python > 3.7 6 # Unfortunately, 3.7 is mostly unavailable on ARM macs. 7 # Therefore, replace the custom script with a more up-to-date version from pip 8 # if python is detected to be newer than 3.7. 9 if [ "$(uname -s)" = "Darwin" ]; 10 then 11 PYTHON_MINOR_VERSION="$(python3 -c 'import sys; print(sys.version_info.minor)')" 12 if [ "$PYTHON_MINOR_VERSION" -gt 7 ]; 13 then 14 # SM actually uses features from the full-fledged virtualenv package 15 # and not just venv, so install it to be safe. 16 # Install it locally to not pollute anything. 17 pip3 install --upgrade -t virtualenv virtualenv 18 export PYTHONPATH="$(pwd)/virtualenv:$PYTHONPATH" 19 patch -p1 < ../FixVirtualEnv.diff 20 fi 21 fi 22 5 23 # Mozglue symbols need to be linked against static builds. 6 24 # https://bugzilla.mozilla.org/show_bug.cgi?id=1588340 7 25 patch -p1 < ../FixMozglue.diff
- I can build Spidermoneky by installing python@3.9 with the specific
virtualenv==20.13.1
module and remove the line of upgrading your virtualenv from thepatch.sh
file.
Change History (4)
comment:1 by , 2 years ago
Description: | modified (diff) |
---|
comment:2 by , 2 years ago
virtualenv==20.13.3
has been released (see virtualenv/#history), but the problem persists.
Adding a link to this ticket in the wiki article. wiki/BuildInstructions#macOSTroubleshooting
workaround