diff --git a/Custom_EasyBlocks/README.md b/Custom_EasyBlocks/README.md index 6598a6a759dfead38a2f8443d1b7b2abf83f8ea2..167229221cf02ec433b710b9a3bf0498e4d4876d 100644 --- a/Custom_EasyBlocks/README.md +++ b/Custom_EasyBlocks/README.md @@ -53,3 +53,10 @@ Overview of the custom EasyBlocks. - __*needed because*__ we offer more functionality compared to upstream - __*difference compared to upstream*__ upstream has not yet an EasyBlock for julia, juliabundle and juliapackage - __*can not be removed*__ once merged with upstream + +## VMD +- __*added by*__ j.goebbert +- __*needed because*__ we replaced the Mesa module by our own OpenGL module compared to upstream +- __*difference compared to upstream*__ upstream checks for Mesa inside the easyblock +- __*can not be removed*__ once upstream uses our OpenGL module + diff --git a/Custom_EasyBlocks/vmd.py b/Custom_EasyBlocks/vmd.py new file mode 100644 index 0000000000000000000000000000000000000000..dd01da3db3b33d75b8a2dbbfc0142ed8d018e5cd --- /dev/null +++ b/Custom_EasyBlocks/vmd.py @@ -0,0 +1,236 @@ +## +# Copyright 2009-2021 Ghent University +# Copyright 2015-2021 Stanford University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), +# the Hercules foundation (http://www.herculesstichting.be/in_English) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>. +## +""" +EasyBuild support for VMD, implemented as an easyblock + +@author: Stephane Thiell (Stanford University) +@author: Kenneth Hoste (HPC-UGent) +""" +import os + +from distutils.version import LooseVersion +from easybuild.easyblocks.generic.configuremake import ConfigureMake +from easybuild.easyblocks.generic.pythonpackage import det_pylibdir +from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.filetools import change_dir, copy_file, extract_file +from easybuild.tools.run import run_cmd +from easybuild.tools.modules import get_software_root, get_software_version +import easybuild.tools.environment as env +import easybuild.tools.toolchain as toolchain + + +class EB_VMD(ConfigureMake): + """Easyblock for building and installing VMD""" + + def __init__(self, *args, **kwargs): + """Initialize VMD-specific variables.""" + super(EB_VMD, self).__init__(*args, **kwargs) + # source tarballs contains a 'plugins' and 'vmd-<version>' directory + self.vmddir = os.path.join(self.builddir, '%s-%s' % (self.name.lower(), self.version)) + self.surf_dir = os.path.join(self.vmddir, 'lib', 'surf') + self.stride_dir = os.path.join(self.vmddir, 'lib', 'stride') + + def extract_step(self): + """Custom extract step for VMD.""" + super(EB_VMD, self).extract_step() + + if LooseVersion(self.version) >= LooseVersion("1.9.3"): + change_dir(self.surf_dir) + srcdir = extract_file('surf.tar.Z', os.getcwd(), change_into_dir=False) + change_dir(srcdir) + + def configure_step(self): + """ + Configure VMD for building. + """ + # make sure required dependencies are available + deps = {} + for dep in ['FLTK', 'OpenGL', 'netCDF', 'Python', 'Tcl', 'Tk']: + deps[dep] = get_software_root(dep) + if deps[dep] is None: + raise EasyBuildError("Required dependency %s is missing", dep) + + # optional dependencies + for dep in ['ACTC', 'CUDA', 'OptiX']: + deps[dep] = get_software_root(dep) + + # specify Tcl/Tk locations & libraries + tclinc = os.path.join(deps['Tcl'], 'include') + tcllib = os.path.join(deps['Tcl'], 'lib') + env.setvar('TCL_INCLUDE_DIR', tclinc) + env.setvar('TCL_LIBRARY_DIR', tcllib) + + env.setvar('TK_INCLUDE_DIR', os.path.join(deps['Tk'], 'include')) + env.setvar('TK_LIBRARY_DIR', os.path.join(deps['Tk'], 'lib')) + + tclshortver = '.'.join(get_software_version('Tcl').split('.')[:2]) + self.cfg.update('buildopts', 'TCLLDFLAGS="-ltcl%s"' % tclshortver) + + # Netcdf locations + netcdfinc = os.path.join(deps['netCDF'], 'include') + netcdflib = os.path.join(deps['netCDF'], 'lib') + + # Python locations + pyver = get_software_version('Python') + pymajver = pyver.split('.')[0] + out, ec = run_cmd("python -c 'import sysconfig; print(sysconfig.get_path(\"include\"))'", simple=False) + if ec: + raise EasyBuildError("Failed to determine Python include path: %s", out) + else: + env.setvar('PYTHON_INCLUDE_DIR', out.strip()) + pylibdir = det_pylibdir() + python_libdir = os.path.join(deps['Python'], os.path.dirname(pylibdir)) + env.setvar('PYTHON_LIBRARY_DIR', python_libdir) + if LooseVersion(pyver) >= LooseVersion('3.8'): + out, ec = run_cmd("python%s-config --libs --embed" % pymajver, simple=False) + else: + out, ec = run_cmd("python%s-config --libs" % pymajver, simple=False) + if ec: + raise EasyBuildError("Failed to determine Python library name: %s", out) + else: + env.setvar('PYTHON_LIBRARIES', out.strip()) + + # numpy include location, easiest way to determine it is via numpy.get_include() + out, ec = run_cmd("python -c 'import numpy; print(numpy.get_include())'", simple=False) + if ec: + raise EasyBuildError("Failed to determine numpy include directory: %s", out) + else: + env.setvar('NUMPY_INCLUDE_DIR', out.strip()) + + # compiler commands + self.cfg.update('buildopts', 'CC="%s"' % os.getenv('CC')) + self.cfg.update('buildopts', 'CCPP="%s"' % os.getenv('CXX')) + + # plugins need to be built first (see http://www.ks.uiuc.edu/Research/vmd/doxygen/compiling.html) + change_dir(os.path.join(self.builddir, 'plugins')) + cmd = ' '.join([ + 'make', + 'LINUXAMD64', + "TCLINC='-I%s'" % tclinc, + "TCLLIB='-L%s'" % tcllib, + "TCLLDFLAGS='-ltcl%s'" % tclshortver, + "NETCDFINC='-I%s'" % netcdfinc, + "NETCDFLIB='-L%s'" % netcdflib, + self.cfg['buildopts'], + ]) + run_cmd(cmd, log_all=True, simple=False) + + # create plugins distribution + plugindir = os.path.join(self.vmddir, 'plugins') + env.setvar('PLUGINDIR', plugindir) + self.log.info("Generating VMD plugins in %s", plugindir) + run_cmd("make distrib %s" % self.cfg['buildopts'], log_all=True, simple=False) + + # explicitely mention whether or not we're building with CUDA/OptiX support + if deps['CUDA']: + self.log.info("Building with CUDA %s support", get_software_version('CUDA')) + if deps['OptiX']: + self.log.info("Building with Nvidia OptiX %s support", get_software_version('OptiX')) + else: + self.log.warn("Not building with Nvidia OptiX support!") + else: + self.log.warn("Not building with CUDA nor OptiX support!") + + # see http://www.ks.uiuc.edu/Research/vmd/doxygen/configure.html + # LINUXAMD64: Linux 64-bit + # LP64: build VMD as 64-bit binary + # IMD: enable support for Interactive Molecular Dynamics (e.g. to connect to NAMD for remote simulations) + # PTHREADS: enable support for POSIX threads + # COLVARS: enable support for collective variables (related to NAMD/LAMMPS) + # NOSILENT: verbose build command + # FLTK: enable the standard FLTK GUI + # TK: enable TK to support extension GUI elements + # OPENGL: enable OpenGL + self.cfg.update( + 'configopts', "LINUXAMD64 LP64 IMD PTHREADS COLVARS NOSILENT FLTK TK OPENGL", allow_duplicate=False) + + # add additional configopts based on available dependencies + for key in deps: + if deps[key]: + if key == 'Mesa' or key == 'OpenGL': + self.cfg.update('configopts', "OPENGL MESA", allow_duplicate=False) + elif key == 'OptiX': + self.cfg.update('configopts', "LIBOPTIX", allow_duplicate=False) + elif key == 'Python': + self.cfg.update('configopts', "PYTHON NUMPY", allow_duplicate=False) + else: + self.cfg.update('configopts', key.upper(), allow_duplicate=False) + + # configure for building with Intel compilers specifically + if self.toolchain.comp_family() == toolchain.INTELCOMP: + self.cfg.update('configopts', 'ICC', allow_duplicate=False) + + # specify install location using environment variables + env.setvar('VMDINSTALLBINDIR', os.path.join(self.installdir, 'bin')) + env.setvar('VMDINSTALLLIBRARYDIR', os.path.join(self.installdir, 'lib')) + + # configure in vmd-<version> directory + change_dir(self.vmddir) + run_cmd("%s ./configure %s" % (self.cfg['preconfigopts'], self.cfg['configopts'])) + + # change to 'src' subdirectory, ready for building + change_dir(os.path.join(self.vmddir, 'src')) + + def build_step(self): + """Custom build step for VMD.""" + super(EB_VMD, self).build_step() + + self.have_stride = False + # Build Surf, which is part of VMD as of VMD version 1.9.3 + if LooseVersion(self.version) >= LooseVersion("1.9.3"): + change_dir(self.surf_dir) + surf_build_cmd = 'make CC="%s" OPT="%s"' % (os.environ['CC'], os.environ['CFLAGS']) + run_cmd(surf_build_cmd) + # Build Stride if it was downloaded + if os.path.exists(os.path.join(self.stride_dir, 'Makefile')): + change_dir(self.stride_dir) + self.have_stride = True + stride_build_cmd = 'make CC="%s" CFLAGS="%s"' % (os.environ['CC'], os.environ['CFLAGS']) + run_cmd(stride_build_cmd) + else: + self.log.info("Stride has not been downloaded and/or unpacked.") + + def install_step(self): + """Custom build step for VMD.""" + + # Install must also be done in 'src' subdir + change_dir(os.path.join(self.vmddir, 'src')) + super(EB_VMD, self).install_step() + + if LooseVersion(self.version) >= LooseVersion("1.9.3"): + surf_bin = os.path.join(self.surf_dir, 'surf') + copy_file(surf_bin, os.path.join(self.installdir, 'lib', 'surf_LINUXAMD64')) + if self.have_stride: + stride_bin = os.path.join(self.stride_dir, 'stride') + copy_file(stride_bin, os.path.join(self.installdir, 'lib', 'stride_LINUXAMD64')) + + def sanity_check_step(self): + """Custom sanity check for VMD.""" + custom_paths = { + 'files': ['bin/vmd'], + 'dirs': ['lib'], + } + super(EB_VMD, self).sanity_check_step(custom_paths=custom_paths) diff --git a/Golden_Repo/c/Cirq/Cirq-0.13.1-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/c/Cirq/Cirq-0.13.1-gcccoremkl-11.2.0-2021.4.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..727aa52f6a66fc0d43b06592ce2153767e51199d --- /dev/null +++ b/Golden_Repo/c/Cirq/Cirq-0.13.1-gcccoremkl-11.2.0-2021.4.0.eb @@ -0,0 +1,180 @@ +easyblock = 'PythonBundle' + +name = 'Cirq' +version = '0.13.1' + +homepage = 'https://github.com/quantumlib/cirq' +description = """A python framework for creating, editing, +and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'} +toolchainopts = {'pic': True} + +dependencies = [ + ('Python', '3.9.6'), + ('SciPy-Stack', '2021b'), + ('protobuf-python', '3.17.3'), + ('texlive', '20200406'), +] + +exts_default_options = { + 'download_dep_fail': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'use_pip_for_deps': False, + 'sanity_pip_check': True, +} + +local_common_opts = { + 'req_py_majver': '3', + 'req_py_minver': '0' +} + +exts_list = [ + ('cachetools', '4.2.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693')]), + ])), + ('pyasn1-modules', '0.2.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e')]), + ])), + ('rsa', '4.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa')]), + ])), + ('google-auth', '1.35.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b7033be9028c188ee30200b204ea00ed82ea1162e8ac1df4aa6ded19a191d88e')]), + ('modulename', 'google.auth'), + ])), + ('googleapis-common-protos', '1.54.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a4031d6ec6c2b1b6dc3e0be7e10a1bd72fb0b18b07ef9be7b51f2c1004ce2437')]), + ('modulename', 'google') + ])), + ('grpcio', '1.42.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4a8f2c7490fe3696e0cdd566e2f099fb91b51bc75446125175c55581c2f7bc11')]), + ('modulename', 'grpc') + ])), + ('google-api-core', '1.31.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c77ffc8b4981b44efdb9d68431fd96d21dbd39545c29552bbe79b9b7dd2c3689')]), + ('modulename', 'google'), + ])), + ('duet', '0.2.3', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'duet-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '33e9dfe13c15a2fc8f79aa531957e8d020064261a82a103449e4eaf62ea0389b')]), + ('unpack_sources', False), + ])), + ('tqdm', '4.62.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d')]), + ])), + ('cirq-core', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_core-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '31f88210f00b43c6d10c83c0e2e5291c6e4a1750f436dcb8044b3343c6bd73b9')]), + ('unpack_sources', False), + ('modulename', 'os') # fake module name as this extension has no python packages + ])), + ('cirq-aqt', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_aqt-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', 'b30c7c9f957e8586f5b00e3dc55d83718849630ece82241e04f6731e5c815b56')]), + ('unpack_sources', False), + ])), + ('cirq-google', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_google-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '4319fade78e7ecb3fc846a82d426d14426079df3b219d82325e70e34b564af98')]), + ('unpack_sources', False), + ])), + ('cirq-ionq', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_ionq-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '5f25d7ee8c271bb473b4e79dedbd041829f7932cb7b65481dd3d45861d8d803a')]), + ('unpack_sources', False), + ])), + ('cirq-pasqal', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_pasqal-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '0344227cdf2cea262b065ac1cf26875c63647a4dd666bce2c48364e7649c5890')]), + ('unpack_sources', False), + ])), + ('h11', '0.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1')]), + ])), + ('rfc3986', '1.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835')]), + ])), + ('sniffio', '1.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de')]), + ])), + ('httpx', '0.15.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '254b371e3880a8e2387bf9ead6949bac797bd557fda26eba19a6153a0c06bd2b')]), + ])), + ('iso8601', '0.1.16', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '36532f77cc800594e8f16641edae7f1baf7932f05d8e508545b95fc53c6dc85b')]), + ])), + ('pydantic', '1.8.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b')]), + ])), + ('anyio', '3.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '24adc69309fb5779bc1e06158e143e0b6d2c56b302a3ac3de3083c705a6ed39d')]), + ])), + ('httpcore', '0.11.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a35dddd1f4cc34ff37788337ef507c0ad0276241ece6daf663ac9e77c0b87232')]), + ])), + ('PyJWT', '1.7.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96')]), + ('modulename', 'jwt'), + ])), + ('lark', '0.11.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3100d9749b5a85735ec428b83100876a5da664804579e729c23a36341f961e7e')]), + ])), + ('retry', '0.9.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4')]), + ])), + ('python-rapidjson', '1.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '04323e63cf57f7ed927fd9bcb1861ef5ecb0d4d7213f2755969d4a1ac3c2de6f')]), + ('modulename', 'rapidjson'), + ])), + ('ruamel.yaml', '0.17.17', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be')]), + ])), + ('ruamel.yaml.clib', '0.2.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd')]), + ('modulename', 'ruamel.yaml'), + ])), + ('msgpack', '0.6.2', dict(list(local_common_opts.items()) + [ # downgrade + ('checksums', [('sha256', 'ea3c2f859346fcd55fc46e96885301d9c2f7a36d453f5d8f2967840efa1e1830')]), + ])), + ('rpcq', '3.9.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '690c6e5ca8b2a6831c4f34e527b3adb276ce8656f43e851dfd90bc58961f5a69')]), + ])), + ('pyquil', '3.0.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5d7f1414c8bcaec6b86577ca1a75a020b0315845eaf3165ae4c0d3633987a387')]), + ])), + ('rfc3339', '6.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd53c3b5eefaef892b7240ba2a91fef012e86faa4d0a0ca782359c490e00ad4d0')]), + ])), + ('attrs', '20.3.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700')]), + ('modulename', 'attr'), + ])), + ('qcs-api-client', '0.8.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '68118137337b7ba1688d070bd276c40081938e145759b500699fcc2b941a0fb0')]), + ])), + ('retrying', '1.3.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b')]), + ])), + ('idna', '2.10', dict(list(local_common_opts.items()) + [ # downgrade + ('checksums', [('sha256', 'b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6')]), + ])), + ('cirq-rigetti', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_rigetti-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '5ec2a05d55f5ad3609658e7c0e4c5808aca96fbc48824cb83bc8664c339381c8')]), + ('unpack_sources', False), + ])), + ('cirq-web', '0.13.1', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq_web-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '79e42d64d1293c071ecc9163a177e02dedc11e056808b3c98b64f150568e727d')]), + ('unpack_sources', False), + ])), + ('cirq', version, dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'cirq-%(version)s-py3-none-any.whl'), + ('checksums', [('sha256', '774babc4a2e5df348c5e34dbb9c692db574637335c55526fa76a09a64762dd65')]), + ('unpack_sources', False), + ])), +] + +moduleclass = 'quantum' diff --git a/Golden_Repo/o/OptiX/OptiX-6.5.0.eb b/Golden_Repo/o/OptiX/OptiX-6.5.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..77618d08bb0c7589bb950507c4f38deb9f0e99b8 --- /dev/null +++ b/Golden_Repo/o/OptiX/OptiX-6.5.0.eb @@ -0,0 +1,31 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +easyblock = 'Binary' + +name = 'OptiX' +version = '6.5.0' + +homepage = 'https://developer.nvidia.com/optix' +description = """OptiX is NVIDIA SDK for easy ray tracing performance. + It provides a simple framework for accessing the GPU’s massive ray tracing + power using state-of-the-art GPU algorithms.""" + +toolchain = SYSTEM + +# Registration required. Download links: +# https://developer.nvidia.com/designworks/optix/download +# https://developer.nvidia.com/designworks/optix/downloads/legacy +sources = ['NVIDIA-OptiX-SDK-%(version)s-linux64.sh'] +checksums = ['eca09e617a267e18403ecccc715c5bc3a88729b81589a828fcb696435100a62e'] + +install_cmd = "./" + sources[0] + " --skip-license --prefix=%(installdir)s" + +sanity_check_paths = { + 'files': ["include/optix.h", "include/optix_device.h"], + 'dirs': [] +} + +modextravars = {'OPTIX_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10-GCCcore-11.2.0.eb b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..3f5d4e7c0e28e27536b98f326fa66b63ea81f09f --- /dev/null +++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10-GCCcore-11.2.0.eb @@ -0,0 +1,64 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch> +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'POV-Ray' +version = '3.7.0.10' + +homepage = 'https://www.povray.org/' +description = """The Persistence of Vision Raytracer, or POV-Ray, is a ray tracing program + which generates images from a text-based scene description, and is available for a variety + of computer platforms. POV-Ray is a high-quality, Free Software tool for creating stunning + three-dimensional graphics. The source code is available for those wanting to do their own ports.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/POV-Ray/povray/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['POV-Ray-3.7.0.7_dont-touch-home.patch'] +checksums = [ + '7bee83d9296b98b7956eb94210cf30aa5c1bbeada8ef6b93bb52228bbc83abff', # v3.7.0.10.tar.gz + '45103afca808e279dcdee80194c65e2a760c76d011d351392a46e817b0b655f7', # POV-Ray-3.7.0.7_dont-touch-home.patch +] + +builddependencies = [ + ('Autotools', '20210726'), +] + +dependencies = [ + ('Boost', '1.78.0'), + ('zlib', '1.2.11'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.1'), + ('X11', '20210802'), + ('LibTIFF', '4.3.0'), + ('SDL2', '2.0.18', '', ('gcccoremkl', '11.2.0-2021.4.0')), +] + +preconfigopts = "cd unix && sed -i 's/^automake/automake --add-missing; automake/g' prebuild.sh && " +preconfigopts += " ./prebuild.sh && cd .. && " +configopts = "COMPILED_BY='EasyBuild' " +configopts += "--with-boost=$EBROOTBOOST --with-zlib=$EBROOTZLIB --with-libpng=$EBROOTLIBPNG " +configopts += "--with-libtiff=$EBROOTLIBTIFF --with-libjpeg=$EBROOTLIBJPEGMINTURBO --with-libsdl=$EBROOTSDL2 " +configopts += "CXXFLAGS='-DBOOST_BIND_GLOBAL_PLACEHOLDERS ' " +# configopts += " --with-libmkl=DIR " ## upstream needs to fix this, still in BETA + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/povray'], + 'dirs': ['etc/povray/%(version_major_minor)s', 'share'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch new file mode 100644 index 0000000000000000000000000000000000000000..097174a9e0a4a91a3c5e7bd64c3da5c536b6da60 --- /dev/null +++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch @@ -0,0 +1,25 @@ +# Do not let povray do anything in the user home directory +# wpoely86@gmail.com +diff -ur povray-3.7.0.7.orig/unix/prebuild.sh povray-3.7.0.7/unix/prebuild.sh +--- povray-3.7.0.7.orig/unix/prebuild.sh 2018-01-05 10:06:48.000000000 +0100 ++++ povray-3.7.0.7/unix/prebuild.sh 2018-04-10 10:14:08.621514093 +0200 +@@ -641,19 +641,6 @@ + for f in \$\$filelist ; do \\ + \$(INSTALL_DATA) \$(top_srcdir)/doc/\$\$f \$(DESTDIR)\$(povdocdir)/\$\$f && echo "\$(DESTDIR)\$(povdocdir)/\$\$f" >> \$(povinstall); \\ + done +- @echo "Creating user directories..."; \\ +- for p in \$(povuser) \$(povconfuser) ; do \\ +- \$(mkdir_p) \$\$p && chown \$(povowner) \$\$p && chgrp \$(povgroup) \$\$p && printf "%s\\n" "\$\$p" "\`cat \$(povinstall)\`" > \$(povinstall); \\ +- done +- @echo "Copying user configuration and INI files..."; \\ +- for f in povray.conf povray.ini ; do \\ +- if test -f \$(povconfuser)/\$\$f; then \\ +- echo "Creating backup of \$(povconfuser)/\$\$f"; \\ +- mv -f \$(povconfuser)/\$\$f \$(povconfuser)/\$\$f.bak; \\ +- fi; \\ +- done; \\ +- \$(INSTALL_DATA) \$(top_srcdir)/povray.conf \$(povconfuser)/povray.conf && chown \$(povowner) \$(povconfuser)/povray.conf && chgrp \$(povgroup) \$(povconfuser)/povray.conf && echo "\$(povconfuser)/povray.conf" >> \$(povinstall); \\ +- \$(INSTALL_DATA) \$(top_builddir)/povray.ini \$(povconfuser)/povray.ini && chown \$(povowner) \$(povconfuser)/povray.ini && chgrp \$(povgroup) \$(povconfuser)/povray.ini && echo "\$(povconfuser)/povray.ini" >> \$(povinstall) + + # Remove data, config, and empty folders for 'make uninstall'. + # Use 'hook' instead of 'local' so as to properly remove *empty* folders (e.g. scripts). diff --git a/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..2dc3570d1618317b2f782571dd7c557dfcd6b5cb --- /dev/null +++ b/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch> +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'SDL2' +version = '2.0.18' + +homepage = 'http://www.libsdl.org/' +description = "SDL: Simple DirectMedia Layer, a cross-platform multimedia library" + +toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'} + +source_urls = ['http://www.libsdl.org/release/'] +sources = [SOURCE_TAR_GZ] +checksums = ['94d40cd73dbfa10bb6eadfbc28f355992bb2d6ef6761ad9d4074eff95ee5711c'] + +builddependencies = [ + ('binutils', '2.37'), +] + +dependencies = [ + ('X11', '20210802'), + ('CUDA', '11.5', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/sdl2-config', 'lib/libSDL2.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch new file mode 100644 index 0000000000000000000000000000000000000000..f4cf63549263fd9462ccfefa556b6508369e9a25 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch @@ -0,0 +1,29 @@ +Fix hard coded compiler, flags and tcl lib version for plugins + +Ake Sandgren, 20190823 +--- plugins/Make-arch.orig 2016-10-21 23:34:39.000000000 +0200 ++++ plugins/Make-arch 2019-08-23 10:45:51.403545042 +0200 +@@ -337,17 +337,17 @@ + "ARCH = LINUXAMD64" \ + "COPTO = -fPIC -m64 -o " \ + "LOPTO = -fPIC -m64 -lstdc++ -o " \ +- "CC = gcc" \ +- "CXX = g++" \ ++ "CC = $(CC)" \ ++ "CXX = $(CXX)" \ + "DEF = -D" \ +- "CCFLAGS = -m64 -O2 -fPIC -Wall" \ +- "CXXFLAGS = -m64 -O2 -fPIC -Wall" \ +- "TCLLDFLAGS = -ltcl8.5 -ldl" \ ++ "CCFLAGS = $(CFLAGS)" \ ++ "CXXFLAGS = $(CXXFLAGS)" \ ++ "TCLLDFLAGS = $(TCLLDFLAGS)" \ + "NETCDFLDFLAGS = -lnetcdf " \ + "AR = ar" \ + "NM = nm -p" \ + "RANLIB = touch" \ +- "SHLD = gcc -shared" ++ "SHLD = $(CC) -shared" + + LINUXCARMA: + $(MAKE) dynlibs staticlibs bins \ diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch new file mode 100644 index 0000000000000000000000000000000000000000..9011384eff52af2075f6d7977d0b0de7e5bad400 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch @@ -0,0 +1,15 @@ +Increase number of atoms allowed per residues as per stride README from VMD + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/stride/stride.h vmd-1.9.3/lib/stride/stride.h +--- vmd-1.9.3.orig/lib/stride/stride.h 2017-05-02 13:47:26.484463970 +0200 ++++ vmd-1.9.3/lib/stride/stride.h 2017-05-02 13:47:43.748279797 +0200 +@@ -40,7 +40,7 @@ + #define MAX_BOND 100 + #define MAX_ASSIGN 500 + #define MAX_INFO 1000 +-#define MAX_AT_IN_RES 75 ++#define MAX_AT_IN_RES 100 + #define MAX_AT_IN_HETERORES 200 + #define MAXRESDNR 6 + #define MAXRESACC 6 diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..036430db8ffe77867d6e4ebf20fc57e422ff95f3 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch @@ -0,0 +1,37 @@ +Make stride use CC, CFLAGS and LDFLAGS from EB. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/stride/Makefile vmd-1.9.3/lib/stride/Makefile +--- vmd-1.9.3.orig/lib/stride/Makefile 2003-04-08 14:03:14.000000000 +0200 ++++ vmd-1.9.3/lib/stride/Makefile 2017-05-02 13:46:01.973365383 +0200 +@@ -1,13 +1,14 @@ + #FLAGS = -lm -L/usr/pub/lib -lefence -o + #CC = cc -O2 -fullwarn -TENV:large_GOT + #CC = cc -g -Wall +-CC = gcc -O2 # at least for SunOS ++#CC = gcc -O2 # at least for SunOS + #CC = cc -g + + #CC = cc -O2 -fullwarn + + #CC = cc -O2 +-FLAGS = -lm -o ++#FLAGS = -lm -o ++LIBS = -lm + + SOURCE = stride.c splitstr.c rdpdb.c initchn.c geometry.c thr2one.c one2thr.c filename.c tolostr.c strutil.c place_h.c hbenergy.c memory.c helix.c sheet.c rdmap.c phipsi.c command.c molscr.c die.c hydrbond.c mergepat.c fillasn.c escape.c p_jrnl.c p_rem.c p_atom.c p_helix.c p_sheet.c p_turn.c p_ssbond.c p_expdta.c p_model.c p_compnd.c report.c nsc.c area.c ssbond.c chk_res.c chk_atom.c turn.c pdbasn.c dssp.c outseq.c chkchain.c elem.c measure.c asngener.c p_endmdl.c stred.c contact_order.c contact_map.c + +@@ -15,12 +16,9 @@ + + BINDIR = . + +-.c.o: +- $(CC) -c $< -o $@ +- + + stride : $(OBJECT) +- $(CC) $(OBJECT) $(FLAGS) $(BINDIR)/stride${ARCH} ++ $(CC) $(LDFLAGS) $(OBJECT) $(LIBS) -o stride + + $(OBJECT) : stride.h protot.h + diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..93f430a64a158b7c7ca07cfee06a7e00b5251307 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch @@ -0,0 +1,112 @@ +Fix surf Makefile. +Use CC, CFLAGS, etc from EB. +Drop bad make depend lines. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/surf/Makefile vmd-1.9.3/lib/surf/Makefile +--- vmd-1.9.3.orig/lib/surf/Makefile 1994-03-22 16:44:20.000000000 +0100 ++++ vmd-1.9.3/lib/surf/Makefile 2017-05-02 13:41:51.911991381 +0200 +@@ -1,12 +1,7 @@ + # Compilation flags +-#CC = cc +-CC = cc + INCLUDE = -I. +-#LINCLUDE = -lcurses -ltermcap -lm +-LINCLUDE = -lm +-OPT_CFLAGS = -O2 $(FLAGS) $(INCLUDE) +-#CFLAGS = -g $(FLAGS) $(INCLUDE) +-CFLAGS = -O2 $(FLAGS) $(INCLUDE) ++LIBS = -lm ++CFLAGS = $(OPT) $(INCLUDE) + + # These are the user object files in the application + SRCS = surf.c io.c compute.c dual.c utils.c lp.c chull.c tessel_cases.c \ +@@ -18,7 +13,7 @@ + + # make objects + surf: $(OBJS) Makefile +- $(CC) $(CFLAGS) $(OBJS) -o surf $(LINCLUDE) ++ $(CC) $(LDFLAGS) $(OBJS) -o surf $(LIBS) + + lint: + lint $(INCLUDE) $(SRCS) +@@ -30,9 +25,6 @@ + tar -cvf surf.tar README *.[hc] Makefile + compress surf.tar + +-.c.o: +- $(CC) $(CFLAGS) -c $*.c +- + + # make depend makes the proper include file dependencies. You _could_ run + # it on a sun4, but there's a bug in the SunOS version of sed that causes +@@ -61,48 +53,3 @@ + @ echo ' ' >> Makefile + + # DO NOT DELETE THIS LINE -- make depend depends on it. +- +- +-# DO NOT DELETE THIS LINE -- make depend depends on it. +- +-surf.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-surf.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-surf.o: linalg.h +-io.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-io.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-io.o: linalg.h +-compute.o: surf.h /usr/include/stdio.h /usr/include/math.h +-compute.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-compute.o: /usr/include/sys/time.h linalg.h chull.h dual.h +-dual.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-dual.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-dual.o: linalg.h dual.h chull.h +-utils.o: surf.h /usr/include/stdio.h /usr/include/math.h +-utils.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-utils.o: /usr/include/sys/time.h linalg.h +-lp.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-lp.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-lp.o: linalg.h +-chull.o: surf.h /usr/include/stdio.h /usr/include/math.h +-chull.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-chull.o: /usr/include/sys/time.h linalg.h chull.h +-tessel_cases.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_cases.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_cases.o: /usr/include/string.h /usr/include/sys/time.h linalg.h dual.h +-tessel_patches.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_patches.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_patches.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_convex.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_convex.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_convex.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_concave.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_concave.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_concave.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_torus.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_torus.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_torus.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +- +-# DEPENDENCIES MUST END AT END OF FILE +-# IF YOU PUT STUFF HERE IT WILL GO AWAY +-# see make depend above +- +diff -ru vmd-1.9.3.orig/lib/surf/surf.c vmd-1.9.3/lib/surf/surf.c +--- vmd-1.9.3.orig/lib/surf/surf.c 1994-03-21 10:33:00.000000000 +0100 ++++ vmd-1.9.3/lib/surf/surf.c 2017-05-02 13:41:51.911991381 +0200 +@@ -7,7 +7,7 @@ + #define EXTERN + #include "surf.h" + +-void ++int + main(ac,av) + int ac; + char* av[]; +@@ -56,6 +56,8 @@ + if (Write_Option == 2) output_dataset(); + + if (Write_Option) end_output_dataset(); ++ ++ return(0); + } + + diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch new file mode 100644 index 0000000000000000000000000000000000000000..9b9db3889bf08c48fb6a469303e1db1423d2b734 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch @@ -0,0 +1,74 @@ +Fix some bad printfs in surf. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/surf/chull.c vmd-1.9.3/lib/surf/chull.c +--- vmd-1.9.3.orig/lib/surf/chull.c 1994-03-19 06:50:54.000000000 +0100 ++++ vmd-1.9.3/lib/surf/chull.c 2017-05-02 13:44:07.046582827 +0200 +@@ -378,7 +378,7 @@ + print_out( v ) + struct tvertex *v; + { +- fprintf( stderr, "\nAdding vertex %6x :\n", v ); ++ fprintf( stderr, "\nAdding vertex %6p :\n", v ); + print_verts(); + print_edges(); + print_fs(); +@@ -398,11 +398,11 @@ + temp = vertices; + fprintf (stderr, "Vertex List\n"); + if (vertices) do { +- fprintf(stderr," addr %6x\t", vertices ); ++ fprintf(stderr," addr %6p\t", vertices ); + fprintf(stderr,"(%g,%g,%g)",vertices->v[X], + vertices->v[Y], vertices->v[Z] ); + fprintf(stderr," active:%3d", vertices->active ); +- fprintf(stderr," duplicate:%5x", vertices->duplicate ); ++ fprintf(stderr," duplicate:%5p", vertices->duplicate ); + fprintf(stderr," mark:%2d\n", vertices->mark ); + vertices = vertices->next; + } while ( vertices != temp ); +@@ -424,13 +424,13 @@ + temp = edges; + fprintf (stderr, "Edge List\n"); + if (edges) do { +- fprintf( stderr, " addr: %6x\t", edges ); ++ fprintf( stderr, " addr: %6p\t", edges ); + fprintf( stderr, "adj: "); + for (i=0; i<3; ++i) +- fprintf( stderr, "%6x", edges->adjface[i] ); ++ fprintf( stderr, "%6p", edges->adjface[i] ); + fprintf( stderr, " endpts:"); + for (i=0; i<2; ++i) +- fprintf( stderr, "%8x", edges->endpts[i]); ++ fprintf( stderr, "%8p", edges->endpts[i]); + fprintf( stderr, " del:%3d\n", edges->deleted ); + edges = edges->next; + } while (edges != temp ); +@@ -452,13 +452,13 @@ + temp = faces; + fprintf (stderr, "Face List\n"); + if (faces) do { +- fprintf(stderr, " addr: %6x\t", faces ); ++ fprintf(stderr, " addr: %6p\t", faces ); + fprintf(stderr, " edges:"); + for( i=0; i<3; ++i ) +- fprintf(stderr, "%6x", faces->edg[i] ); ++ fprintf(stderr, "%6p", faces->edg[i] ); + fprintf(stderr, " vert:"); + for ( i=0; i<3; ++i) +- fprintf(stderr, "%6x", faces->vert[i] ); ++ fprintf(stderr, "%6p", faces->vert[i] ); + fprintf(stderr, " vis: %d\n", faces->visible ); + faces= faces->next; + } while ( faces != temp ); +@@ -552,8 +552,8 @@ + temp_v = temp_v->next; + } while ( temp_v != vertices ); + do { +- printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum, +- temp_f->vert[1]->vnum, temp_f->vert[2]->vnum ); ++ printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum[0], ++ temp_f->vert[1]->vnum[0], temp_f->vert[2]->vnum[0] ); + temp_f = temp_f->next; + } while ( temp_f != faces ); + } diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..d249ed2708ea1865bec0c6f0784b37d5bd28fc28 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb @@ -0,0 +1,73 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +name = 'VMD' +version = '1.9.4a51' + +homepage = 'https://www.ks.uiuc.edu/Research/vmd' +description = """VMD is a molecular visualization program for displaying, animating, and analyzing large biomolecular + systems using 3-D graphics and built-in scripting.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'} + +source_urls = [ + 'https://www.ks.uiuc.edu/Research/vmd/vmd-1.9.4/files/alpha/', + 'https://www.ks.uiuc.edu/Research/vmd/vmd-%(version)s/files/final', + 'http://webclu.bio.wzw.tum.de/stride/' +] +sources = [ + 'vmd-%(version)s.src.tar.gz', + {'filename': 'stride.tar.gz', 'extract_cmd': "tar -C vmd-%(version)s/lib/stride -xf %s"}, +] +patches = [ + ('VMD-1.9.3_plugins.patch'), + ('VMD-1.9.3_surf_Makefile.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_surf_bad_printfs.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_stride_Makefile.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_stride_MAX_AT_IN_RES.patch', 'vmd-%(version)s'), + ('VMD-%(version)s_configure.patch', 'vmd-%(version)s'), + ('VMD-%(version)s_extra_colors.patch', 'vmd-%(version)s'), +] +checksums = [ + 'b1c40b21111f5bab56d43d5e442c468d327159b07915af2ec175ba6b12842e5c', # vmd-1.9.4a51.src.tar.gz + '51a8bc2988bb184bd08216124f61725225bb1a6f563bdf8cd35154cb5d621c1a', # stride.tar.gz + '85760d6ae838e2b09801e34b36b484532383f7aaf2e8634b3ef808002a92baa3', # VMD-1.9.3_plugins.patch + 'd5cfa88064b7cffbc75accd69707d4e45fda974e8127de9ab606fdad501bd68a', # VMD-1.9.3_surf_Makefile.patch + 'f3c2a8c155e38db8e644cee6a01f6beaea5988e72ac74cde26b71670b151cc34', # VMD-1.9.3_surf_bad_printfs.patch + 'eb194ac0d8c086b73f87b29f7d732687f902431b1cdfa139c090401fefdee51e', # VMD-1.9.3_stride_Makefile.patch + 'eff1ca00cec637a6c8a156b2fb038e078d1835ba0eb15a571ed820bca5a866d9', # VMD-1.9.3_stride_MAX_AT_IN_RES.patch + 'dc9fc419e2e938f42d2e4784b0c9c7429317893f08d3ed170f949c3ee3aec062', # VMD-1.9.4a51_configure.patch + '253eba282b570eb00e4764f46f77fd5ca898d10360d5707dd50ad1f14615af80', # VMD-1.9.4a51_extra_colors.patch +] + +builddependencies = [ + ('binutils', '2.37'), +] + +dependencies = [ + ('tcsh', '6.22.04'), + ('Tcl', '8.6.11'), + ('Tk', '8.6.11'), + ('FLTK', '1.3.7'), + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), + ('Tkinter', '%(pyver)s'), + ('X11', '20210802'), + ('fontconfig', '2.13.94'), + ('OpenGL', '2021b'), + ('netCDF', '4.8.1', '-serial'), + ('FFmpeg', '4.4.1'), + ('ImageMagick', '7.1.0-13'), + ('ACTC', '1.1'), + ('OptiX', '6.5.0', '', SYSTEM), + ('zlib', '1.2.11'), + ('libpng', '1.6.37'), + ('POV-Ray', '3.7.0.10'), + ('CUDA', '11.5', '', SYSTEM), +] + +postinstallcmds = [ + 'sed -i "s%#!/bin/csh%#!$EBROOTTCSH/bin/tcsh%g" %(installdir)s/bin/vmd ', +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch new file mode 100644 index 0000000000000000000000000000000000000000..b0432661c4e3e13f19df1bbf67256794fc045408 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch @@ -0,0 +1,177 @@ +--- configure 2021-05-10 14:04:56.826893000 +0200 ++++ configure 2021-05-10 14:08:01.893394000 +0200 +@@ -497,17 +497,16 @@ + + $arch_cc = "cc"; + $arch_ccpp = "CC"; +-$arch_nvcc = "/usr/local/cuda-10.2/bin/nvcc"; ++$arch_nvcc = "$ENV{'EBROOTCUDA'}/bin/nvcc"; + $arch_nvccflags = "-lineinfo --ptxas-options=-v " . +- "-gencode arch=compute_30,code=compute_30 " . +- "-gencode arch=compute_30,code=sm_35 " . +- "-gencode arch=compute_30,code=sm_37 " . + "-gencode arch=compute_50,code=compute_50 " . + "-gencode arch=compute_50,code=sm_50 " . + "-gencode arch=compute_60,code=compute_60 " . + "-gencode arch=compute_60,code=sm_60 " . + "-gencode arch=compute_70,code=compute_70 " . + "-gencode arch=compute_70,code=sm_70 " . ++ "-gencode arch=compute_75,code=sm_75 " . ++ "-gencode arch=compute_80,code=sm_80 " . + "--ftz=true "; + # "-gencode arch=compute_75,code=sm_75 " . + $arch_gcc = "gcc"; +@@ -633,17 +632,17 @@ + # location of Mesa library and include files; basically does the same + # as OpenGL. This is based on the default instructions from the Mesa + # README; the include files should by default be in /usr/local/include/GL. +-$mesa_dir = "$vmd_library_dir/Mesa"; ++$mesa_dir = $ENV{'EBROOTMESA'}; + $mesa_include = "-I$mesa_dir/include"; + $mesa_library = "-L$mesa_dir/lib_$config_arch"; + #$mesa_libs = "-lMesaGL -lMesaGLU"; +-$mesa_libs = "-lMesaGL"; ++$mesa_libs = "-lGL -lGLU"; + $mesa_defines = "-DUSELINEAXES -DVMDMESA -DVMDOPENGL"; + @mesa_cc = (); + @mesa_cu = (); +-@mesa_ccpp = @opengl_ccpp; +-@mesa_h = @opengl_h; +-@mesa_extra = @opengl_extra; ++@mesa_ccpp = (); ++@mesa_h = (); ++@mesa_extra = (); + + + # +@@ -719,10 +718,10 @@ + + ################ FLTK GUI + $fltk_defines = "-DVMDGUI -DVMDFLTK"; +-$fltk_dir = "$vmd_library_dir/fltk"; ++$fltk_dir = $ENV{'EBROOTFLTK'}; + $fltk_include = "-I$fltk_dir/include"; + $fltk_library = "-L$fltk_dir/$config_arch"; +-$fltk_libs = "-lfltk -lX11"; ++$fltk_libs = "-lfltk -lX11 -lXfixes -lXcursor -lXinerama"; + #@fltk_cc = ('forms_ui.c'); + @fltk_cu = (); + @fltk_ccpp = ( 'ColorFltkMenu.C', +@@ -764,7 +763,6 @@ + $stock_tcl_include_dir=$ENV{"TCL_INCLUDE_DIR"} || "$vmd_library_dir/tcl/include"; + $stock_tcl_library_dir=$ENV{"TCL_LIBRARY_DIR"} || "$vmd_library_dir/tcl/lib_$config_arch"; + +- + # location of Tk (for TK option) + #$stock_tk_include_dir=$ENV{"TK_INCLUDE_DIR"} || "/usr/local/include"; + #$stock_tk_library_dir=$ENV{"TK_LIBRARY_DIR"} || "/usr/local/lib"; +@@ -782,8 +780,8 @@ + if ($config_tk) { $tcl_include .= " -I$stock_tk_include_dir"; } + $tcl_library = "-L$stock_tcl_library_dir"; + if ($config_tk) { $tcl_library .= " -L$stock_tk_library_dir"; } +-$tcl_libs = "-ltcl8.5"; +-if ($config_tk) { $tcl_libs = "-ltk8.5 -lX11 " . $tcl_libs; } ++$tcl_libs = "-ltcl8.6"; ++if ($config_tk) { $tcl_libs = "-ltk8.6 -lX11 " . $tcl_libs; } + + @tcl_cc = (); + @tcl_cu = (); +@@ -992,7 +990,7 @@ + # This option enables the use of CUDA GPU acceleration functions. + ####################### + $cuda_defines = "-DVMDCUDA -DMSMPOT_CUDA"; +-$cuda_dir = "/usr/local/cuda-10.2"; ++$cuda_dir = "$ENV{'CUDA_HOME'}"; + $cuda_include = ""; + $cuda_library = ""; + $cuda_libs = "-Wl,-rpath -Wl,\$\$ORIGIN/ -lcudart_static -lrt"; +@@ -1201,7 +1199,7 @@ + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-5.0.1-linux64"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-5.1.0-linux64"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-6.0.0-linux64"; +-$liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-6.5.0-linux64"; ++$liboptix_dir = "$ENV{'EBROOTOPTIX'}"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-7.0.0-linux64"; + + # NCSA Blue Waters +@@ -1356,7 +1354,7 @@ + die "LIBPNG option requires ZLIB!"; + } + $libpng_defines = "-DVMDLIBPNG"; +-$libpng_dir = "/Projects/vmd/vmd/lib/libpng"; ++$libpng_dir = "$ENV{'EBROOTLIBPNG'}"; + $libpng_include = "-I$libpng_dir/include"; + $libpng_library = "-L$libpng_dir/lib_$config_arch"; + $libpng_libs = "-lpng16"; +@@ -1384,7 +1382,7 @@ + # OPTIONAL COMPONENT: Data compresssion library + # This may be commented out if not required. + $zlib_defines = "-DVMDZLIB"; +-$zlib_dir = "/Projects/vmd/vmd/lib/zlib"; ++$zlib_dir = "$ENV{'EBROOTZLIB'}"; + $zlib_include = "-I$zlib_dir/include"; + $zlib_library = "-L$zlib_dir/lib_$config_arch"; + $zlib_libs = "-lz"; +@@ -1575,7 +1573,7 @@ + # primitives. + ####################### + $actc_defines = "-DVMDACTC"; +-$actc_dir = "$vmd_library_dir/actc"; ++$actc_dir = "$ENV{'EBROOTACTC'}"; + $actc_include = "-I$actc_dir/include"; + $actc_library = "-L$actc_dir/lib_$config_arch"; + $actc_libs = "-lactc"; +@@ -1590,7 +1588,7 @@ + # OPTIONAL COMPONENT: NetCDF I/O Library (Used by cdfplugin) + ####################### + $netcdf_defines = ""; +-$netcdf_dir = "$vmd_library_dir/netcdf"; ++$netcdf_dir = "$ENV{'EBROOTNETCDF'}"; + $netcdf_include = "-I$netcdf_dir/include"; + $netcdf_library = "-L$netcdf_dir/lib_$config_arch"; + $netcdf_libs = "-lnetcdf"; +@@ -1648,7 +1646,7 @@ + $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "$conda_root/lib/python3.7/config-3.7m-x86_64-linux-gnu"; + $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$conda_root/lib/python3.7/site-packages/numpy/core/include/numpy"; + $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$conda_root/lib/python-3.7/site-packages/numpy/core/include"; +- $python_libs = "-fno-lto -lpython3.7m -lpthread"; ++ $python_libs = "$ENV{'PYTHON_LIBRARIES'}" || "-fno-lto -lpython3.7m -lpthread"; + } else { + # $stock_python_include_dir=$ENV{"PYTHON_INCLUDE_DIR"} || "/usr/local/include"; + # $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "/usr/local/lib"; +@@ -1659,7 +1657,7 @@ + # $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "/usr/local/lib"; + $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$vmd_library_dir/numpy/lib_$config_arch/include"; + $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$vmd_library_dir/python/lib_$config_arch/lib/python2.5/site-packages/numpy/core/include"; +- $python_libs = "-lpython2.5 -lpthread"; ++ $python_libs = "$ENV{'PYTHON_LIBRARIES'}" || "-lpython2.5 -lpthread"; + } + + $python_defines = "-DVMDPYTHON"; +@@ -2573,7 +2571,7 @@ + + if ($config_cuda) { + $arch_nvccflags .= " --machine 64 -O3 $cuda_include"; +- $cuda_library = "-L/usr/local/cuda-10.2/lib64"; ++ $cuda_library = "-L/$ENV{'EBROOTCUDA'}/lib64"; + } + + $arch_lex = "flex"; # has problems with vendor lex +@@ -2583,7 +2581,7 @@ + # they likely serve no useful purpose going forward. + if (!$config_opengl_dispatch) { + $opengl_dep_libs = "-L/usr/X11R6/lib64 -lGL -lX11"; +- $mesa_libs = "-lMesaGL -L/usr/X11R6/lib64 -lXext -lX11"; ++ $mesa_libs = "-lGL -lGLU -L/usr/X11R6/lib64 -lXext -lX11"; + } + + # this is to make tcl happy +@@ -3763,7 +3761,7 @@ + + .cu.ptx: + \$(ECHO) "Compiling " \$< " --> " \$*.ptx " ..."; \\ +- \$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_30,code=compute_30 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@ ++ \$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_80,code=compute_80 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@ + + .y.o: + diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch new file mode 100644 index 0000000000000000000000000000000000000000..26e9ba954dbbbb816975a947d97c4d1a69ca1f95 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch @@ -0,0 +1,46 @@ +Add some additional colors, e.g. to allow for color blind compatible rendering. +Bob Dröge, 2020-06-23 +--- src/Scene.C.orig 2020-06-23 09:37:41.000000000 +0200 ++++ src/Scene.C 2020-06-23 09:40:59.000000000 +0200 +@@ -63,7 +63,10 @@ + ,"yellow2", "yellow3", "green2", "green3", + "cyan2", "cyan3", "blue2", "blue3", + "violet", "violet2", "magenta", "magenta2", +- "red2", "red3", "orange2", "orange3" ++ "red2", "red3", "orange2", "orange3", ++ "matisse", "flamenco", "forest_green", "punch", ++ "wisteria", "spicy_mix", "orchid", "gray2", ++ "lime_pie", "java" + #endif + + }; +@@ -89,7 +92,17 @@ + 0.27f, 0.00f, 0.98f, 0.45f, 0.00f, 0.90f, // violet + 0.90f, 0.00f, 0.90f, 1.00f, 0.00f, 0.66f, // magenta + 0.98f, 0.00f, 0.23f, 0.81f, 0.00f, 0.00f, // red +- 0.89f, 0.35f, 0.00f, 0.96f, 0.72f, 0.00f // orange ++ 0.89f, 0.35f, 0.00f, 0.96f, 0.72f, 0.00f, // orange ++ 0.1f, 0.5f, 0.7f, // MPL1, matisse ++ 1.0f, 0.5f, 0.1f, // MPL2, flamenco ++ 0.2f, 0.6f, 0.2f, // MPL3, forest green ++ 0.8f, 0.2f, 0.2f, // MPL4, punch ++ 0.6f, 0.4f, 0.7f, // MPL5, wisteria ++ 0.5f, 0.3f, 0.3f, // MPL6, spicy mix ++ 0.9f, 0.5f, 0.8f, // MPL7, orchid ++ 0.5f, 0.5f, 0.5f, // MPL8, gray ++ 0.7f, 0.7f, 0.1f, // MPL9, key lime pie ++ 0.1f, 0.7f, 0.8f // MPL10, java + #endif + + }; +--- src/Scene.h.orig 2020-06-23 09:37:45.000000000 +0200 ++++ src/Scene.h 2020-06-23 09:42:21.000000000 +0200 +@@ -37,7 +37,7 @@ + #define DISP_LIGHTS 4 + + // total number of colors defined here +-#define REGCLRS 33 ++#define REGCLRS 43 + #define EXTRACLRS 1 + #define VISCLRS (REGCLRS - EXTRACLRS) + #define MAPCLRS 1024 diff --git a/acls.yml b/acls.yml index 488cda1af4745499c40096bfeb0bcab236841ec6..ec696a92504f37e82357c86ef593e181634b2859 100644 --- a/acls.yml +++ b/acls.yml @@ -221,6 +221,9 @@ software: - name: 'openvkl' owner: 'goebbert1' compiler: True + - name: 'OptiX' + owner: 'goebbert1' + system: True - name: 'OSPRay' owner: 'goebbert1' mpi: True @@ -233,6 +236,9 @@ software: - name: 'PyCUDA' owner: 'goebbert1' base: True + - name: 'POV-Ray' + owner: 'goebbert1' + base: True - name: 'Python-Neuroimaging' owner: 'deepu1' base: True @@ -269,6 +275,9 @@ software: - name: 'snappy' owner: 'goebbert1' base: True + - name: 'SDL2' + owner: 'goebbert1' + base: True - name: 'SOCI' owner: 'goebbert1' base: True