Opened 21 months ago
Closed 21 months ago
#14395 closed defect (fixed)
Build fails due to "pip check" and pyopenxr / pyopengl inconsistency
Reported by: | Tom Goddard | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Build System | Version: | |
Keywords: | Cc: | chimerax-programmers | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
After updating pyopenxr to version 1.0.3301 the ChimeraX build fails because this pyopenxr requires pyopengl 3.1.6 but ChimeraX uses pyopengl 3.1.7. When we install pyopenxr we tell it to ignore dependencies so that our pyopengl 3.1.7 is not replaced with 3.1.6. But at the end of the ChimeraX build we run "pip check" which gives an error saying
/var/tmp/chimerax_build/develop/chimerax/ChimeraX_Daily.app/Contents/bin/python3.11 -I -m pip check pyopenxr 1.0.3301 has requirement PyOpenGL==3.1.6, but you have pyopengl 3.1.7. make: *** [install] Error 1
Change History (4)
comment:1 by , 21 months ago
comment:2 by , 21 months ago
The reason pyopenxr requires pyopengl 3.1.6 instead of the latest 3.1.7 is because of some problem on Ubuntu.
We don't use pyopenxr or support VR on Ubuntu so it is fine for us to use pyopengl 3.1.7. I posted an issue to pyopenxr requesting info about what the problem is with pyopengl 3.1.7 and whether it can be fixed
comment:3 by , 21 months ago
Turns out I already handled this problem before with the previous version of PyOpenXR by patching (pyopenxr.patch) its wheel METADATA file after prereqs/pips installs it to not depend on a specific pyopengl version. But the patch silently failed after updating PyOpenXR. So I've now fixed the pyopenxr.patch file. This is a better solution than ignoring "pip check" errors. So I have left pip check error as before where it causes the build to fail.
comment:4 by , 21 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed.
The real cause of this problem was our pyopenxr patch which removed the pyopengl 3.1.6 dependency silently failed because of differences in pyopenxr 1.0.3301 versus 1.0.2801. I fixed the patch.
I don't see any great way around this problem. Probably the best would be to tell "pip check" to ignore pyopenxr. It does not have an option to ignore certain packages. There is a pull request to add exactly this option
It looks like this may go into pip in the near future.
In the meantime I have made failure of our execution of "pip check" not terminate the build, and put a comment in chimerax/Makefile above the pip check to use the "--ignore pyopenxr" option when it becomes available.