From c41b591b301c4afbeed8ba038643ed6925633bd8 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 2 Oct 2019 17:14:45 +0200 Subject: [PATCH] COMP: adjust makeParaView for paraview-5.7.0 (uses python3) --- BUILD.md | 26 +++++++------------- etc/patches/scotch_6.0.7 | 48 +++++++++++++++++++++++++++++++++++++ etc/tools/ParaViewFunctions | 26 +++++++++++++------- makeParaView | 21 ++++++++++++++-- 4 files changed, 93 insertions(+), 28 deletions(-) create mode 100644 etc/patches/scotch_6.0.7 diff --git a/BUILD.md b/BUILD.md index c035b94..8378a77 100644 --- a/BUILD.md +++ b/BUILD.md @@ -154,9 +154,8 @@ export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$mp #### Optional Components -`makeAdios1` `makeAdios2` -- Only required for [ADIOS](#parallel) support, - which is currently staged in the [add-ons repository][link AddOns]. +`makeAdios2` +- Only required for [ADIOS](#parallel) support. `makeCGAL` - Builds [boost](#general-packages) and [CGAL](#general-packages). @@ -298,15 +297,6 @@ may not be important for you): #### 5.3.0 and older are neither recommended nor supported - Various compilation issues and known bugs. -### ADIOS -- The github release currently requires GNU autoconf tools (eg, - autoconf, autoheader, automake) for its configuration. -- Some inconsistency in directory names (ADIOS vs. adios) between releases. -- Optionally uses bzip2, zlib development headers (eg, libbz2-devel, zlib-devel) - for the corresponding compression tranforms. -- The [zfp floating point compression][page zfp] library is now included as - part of ADIOS. - ### Making Qt - Building a third-party Qt installation (prior to building ParaView) requires some additional effort, but should nonetheless work smoothly. @@ -409,7 +399,7 @@ you may have additional hurdles to using the newest versions of clang. |-----------------------|------------------------ | [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues. | [adios][page adios] | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios] -| [scotch, ptscotch][page scotch] | [download][link scotch] or [newer][newer scotch] +| [scotch, ptscotch][page scotch] | [download][link scotch] or [older][older scotch] | [kahip][page kahip] | [download][link kahip] or [newer][newer kahip] | [metis][page metis] | [download][link metis] @@ -502,13 +492,14 @@ easier to use `grep` and find the relevant pages and links. [page adios]: https://www.olcf.ornl.gov/center-projects/adios/ [repo adios]: https://github.com/ornladios/ADIOS -[link adios]: https://github.com/ornladios/ADIOS/archive/v1.13.1.tar.gz +[link adios]: https://github.com/ornladios/ADIOS2/archive/v2.5.0.tar.gz [altlink adios]: http://users.nccs.gov/~pnorbert/adios-1.13.1.tar.gz + [page zfp]: http://computation.llnl.gov/projects/floating-point-compression/zfp-versions [page scotch]: https://www.labri.fr/perso/pelegrin/scotch/ -[link scotch]: https://gforge.inria.fr/frs/download.php/file/37622/scotch_6.0.6.tar.gz -[newer scotch]: https://gforge.inria.fr/frs/download.php/file/38040/scotch_6.0.7.tar.gz +[older scotch]: https://gforge.inria.fr/frs/download.php/file/37622/scotch_6.0.6.tar.gz +[link scotch]: https://gforge.inria.fr/frs/download.php/file/38040/scotch_6.0.7.tar.gz [page kahip]: http://algo2.iti.kit.edu/documents/kahip/ [link kahip]: http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz @@ -558,7 +549,8 @@ easier to use `grep` and find the relevant pages and links. [download ParaView]: https://www.paraview.org/download/ [link ParaView54]: http://www.paraview.org/files/v5.4/ParaView-v5.4.1.tar.gz [link ParaView55]: http://www.paraview.org/files/v5.5/ParaView-v5.5.2.tar.gz -[link ParaView]: http://www.paraview.org/files/v5.6/ParaView-v5.6.0.tar.gz +[link ParaView56]: http://www.paraview.org/files/v5.6/ParaView-v5.6.0.tar.gz +[link ParaView]: http://www.paraview.org/files/v5.6/ParaView-v5.7.0.tar.gz [page mesa]: http://mesa3d.org/ [link mesa]: ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz diff --git a/etc/patches/scotch_6.0.7 b/etc/patches/scotch_6.0.7 new file mode 100644 index 0000000..4ff5aa2 --- /dev/null +++ b/etc/patches/scotch_6.0.7 @@ -0,0 +1,48 @@ +--- scotch_6.0.6/src/libscotch/Makefile.orig 2019-04-29 14:59:53.957103493 +0200 ++++ scotch_6.0.6/src/libscotch/Makefile 2019-04-29 18:50:42.560080675 +0200 +@@ -51,6 +51,12 @@ + + .PHONY : ptscotch scotch ptinstall install clean realclean + ++ifeq ($(WM_OSTYPE),MSwindows) ++ ++libscotch : libscotch$(LIB) scotch.h ++ ++endif ++ + scotch : + $(MAKE) CC="$(CCS)" CCD="$(CCS)" \ + scotch.h \ +@@ -438,6 +444,11 @@ + wgraph_part_zr$(OBJ) \ + wgraph_store$(OBJ) + ++ifeq ($(WM_OSTYPE),MSwindows) ++## Add into libscotch instead of having a separate library ++LIBSCOTCHDEPS += library_error_exit$(OBJ) ++endif ++ + ## + ## Todo list. + ## +--- scotch_6.0.6/src/Makefile.orig 2018-07-14 17:24:49.000000000 +0200 ++++ scotch_6.0.6/src/Makefile 2019-04-29 18:39:16.365132864 +0200 +@@ -89,9 +89,18 @@ + $(mandir)/man1 : $(mandir) + -$(MKDIR) $(mandir)/man1 + ++ifeq ($(WM_OSTYPE),MSwindows) ++ ++libscotch : required ++ (cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) libscotch && $(MAKE) install) ++ ++else ++ + libscotch : required + (cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install) + ++endif ++ + scotch : libscotch + (cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install) + (cd libscotchmetis ; $(MAKE) scotch && $(MAKE) install) diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index bd73808..077bf84 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -2,7 +2,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 2016-2019 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------ # | Copyright (C) 2011-2016 OpenFOAM Foundation @@ -18,8 +18,7 @@ # ParaView make/install helper functions # # Note -# Obtaining paths via 'python-config' is possible, but may not always -# resolve properly: +# Obtaining paths via 'python-config' may not always resolve properly: # # python-config --includes # >> @@ -38,6 +37,7 @@ unset withMPI MPI_MAX_PROCS unset withQT QT_VERSION QMAKE_PATH unset withMESA MESA_INCLUDE MESA_LIBRARY withOSMESA unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY +unset withPYTHON3 unset withGL2 BUILD_TYPE=Release # The cmake build type @@ -166,9 +166,17 @@ addPythonSupport() return fi - local pythonBin pythonConfig pythonMajor + local pythonBin="python" + local pythonConfig="python-config" + local pythonMajor - pythonBin=$(which python 2>/dev/null) || { + if [ "$withPYTHON3" = true ] + then + pythonBin="python3" + pythonConfig="python3-config" + fi + + pythonBin=$(which "$pythonBin" 2>/dev/null) || { echo "*** Error: python not found" echo "*** Deactivate python support by not using the -python " echo "*** option" @@ -187,7 +195,7 @@ addPythonSupport() # Fallback: get PYTHON_LIBRARY from dynamically linked binary - PYTHON_LIBRARY=$(ldd $pythonBin | \ + PYTHON_LIBRARY=$(ldd "$pythonBin" | \ sed -ne '/libpython/s/^.* => \(.*\) (.*/\1/p') [ -e "$PYTHON_LIBRARY" ] || { @@ -205,7 +213,7 @@ addPythonSupport() } # Guess major from library - pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/') + pythonMajor=$(echo "$PYTHON_LIBRARY" | sed 's/.*libpython\(.*\)\.so.*/\1/') if [ -n "$PYTHON_INCLUDE" ] then @@ -215,12 +223,12 @@ addPythonSupport() echo "*** Error: Python.h not found at location specified " \ "by -python-include : PYTHON_INCLUDE=$PYTHON_INCLUDE" - elif pythonConfig=$(which python-config 2>/dev/null) + elif pythonConfig=$(which "$pythonConfig" 2>/dev/null) then # Guess from python-config # parse '-I/usr/include/python2.7 -I/usr/include/python2.7' # -> '/usr/include/python2.7' - PYTHON_INCLUDE=$(python-config --includes | sed -ne 's/^-I\([^ ][^ ]*\).*$/\1/p') + PYTHON_INCLUDE=$("$pythonConfig" --includes | sed -ne 's/^-I\([^ ][^ ]*\).*$/\1/p') else diff --git a/makeParaView b/makeParaView index 243200e..963f4f1 100755 --- a/makeParaView +++ b/makeParaView @@ -82,7 +82,8 @@ options: -mesa-lib PATH path to mesa library (current: ${MESA_LIBRARY:-none}) -mpi with mpi -mpi=N with max 'N' mpi processes. N=0 for no upper-limit. - -python with python + -python | -python2 | -python3 + with python -python-include DIR location of python headers (current: ${PYTHON_INCLUDE:-none}) -python-lib PATH path to python library (current: ${PYTHON_LIBRARY:-none}) @@ -234,8 +235,14 @@ do -python) withPYTHON=true ;; + -python2) + withPYTHON=true; withPYTHON3=false + ;; + -python3) + withPYTHON=true; withPYTHON3=true + ;; -no-python) - withPYTHON=false + withPYTHON=false; unset withPYTHON3 ;; -python-include) [ "$#" -ge 2 ] || die "'$1' option requires an argument" @@ -319,6 +326,16 @@ then fi fi +# ParaView-5.7.0 default is python3 +if [ "$withPYTHON" = true ] && [ -z "$withPYTHON3" ] +then + case "${ParaView_VERSION}" in + (5.[7-9]* | [6-9]* | [1-9][0-9].*) + withPYTHON3=true + ;; + esac +fi + if [ "$runDEFAULT" = true ] then : ${runPATCH:=true}