KhronosGroup / KhronosGroup/OpenXR-SDK-Source
Linux build error if python-markupsafe but not python-jinja installed
- Dominant language
- Python
- Stars
- 825
- Forks
- 306
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 1
Description
The SDK contains both external/python/jinja2 and external/python/markupsafe, which is used when both python-markupsafe and python-jinja are not installed.
If for example on archlinux python-markupsafe 2.1.3 is installed, but not python-jinja. Then the vendored jinja2 is taken, but apparently it is incompatible with the system's markupsafe:
```
Traceback (most recent call last):
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/include/openxr/../../specification/scripts/genxr.py", line 560, in
Traceback (most recent call last):
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/include/openxr/../../specification/scripts/genxr.py", line 560, in
(gen, options) = genTarget(args)
^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/include/openxr/../../specification/scripts/genxr.py", line 468, in genTarget
(gen, options) = genTarget(args)
^^^^^^^^^^^^^^^
gen = createGenerator(errFile=errWarn,
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/include/openxr/../../specification/scripts/genxr.py", line 468, in genTarget
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/specification/scripts/creflectiongenerator.py", line 72, in __init__
self.env = make_jinja_environment(file_with_templates_as_sibs=__file__)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/specification/scripts/jinja_helpers.py", line 99, in make_jinja_environment
gen = createGenerator(errFile=errWarn,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/specification/scripts/creflectiongenerator.py", line 72, in __init__
from jinja2 import Environment, FileSystemLoader
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/__init__.py", line 33, in
self.env = make_jinja_environment(file_with_templates_as_sibs=__file__)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
from jinja2.environment import Environment, Template
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/specification/scripts/jinja_helpers.py", line 99, in make_jinja_environment
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/environment.py", line 15, in
from jinja2 import Environment, FileSystemLoader
from jinja2 import nodes
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/__init__.py", line 33, in
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/nodes.py", line 19, in
from jinja2.utils import Markup
from jinja2.environment import Environment, Template
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/utils.py", line 642, in
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/environment.py", line 15, in
from jinja2 import nodes
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/nodes.py", line 19, in
from jinja2.utils import Markup
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/utils.py", line 642, in
from markupsafe import Markup, escape, soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/lib/python3.11/site-packages/markupsafe/__init__.py)
from markupsafe import Markup, escape, soft_unicode
Traceback (most recent call last):
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/lib/python3.11/site-packages/markupsafe/__init__.py)
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/include/openxr/../../specification/scripts/genxr.py", line 560, in
(gen, options) = genTarget(args)
^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/include/openxr/../../specification/scripts/genxr.py", line 468, in genTarget
gen = createGenerator(errFile=errWarn,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/specification/scripts/creflectiongenerator.py", line 72, in __init__
self.env = make_jinja_environment(file_with_templates_as_sibs=__file__)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/specification/scripts/jinja_helpers.py", line 99, in make_jinja_environment
from jinja2 import Environment, FileSystemLoader
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/__init__.py", line 33, in
from jinja2.environment import Environment, Template
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/environment.py", line 15, in
from jinja2 import nodes
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/nodes.py", line 19, in
from jinja2.utils import Markup
File "/home/haagch-collabora/openxr-loader-git/src/openxr-loader/external/python/jinja2/utils.py", line 642, in
from markupsafe import Markup, escape, soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/lib/python3.11/site-packages/markupsafe/__init__.py)
make[2]: *** [include/openxr/CMakeFiles/generate_openxr_header.dir/build.make:130: include/openxr/openxr_reflection_structs.h] Fehler 1
```
[full build output](https://github.com/KhronosGroup/OpenXR-SDK-Source/files/12139925/build_error.txt)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the Arch Linux build failure in specification/scripts/genxr.py, specification/scripts/creflectiongenerator.py, and specification/scripts/jinja_helpers.py with system markupsafe but without system jinja. Trace how the vendored external/python/jinja2 and external/python/markupsafe packages are selected; done means the OpenXR header generation and build complete in that dependency configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100