From 8671ac6a1aa4cb40e31b8b1e08f0986ab23df15c Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Sat, 9 May 2020 10:28:33 -0700 Subject: update visit package with 3.1.1 release and add comments (#16498) --- var/spack/repos/builtin/packages/visit/package.py | 150 ++++++++++++++++++++- .../packages/visit/spack-changes-3.0.1.patch | 22 +++ .../builtin/packages/visit/spack-changes-3.1.patch | 11 ++ .../builtin/packages/visit/spack-changes.patch | 22 --- 4 files changed, 176 insertions(+), 29 deletions(-) create mode 100644 var/spack/repos/builtin/packages/visit/spack-changes-3.0.1.patch create mode 100644 var/spack/repos/builtin/packages/visit/spack-changes-3.1.patch delete mode 100644 var/spack/repos/builtin/packages/visit/spack-changes.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py index aa791284c0..cd72bcda2c 100644 --- a/var/spack/repos/builtin/packages/visit/package.py +++ b/var/spack/repos/builtin/packages/visit/package.py @@ -8,10 +8,44 @@ from spack import * class Visit(CMakePackage): """VisIt is an Open Source, interactive, scalable, visualization, - animation and analysis tool.""" + animation and analysis tool. See comments in VisIt's package.py + for tips about building VisIt with spack. + """ + ############################ + # Suggestions for building: + ############################ + # cyrush note: + # + # Out of the box, VisIt's python 2 requirement will cause + # spack spec constraint errors due Qt + Mesa build + # dependencies. + # + # You can avoid this using: + # + # linux: + # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 + # + # macOS: + # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \ + # ^qt~framework + # + # Rpath issues undermine qwt (not qt) when a build as a framework + # VisIt's osxfixup resolves this for us in other cases, + # but we can't use osxfixup with spack b/c it will undermine other libs. + # + # Even with these changes, VisIt's Python CLI does not work on macOS, + # there is a linking issue related to OpenSSL. + # (dyld: Symbol not found: _GENERAL_NAME_free - which comes from OpenSSL) + # + ############################ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/" - url = "https://portal.nersc.gov/project/visit/releases/3.0.1/visit3.0.1.tar.gz" + git = "https://github.com/visit-dav/visit.git" + url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz" + maintainers = ['cyrush'] + + version('develop', branch='develop') + version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0') version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd') version('2.13.3', sha256='cf0b3d2e39e1cd102dd886d3ef6da892733445e362fc28f24d9682012cccf2e5') version('2.13.0', sha256='716644b8e78a00ff82691619d4d1e7a914965b6535884890b667b97ba08d6a0f') @@ -28,19 +62,109 @@ class Visit(CMakePackage): variant('python', default=True, description='Enable Python support') variant('mpi', default=True, description='Enable parallel engine') - patch('spack-changes.patch') + patch('spack-changes-3.1.patch', when="@3.1.0:,develop") + patch('spack-changes-3.0.1.patch', when="@3.0.1") patch('nonframework-qwt.patch', when='^qt~framework platform=darwin') patch('parallel-hdf5.patch', when='+hdf5+mpi') + ############################################# + # Full List of dependencies from build_visit + ############################################# + # cyrush note: + # I added these here to give folks details + # to help eventually build up to full + # support for visit + ############################################# + # ===================================== + # core: + # ===================================== + # cmake (build) + # vtk + # qt + # qwt + # python + # mpi + # + # ===================================== + # rendering (optional): + # ===================================== + # icet + # vtk-m + # vtk-h + # llvm + # mesagl + # osmesa + # tbb + # embree + # ispc + # ospray + # + # ===================================== + # python modules: + # ===================================== + # numpy + # pillow + # mpi4py + # seedme + # sphinx (build, docs) + # sphinx rtd theme (build, docs) + # pyqt (visit support deprecated) + # pyside (note: we want pyside 2) + # + # ===================================== + # testing related: + # ===================================== + # p7zip (build, test) + # + # ===================================== + # io libs: + # ===================================== + # adios + # adios2 + # advio + # boost + # boxlib + # cfitsio + # cgns + # conduit + # damaris + # fastbit + # fastquery + # gdal + # h5part + # hdf4 + # hdf5 + # mdsplus + # mfem + # mili + # moab + # mxml + # nektarpp + # netcdf + # openexr + # pidx + # silo + # stripack + # szip + # tbb + # uintah + # xdmf + # xercesc + # xsd + # zlib + # + # ===================================== + depends_on('cmake@3.0:', type='build') # https://github.com/visit-dav/visit/issues/3498 - depends_on('vtk@8.1.0:8.1.999+opengl2', when='@3.0:3.0.1') + depends_on('vtk@8.1.0:8.1.999+opengl2~python', when='~python @3.0:3.999,develop') + depends_on('vtk@8.1.0:8.1.999+opengl2+python', when='+python @3.0:3.999,develop') depends_on('vtk@6.1.0~opengl2', when='@:2.999') - depends_on('vtk+python', when='+python @3.0:') + depends_on('vtk+python', when='+python @3.0:,develop') depends_on('vtk~mpi', when='~mpi') depends_on('vtk+qt', when='+gui') depends_on('qt@4.8.6:4.999', when='+gui @:2.999') - depends_on('qt@5.10:', when='+gui @3.0:') + depends_on('qt@5.10:', when='+gui @3.0:,develop') depends_on('qwt', when='+gui') depends_on('python@2.6:2.8', when='+python') # VisIt uses Silo's 'ghost zone' data structures, which are only available @@ -59,7 +183,7 @@ class Visit(CMakePackage): root_cmakelists_dir = 'src' - @when('@3.0.0:3.0.1') + @when('@3.0.0:3.999,develop') def patch(self): # Some of VTK's targets don't create explicit libraries, so there is no # 'vtktiff'. Instead, replace with the library variable defined from @@ -90,8 +214,20 @@ class Visit(CMakePackage): '-DCMAKE_C_FLAGS=' + ' '.join(cc_flags), ] + if spec.satisfies('@3.1:'): + args.append('-DFIXUP_OSX=OFF') + if '+python' in spec: + args.append('-DVISIT_PYTHON_SCRIPTING=ON') + # keep this off, we have an openssl + python linking issue + # that appears in spack + args.append('-DVISIT_PYTHON_FILTERS=OFF') args.append('-DPYTHON_DIR:PATH={0}'.format(spec['python'].home)) + else: + args.append('-DVISIT_PYTHON_SCRIPTING=OFF') + # keep this off, we have an openssl + python linking issue + # that appears in spack + args.append('-DVISIT_PYTHON_FILTERS=OFF') if '+gui' in spec: qt_bin = spec['qt'].prefix.bin diff --git a/var/spack/repos/builtin/packages/visit/spack-changes-3.0.1.patch b/var/spack/repos/builtin/packages/visit/spack-changes-3.0.1.patch new file mode 100644 index 0000000000..e6cc810bf2 --- /dev/null +++ b/var/spack/repos/builtin/packages/visit/spack-changes-3.0.1.patch @@ -0,0 +1,22 @@ +--- a/src/CMakeLists.txt 2019-08-11 17:06:04.000000000 -0400 ++++ b/src/CMakeLists.txt 2019-08-11 17:06:20.000000000 -0400 +@@ -459,6 +459,7 @@ + cmake_policy(SET CMP0033 OLD) + cmake_policy(SET CMP0057 NEW) + cmake_policy(SET CMP0062 NEW) ++ cmake_policy(SET CMP0068 NEW) + IF(WIN32) + # don't automatically link with qtmain + cmake_policy(SET CMP0020 OLD) +@@ -2271,11 +2272,6 @@ + # COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/osxfixup/osxfixup.py \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${VISIT_INSTALLED_VERSION} @executable_path/.. 3) + #ADD_DEPENDENCIES(osxfixup install) + +-# todo: replace below with lines above +-IF(APPLE) +- ADD_SUBDIRECTORY(osxfixup) +-ENDIF(APPLE) +- + IF (NOT WIN32) + MESSAGE(STATUS "\n\nUse recmake_visit.sh or search for `CMAKE_INVOKE' in CMakeCache.txt to re-run CMake with the same arguments\n\n") + ELSE (NOT WIN32) diff --git a/var/spack/repos/builtin/packages/visit/spack-changes-3.1.patch b/var/spack/repos/builtin/packages/visit/spack-changes-3.1.patch new file mode 100644 index 0000000000..def9ebcb4a --- /dev/null +++ b/var/spack/repos/builtin/packages/visit/spack-changes-3.1.patch @@ -0,0 +1,11 @@ +--- a/src/CMakeLists.txt 2019-08-11 17:06:04.000000000 -0400 ++++ b/src/CMakeLists.txt 2019-08-11 17:06:20.000000000 -0400 +@@ -459,6 +459,7 @@ + cmake_policy(SET CMP0033 OLD) + cmake_policy(SET CMP0057 NEW) + cmake_policy(SET CMP0062 NEW) ++ cmake_policy(SET CMP0068 NEW) + IF(WIN32) + # don't automatically link with qtmain + cmake_policy(SET CMP0020 OLD) + diff --git a/var/spack/repos/builtin/packages/visit/spack-changes.patch b/var/spack/repos/builtin/packages/visit/spack-changes.patch deleted file mode 100644 index e6cc810bf2..0000000000 --- a/var/spack/repos/builtin/packages/visit/spack-changes.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/src/CMakeLists.txt 2019-08-11 17:06:04.000000000 -0400 -+++ b/src/CMakeLists.txt 2019-08-11 17:06:20.000000000 -0400 -@@ -459,6 +459,7 @@ - cmake_policy(SET CMP0033 OLD) - cmake_policy(SET CMP0057 NEW) - cmake_policy(SET CMP0062 NEW) -+ cmake_policy(SET CMP0068 NEW) - IF(WIN32) - # don't automatically link with qtmain - cmake_policy(SET CMP0020 OLD) -@@ -2271,11 +2272,6 @@ - # COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/osxfixup/osxfixup.py \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${VISIT_INSTALLED_VERSION} @executable_path/.. 3) - #ADD_DEPENDENCIES(osxfixup install) - --# todo: replace below with lines above --IF(APPLE) -- ADD_SUBDIRECTORY(osxfixup) --ENDIF(APPLE) -- - IF (NOT WIN32) - MESSAGE(STATUS "\n\nUse recmake_visit.sh or search for `CMAKE_INVOKE' in CMakeCache.txt to re-run CMake with the same arguments\n\n") - ELSE (NOT WIN32) -- cgit v1.2.3-70-g09d2