Files
MX_Pmodule/pymol-open-source/README.md
T
2026-09-01 10:56:37 +02:00

62 lines
2.3 KiB
Markdown

# pymol-open-source
Open-Source PyMOL, compiled from the GitHub source. Free for everyone,
no license file — unlike the `pymol` module (Schrodinger incentive
bundle).
- Upstream: https://github.com/schrodinger/pymol-open-source
- License: Open-Source PyMOL license (BSD-like)
## How it is built
uv route (careless-style): uv fetches a standalone Python 3.12 into
`$PREFIX/python`, creates `$PREFIX/venv`, then `uv pip install` compiles
the sha-pinned source tarball into it with the gcc/12.3.0 module
(`CC=gcc CXX=g++`; gcc is also a runtime dep for its libstdc++). glm
(header-only) is fetched as a second pinned tarball and staged via
`PREFIX_PATH`. PyQt5 is pip-installed for the GUI.
Build options passed as `uv pip install -C k=v` (upstream
`_custom_build/backend.py` turns them into `build_ext --k=v`):
- `use-msgpackc=no` — no msgpack-c/mmtf-cpp on Ra; disables fast MMTF load
- `no-libxml=true` — disables COLLADA export
- `no-vmd-plugins=false` — disables VMD molfile plugins (needs libnetcdf).
`false` is correct: upstream stores the value straight into `vmd_plugins`.
Boolean flags take ONLY `true`/`false` — upstream `str2bool` rejects
`yes`/`no` with "Boolean value expected".
Required system RPMs on the build host (if the compile fails, ask
sysadmins for): `glew-devel libpng-devel freetype-devel mesa-libGL-devel`.
`uv` must be on the build host (default `~/.local/bin/uv`, override with
`UV=/path/to/uv`).
## Building on Ra
```sh
module use unstable && module load modbuild/2.1.3
cd pymol-open-source
modbuild build \
--tmpdir=/das/work/p21/p21515/.cache/Pmodules \
--distdir=/das/work/p21/p21515/.cache/Pmodules \
3.1.0
module use MX unstable && module load pymol-open-source/3.1.0
```
## Verifying the install
```sh
which pymol # -> .../pymol-open-source/3.1.0/venv/bin/pymol
readlink -f "$PYMOL_ENV/bin/python" # system /usr/bin/python3.12 (RPM) is fine;
# inside $PREFIX/python if uv had to download one
pymol -cq # headless no-op: exits 0 without X
pymol # Qt GUI check, needs X
```
## Adding a new version
Add the version + tarball sha256 in `files/config.yaml`
(`sha256sum` the downloaded `v<ver>.tar.gz`), then build as above.