diff --git a/.travis.yml b/.travis.yml index 119a399a5..f119c094d 100755 --- a/.travis.yml +++ b/.travis.yml @@ -55,14 +55,17 @@ env: matrix: # we want to test both static and shared, w/ and w/o docs and vtkm. - BUILD_SHARED_LIBS=ON - ENABLE_VTKM=ON + ENABLE_VTKH=ON ENABLE_DOCS=ON + ENABLE_ADIOS=OFF - BUILD_SHARED_LIBS=OFF - ENABLE_VTKM=ON + ENABLE_VTKH=ON ENABLE_DOCS=OFF + ENABLE_ADIOS=OFF - BUILD_SHARED_LIBS=ON - ENABLE_VTKM=OFF + ENABLE_VTKH=OFF ENABLE_DOCS=OFF + ENABLE_ADIOS=OFF addons: apt: sources: @@ -87,9 +90,11 @@ script: - cd $TRAVIS_BUILD_DIR - echo $TRAVIS_BUILD_DIR # setup spack spec based on our travis options - - export SPACK_SPEC="%gcc@5+mpich" - - if [ $ENABLE_VTKM = 'OFF' ]; then export SPACK_SPEC=${SPACK_SPEC}~vtkm; fi - - if [ $ENABLE_DOCS = 'OFF' ]; then export SPACK_SPEC=${SPACK_SPEC}~doc; fi + - export SPACK_SPEC="%gcc@5+mpi" + - if [ $ENABLE_VTKH = 'OFF' ]; then export SPACK_SPEC=${SPACK_SPEC}~vtkh; fi + - if [ $ENABLE_DOCS = 'OFF' ]; then export SPACK_SPEC=${SPACK_SPEC}~doc; fi + - if [ $ENABLE_ADIOS = 'OFF' ]; then export SPACK_SPEC=${SPACK_SPEC}~adios; fi + - export SPACK_SPEC="${SPACK_SPEC} ^mpich" - echo $SPACK_SPEC # build deps using uberenv - cd .. @@ -100,7 +105,7 @@ script: - for f in ${CACHE_ROOT}/uberenv_libs/spack/opt/spack/*/*/conduit*; do if [ -d $f ]; then echo "y" | ${CACHE_ROOT}/uberenv_libs/spack/bin/spack uninstall --dependents --all conduit; fi; done; - for f in ${CACHE_ROOT}/uberenv_libs/spack/opt/spack/*/*/vtkm*; do if [ -d $f ]; then echo "y" | ${CACHE_ROOT}/uberenv_libs/spack/bin/spack uninstall --dependents vtkm; fi; done; #- find uberenv_libs -type d | perl -lne 'print tr:/::, " $_"' | sort -n | cut -d' ' -f2 - - python ascent/scripts/uberenv/uberenv.py --spec ${SPACK_SPEC} + - python ascent/scripts/uberenv/uberenv.py --spec "${SPACK_SPEC}" - cd $TRAVIS_BUILD_DIR #create out-of-source build dir - mkdir build-debug @@ -134,7 +139,7 @@ script: - mkdir build - cd build - export EXAMPLE_CFG="-DASCENT_DIR=${ASCENT_DIR} -DCONDUIT_DIR=${CONDUIT_DIR}" - - if [ $ENABLE_VTKM = 'ON' ]; then export EXAMPLE_CFG="${EXAMPLE_CFG} -DVTKM_DIR=${VTKM_DIR} -DVTKH_DIR=${VTKH_DIR}"; fi + - if [ $ENABLE_VTKH = 'ON' ]; then export EXAMPLE_CFG="${EXAMPLE_CFG} -DVTKM_DIR=${VTKM_DIR} -DVTKH_DIR=${VTKH_DIR}"; fi - echo $EXAMPLE_CFG - cmake ${EXAMPLE_CFG} ../ - make VERBOSE=1 @@ -146,7 +151,7 @@ script: # test run example apps - cd ${TRAVIS_BUILD_DIR} - export PATH=$PATH:`ls -d ${CACHE_ROOT}/uberenv_libs/spack/opt/spack/*/*/mpich-*/bin/` - - if [ $ENABLE_VTKM = 'ON' ]; then ./scripts/test-run-examples.sh ; fi + - if [ $ENABLE_VTKH = 'ON' ]; then ./scripts/test-run-examples.sh ; fi #cache: diff --git a/scripts/uberenv/compilers.yaml b/scripts/uberenv/compilers.yaml deleted file mode 100644 index d26a8b2fd..000000000 --- a/scripts/uberenv/compilers.yaml +++ /dev/null @@ -1,23 +0,0 @@ -compilers: - # llnl chaos clusters - chaos_5_x86_64_ib: - gcc@4.9.3: - cc: /usr/apps/gnu/4.9.3/bin/gcc - cxx: /usr/apps/gnu/4.9.3/bin/g++ - f77: /usr/apps/gnu/4.9.3/bin/gfortran - fc: /usr/apps/gnu/4.9.3/bin/gfortran - intel@16.0.109: - cc: /usr/local/tools/ic-16.0.109/bin/icc - cxx: /usr/local/tools/ic-16.0.109/bin/icpc - f77: /usr/local/tools/ic-16.0.109/bin/ifort - fc: /usr/local/tools/ic-16.0.109/bin/ifort - # generic osx - # note: you may need to tweak the fortran compiler location - darwin-x86_64: - clang@3.4svn: - cc: /usr/bin/clang - cxx: /usr/bin/clang++ - f77: /usr/local/bin/gfortran - fc: /usr/local/bin/gfortran - - diff --git a/scripts/uberenv/llnl-uberenv-install-gnu-4.9.3.sh b/scripts/uberenv/llnl-uberenv-install-gnu-4.9.3.sh deleted file mode 100755 index a91d5a495..000000000 --- a/scripts/uberenv/llnl-uberenv-install-gnu-4.9.3.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -############################################################################### -# use uberenv to install everything -# make sure to source the proper intel env helper -source /usr/local/tools/dotkit/init.sh -source ../llnl-surface-load-env-gnu-4.9.3.sh -python uberenv.py --prefix /usr/workspace/wsa/visit/ascent/uberenv_libs --spec %gcc@4.9.3 "$@" -# change group and perms -chgrp -R visit /usr/workspace/wsa/visit/ascent/uberenv_libs -chmod -R g+rwX /usr/workspace/wsa/visit/ascent/uberenv_libs - diff --git a/scripts/uberenv/llnl-uberenv-install-intel-16.0.109.sh b/scripts/uberenv/llnl-uberenv-install-intel-16.0.109.sh deleted file mode 100755 index 12d8146da..000000000 --- a/scripts/uberenv/llnl-uberenv-install-intel-16.0.109.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -############################################################################### -# use uberenv to install everything -# make sure to source the proper intel env helper -source /usr/local/tools/dotkit/init.sh -source ../llnl-surface-load-env-intel-16.0.109.sh -python uberenv.py --prefix /usr/workspace/wsa/visit/ascent/uberenv_libs --spec %intel@16.0.109 "$@" -# change group and perms -chgrp -R visit /usr/workspace/wsa/visit/ascent/uberenv_libs -chmod -R g+rwX /usr/workspace/wsa/visit/ascent/uberenv_libs - diff --git a/scripts/uberenv/ornl-uberenv-build-intel-15.0.2.sh b/scripts/uberenv/ornl-uberenv-build-intel-15.0.2.sh deleted file mode 100755 index 6fcc545f3..000000000 --- a/scripts/uberenv/ornl-uberenv-build-intel-15.0.2.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -############################################################################### -# use uberenv to install everything -# make sure to source the proper intel env helper -#source /usr/local/tools/dotkit/init.sh -source ../ornl-titan-load-env-intel-15.0.2.sh -python uberenv.py --spec %intel@15.0.2 --openmp "$@" -# change group and perms -#chgrp -R visit /usr/gapps/visit/straw2an/ -chmod -R g+rwX /usr/gapps/visit/ascent/ - diff --git a/scripts/uberenv/ornl-uberenv-install-intel-15.0.2.sh b/scripts/uberenv/ornl-uberenv-install-intel-15.0.2.sh deleted file mode 100755 index 5b59a02ad..000000000 --- a/scripts/uberenv/ornl-uberenv-install-intel-15.0.2.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -############################################################################### -# use uberenv to install everything -# make sure to source the proper intel env helper -#source /usr/local/tools/dotkit/init.sh -source ../ornl-titan-load-env-intel-15.0.2.sh -python uberenv.py --prefix /lustre/atlas2/csc094/proj-shared/ascent/uberenv_libs --spec %intel@15.0.2 --openmp "$@" -# change group and perms -#chgrp -R visit /usr/gapps/visit/straw2an/ -chmod -R g+rwX /lustre/atlas2/csc094/proj-shared/ascent/uberenv_libs - diff --git a/scripts/uberenv/packages/adios/package.py b/scripts/uberenv/packages/adios/package.py deleted file mode 100644 index 31528b7c3..000000000 --- a/scripts/uberenv/packages/adios/package.py +++ /dev/null @@ -1,131 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License (as -# published by the Free Software Foundation) version 2.1, February 1999. -# -# This program 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 terms and -# conditions of the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## - -from spack import * -import platform - -class Adios(Package): - """ - The Adaptable IO System (ADIOS) provides a simple, - flexible way for scientists to describe the - data in their code that may need to be written, - read, or processed outside of the running simulation - """ - - homepage = "http://www.olcf.ornl.gov/center-projects/adios/" - url = "https://github.com/ornladios/ADIOS/archive/v1.10.0.tar.gz" - - version('1.12.0', '84a1c71b6698009224f6f748c5257fc9') - - variant('shared', default=True, - description='Builds a shared version of the library') - - variant('fortran', default=False, - description='Enable Fortran bindings support') - - variant('mpich', default=True, description='Enable MPI support') - variant('infiniband', default=False, description='Enable infiniband support') - - variant('zlib', default=True, description='Enable szip transform support') - variant('szip', default=False, description='Enable szip transform support') - variant('hdf5', default=False, description='Enable HDF5 transport support') - variant('netcdf', default=False, description='Enable NetCDF transport support') - - # Lots of setting up here for this package - # module swap PrgEnv-intel PrgEnv-$COMP - # module load cray-netcdf/4.3.3.1 - # module load cray-hdf5/1.8.14 - # module load python/2.7.10 - - depends_on('autoconf') - depends_on('automake') - depends_on('libtool') - depends_on('python') - - if "darwin" in platform.system().lower(): - depends_on("mpich") - - depends_on("mpich",when="+mpich") - - # optional transformations - depends_on('zlib', when='+zlib') - depends_on('szip', when='+szip') - # optional transports - depends_on('hdf5', when='+hdf5') - depends_on('netcdf', when='+netcdf') - - def validate(self, spec): - """ - Checks if incompatible variants have been activated at the same time - :param spec: spec of the package - :raises RuntimeError: in case of inconsistencies - """ - if '+fortran' in spec and not self.compiler.fc: - msg = 'cannot build a fortran variant without a fortran compiler' - raise RuntimeError(msg) - - def install(self, spec, prefix): - self.validate(spec) - # Handle compilation after spec validation - extra_args = [] - - # required, otherwise building its python bindings on ADIOS will fail - extra_args.append("CFLAGS=-fPIC") - - - if '+shared' in spec: - extra_args.append('--enable-shared') - - if '+mpich' in spec: - extra_args.append('--with-mpi') - env['MPICC'] = spec['mpich'].mpicc - env['MPICXX'] = spec['mpich'].mpicxx - - if '+infiniband' in spec: - extra_args.append('--with-infiniband') - else: - extra_args.append('--with-infiniband=no') - - if '+fortran' in spec: - extra_args.append('--enable-fortran') - else: - extra_args.append('--disable-fortran') - - if '+zlib' in spec: - extra_args.append('--with-zlib=%s' % spec['zlib'].prefix) - if '+szip' in spec: - extra_args.append('--with-szip=%s' % spec['szip'].prefix) - if '+hdf5' in spec: - extra_args.append('--with-hdf5=%s' % spec['hdf5'].prefix) - if '+netcdf' in spec: - extra_args.append('--with-netcdf=%s' % spec['netcdf'].prefix) - - sh = which('sh') - sh('./autogen.sh') - - configure("--prefix=%s" % prefix, - *extra_args) - make() - make("install") \ No newline at end of file diff --git a/scripts/uberenv/packages/cmake/package.py b/scripts/uberenv/packages/cmake/package.py deleted file mode 100644 index d63bdc236..000000000 --- a/scripts/uberenv/packages/cmake/package.py +++ /dev/null @@ -1,93 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License (as -# published by the Free Software Foundation) version 2.1, February 1999. -# -# This program 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 terms and -# conditions of the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## -from spack import * - -class Cmake(Package): - """A cross-platform, open-source build system. CMake is a family of - tools designed to build, test and package software.""" - homepage = 'https://www.cmake.org' - url = 'https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz' - - version('3.8.2', 'b5dff61f6a7f1305271ab3f6ae261419') - version('3.6.0', 'aa40fbecf49d99c083415c2411d12db9') - version('3.5.2', '701386a1b5ec95f8d1075ecf96383e02') - version('3.5.1', 'ca051f4a66375c89d1a524e726da0296') - version('3.5.0', '33c5d09d4c33d4ffcc63578a6ba8777e') - version('3.4.3', '4cb3ff35b2472aae70f542116d616e63') - version('3.4.0', 'cd3034e0a44256a0917e254167217fc8') - version('3.3.1', '52638576f4e1e621fed6c3410d3a1b12') - version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f') - version('2.8.10.2', '097278785da7182ec0aea8769d06860c') - - variant('ncurses', default=True, description='Enables the build of the ncurses gui') - variant('openssl', default=True, description="Enables CMake's OpenSSL features") - variant('qt', default=False, description='Enables the build of cmake-gui') - variant('doc', default=False, description='Enables the generation of html and man page documentation') - - depends_on('ncurses', when='+ncurses') - depends_on('openssl', when='+openssl') - depends_on('qt', when='+qt') - depends_on('python@2.7.11:', when='+doc') - depends_on('py-sphinx', when='+doc') - - def url_for_version(self, version): - """Handle CMake's version-based custom URLs.""" - return 'https://cmake.org/files/v%s/cmake-%s.tar.gz' % (version.up_to(2), version) - - def validate(self, spec): - """ - Checks if incompatible versions of qt were specified - - :param spec: spec of the package - :raises RuntimeError: in case of inconsistencies - """ - - if '+qt' in spec and spec.satisfies('^qt@5.4.0'): - msg = 'qt-5.4.0 has broken CMake modules.' - raise RuntimeError(msg) - - def install(self, spec, prefix): - # Consistency check - self.validate(spec) - - # configure, build, install: - options = ['--prefix=%s' % prefix] - options.append('--parallel=%s' % str(make_jobs)) - - if '+qt' in spec: - options.append('--qt-gui') - - if '+doc' in spec: - options.append('--sphinx-html') - options.append('--sphinx-man') - - if '+openssl' in spec: - options.append('--') - options.append('-DCMAKE_USE_OPENSSL=ON') - - configure(*options) - # keep from using high numbers (-j32 routinely fails on travis) - make("-j4",parallel=False) - make('install') diff --git a/scripts/uberenv/packages/conduit/package.py b/scripts/uberenv/packages/conduit/package.py deleted file mode 100644 index cf16092ab..000000000 --- a/scripts/uberenv/packages/conduit/package.py +++ /dev/null @@ -1,321 +0,0 @@ -############################################################################### -# Copyright (c) 2014-2016, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-666778 -# -# All rights reserved. -# -# This file is part of Conduit. -# -# For details, see: http://software.llnl.gov/conduit/. -# -# Please also read conduit/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -import socket -import os -import platform -from os.path import join as pjoin - - -def cmake_cache_entry(name,value): - return 'set(%s "%s" CACHE PATH "")\n\n' % (name,value) - - -class Conduit(Package): - """Spack package for Conduit""" - homepage = "http://software.llnl.gov/conduit/" - url = "https://github.com/LLNL/conduit/releases/download/v0.3.0/conduit-v0.3.0-src-with-blt.tar.gz" - - version('master', - git='https://github.com/LLNL/conduit.git', - branch='master') - - #version('0.3.0', '6396f1d1ca16594d7c66d4535d4f898e') - # note: checksums on github automatic release source tars changed ~9/17 - #version('0.2.1', 'ed7358af3463ba03f07eddd6a6e626ff') - #version('0.2.0', 'a7b398d493fd71b881a217993a9a29d4') - - variant("cmake", default=True, - description="Build CMake (if off, attempt to use cmake from PATH)") - - variant("hdf5",default=True,description="build third party dependencies for Conduit HDF5 support") - variant("silo",default=False,description="build third party dependencies for Conduit Silo support") - - variant("doc",default=True,description="build third party dependencies for creating Conduit's docs") - variant("python",default=True,description="build python 2") - variant("python3",default=True,description="build python 3") - variant("mpich",default=False,description="build mpich as MPI lib for Conduit") - - - def url_for_version(self, version): - v = str(version) - if v == "0.2.0": - return "https://github.com/LLNL/conduit/archive/v0.2.0.tar.gz" - elif v == "0.2.1": - return "https://github.com/LLNL/conduit/archive/v0.2.1.tar.gz" - elif v == "0.3.0": - # conduit uses BLT as a submodule, since github does not - # automatically package source from submodules, conduit provides a - # custom src tarball - return "https://github.com/LLNL/conduit/releases/download/v0.3.0/conduit-v0.3.0-src-with-blt.tar.gz" - return url - - - ########################### - # standard spack packages - ########################### - - ########################## - # uberenv custom packages - ########################## - - #on osx, always build mpich for mpi support - if "darwin" in platform.system().lower(): - depends_on("mpich") - else: # else, defer to the variant - depends_on("mpich",when="+mpich") - - ####################### - # CMake - ####################### - depends_on("cmake@3.8.2",when="+cmake") - - - ####################### - # python - ####################### - - # python2 - depends_on("python", when="+python") - depends_on("py-numpy", when="+python") - depends_on("py-sphinx", when="+python+doc") - depends_on("py-breathe", when="+python+doc") - - # python3 - depends_on("python3", when="+python3") - depends_on("py3-numpy",when="+python3") - depends_on("py3-sphinx", when="+python3+doc") - depends_on("py3-breathe", when="+python3+doc") - - ####################### - # i/o packages - ####################### - depends_on("hdf5",when="+hdf5") - depends_on("silo",when="+silo") - - def create_host_config(self,spec,prefix): - c_compiler = env["SPACK_CC"] - cpp_compiler = env["SPACK_CXX"] - f_compiler = None - - # see if we should enable fortran support - if "SPACK_FC" in env.keys(): - # even if this is set, it may not exist - # do one more sanity check - if os.path.isfile(env["SPACK_FC"]): - f_compiler = env["SPACK_FC"] - - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if env.has_key("SYS_TYPE"): - sys_type = env["SYS_TYPE"] - - ####################### - # TPL Paths - ####################### - if "+cmake" in spec: - cmake_exe = pjoin(spec['cmake'].prefix.bin,"cmake") - else: - cmake_exe = which("cmake") - if cmake_exe is None: - msg = 'failed to find CMake (and cmake variant is off)' - raise RuntimeError(msg) - cmake_exe = cmake_exe.path - - print "cmake executable: %s" % cmake_exe - - - ####################### - # Check for MPI - ####################### - mpicc = which("mpicc") - mpicxx = which("mpicxx") - mpif90 = which("mpif90") - mpiexec = which("mpiexec") - - print "cmake executable: %s" % cmake_exe - - ####################### - # Create host-config - ####################### - host_cfg_fname = "%s-%s-%s.cmake" % (socket.gethostname(),sys_type,spec.compiler) - - cfg = open(host_cfg_fname,"w") - cfg.write("##################################\n") - cfg.write("# uberenv host-config\n") - cfg.write("##################################\n") - cfg.write("# %s-%s\n" % (sys_type,spec.compiler)) - cfg.write("##################################\n\n") - # show path to cmake for reference - cfg.write("# cmake from uberenv\n") - cfg.write("# cmake exectuable path: %s\n\n" % cmake_exe) - - ####################### - ####################### - # compiler settings - ####################### - ####################### - - cfg.write("#######\n") - cfg.write("# using %s compiler spec\n" % spec.compiler) - cfg.write("#######\n\n") - cfg.write("# c compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_C_COMPILER",c_compiler)) - cfg.write("# cpp compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER",cpp_compiler)) - - cfg.write("# fortran compiler used by spack\n") - if not f_compiler is None: - cfg.write(cmake_cache_entry("ENABLE_FORTRAN","ON")) - cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER",f_compiler)) - else: - cfg.write("# no fortran compiler found\n\n") - cfg.write(cmake_cache_entry("ENABLE_FORTRAN","OFF")) - - ####################### - ####################### - # python - ####################### - cfg.write("# Python Support\n") - ####################### - # python 2 - ####################### - if "+python" in spec: - python_exe = pjoin(spec['python'].prefix.bin,"python") - cfg.write("# Enable python module builds\n") - cfg.write(cmake_cache_entry("ENABLE_PYTHON","ON")) - cfg.write("# python from uberenv\n") - cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE",python_exe)) - - if "+doc" in spec: - sphinx_build_exe = pjoin(spec['python'].prefix.bin,"sphinx-build") - cfg.write("# sphinx from uberenv\n") - cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE",sphinx_build_exe)) - - ####################### - # python 3 - ####################### - if "+python3" in spec: - python3_exe = pjoin(spec['python3'].prefix.bin,"python3") - cfg.write("# python3 from uberenv\n") - cfg.write("#" + cmake_cache_entry("PYTHON_EXECUTABLE",python3_exe)) - if "+doc" in spec: - py3_sphinx_build_exe = pjoin(spec['python3'].prefix.bin,"sphinx-build") - cfg.write("# sphinx from uberenv\n") - cfg.write("#" + cmake_cache_entry("SPHINX_EXECUTABLE",py3_sphinx_build_exe)) - - if not "+python" in spec or "+pyhton3" in spec: - cfg.write(cmake_cache_entry("ENABLE_PYTHON","OFF")) - - ####################### - # mpi - ####################### - cfg.write("# MPI Support\n") - if not mpicc is None: - cfg.write(cmake_cache_entry("ENABLE_MPI","ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER",mpicc.command)) - else: - cfg.write(cmake_cache_entry("ENABLE_MPI","OFF")) - - # we use `mpicc` as `MPI_CXX_COMPILER` b/c we don't want to introduce - # linking deps to the MPI C++ libs (we aren't using C++ features of MPI) - if not mpicxx is None: - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER",mpicc.command)) - if not mpif90 is None: - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpif90.command)) - if not mpiexec is None: - cfg.write(cmake_cache_entry("MPIEXEC", mpiexec.command)) - - ####################### - ####################### - # i/o packages - ####################### - ####################### - cfg.write("# I/O Packages\n\n") - ####################### - # hdf5 - ####################### - cfg.write("# hdf5 from uberenv\n") - if "+hdf5" in spec: - cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix)) - else: - cfg.write("# hdf5 not built by uberenv\n") - ####################### - # silo - ####################### - cfg.write("# silo from uberenv\n") - if "+silo" in spec: - cfg.write(cmake_cache_entry("SILO_DIR", spec['silo'].prefix)) - else: - cfg.write("# silo not built by uberenv\n") - - cfg.write("##################################\n") - cfg.write("# end uberenv host-config\n") - cfg.write("##################################\n") - cfg.close() - - # place a copy in the spack install dir for the conduit package - # mkdirp(prefix) - # install(host_cfg_fname,prefix) - # host_cfg_fname = pjoin(prefix,host_cfg_fname) - host_cfg_fname = os.path.abspath(host_cfg_fname) - print "[result host-config file: %s]" % host_cfg_fname - return host_cfg_fname - - def install(self, spec, prefix): - import subprocess - subprocess.call("git submodule init",shell=True) - subprocess.call("git submodule update",shell=True) - with working_dir('spack-build', create=True): - host_cfg_fname = self.create_host_config(spec,prefix) - cmake_args = [] - cmake_args.extend(std_cmake_args) - cmake_args.extend(["-C", host_cfg_fname, "../src"]) - cmake(*cmake_args) - make() - make("install") - - diff --git a/scripts/uberenv/packages/hdf5/package.py b/scripts/uberenv/packages/hdf5/package.py deleted file mode 100644 index 5c26076e0..000000000 --- a/scripts/uberenv/packages/hdf5/package.py +++ /dev/null @@ -1,71 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class Hdf5(Package): - """HDF5 is a data model, library, and file format for storing and managing - data. It supports an unlimited variety of datatypes, and is designed for - flexible and efficient I/O and for high volume and complex data. - """ - - homepage = "http://www.hdfgroup.org/HDF5/" - url = "http://visit.ilight.com/svn/visit/trunk/third_party/hdf5-1.8.14.tar.gz" - - - - #version('1.8.17', '7d572f8f3b798a628b8245af0391a0ca',preferred=True) - #version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618') - version('1.8.14', 'a482686e733514a51cde12d6fe5c5d95') - - - #depends_on("szip") - - def install(self, spec, prefix): - configure( - "--prefix=%s" % prefix, - #"--with-szlib=%s" % spec['szip'].prefix, - "--enable-shared") - make() - make("install") diff --git a/scripts/uberenv/packages/mpich/package.py b/scripts/uberenv/packages/mpich/package.py deleted file mode 100644 index 6f5026018..000000000 --- a/scripts/uberenv/packages/mpich/package.py +++ /dev/null @@ -1,123 +0,0 @@ -############################################################################## -# Copyright (c) 2013, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program 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) version 2.1 dated February 1999. -# -# This program 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 terms and -# conditions of the GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## -from spack import * -import os - -class Mpich(Package): - """MPICH is a high performance and widely portable implementation of - the Message Passing Interface (MPI) standard.""" - homepage = "http://www.mpich.org" - url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" - list_url = "http://www.mpich.org/static/downloads/" - list_depth = 2 - - # - # Rolled back to mpich 3.0.4 b/c on 7/29/2015 the other - # mpich source tarballs disappeared from the mpich website - # - #version('3.2', 'f414cfa77099cd1fa1a5ae4e22db508a') - #version('3.1.4', '2ab544607986486562e076b83937bba2') - #version('3.1.3', '93cb17f91ac758cbf9174ecb03563778') - #version('3.1.2', '7fbf4b81dcb74b07ae85939d1ceee7f1') - #version('3.1.1', '40dc408b1e03cc36d80209baaa2d32b7') - #version('3.1', '5643dd176499bfb7d25079aaff25f2ec') - version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') - - variant('verbs', default=False, description='Build support for OpenFabrics verbs.') - - provides('mpi@:3.0', when='@3:') - provides('mpi@:1.3', when='@1:') - - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('MPICH_CC', spack_cc) - spack_env.set('MPICH_CXX', spack_cxx) - spack_env.set('MPICH_F77', spack_f77) - spack_env.set('MPICH_F90', spack_fc) - spack_env.set('MPICH_FC', spack_fc) - - def setup_dependent_package(self, module, dep_spec): - self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') - self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++') - self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') - self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') - - def install(self, spec, prefix): - config_args = ["--prefix=" + prefix, - "--enable-shared"] - - # Variants - if '+verbs' in spec: - config_args.append("--with-ibverbs") - else: - config_args.append("--without-ibverbs") - - # TODO: Spack should make it so that you can't actually find - # these compilers if they're "disabled" for the current - # compiler configuration. - found_fortran = False; - if self.compiler.f77 and os.path.isfile(self.compiler.f77): - found_fortran = True; - else: - config_args.append("--disable-f77") - - if self.compiler.fc and os.path.isfile(self.compiler.fc): - found_fortran = True; - else: - config_args.append("--disable-fc") - - if not found_fortran: - config_args.append("--disable-fortran") - - configure(*config_args) - make() - make("install") - - self.filter_compilers() - - - def filter_compilers(self): - """Run after install to make the MPI compilers use the - compilers that Spack built the package with. - - If this isn't done, they'll have CC, CXX, F77, and FC set - to Spack's generic cc, c++, f77, and f90. We want them to - be bound to whatever compiler they were built with. - """ - bin = self.prefix.bin - mpicc = os.path.join(bin, 'mpicc') - mpicxx = os.path.join(bin, 'mpicxx') - mpif77 = os.path.join(bin, 'mpif77') - mpif90 = os.path.join(bin, 'mpif90') - - spack_cc = os.environ['CC'] - spack_cxx = os.environ['CXX'] - spack_f77 = os.environ['F77'] - spack_fc = os.environ['FC'] - - kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True } - filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs) - filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs) - filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs) - filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs) diff --git a/scripts/uberenv/packages/openssl/package.py b/scripts/uberenv/packages/openssl/package.py deleted file mode 100644 index 3ac5b160f..000000000 --- a/scripts/uberenv/packages/openssl/package.py +++ /dev/null @@ -1,80 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License (as -# published by the Free Software Foundation) version 2.1, February 1999. -# -# This program 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 terms and -# conditions of the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## -import llnl.util.tty as tty - -from spack import * - - -class Openssl(Package): - """The OpenSSL Project is a collaborative effort to develop a - robust, commercial-grade, full-featured, and Open Source - toolkit implementing the Secure Sockets Layer (SSL v2/v3) and - Transport Layer Security (TLS v1) protocols as well as a - full-strength general purpose cryptography library.""" - homepage = "http://www.openssl.org" - url = "ftp://openssl.org/source/old/1.0.2/openssl-1.0.2j.tar.gz" - - version('1.0.2j', '96322138f0b69e61b7212bc53d5e912b') - version('1.0.2i', '678374e63f8df456a697d3e5e5a931fb') - version('1.0.2h', '9392e65072ce4b614c1392eefc1f23d0') - version('1.0.2g', 'f3c710c045cdee5fd114feb69feba7aa') - version('1.0.2f', 'b3bf73f507172be9292ea2a8c28b659d') - version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5') - version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a') - version('1.0.1u', '130bb19745db2a5a09f22ccbbf7e69d0') - version('1.0.1t', '9837746fcf8a6727d46d22ca35953da1') - version('1.0.1r', '1abd905e079542ccae948af37e393d28') - version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf') - - depends_on("zlib") - parallel = False - - def handle_fetch_error(self, error): - tty.warn("Fetching OpenSSL failed. This may indicate that OpenSSL has " - "been updated, and the version in your instance of Spack is " - "insecure. Consider updating to the latest OpenSSL version.") - - def install(self, spec, prefix): - # OpenSSL uses a variable APPS in its Makefile. If it happens to be set - # in the environment, then this will override what is set in the - # Makefile, leading to build errors. - env.pop('APPS', None) - - env['KERNEL_BITS'] = '64' - - options = ['zlib', 'no-krb5', 'shared'] - - config = Executable('./config') - config('--prefix=%s' % prefix, - '--openssldir=%s' % join_path(prefix, 'etc', 'openssl'), - *options) - - # Remove non-standard compiler options if present. These options are - # present e.g. on Darwin. They are non-standard, i.e. most compilers - # (e.g. gcc) will not accept them. - filter_file(r'-arch x86_64', '', 'Makefile') - - make() - make('install') diff --git a/scripts/uberenv/packages/py-alabaster/package.py b/scripts/uberenv/packages/py-alabaster/package.py deleted file mode 100644 index 192a9ffb4..000000000 --- a/scripts/uberenv/packages/py-alabaster/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyAlabaster(Package): - """A configurable sidebar-enabled Sphinx theme""" - homepage = "https://github.com/bitprophet/alabaster" - url = "https://pypi.python.org/packages/source/a/alabaster/alabaster-0.7.7.tar.gz" - - version('0.7.7', '957c665d7126dea8121f98038debcba7') - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-babel/package.py b/scripts/uberenv/packages/py-babel/package.py deleted file mode 100644 index 9e4ce4ca2..000000000 --- a/scripts/uberenv/packages/py-babel/package.py +++ /dev/null @@ -1,64 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyBabel(Package): - """Internationalization utilities""" - homepage = "http://babel.pocoo.org/" - url = "https://pypi.python.org/packages/source/B/Babel/Babel-1.3.tar.gz" - - version('1.3', '5264ceb02717843cbc9ffce8e6e06bdb') - - extends('python') - - depends_on("py-setuptools") - depends_on("py-tz") - - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-breathe/package.py b/scripts/uberenv/packages/py-breathe/package.py deleted file mode 100644 index 6e78ccfce..000000000 --- a/scripts/uberenv/packages/py-breathe/package.py +++ /dev/null @@ -1,75 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * -from spack.hooks.sbang import filter_shebang - -class PyBreathe(Package): - """Breathe provides a bridge between the Sphinx and Doxygen documentation systems.""" - - homepage = "https://breathe.readthedocs.org/en/latest/" - url = "https://pypi.python.org/packages/source/b/breathe/breathe-4.0.0.tar.gz" - - version('4.0.0', '32316d5a890a3124ea3e8a9e0b2b3b97') - - extends('python') - - - def install(self, spec, prefix): - # breathe + sphinx doesn't play well with --prefix installs, for now simply - # install to the spack python - python('setup.py', 'install') #, '--prefix=%s' % prefix) - # sphinx_build lives in python's bin dir and for some reason breathe's - # setuptools install reinstalls the sphinx build scripts (even though - # it finds the existing sphinx install). - # To keep this from undermining us, we need to patch the new copies - # of these scripts. - sphinx_scripts = ["sphinx-apidoc", - "sphinx-autogen", - "sphinx-build", - "sphinx-quickstart"] - for script in sphinx_scripts: - script_path = join_path(spec["python"].prefix,"bin",script) - # use spack sbang to fix issues with shebang that is too long - filter_shebang(script_path) diff --git a/scripts/uberenv/packages/py-docutils/package.py b/scripts/uberenv/packages/py-docutils/package.py deleted file mode 100644 index 71e7c36b7..000000000 --- a/scripts/uberenv/packages/py-docutils/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyDocutils(Package): - """Python Documentation Utilities""" - homepage = "http://docutils.sourceforge.net/" - url = "https://pypi.python.org/packages/source/d/docutils/docutils-0.12.tar.gz" - - version('0.12', '4622263b62c5c771c03502afa3157768') - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-imagesize/package.py b/scripts/uberenv/packages/py-imagesize/package.py deleted file mode 100644 index b23fa2e2f..000000000 --- a/scripts/uberenv/packages/py-imagesize/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyImagesize(Package): - """Python pacage for getting image size from png/jpeg/jpeg2000/gif files""" - homepage = "https://github.com/shibukawa/imagesize_py" - url = "https://pypi.python.org/packages/53/72/6c6f1e787d9cab2cc733cf042f125abec07209a58308831c9f292504e826/imagesize-0.7.1.tar.gz" - - version('0.7.1', '976148283286a6ba5f69b0f81aef8052') - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-jinja2/package.py b/scripts/uberenv/packages/py-jinja2/package.py deleted file mode 100644 index afcd27eb5..000000000 --- a/scripts/uberenv/packages/py-jinja2/package.py +++ /dev/null @@ -1,63 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyJinja2(Package): - """A small but fast and easy to use stand-alone template engine written in pure python.""" - homepage = "http://jinja.pocoo.org/" - url = "https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.8.tar.gz" - - version('2.8', 'edb51693fe22c53cee5403775c71a99e') - - depends_on("py-markupsafe") - depends_on("py-babel") - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-markupsafe/package.py b/scripts/uberenv/packages/py-markupsafe/package.py deleted file mode 100644 index a69564304..000000000 --- a/scripts/uberenv/packages/py-markupsafe/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyMarkupsafe(Package): - """Implements a XML/HTML/XHTML Markup safe string for Python""" - homepage = "http://github.com/mitsuhiko/markupsafe" - url = "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.23.tar.gz" - - version('0.23', 'f5ab3deee4c37cd6a922fb81e730da6e') - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-mpi4py/package.py b/scripts/uberenv/packages/py-mpi4py/package.py deleted file mode 100644 index e375fb169..000000000 --- a/scripts/uberenv/packages/py-mpi4py/package.py +++ /dev/null @@ -1,40 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License (as -# published by the Free Software Foundation) version 2.1, February 1999. -# -# This program 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 terms and -# conditions of the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## -from spack import * - -class PyMpi4py(Package): - """This package provides Python bindings for the Message Passing Interface (MPI) standard. It is implemented on top of the MPI-1/MPI-2 specification and exposes an API which grounds on the standard MPI-2 C++ bindings.""" - homepage = "https://pypi.python.org/pypi/mpi4py" - url = "https://pypi.python.org/packages/source/m/mpi4py/mpi4py-1.3.1.tar.gz" - - version('2.0.0', '4f7d8126d7367c239fd67615680990e3') - version('1.3.1', 'dbe9d22bdc8ed965c23a7ceb6f32fc3c') - - extends('python') - depends_on('py-setuptools') - depends_on('mpich') - - def install(self, spec, prefix): - python('setup.py', 'install') diff --git a/scripts/uberenv/packages/py-numpy/package.py b/scripts/uberenv/packages/py-numpy/package.py deleted file mode 100644 index acc8dc13c..000000000 --- a/scripts/uberenv/packages/py-numpy/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyNumpy(Package): - """array processing for numbers, strings, records, and objects.""" - homepage = "https://pypi.python.org/pypi/numpy" - url = "https://pypi.python.org/packages/source/n/numpy/numpy-1.9.1.tar.gz" - - version('1.11.0', 'bc56fb9fc2895aa4961802ffbdb31d0b') - version('1.9.1', '78842b73560ec378142665e712ae4ad9') - - extends('python') - depends_on("py-setuptools") - - def install(self, spec, prefix): - # don't - python('setup.py', 'install') diff --git a/scripts/uberenv/packages/py-pygments/package.py b/scripts/uberenv/packages/py-pygments/package.py deleted file mode 100644 index 39c04b28b..000000000 --- a/scripts/uberenv/packages/py-pygments/package.py +++ /dev/null @@ -1,62 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyPygments(Package): - """Pygments is a syntax highlighting package written in Python.""" - homepage = "http://pygments.org/" - url = "https://pypi.python.org/packages/source/P/Pygments/Pygments-2.1.tar.gz" - - version('2.1', '84533d22f72de894f6d3907c3ca9eddf') - - extends('python') - - depends_on("py-setuptools") - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-setuptools/package.py b/scripts/uberenv/packages/py-setuptools/package.py deleted file mode 100644 index 3537f7053..000000000 --- a/scripts/uberenv/packages/py-setuptools/package.py +++ /dev/null @@ -1,71 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PySetuptools(Package): - """Easily download, build, install, upgrade, and uninstall Python packages.""" - homepage = "https://pypi.python.org/pypi/setuptools" - url = "https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.tar.gz" - - version('11.3.1', '01f69212e019a2420c1693fb43593930') - version('16.0', '0ace0b96233516fc5f7c857d086aa3ad') - version('18.1', 'f72e87f34fbf07f299f6cb46256a0b06') - - extends('python') - - def install(self, spec, prefix): - # python ctypes module doesn't build correctly - # with icc or clang, it is used by setuptools for - # windows support, which we don't need. - # remove use of windows_support in dist.py to avoid the issue - dist_src = open("setuptools/dist.py").read() - dist_src = dist_src.replace("from setuptools import windows_support", - "#from setuptools import windows_support") - dist_src = dist_src.replace("windows_support.hide_file(egg_cache_dir)", - "#windows_support.hide_file(egg_cache_dir)t") - open("setuptools/dist.py","w").write(dist_src) - # install into our python - python('setup.py', 'install') - diff --git a/scripts/uberenv/packages/py-six/package.py b/scripts/uberenv/packages/py-six/package.py deleted file mode 100644 index ab2000f7e..000000000 --- a/scripts/uberenv/packages/py-six/package.py +++ /dev/null @@ -1,62 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PySix(Package): - """Python 2 and 3 compatibility utilities""" - homepage = "http://pypi.python.org/pypi/six/" - url = "https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz" - - version('1.9.0', '476881ef4012262dfc8adc645ee786c4') - - depends_on("py-tz") - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-snowballstemmer/package.py b/scripts/uberenv/packages/py-snowballstemmer/package.py deleted file mode 100644 index 79a4ee729..000000000 --- a/scripts/uberenv/packages/py-snowballstemmer/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PySnowballstemmer(Package): - """This package provides 16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms.""" - homepage = "https://github.com/shibukawa/snowball_py" - url = "https://pypi.python.org/packages/source/s/snowballstemmer/snowballstemmer-1.2.1.tar.gz" - - version('1.2.1', '643b019667a708a922172e33a99bf2fa') - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-sphinx-rtd-theme/package.py b/scripts/uberenv/packages/py-sphinx-rtd-theme/package.py deleted file mode 100644 index 13a8eee86..000000000 --- a/scripts/uberenv/packages/py-sphinx-rtd-theme/package.py +++ /dev/null @@ -1,64 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PySphinxRtdTheme(Package): - """ReadTheDocs.org theme for Sphinx, 2013 version.""" - homepage = "https://pypi.python.org/pypi/sphinx_rtd_theme" - url = "https://pypi.python.org/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-0.1.9.tar.gz" - - version('0.1.9', '86a25c8d47147c872e42dc84cc66f97b') - - extends('python') - - # sphinx-rtd-theme requires sphinx which requires sphinx-rtd-theme - # remove the recursion with this patch - patch('remove_requirements.patch', level=0) - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/py-sphinx-rtd-theme/remove_requirements.patch b/scripts/uberenv/packages/py-sphinx-rtd-theme/remove_requirements.patch deleted file mode 100644 index 70655361c..000000000 --- a/scripts/uberenv/packages/py-sphinx-rtd-theme/remove_requirements.patch +++ /dev/null @@ -1,4 +0,0 @@ ---- requirements.txt 2015-07-16 12:05:46.000000000 -0700 -+++ requirements.txt.new 2016-03-18 14:35:25.038028654 -0700 -@@ -1 +0,0 @@ --sphinx>=1.3 diff --git a/scripts/uberenv/packages/py-sphinx/package.py b/scripts/uberenv/packages/py-sphinx/package.py deleted file mode 100644 index fa2fa95f5..000000000 --- a/scripts/uberenv/packages/py-sphinx/package.py +++ /dev/null @@ -1,85 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * -from spack.hooks.sbang import filter_shebang - -class PySphinx(Package): - """Sphinx Documentation Generator.""" - - homepage = "http://sphinx-doc.org/" - url = "https://pypi.python.org/packages/8b/78/eeea2b837f911cdc301f5f05163f9729a2381cadd03ccf35b25afe816c90/Sphinx-1.4.5.tar.gz" - - version('1.4.5', '5c2cd2dac45dfa6123d067e32a89e89a') - - extends('python') - - depends_on("py-setuptools") - depends_on("py-six") - depends_on("py-jinja2") - depends_on("py-pygments") - depends_on("py-docutils") - depends_on("py-imagesize") - depends_on("py-snowballstemmer") - depends_on("py-alabaster") - depends_on("py-babel") - depends_on("py-sphinx-rtd-theme") - - - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') #, '--prefix=%s' % prefix) - # sphinx_build lives in python's bin dir - sphinx_scripts = ["sphinx-apidoc", - "sphinx-autogen", - "sphinx-build", - "sphinx-quickstart"] - for script in sphinx_scripts: - script_path = join_path(spec["python"].prefix,"bin",script) - # use spack sbang to fix issues with shebang that is too long - filter_shebang(script_path) - - - diff --git a/scripts/uberenv/packages/py-tz/package.py b/scripts/uberenv/packages/py-tz/package.py deleted file mode 100644 index 4534f234c..000000000 --- a/scripts/uberenv/packages/py-tz/package.py +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * - -class PyTz(Package): - """World timezone definitions, modern and historical""" - homepage = "http://pythonhosted.org/pytz" - url = "https://pypi.python.org/packages/source/p/pytz/pytz-2015.7.tar.gz" - - version('2015.7', '252bb731883f37ff9c7f462954e8706d') - - extends('python') - - def install(self, spec, prefix): - # simply install to the spack python - python('setup.py', 'install') - - diff --git a/scripts/uberenv/packages/python/package.py b/scripts/uberenv/packages/python/package.py deleted file mode 100644 index 82c5c3d2c..000000000 --- a/scripts/uberenv/packages/python/package.py +++ /dev/null @@ -1,248 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -import functools -import glob -import inspect -import os -import re -import platform -from contextlib import closing - -import spack -from llnl.util.lang import match_predicate -from spack import * -from spack.util.environment import * - - -class Python(Package): - """The Python programming language.""" - homepage = "http://www.python.org" - url = "http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz" - - extendable = True - - version('3.5.1', 'be78e48cdfc1a7ad90efff146dce6cfe') - version('3.5.0', 'a56c0c0b45d75a0ec9c6dee933c41c36') - version('2.7.11', '6b6076ec9e93f05dd63e47eb9c15728b', preferred=True) - version('2.7.10', 'd7547558fd673bd9d38e2108c6b42521') - version('2.7.9', '5eebcaa0030dc4061156d3429657fb83') - version('2.7.8', 'd4bca0159acb0b44a781292b5231936f') - - #on osx el cap, need to provide openssl - if "darwin" in platform.system().lower(): - depends_on("openssl") - - def install(self, spec, prefix): - # Need this to allow python build to find the Python installation. - env['PYTHONHOME'] = prefix - env['MACOSX_DEPLOYMENT_TARGET'] = '10.6' - # Rest of install is pretty standard. - - configure_args = ["--prefix=%s" % prefix, - "--with-threads", - "--enable-shared"] - - if "darwin" in platform.system().lower(): - configure_args.extend( ["CPPFLAGS=-I%s/include" % spec["openssl"].prefix, - "LDFLAGS=-L%s/lib" % spec["openssl"].prefix]) - - if spec.satisfies('@3:'): - configure_args.append('--without-ensurepip') - configure(*configure_args) - make(parallel=False) - make("install") - - # Modify compiler paths in configuration files. This is necessary for - # building site packages outside of spack - filter_file(r'([/s]=?)([\S=]*)/lib/spack/env(/[^\s/]*)?/(\S*)(\s)', - (r'\4\5'), - join_path(prefix.lib, 'python%d.%d' % self.version[:2], '_sysconfigdata.py')) - - python3_version = '' - if spec.satisfies('@3:'): - python3_version = '-%d.%dm' % self.version[:2] - makefile_filepath = join_path(prefix.lib, 'python%d.%d' % self.version[:2], 'config%s' % python3_version, 'Makefile') - filter_file(r'([/s]=?)([\S=]*)/lib/spack/env(/[^\s/]*)?/(\S*)(\s)', - (r'\4\5'), - makefile_filepath) - - - # ======================================================================== - # Set up environment to make install easy for python extensions. - # ======================================================================== - - @property - def python_lib_dir(self): - return os.path.join('lib', 'python%d.%d' % self.version[:2]) - - - @property - def python_include_dir(self): - return os.path.join('include', 'python%d.%d' % self.version[:2]) - - - @property - def site_packages_dir(self): - return os.path.join(self.python_lib_dir, 'site-packages') - - - def setup_dependent_environment(self, spack_env, run_env, extension_spec): - # TODO: do this only for actual extensions. - - # Set PYTHONPATH to include site-packages dir for the - # extension and any other python extensions it depends on. - python_paths = [] - for d in extension_spec.traverse(): - if d.package.extends(self.spec): - python_paths.append(os.path.join(d.prefix, self.site_packages_dir)) - - pythonpath = ':'.join(python_paths) - spack_env.set('PYTHONPATH', pythonpath) - - # For run time environment set only the path for extension_spec and prepend it to PYTHONPATH - if extension_spec.package.extends(self.spec): - run_env.prepend_path('PYTHONPATH', os.path.join(extension_spec.prefix, self.site_packages_dir)) - - - def setup_dependent_package(self, module, ext_spec): - """ - Called before python modules' install() methods. - - In most cases, extensions will only need to have one line:: - - python('setup.py', 'install', '--prefix=%s' % prefix) - """ - # Python extension builds can have a global python executable function - if self.version >= Version("3.0.0") and self.version < Version("4.0.0"): - module.python = Executable(join_path(self.spec.prefix.bin, 'python3')) - else: - module.python = Executable(join_path(self.spec.prefix.bin, 'python')) - - # Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs. - module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir) - module.python_include_dir = os.path.join(ext_spec.prefix, self.python_include_dir) - module.site_packages_dir = os.path.join(ext_spec.prefix, self.site_packages_dir) - - # Make the site packages directory for extensions, if it does not exist already. - if ext_spec.package.is_extension: - mkdirp(module.site_packages_dir) - - # ======================================================================== - # Handle specifics of activating and deactivating python modules. - # ======================================================================== - - def python_ignore(self, ext_pkg, args): - """Add some ignore files to activate/deactivate args.""" - ignore_arg = args.get('ignore', lambda f: False) - - # Always ignore easy-install.pth, as it needs to be merged. - patterns = [r'easy-install\.pth$'] - - # Ignore pieces of setuptools installed by other packages. - if ext_pkg.name != 'py-setuptools': - patterns.append(r'/site[^/]*\.pyc?$') - patterns.append(r'setuptools\.pth') - patterns.append(r'bin/easy_install[^/]*$') - patterns.append(r'setuptools.*egg$') - - return match_predicate(ignore_arg, patterns) - - - def write_easy_install_pth(self, exts): - paths = [] - for ext in sorted(exts.values()): - ext_site_packages = os.path.join(ext.prefix, self.site_packages_dir) - easy_pth = "%s/easy-install.pth" % ext_site_packages - - if not os.path.isfile(easy_pth): - continue - - with closing(open(easy_pth)) as f: - for line in f: - line = line.rstrip() - - # Skip lines matching these criteria - if not line: continue - if re.search(r'^(import|#)', line): continue - if (ext.name != 'py-setuptools' and - re.search(r'setuptools.*egg$', line)): continue - - paths.append(line) - - site_packages = os.path.join(self.prefix, self.site_packages_dir) - main_pth = "%s/easy-install.pth" % site_packages - - if not paths: - if os.path.isfile(main_pth): - os.remove(main_pth) - - else: - with closing(open(main_pth, 'w')) as f: - f.write("import sys; sys.__plen = len(sys.path)\n") - for path in paths: - f.write("%s\n" % path) - f.write("import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; " - "p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)\n") - - - def activate(self, ext_pkg, **args): - ignore=self.python_ignore(ext_pkg, args) - args.update(ignore=ignore) - - super(Python, self).activate(ext_pkg, **args) - - exts = spack.install_layout.extension_map(self.spec) - exts[ext_pkg.name] = ext_pkg.spec - self.write_easy_install_pth(exts) - - - def deactivate(self, ext_pkg, **args): - args.update(ignore=self.python_ignore(ext_pkg, args)) - super(Python, self).deactivate(ext_pkg, **args) - - exts = spack.install_layout.extension_map(self.spec) - if ext_pkg.name in exts: # Make deactivate idempotent. - del exts[ext_pkg.name] - self.write_easy_install_pth(exts) diff --git a/scripts/uberenv/packages/szip/package.py b/scripts/uberenv/packages/szip/package.py deleted file mode 100644 index eeb580f6a..000000000 --- a/scripts/uberenv/packages/szip/package.py +++ /dev/null @@ -1,58 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License (as -# published by the Free Software Foundation) version 2.1, February 1999. -# -# This program 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 terms and -# conditions of the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## -# -# This is a template package file for Spack. We've put "FIXME" -# next to all the things you'll want to change. Once you've handled -# them, you can save this file and test your package like this: -# -# spack install szip -# -# You can edit this file again by typing: -# -# spack edit szip -# -# See the Spack documentation for more information on packaging. -# If you submit this package back to Spack as a pull request, -# please first remove this boilerplate and all FIXME comments. -# -from spack import * - - -class Szip(Package): - """FIXME: Put a proper description of your package here.""" - - # FIXME: Add a proper url for your package's homepage here. - homepage = "http://www.hdf5group.org" - #url = "https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz" - url = "http://visit.ilight.com/svn/visit/trunk/third_party/szip-2.1.tar.gz" - - #version('2.1.1', 'dd579cf0f26d44afd10a0ad7291fc282') - version('2.1', '9cc9125a58b905a4148e4e2fda3fabc6') - - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - - make() - make("install") diff --git a/scripts/uberenv/packages/tbb/package.py b/scripts/uberenv/packages/tbb/package.py deleted file mode 100644 index 7a09f84c0..000000000 --- a/scripts/uberenv/packages/tbb/package.py +++ /dev/null @@ -1,152 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - - -from spack import * -import os -import glob - -import llnl.util.tty as tty - -class Tbb(Package): - """ - Intel's TBB is a widely used C++ template library for task parallelism. - """ - homepage = "https://www.threadingbuildingblocks.org/" - - # - # The TBB website has a bunch of guards to prevent downloads. - # We keep our own copy in our tbb package directory. - # - - #url = "http://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160128oss_src.tgz" - url = "http://www.example.com" - - version('4.4.3', '9d8a4cdf43496f1b3f7c473a5248e5cc') - - patch("tbb_rtm_key.patch",level=0) - - def url_for_version(self, version): - tbb_tar_path = os.path.abspath(join_path(os.path.dirname(__file__))) - tbb_tar_path = join_path(tbb_tar_path,"tbb44_20160128oss_src.tgz") - url = "file://" + tbb_tar_path - return url - - def coerce_to_spack(self,tbb_build_subdir): - for compiler in ["icc","gcc","clang"]: - fs = glob.glob(join_path(tbb_build_subdir,"*.%s.inc" % compiler )) - for f in fs: - lines = open(f).readlines() - of = open(f,"w") - for l in lines: - if l.strip().startswith("CPLUS ="): - of.write("# coerced to spack\n") - of.write("CPLUS = $(CXX)\n") - elif l.strip().startswith("CPLUS ="): - of.write("# coerced to spack\n") - of.write("CONLY = $(CC)\n") - else: - of.write(l); - - def install(self, spec, prefix): - # - # we need to follow TBB's compiler selection logic to get the proper build + link flags - # but we still need to use spack's compiler wrappers - # to accomplish this, we do two things: - # - # * Look at the spack spec to determine which compiler we should pass to tbb's Makefile - # - # * patch tbb's build system to use the compiler wrappers (CC, CXX) for - # icc, gcc, clang - # (see coerce_to_spack()) - # - - self.coerce_to_spack("build") - - if spec.satisfies('%clang'): - tbb_compiler = "clang" - elif spec.satisfies('%intel'): - tbb_compiler = "icc" - else: - tbb_compiler = "gcc" - - - mkdirp(prefix) - mkdirp(prefix.lib) - - # - # tbb does not have a configure script or make install target - # we simply call make, and try to put the pieces together - # - - make("compiler=%s" %(tbb_compiler)) - - # Note, I tried try tbb_build_dir option, which quickly errored out ..."" - # make("compiler=%s tbb_build_dir=%s" %(tbb_compiler,prefix.lib)) - - - # install headers to {prefix}/include - install_tree('include',prefix.include) - - # install libs to {prefix}/lib - tbb_lib_names = ["libtbb", - "libtbbmalloc", - "libtbbmalloc_proxy"] - - for lib_name in tbb_lib_names: - # install release libs - fs = glob.glob(join_path("build","*release",lib_name + ".*")) - if len(fs) <1: - tty.error("Failed to find release lib: " + lib_name) - for f in fs: - tty.info("installing:" + f); - install(f, prefix.lib) - # install debug libs if they exist - fs = glob.glob(join_path("build","*debug",lib_name + "_debug.*")) - for f in fs: - tty.info("installing:" + f); - install(f, prefix.lib) - - - diff --git a/scripts/uberenv/packages/tbb/tbb44_20160128oss_src.tgz b/scripts/uberenv/packages/tbb/tbb44_20160128oss_src.tgz deleted file mode 100644 index 9312ba15d..000000000 Binary files a/scripts/uberenv/packages/tbb/tbb44_20160128oss_src.tgz and /dev/null differ diff --git a/scripts/uberenv/packages/tbb/tbb_rtm_key.patch b/scripts/uberenv/packages/tbb/tbb_rtm_key.patch deleted file mode 100644 index f1a42fb52..000000000 --- a/scripts/uberenv/packages/tbb/tbb_rtm_key.patch +++ /dev/null @@ -1,23 +0,0 @@ -*** build/linux.gcc.inc.orig 2017-01-10 16:54:01.000000000 -0800 ---- build/linux.gcc.inc 2017-01-10 16:54:04.000000000 -0800 -*************** -*** 49,57 **** - endif - - # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them -! ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])")) -! RTM_KEY = -mrtm -! endif - - ifeq ($(cfg), release) - CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD ---- 49,57 ---- - endif - - # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them -! #ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])")) -! # RTM_KEY = -mrtm -! #endif - - ifeq ($(cfg), release) - CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD \ No newline at end of file diff --git a/scripts/uberenv/packages/uberenv-ascent/package.py b/scripts/uberenv/packages/uberenv-ascent/package.py index 44302b3da..b3f06b40c 100644 --- a/scripts/uberenv/packages/uberenv-ascent/package.py +++ b/scripts/uberenv/packages/uberenv-ascent/package.py @@ -49,255 +49,41 @@ import platform from os.path import join as pjoin +from ascent import Ascent -def cmake_cache_entry(name,value): - return 'set("%s" "%s" CACHE PATH "")\n\n' % (name,value) - - - -class UberenvAscent(Package): +class UberenvAscent(Ascent): """Spack Based Uberenv Build for Ascent Thirdparty Libs """ homepage = "https://github.com/alpine-DAV/ascent" - version('0.1', '8d378ef62dedc2df5db447b029b71200') + version('0.0', '8d378ef62dedc2df5db447b029b71200') - # would like to use these in the future - #variant('cuda', default=False, description="Enable CUDA support.") - #variant('openmp', default=False, description="Enable OpenMP support.") + # default to building docs when using uberenv + variant("doc", + default=True, + description="Build deps needed to create Conduit's Docs") - variant("cmake", default=True, - description="Build CMake (if off, attempt to use cmake from PATH)") - variant("vtkm",default=True,description="build with vtkm pipeline support") - variant("adios",default=True,description="build with adios filter support") - variant("doc",default=True,description="build third party dependencies for creating Ascent's docs") - variant("python",default=True,description="build python 2") - variant("mpich",default=False,description="build mpich as MPI lib for Ascent") - - depends_on("cmake@3.8.2",when="+cmake") + # stick with cmake 3.8 or 3.9 until we use MPIEXEC_EXECUTABLE for 3.10+ + # in upstream spack package + depends_on("cmake@3.8.2:3.9.999", when="+cmake") - depends_on("vtkm",when="+vtkm") - depends_on("vtkh~mpich",when="+vtkm~mpich") - depends_on("vtkh+mpich",when="+vtkm+mpich") - - depends_on("adios",when="+adios") - - # python2 - depends_on("python", when="+python") - depends_on("py-numpy", when="+python") + # use old version of mpi4py to avoid build issues with cython + depends_on("py-mpi4py@2.0.0:2.9.999", when="+mpi") - - depends_on("python", when="+doc") - depends_on("py-sphinx", when="+doc") - depends_on("py-breathe", when="+doc") - - - #on osx, always build mpich for mpi support - if "darwin" in platform.system().lower(): - depends_on("mpich") - depends_on("conduit~doc~silo~python3+mpich") - else: # else, defer to the variant - depends_on("conduit~doc~silo~python3") - depends_on("mpich",when="+mpich") - depends_on("conduit~doc~silo~python3+mpich", when="+mpich") - - depends_on("py-mpi4py",when="+python") - def url_for_version(self, version): dummy_tar_path = os.path.abspath(pjoin(os.path.split(__file__)[0])) dummy_tar_path = pjoin(dummy_tar_path,"uberenv-ascent.tar.gz") url = "file://" + dummy_tar_path return url - - def install(self, spec, prefix): - dest_dir = env["SPACK_DEBUG_LOG_DIR"] - - c_compiler = env["SPACK_CC"] - cpp_compiler = env["SPACK_CXX"] - f_compiler = None - - # see if we should enable fortran support - if "SPACK_FC" in env.keys(): - # even if this is set, it may not exist - # do one more sanity check - if os.path.isfile(env["SPACK_FC"]): - f_compiler = env["SPACK_FC"] - - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if env.has_key("SYS_TYPE"): - sys_type = env["SYS_TYPE"] - - ####################### - # TPL Paths - ####################### - - if "+cmake" in spec: - cmake_exe = pjoin(spec['cmake'].prefix.bin,"cmake") - else: - cmake_exe = which("cmake") - if cmake_exe is None: - msg = 'failed to find CMake (and cmake variant is off)' - raise RuntimeError(msg) - cmake_exe = cmake_exe.path - - print "cmake executable: %s" % cmake_exe - - ####################### - # Check for MPI - ####################### - mpicc = which("mpicc") - mpicxx = which("mpicxx") - mpif90 = which("mpif90") - mpiexec = which("mpiexec") - nvcc = which("nvcc") - - if not nvcc is None: - enable_cuda = "ON" - else: - enable_cuda = "OFF" - - - ####################### - # Create host-config - ####################### - host_cfg_fname = "%s-%s-%s.cmake" % (socket.gethostname(),sys_type,spec.compiler) - host_cfg_fname = pjoin(dest_dir,host_cfg_fname) - - cfg = open(host_cfg_fname,"w") - cfg.write("##################################\n") - cfg.write("# uberenv host-config\n") - cfg.write("##################################\n") - cfg.write("# %s-%s\n" % (sys_type,spec.compiler)) - cfg.write("##################################\n\n") - # show path to cmake for reference - cfg.write("# cmake from uberenv\n") - if cmake_exe is None: - cfg.write("# cmake not built by uberenv\n\n"); - else: - cfg.write("# cmake exectuable path: %s\n\n" % cmake_exe) - - ####################### - ####################### - # compiler settings - ####################### - ####################### - - cfg.write("#######\n") - cfg.write("# using %s compiler spec\n" % spec.compiler) - cfg.write("#######\n\n") - cfg.write("# c compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_C_COMPILER",c_compiler)) - cfg.write("# cpp compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER",cpp_compiler)) - - cfg.write("# fortran compiler used by spack\n") - if not f_compiler is None: - cfg.write(cmake_cache_entry("ENABLE_FORTRAN","ON")) - cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER",f_compiler)) - else: - cfg.write("# no fortran compiler found\n\n") - cfg.write(cmake_cache_entry("ENABLE_FORTRAN","OFF")) - - ####################### - # python - ####################### - if "+python" in spec: - python_exe = pjoin(spec['python'].prefix.bin,"python") - cfg.write("# Enable python module builds\n") - cfg.write(cmake_cache_entry("ENABLE_PYTHON","ON")) - cfg.write("# python from uberenv\n") - cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE",python_exe)) - - ####################### - # sphinx - ####################### - if "+doc" in spec: - sphinx_build_exe = pjoin(spec['python'].prefix.bin,"sphinx-build") - cfg.write("# sphinx from uberenv\n") - cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE",sphinx_build_exe)) - - ####################### - # mpi - ####################### - cfg.write("# MPI Support\n") - if not mpicc is None: - cfg.write(cmake_cache_entry("ENABLE_MPI","ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER",mpicc.command)) - else: - cfg.write(cmake_cache_entry("ENABLE_MPI","OFF")) - - # we use `mpicc` as `MPI_CXX_COMPILER` b/c we don't want to introduce - # linking deps to the MPI C++ libs (we aren't using C++ features of MPI) - if not mpicxx is None: - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER",mpicc.command)) - if not mpif90 is None: - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpif90.command)) - if not mpiexec is None: - cfg.write(cmake_cache_entry("MPIEXEC", mpiexec.command)) - - ####################### - # cuda - ####################### - cfg.write("# CUDA support\n") - cfg.write(cmake_cache_entry('ENABLE_CUDA',enable_cuda)); - if not nvcc is None: - cfg.write(cmake_cache_entry('CUDA_BIN_DIR',os.path.dirname(nvcc.command))) - - ####################### - # conduit - ####################### - cfg.write("# conduit from uberenv\n") - cfg.write(cmake_cache_entry("CONDUIT_DIR", spec['conduit'].prefix)) - cfg.write("\n") - - ####################### - # hdf5 - ####################### - cfg.write("# hdf5 from uberenv\n") - cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix)) - cfg.write("\n") - - - - ####################### - # vtkm + tpls - ####################### - if "+vtkm" in spec: - cfg.write("\n# vtkm support\n\n") - - cfg.write("# tbb from uberenv\n") - cfg.write(cmake_cache_entry("TBB_DIR", spec['tbb'].prefix)) - - cfg.write("# vtkm from uberenv\n") - cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtkm'].prefix)) - - ####################### - # vtk-h - ####################### - cfg.write("# vtkh from uberenv\n") - cfg.write(cmake_cache_entry("VTKH_DIR", spec['vtkh'].prefix)) - - - ####################### - # adios - ####################### - if "+adios" in spec: - cfg.write("\n# adios support\n\n") - - cfg.write("# adios from uberenv\n") - cfg.write(cmake_cache_entry("ADIOS_DIR", spec['adios'].prefix)) - - - cfg.write("##################################\n") - cfg.write("# end uberenv host-config\n") - cfg.write("##################################\n") - - cfg.close() - mkdirp(prefix) - install(host_cfg_fname,prefix) - print "[result host-config file: %s]" % host_cfg_fname - - + def install(self, spec, prefix): + """ + Build and install Ascent. + """ + with working_dir('spack-build', create=True): + host_cfg_fname = self.create_host_config(spec, prefix) + # place a copy in the spack install dir for the uberenv-conduit package + mkdirp(prefix) + install(host_cfg_fname,prefix) + install(host_cfg_fname,env["SPACK_DEBUG_LOG_DIR"]) diff --git a/scripts/uberenv/packages/vtkh/package.py b/scripts/uberenv/packages/vtkh/package.py deleted file mode 100644 index 1cfd740ef..000000000 --- a/scripts/uberenv/packages/vtkh/package.py +++ /dev/null @@ -1,107 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### -from spack import * -import os -import platform - -class Vtkh(Package): - homepage = "https://h.vtk.org/" - url = "https://github.com/Alpine-DAV/vtk-h" - - version('vtkh-reorg', - git='https://github.com/Alpine-DAV/vtk-h.git', - branch='master', - submodules=True) - - variant("mpich",default=False,description="build with mpich") - - depends_on("cmake") - depends_on("tbb") - depends_on("vtkm") - - if "darwin" in platform.system().lower(): - depends_on("mpich") - - depends_on("mpich",when="+mpich") - - def install(self, spec, prefix): - # spack version used doesn't support submodules, so manually update it - # here. - os.system("git submodule update --init") - - with working_dir('spack-build', create=True): - cmake_args = ["../src", - "-DVTKM_DIR=%s" % spec["vtkm"].prefix, - "-DTBB_DIR=%s" % spec["tbb"].prefix, - "-DENABLE_TESTS=OFF", - "-DBUILD_TESTING=OFF", - "-DCMAKE_VERBOSE_MAKEFILE=ON"] - if "+mpich" in spec: - mpicc = which("mpicc") - mpicxx = which("mpicxx") - if mpicc is None or mpicxx is None: - print "VTKh needs mpi ..." - crash() - cmake_args.extend([ - "-DMPI_C_COMPILER=%s" % mpicc.command, - "-DMPI_CXX_COMPILER=%s" % mpicxx.command]) - - # check for cuda support - nvcc = which("nvcc") - if not nvcc is None: - cmake_args.append("-DENABLE_CUDA=ON") - # this fix is necessary if compiling platform has cuda, but no devices - # (this common for front end nodes on hpc clusters) - # we choose kepler for llnl surface and ornl titan - cmake_args.append("-DVTKm_CUDA_Architecture=kepler") - # use release, instead of release with debug symbols b/c vtkm + vtkh libs - # can overwhelm compilers with too many symbols - for arg in std_cmake_args: - if arg.count("CMAKE_BUILD_TYPE") == 0: - cmake_args.extend(std_cmake_args) - cmake_args.append("-DCMAKE_BUILD_TYPE=Release") - print cmake_args - cmake(*cmake_args) - make(parallel=False) - make("install",parallel=False) diff --git a/scripts/uberenv/packages/vtkm/package.py b/scripts/uberenv/packages/vtkm/package.py deleted file mode 100644 index 3281572da..000000000 --- a/scripts/uberenv/packages/vtkm/package.py +++ /dev/null @@ -1,90 +0,0 @@ -############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. -# -# Produced at the Lawrence Livermore National Laboratory -# -# LLNL-CODE-716457 -# -# All rights reserved. -# -# This file is part of Ascent. -# -# For details, see: http://software.llnl.gov/ascent/. -# -# Please also read ascent/LICENSE -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the disclaimer below. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the disclaimer (as noted below) in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the LLNS/LLNL nor the names of its contributors may -# be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, -# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################### - -from spack import * -import os - -class Vtkm(Package): - homepage = "https://m.vtk.org/" - url = "http://m.vtk.org/images/8/87/Vtk-m-1.0.0.tar.gz" - - version('kitware-gitlab', - git='https://gitlab.kitware.com/vtk/vtk-m.git', - branch='master') - - #version('1.0.0', '9d9d45e675d5b0628b19b32f5542ed9c') - - depends_on("cmake") - depends_on("tbb") - - def install(self, spec, prefix): - os.environ["TBB_ROOT"] = spec["tbb"].prefix - with working_dir('spack-build', create=True): - cmake_args = ["../", - "-DVTKm_ENABLE_TBB=ON", - "-DVTKm_ENABLE_TESTING=OFF", - "-DVTKm_BUILD_RENDERING=ON", - "-DVTKm_USE_64BIT_IDS=OFF", - "-DVTKm_USE_DOUBLE_PRECISION=ON"] - # check for cuda support - nvcc = which("nvcc") - if not nvcc is None: - cmake_args.append("-DVTKm_ENABLE_CUDA=ON") - # this fix is necessary if compiling platform has cuda, but no devices - # (this common for front end nodes on hpc clusters) - # we choose kepler for llnl surface and ornl titan - cmake_args.append("-DVTKm_CUDA_Architecture=kepler") - # use release, instead of release with debug symbols b/c vtkm + vtkh libs - # can overwhelm compilers with too many symbols - for arg in std_cmake_args: - if arg.count("CMAKE_BUILD_TYPE") == 0: - cmake_args.extend(std_cmake_args) - cmake_args.append("-DCMAKE_BUILD_TYPE=Release") - print cmake_args - cmake(*cmake_args) - make(parallel=False) - make("install",parallel=False) - - - diff --git a/scripts/uberenv/packages/zlib/package.py b/scripts/uberenv/packages/zlib/package.py deleted file mode 100644 index 4e99141ba..000000000 --- a/scripts/uberenv/packages/zlib/package.py +++ /dev/null @@ -1,45 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. -# LLNL-CODE-647188 -# -# For details, see https://github.com/llnl/spack -# Please also see the LICENSE file for our notice and the LGPL. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License (as -# published by the Free Software Foundation) version 2.1, February 1999. -# -# This program 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 terms and -# conditions of the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -############################################################################## -from spack import * - -class Zlib(Package): - """zlib is designed to be a free, general-purpose, legally unencumbered -- - that is, not covered by any patents -- lossless data-compression library for - use on virtually any computer hardware and operating system. - """ - - homepage = "http://zlib.net" - url = "http://zlib.net/fossils/zlib-1.2.10.tar.gz" - - version('1.2.10', 'd9794246f853d15ce0fcbf79b9a3cf13') - version('1.2.8', '44d667c142d7cda120332623eab69f40') - - - - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - - make() - make("install") diff --git a/scripts/uberenv/project.json b/scripts/uberenv/project.json index 6395a722a..423c589fc 100644 --- a/scripts/uberenv/project.json +++ b/scripts/uberenv/project.json @@ -1,4 +1,6 @@ { -"spack_develop_commit": "4a6ec6377d5101d44a73e99e1a67cfd8f5f8a694", -"uberenv_package_name" : "uberenv-ascent" +"spack_develop_commit": "95a384f05107cc80e0da7d5e7a5b75380ebf76f3", +"uberenv_package_name" : "uberenv-ascent", +"spack_activate" : ["py-numpy", "py-sphinx", "py-mpi4py", "conduit"] + } diff --git a/scripts/uberenv/spack_configs/blueos_3_ppc64le_ib/compilers.yaml b/scripts/uberenv/spack_configs/blueos_3_ppc64le_ib/compilers.yaml new file mode 100644 index 000000000..98ef11f95 --- /dev/null +++ b/scripts/uberenv/spack_configs/blueos_3_ppc64le_ib/compilers.yaml @@ -0,0 +1,43 @@ +compilers: +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/gcc + cxx: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/g++ + f77: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/gfortran + fc: /usr/tcetmp/packages/gcc/gcc-4.9.3/bin/gfortran + spec: gcc@4.9.3 + target: ppc64le +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tcetmp/packages/clang/clang-4.0.0/bin/clang + cxx: /usr/tcetmp/packages/clang/clang-4.0.0/bin/clang++ + f77: None + fc: None + spec: clang@4.0.0 + target: ppc64le +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tce/packages/xl/xl-beta-2017.10.13/bin/xlc-gpu + cxx: /usr/tce/packages/xl/xl-beta-2017.10.13/bin/xlC-gpu + f77: /usr/tce/packages/xl/xl-beta-2017.10.13/bin/xlf-gpu + fc: //usr/tce/packages/xl/xl-beta-2017.10.13/xlf2003-gpu + spec: xl@13.1 + target: ppc64le + + + diff --git a/scripts/uberenv/spack_configs/blueos_3_ppc64le_ib/packages.yaml b/scripts/uberenv/spack_configs/blueos_3_ppc64le_ib/packages.yaml new file mode 100644 index 000000000..5545497a2 --- /dev/null +++ b/scripts/uberenv/spack_configs/blueos_3_ppc64le_ib/packages.yaml @@ -0,0 +1,55 @@ + +# ------------------------------------------------------------------------- +# This file controls default concretization preferences for Spack. +# +# Settings here are versioned with Spack and are intended to provide +# sensible defaults out of the box. Spack maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# $SPACK_ROOT/etc/spack/packages.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/packages.yaml +# ------------------------------------------------------------------------- +packages: + all: + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + awk: [gawk] + blas: [openblas] + daal: [intel-daal] + elf: [elfutils] + golang: [gcc] + ipp: [intel-ipp] + java: [jdk] + lapack: [openblas] + mkl: [intel-mkl] + mpe: [mpe2] + mpi: [mvapich2] + opencl: [pocl] + openfoam: [openfoam-com, openfoam-org, foam-extend] + pil: [py-pillow] + scalapack: [netlib-scalapack] + szip: [libszip, libaec] + tbb: [intel-tbb] + jpeg: [libjpeg-turbo, libjpeg] +# LLNL blueos CUDA + cuda: + paths: + cuda@9.0.176: /usr/tce/packages/cuda/cuda-9.0.176 + cuda@8.0: /usr/tce/packages/cuda/cuda-8.0 + buildable: False +# LLNL blueos mpi +# note, we need to fake this as an existing mpi package +# so even though this is spectrum mpi, we call it mvapich2 + mvapich2: + paths: + mvapich2@2.2%gcc@4.9.3: /usr/tcetmp/packages/spectrum-mpi/spectrum-mpi-2017.04.03-gcc-4.9.3 + mvapich2@2.2%clang@coral: /usr/tcetmp/packages/spectrum-mpi/spectrum-mpi-2017.04.03-clang-4.0.0 + mvapich2@2.2%xl@13.1 : /usr/tcetmp/packages/spectrum-mpi/spectrum-mpi-2017.11.10-xl-beta-2017.10.13 + buildable: False + + diff --git a/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/compilers.yaml b/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/compilers.yaml new file mode 100644 index 000000000..b8749551d --- /dev/null +++ b/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/compilers.yaml @@ -0,0 +1,25 @@ +compilers: +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel6 + paths: + cc: /usr/apps/gnu/4.9.3/bin/gcc + cxx: /usr/apps/gnu/4.9.3/bin/g++ + f77: /usr/apps/gnu/4.9.3/bin/gfortran + fc: /usr/apps/gnu/4.9.3/bin/gfortran + spec: gcc@4.9.3 +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel6 + paths: + cc: /usr/local/tools/ic-16.0.109/bin/icc + cxx: /usr/local/tools/ic-16.0.109/bin/icpc + f77: /usr/local/tools/ic-16.0.109/bin/ifort + fc: /usr/local/tools/ic-16.0.109/bin/ifort + spec: intel@16.0.109 diff --git a/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/host_config_manual_edits.txt b/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/host_config_manual_edits.txt new file mode 100644 index 000000000..a0dd3535f --- /dev/null +++ b/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/host_config_manual_edits.txt @@ -0,0 +1,5 @@ +# extra settings for chaos 5 + +set(MPIEXEC /usr/bin/srun CACHE PATH "") +set(MPIEXEC_NUMPROC_FLAG -n CACHE PATH "") + diff --git a/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/packages.yaml b/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/packages.yaml new file mode 100644 index 000000000..be125f5c5 --- /dev/null +++ b/scripts/uberenv/spack_configs/chaos_5_x86_64_ib/packages.yaml @@ -0,0 +1,48 @@ +# ------------------------------------------------------------------------- +# This file controls default concretization preferences for Spack. +# +# Settings here are versioned with Spack and are intended to provide +# sensible defaults out of the box. Spack maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# $SPACK_ROOT/etc/spack/packages.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/packages.yaml +# ------------------------------------------------------------------------- +packages: + all: + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + awk: [gawk] + blas: [openblas] + daal: [intel-daal] + elf: [elfutils] + golang: [gcc] + ipp: [intel-ipp] + java: [jdk] + lapack: [openblas] + mkl: [intel-mkl] + mpe: [mpe2] + mpi: [mvapich2] + opencl: [pocl] + openfoam: [openfoam-com, openfoam-org, foam-extend] + pil: [py-pillow] + scalapack: [netlib-scalapack] + szip: [libszip, libaec] + tbb: [intel-tbb] + jpeg: [libjpeg-turbo, libjpeg] +# LLNL chaos5 CUDA + cuda: + paths: + cuda@8.0: /opt/cudatoolkit-8.0 + buildable: False +# LLNL chaos5 mvapich2 + mvapich2: + paths: + mvapich2@2.0%gcc@4.9.3: /usr/local/tools/mvapich2-gnu-2.0/ + mvapich2@2.0%intel@16.0.109: /usr/local/tools/mvapich2-intel-2.0 + buildable: False \ No newline at end of file diff --git a/scripts/uberenv/spack_configs/config.yaml b/scripts/uberenv/spack_configs/config.yaml new file mode 100644 index 000000000..b9d6f47f0 --- /dev/null +++ b/scripts/uberenv/spack_configs/config.yaml @@ -0,0 +1,78 @@ +# ------------------------------------------------------------------------- +# This is the default spack configuration file. +# +# Settings here are versioned with Spack and are intended to provide +# sensible defaults out of the box. Spack maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# $SPACK_ROOT/etc/spack/config.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/config.yaml +# ------------------------------------------------------------------------- +config: + # This is the path to the root of the Spack install tree. + # You can use $spack here to refer to the root of the spack instance. + install_tree: $spack/opt/spack + + # Locations where templates should be found + template_dirs: + - $spack/templates + + # Locations where different types of modules should be installed. + module_roots: + tcl: $spack/share/spack/modules + lmod: $spack/share/spack/lmod + dotkit: $spack/share/spack/dotkit + + + # Temporary locations Spack can try to use for builds. + # + # Spack will use the first one it finds that exists and is writable. + # You can use $tempdir to refer to the system default temp directory + # (as returned by tempfile.gettempdir()). + # + # A value of $spack/var/spack/stage indicates that Spack should run + # builds directly inside its install directory without staging them in + # temporary space. + # + # The build stage can be purged with `spack purge --stage`. + build_stage: + - $tempdir + - /nfs/tmp2/$user + - $spack/var/spack/stage + + + # Cache directory already downloaded source tarballs and archived + # repositories. This can be purged with `spack purge --downloads`. + source_cache: $spack/var/spack/cache + + + # Cache directory for miscellaneous files, like the package index. + # This can be purged with `spack purge --misc-cache` + misc_cache: ~/.spack/cache + + + # If this is false, tools like curl that use SSL will not verify + # certifiates. (e.g., curl will use use the -k option) + verify_ssl: true + + + # If set to true, Spack will always check checksums after downloading + # archives. If false, Spack skips the checksum step. + checksum: true + + + # If set to true, `spack install` and friends will NOT clean + # potentially harmful variables from the build environment. Use wisely. + dirty: false + + + # The default number of jobs to use when running `make` in parallel. + # If set to 4, for example, `spack install` will run `make -j4`. + # If not set, all available cores are used by default. + # for uberenv, limit build_jobs to 8 + build_jobs: 8 diff --git a/scripts/uberenv/spack_configs/darwin/compilers.yaml b/scripts/uberenv/spack_configs/darwin/compilers.yaml new file mode 100644 index 000000000..96f16d6b0 --- /dev/null +++ b/scripts/uberenv/spack_configs/darwin/compilers.yaml @@ -0,0 +1,13 @@ +compilers: +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: elcapitan + paths: + cc: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang + cxx: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ + f77: /usr/local/bin/gfortran + fc: /usr/local/bin/gfortran + spec: clang@7.3.0-apple \ No newline at end of file diff --git a/scripts/uberenv/spack_configs/darwin/packages.yaml b/scripts/uberenv/spack_configs/darwin/packages.yaml new file mode 100644 index 000000000..b59b4a688 --- /dev/null +++ b/scripts/uberenv/spack_configs/darwin/packages.yaml @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------- +# This file controls default concretization preferences for Spack. +# +# Settings here are versioned with Spack and are intended to provide +# sensible defaults out of the box. Spack maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# $SPACK_ROOT/etc/spack/packages.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/packages.yaml +# ------------------------------------------------------------------------- +packages: + all: + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + awk: [gawk] + blas: [openblas] + daal: [intel-daal] + elf: [elfutils] + golang: [gcc] + ipp: [intel-ipp] + java: [jdk] + lapack: [openblas] + mkl: [intel-mkl] + mpe: [mpe2] + mpi: [openmpi, mpich] + opencl: [pocl] + openfoam: [openfoam-com, openfoam-org, foam-extend] + pil: [py-pillow] + scalapack: [netlib-scalapack] + szip: [libszip, libaec] + tbb: [intel-tbb] + jpeg: [libjpeg-turbo, libjpeg] +# CUDA standard MacOS install + cuda: + paths: + cuda@8.0: /Developer/NVIDIA/CUDA-8.0 + buildable: False \ No newline at end of file diff --git a/scripts/uberenv/spack_configs/toss_3_x86_64_ib/compilers.yaml b/scripts/uberenv/spack_configs/toss_3_x86_64_ib/compilers.yaml new file mode 100644 index 000000000..2b54d6008 --- /dev/null +++ b/scripts/uberenv/spack_configs/toss_3_x86_64_ib/compilers.yaml @@ -0,0 +1,41 @@ +compilers: +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ + f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran + spec: gcc@4.9.3 + target: x86_64 +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tce/packages/intel/intel-17.0.0/bin/icc + cxx: /usr/tce/packages/intel/intel-17.0.0/bin/icpc + f77: /usr/tce/packages/intel/intel-17.0.0/bin/ifort + fc: /usr/tce/packages/intel/intel-17.0.0/bin/ifort + spec: intel@17.0.0 + target: x86_64 +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tce/packages/clang/clang-3.9.0/bin/clang + cxx: /usr/tce/packages/clang/clang-3.9.0/bin/clang++ + f77: None + fc: None + spec: clang@3.9.0 + target: x86_64 + diff --git a/scripts/uberenv/spack_configs/toss_3_x86_64_ib/packages.yaml b/scripts/uberenv/spack_configs/toss_3_x86_64_ib/packages.yaml new file mode 100644 index 000000000..98ee85d3b --- /dev/null +++ b/scripts/uberenv/spack_configs/toss_3_x86_64_ib/packages.yaml @@ -0,0 +1,50 @@ + +# ------------------------------------------------------------------------- +# This file controls default concretization preferences for Spack. +# +# Settings here are versioned with Spack and are intended to provide +# sensible defaults out of the box. Spack maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# $SPACK_ROOT/etc/spack/packages.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/packages.yaml +# ------------------------------------------------------------------------- +packages: + all: + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + awk: [gawk] + blas: [openblas] + daal: [intel-daal] + elf: [elfutils] + golang: [gcc] + ipp: [intel-ipp] + java: [jdk] + lapack: [openblas] + mkl: [intel-mkl] + mpe: [mpe2] + mpi: [mvapich2] + opencl: [pocl] + openfoam: [openfoam-com, openfoam-org, foam-extend] + pil: [py-pillow] + scalapack: [netlib-scalapack] + szip: [libszip, libaec] + tbb: [intel-tbb] + jpeg: [libjpeg-turbo, libjpeg] +# LLNL toss3 CUDA + cuda: + paths: + cuda@8.0: /opt/cudatoolkit-8.0 + buildable: False +# LLNL toss3 mvapich2 + mvapich2: + paths: + mvapich2@2.2%gcc@4.9.3: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-4.9.3 + mvapich2@2.2%intel@17.0.0: /usr/tce/packages/mvapich2/mvapich2-2.2-intel-17.0.0 + mvapich2@2.2%clang@3.9.0: /usr/tce/packages/mvapich2/mvapich2-2.2-clang-3.9.0 + buildable: False diff --git a/scripts/uberenv/uberenv.py b/scripts/uberenv/uberenv.py index de3dbea4e..efb92e5c7 100755 --- a/scripts/uberenv/uberenv.py +++ b/scripts/uberenv/uberenv.py @@ -1,17 +1,17 @@ ############################################################################### -# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. +# Copyright (c) 2014-2015, Lawrence Livermore National Security, LLC. # # Produced at the Lawrence Livermore National Laboratory # -# LLNL-CODE-716457 +# LLNL-CODE-666778 # # All rights reserved. # -# This file is part of Ascent. +# This file is part of Conduit. # -# For details, see: http://software.llnl.gov/ascent/. +# For details, see https://lc.llnl.gov/conduit/. # -# Please also read ascent/LICENSE +# Please also read conduit/LICENSE # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -104,11 +104,11 @@ def parse_args(): default=False, help="Create spack mirror") # this option allows a user to explicitly to select a - # spack compilers.yaml - parser.add_option("--compilers-yaml", - dest="compilers_yaml", - default=pjoin(uberenv_script_dir(),"compilers.yaml"), - help="spack compiler settings file") + # group of spack settings files (compilers.yaml , packages.yaml) + parser.add_option("--spack-config-dir", + dest="spack_config_dir", + default=None, + help="dir with spack settings files (compilers.yaml, packages.yaml, etc)") # a file that holds settings for a specific project # using uberenv.py @@ -131,7 +131,8 @@ def parse_args(): # we want a dict b/c the values could # be passed without using optparse opts = vars(opts) - opts["compilers_yaml"] = os.path.abspath(opts["compilers_yaml"] ) + if not opts["spack_config_dir"] is None: + opts["spack_config_dir"] = os.path.abspath(opts["spack_config_dir"]) return opts, extras @@ -143,45 +144,94 @@ def load_json_file(json_file): # reads json file return json.load(open(json_file)) -def uberenv_compilers_yaml_file(opts): +def uberenv_detect_platform(): + # find supported sets of compilers.yaml, packages,yaml + res = None + if "darwin" in platform.system().lower(): + res = "darwin" + elif "SYS_TYPE" in os.environ.keys(): + sys_type = os.environ["SYS_TYPE"].lower() + res = sys_type + return res + +def uberenv_spack_config_dir(opts, uberenv_dir): # path to compilers.yaml, which we will for compiler setup for spack - compilers_yaml = opts["compilers_yaml"] - if not os.path.isfile(compilers_yaml): - print "[failed to find uberenv 'compilers.yaml' file: %s]" % compilers_yaml - sys.exit(-1) - return compilers_yaml + spack_config_dir = opts["spack_config_dir"] + if spack_config_dir is None: + uberenv_plat = uberenv_detect_platform() + if not uberenv_plat is None: + spack_config_dir = os.path.abspath(pjoin(uberenv_dir,"spack_configs",uberenv_plat)) + return spack_config_dir -def patch_spack(spack_dir,compilers_yaml,pkgs): - # force uberenv config +def disable_spack_config_scopes(spack_dir): + # disables all config scopes except "default", which we will + # force our settings into spack_lib_config = pjoin(spack_dir,"lib","spack","spack","config.py") - print "[disabling user config scope in: %s]" % spack_lib_config + print "[disabling config scope (except default) in: %s]" % spack_lib_config cfg_script = open(spack_lib_config).read() - src = "ConfigScope('user', os.path.expanduser('~/.spack'))" - cfg_script = cfg_script.replace(src, "#DISABLED BY UBERENV: " + src) + for cfg_scope_stmt in ["ConfigScope('system', _system_path)", + "ConfigScope('system/%s' % _platform, os.path.join(_system_path, _platform))", + "ConfigScope('site', _site_path)", + "ConfigScope('site/%s' % _platform, os.path.join(_site_path, _platform))", + "ConfigScope('user', _user_path)", + "ConfigScope('user/%s' % _platform, os.path.join(_user_path, _platform))"]: + cfg_script = cfg_script.replace(cfg_scope_stmt, + "#DISABLED BY UBERENV: " + cfg_scope_stmt) open(spack_lib_config,"w").write(cfg_script) - # copy in the compiler spec - print "[copying uberenv compiler specs]" - spack_etc = pjoin(spack_dir,"etc") - if not os.path.isdir(spack_etc): - os.mkdir(spack_etc) - spack_etc = pjoin(spack_etc,"spack") - if not os.path.isdir(spack_etc): - os.mkdir(spack_etc) - sexe("cp %s spack/etc/spack/compilers.yaml" % compilers_yaml, echo=True) - dest_spack_pkgs = pjoin(spack_dir,"var","spack","repos","builtin","packages") - # limit max number of build jobs to 8 - spack_build_env = pjoin(spack_dir,"lib","spack","spack","build_environment.py") - build_env_src = open(spack_build_env).read().replace("jobs = multiprocessing.cpu_count()", - "jobs = min(8,multiprocessing.cpu_count())") - open(spack_build_env,"w").write(build_env_src) +def patch_spack(spack_dir,uberenv_dir,cfg_dir,pkgs): + # force spack to use only default config scope + disable_spack_config_scopes(spack_dir) + spack_etc_defaults_dir = pjoin(spack_dir,"etc","spack","defaults") + # copy in default config.yaml + config_yaml = os.path.abspath(pjoin(uberenv_dir,"spack_configs","config.yaml")) + sexe("cp %s %s/" % (config_yaml, spack_etc_defaults_dir ), echo=True) + # copy in other settings per platform + if not cfg_dir is None: + print "[copying uberenv compiler and packages settings from %s]" % cfg_dir + + config_yaml = pjoin(cfg_dir,"config.yaml") + compilers_yaml = pjoin(cfg_dir,"compilers.yaml") + packages_yaml = pjoin(cfg_dir,"packages.yaml") + + if os.path.isfile(config_yaml): + sexe("cp %s %s/" % (config_yaml , spack_etc_defaults_dir ), echo=True) + + if os.path.isfile(compilers_yaml): + sexe("cp %s %s/" % (compilers_yaml, spack_etc_defaults_dir ), echo=True) + + if os.path.isfile(packages_yaml): + sexe("cp %s %s/" % (packages_yaml, spack_etc_defaults_dir ), echo=True) + dest_spack_pkgs = pjoin(spack_dir,"var","spack","repos","builtin","packages") # hot-copy our packages into spack sexe("cp -Rf %s %s" % (pkgs,dest_spack_pkgs)) +# def patch_spack_old(spack_dir,compilers_yaml,pkgs): +# # force uberenv config +# spack_lib_config = pjoin(spack_dir,"lib","spack","spack","config.py") +# print "[disabling user config scope in: %s]" % spack_lib_config +# cfg_script = open(spack_lib_config).read() +# src = "ConfigScope('user', os.path.expanduser('~/.spack'))" +# cfg_script = cfg_script.replace(src, "#DISABLED BY UBERENV: " + src) +# open(spack_lib_config,"w").write(cfg_script) +# # copy in the compiler spec +# print "[copying uberenv compiler specs]" +# spack_etc = pjoin(spack_dir,"etc") +# if not os.path.isdir(spack_etc): +# os.mkdir(spack_etc) +# spack_etc = pjoin(spack_etc,"spack") +# if not os.path.isdir(spack_etc): +# os.mkdir(spack_etc) +# sexe("cp %s spack/etc/spack/compilers.yaml" % compilers_yaml, echo=True) +# dest_spack_pkgs = pjoin(spack_dir,"var","spack","repos","builtin","packages") +# # hot-copy our packages into spack +# sexe("cp -Rf %s %s" % (pkgs,dest_spack_pkgs)) + + def create_spack_mirror(mirror_path,pkg_name,ignore_ssl_errors=False): """ Creates a spack mirror for pkg_name at mirror_path. @@ -255,10 +305,10 @@ def main(): print "[uberenv options: %s]" % str(opts) if "darwin" in platform.system().lower(): dep_tgt = platform.mac_ver()[0] - dep_tgt = dep_tgt[:dep_tgt.rfind(".")] env["MACOSX_DEPLOYMENT_TARGET"] = dep_tgt + dep_tgt = dep_tgt[:dep_tgt.rfind(".")] env["SDKROOT"] = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX" + str(dep_tgt) + ".sdk" - print "[setting MACOSX_DEPLOYMENT_TARGET to %s]" % dep_tgt + print "[setting MACOSX_DEPLOYMENT_TARGET to %s]" % env["MACOSX_DEPLOYMENT_TARGET"] print "[setting SDKROOT to %s]" % env[ "SDKROOT" ] # setup default spec if opts["spec"] is None: @@ -282,7 +332,7 @@ def main(): print "[info: destination '%s' already exists]" % dest_dir if os.path.isdir(dest_spack): print "[info: destination '%s' already exists]" % dest_spack - compilers_yaml = uberenv_compilers_yaml_file(opts) + # compilers_yaml = uberenv_compilers_yaml_file(opts) if not os.path.isdir(dest_spack): print "[info: cloning spack develop branch from github]" os.chdir(dest_dir) @@ -290,7 +340,7 @@ def main(): clone_cmd ="git " if opts["ignore_ssl_errors"]: clone_cmd +="-c http.sslVerify=false " - clone_cmd += "clone -b develop https://github.com/llnl/spack.git" + clone_cmd += "clone -b develop https://github.com/spack/spack.git" sexe(clone_cmd, echo=True) if "spack_develop_commit" in project_opts: sha1 = project_opts["spack_develop_commit"] @@ -300,7 +350,8 @@ def main(): os.chdir(dest_dir) # twist spack's arms - patch_spack(dest_spack, compilers_yaml, pkgs) + cfg_dir = uberenv_spack_config_dir(opts, uberenv_path) + patch_spack(dest_spack, uberenv_path, cfg_dir, pkgs) ########################################################## # we now have an instance of spack configured how we @@ -327,7 +378,14 @@ def main(): if opts["ignore_ssl_errors"]: install_cmd += "-k " install_cmd += "install " + uberenv_pkg_name + opts["spec"] - return sexe(install_cmd, echo=True) + res = sexe(install_cmd, echo=True) + if res != 0: + return res + if "spack_activate" in project_opts: + for pkg_name in project_opts["spack_activate"]: + activate_cmd = "spack/bin/spack activate " + pkg_name + sexe(activate_cmd, echo=True) + return res if __name__ == "__main__": sys.exit(main()) diff --git a/src/docs/sphinx/BuildingAscent.rst b/src/docs/sphinx/BuildingAscent.rst index fc9d388af..3507cf01a 100644 --- a/src/docs/sphinx/BuildingAscent.rst +++ b/src/docs/sphinx/BuildingAscent.rst @@ -342,12 +342,14 @@ Here is an example of specifying system MPI and CUDA on an LLNL Chaos 5 machine: cuda@8.0: /opt/cudatoolkit-8.0 buildable: False # LLNL chaos5 mvapich for gcc - mvapich: + mvapich2: paths: - mvapich@2: /usr/local/tools/mvapich2-gnu-2.0/ + mvapich2@2: /usr/local/tools/mvapich2-gnu-2.0/ buildable: False - +Settings for GCC 4.9.3 on LLNL Chaos 5 Systems: + * :download:`compilers.yaml ` + * :download:`packages.yaml ` Using Ascent in Another Project diff --git a/src/docs/sphinx/spack_configs b/src/docs/sphinx/spack_configs new file mode 120000 index 000000000..81ba11e20 --- /dev/null +++ b/src/docs/sphinx/spack_configs @@ -0,0 +1 @@ +../../../scripts/uberenv/spack_configs \ No newline at end of file diff --git a/src/examples/docker/ubuntu/Dockerfile b/src/examples/docker/ubuntu/Dockerfile index 8f2a69ce7..fa700afe8 100644 --- a/src/examples/docker/ubuntu/Dockerfile +++ b/src/examples/docker/ubuntu/Dockerfile @@ -55,6 +55,7 @@ RUN apt-get update && apt-get install -y \ gfortran \ zlib1g-dev \ python \ + unzip \ && rm -rf /var/lib/apt/lists/* @@ -74,8 +75,11 @@ RUN tar -xzf ascent.docker.src.tar.gz #RUN echo insecure >> ~/.curlrc # bootstrap third party libs using spack and uberenv -# for this example we use mpich for MPI -RUN cd ascent && python scripts/uberenv/uberenv.py -k --spec %gcc+mpich~doc +# for this example we use mpich for MPI b/c openmpi's mpiexec +# will not run for the root user, also avoid mpi4py after 2.0, +# since it reqs cython and cython's src tarball has perms set +# in a way that fails in docker +RUN cd ascent && python scripts/uberenv/uberenv.py -k --spec "%gcc+mpi~doc~adios ^mpich" # configure a debug build with cmake RUN cd ascent && mkdir build-debug diff --git a/src/flow/flow_filter.cpp b/src/flow/flow_filter.cpp index ffd70dc6a..e775eeb6f 100644 --- a/src/flow/flow_filter.cpp +++ b/src/flow/flow_filter.cpp @@ -133,6 +133,23 @@ Filter::init(Graph *g, m_graph = g; m_props["name"] = name; declare_interface(interface()); + + Node &n_iface = properties()["interface"]; + + // we need to fill in any missing props that + // interface may const fetch + + if( !n_iface.has_child("default_params") ) + { + n_iface["default_params"] = DataType::empty(); + } + + if( !n_iface.has_child("port_names") ) + { + n_iface["port_names"] = DataType::empty(); + } + + params().update(default_params()); params().update(p); }