diff --git a/pymol/README.md b/pymol/README.md index 021c920..d78029a 100644 --- a/pymol/README.md +++ b/pymol/README.md @@ -1,17 +1,52 @@ +# pymol -Installation Remarks: +Molecular visualization system. This module ships the **incentive** +(official Schrodinger) Linux bundle, not the open-source build. -1.) -If installed on RH7 (merlin6 nodes), a library is missing for RH8 nodes (RA) : +- Upstream: https://pymol.org/ (support: https://www.pymol.org/support.html) +- License: Schrodinger incentive license required for full features + +## How it is built + +Per pymol.org support page for Linux (RHEL 8+ supported since v2.5.10): +download the `PyMOL-_-Linux-x86_64-py310.tar.bz2` bundle, +unpack, run `./pymol`. The recipe downloads the bundle from the public +pymol-storage GCS bucket (sha256-verified), unpacks it and moves the +bundle contents into `$PREFIX`; the `pymol` launcher sits at the PREFIX +root, so the modulefile does `prepend-path PATH $PREFIX` (the bundle's +private `bin/` with its own python is deliberately NOT on PATH). + +Versions before 3.1.8 in this module's git history were open-source +builds (git clone + setup.py) against merlin-era psi-python modules; +see https://github.com/schrodinger/pymol-open-source/blob/master/INSTALL +if that route is ever needed again. + +### License file + +The bundle runs unlicensed with limited features. Site-wide: drop the +SLM license file at `$PREFIX/share/pymol/license.lic`. Per user: PyMOL +prompts on first start (get the file from https://pymol.org/dsc/ip/license/). + +## Building on Ra + +```sh +module use unstable && module load modbuild/2.1.2 +cd pymol +modbuild build 3.1.8 +module use MX unstable && module load pymol/3.1.8 ``` -libGLEW.so.1.10 + +## Verifying the install + +```sh +which pymol # -> /opt/psi/MX/pymol/3.1.8/pymol +pymol -cq # headless no-op: exits 0 without X +pymol # GUI check, needs X ``` -To overcome this, copy this library from /usr/lib64/libGLEW.so.1.10.0 to the pmodules lib folder and link accordingly to the right name if neccessary. +## Adding a new version -2.) -Installed with the options --no-vmd-plugins --use-msgpackc=no, if these options should be available, probably other dependencies needed. -Description from https://github.com/schrodinger/pymol-open-source/blob/master/INSTALL: -- msgpack-c 2.1.5+ (optional, for fast MMTF loading and export, disable with --use-msgpackc=no) -- mmtf-cpp (for fast MMTF export, disable with --use-msgpackc=no) -- libnetcdf (optional, disable with --no-vmd-plugins) +Check the exact bundle filename on https://pymol.org (the `_0` build +number and `py310` tag change between releases), update `urls:` if +needed, add the version + tarball sha256 in `files/config.yaml`, then +`modbuild build ` (modbuild/2.1.2) on a Ra login node. diff --git a/pymol/build b/pymol/build index 40d282a..48f9ab7 100755 --- a/pymol/build +++ b/pymol/build @@ -1,23 +1,17 @@ #!/usr/bin/env modbuild - - -pbuild::prep() { - git clone --depth 1 --branch "v${V_PKG}" https://github.com/schrodinger/pymol-open-source.git -} +# Incentive PyMOL: prebuilt Linux bundle from pymol.org, no compile. +# Default pbuild::prep downloads + sha-verifies + unpacks (urls/shasums in +# files/config.yaml); the bundle unpacks to pymol/ with the launcher at its root. pbuild::configure() { - #NEEDS GML - git clone -b 0.9.9.8 https://github.com/g-truc/glm.git $SRC_DIR/glm/ - cp -r $SRC_DIR/glm/glm/ $SRC_DIR/pymol-open-source/include/ -} - -pbuild::compile() { - cd "$SRC_DIR/pymol-open-source/" - python3 setup.py install --prefix "$PREFIX/" --no-vmd-plugins --use-msgpackc=no -} - -pbuild::install(){ : } +pbuild::compile() { + : +} + +pbuild::install() { + mv "${SRC_DIR}/pymol/"* "${PREFIX}/" +} diff --git a/pymol/files/config.yaml b/pymol/files/config.yaml index 9f1a791..460ae55 100644 --- a/pymol/files/config.yaml +++ b/pymol/files/config.yaml @@ -1,13 +1,17 @@ +--- format: 1 pymol: defaults: group: MX overlay: base relstage: unstable + urls: + # _0 build number and py310 tag are release-specific; check + # https://pymol.org/ #download for the exact filename when bumping + - url: https://storage.googleapis.com/pymol-storage/installers/PyMOL-${V_PKG}_0-Linux-x86_64-py310.tar.bz2 + shasums: + PyMOL-3.1.8_0-Linux-x86_64-py310.tar.bz2: 69ba3492d6d7c4b6cc3d89d47320fb49ed5fdc2bda1a373b73ce11aad3225a7f versions: - 2.5.0: + 3.1.8: config: - build_requires: ["psi-python38/2020.11", "gcc/9.3.0", "cuda/11.0.3"] - 3.0.0: - config: - build_requires: ["psi-python39/2021.11", "gcc/9.3.0", "cuda/11.0.3"] + relstage: unstable diff --git a/pymol/modulefile b/pymol/modulefile index 72d67d4..dc48d31 100644 --- a/pymol/modulefile +++ b/pymol/modulefile @@ -1,10 +1,15 @@ #%Module1.0 -module-whatis "PyMol - molecular visualization system" -module-url "https://github.com/schrodinger/pymol-open-source" -module-license "-" -module-maintainer "Greta Assmann " - -module-help "https://pymol.org/2/" +module-whatis "PyMOL - molecular visualization system (incentive build)" +module-url "https://pymol.org/" +module-license "Schrodinger incentive PyMOL - needs license.lic (see module-help)" +module-maintainer "MX Data " +module-help " +PyMOL molecular visualization system, official Schrodinger Linux +bundle. Full features need a license file: place it at +\$PREFIX/share/pymol/license.lic (site-wide) or let PyMOL prompt +for it on first start (per user). +" +prepend-path PATH $PREFIX