# 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.tar.gz`), then build as above.