#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 Tom Goddard, 21 months ago

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

https://github.com/pypa/pip/issues/11157

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.

comment:2 by Tom Goddard, 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.

https://github.com/cmbruns/pyopenxr/blob/9afd7fc24c478f2a31514faa7d438c4a99ee0003/setup.cfg#L29C1-L29C1

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

https://github.com/cmbruns/pyopenxr/issues/106

comment:3 by Tom Goddard, 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 Tom Goddard, 21 months ago

Resolution: fixed
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.