diff options
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 20 | ||||
-rw-r--r-- | ParaView-4.2.0.patch | 1373 | ||||
-rw-r--r-- | gcc49.patch (renamed from patch-gcc49.diff) | 0 | ||||
-rw-r--r-- | uint.patch (renamed from patch-uint.diff) | 0 |
5 files changed, 1393 insertions, 14 deletions
@@ -1,6 +1,6 @@ pkgbase = paraview-salome pkgdesc = Parallel Visualization Application using VTK - This version is built to be linked against salome modules - pkgver = 4.3.1 + pkgver = 4.2.0 pkgrel = 1 url = http://www.paraview.org arch = i686 @@ -27,18 +27,20 @@ pkgbase = paraview-salome depends = protobuf optdepends = python2-matplotlib: Needed to support equation rendering using MathText markup language optdepends = python2-numpy: Needed for using some filters such as "Python Calculator" - provides = paraview=4.3.1 + provides = paraview=4.2.0 options = staticlibs - source = http://paraview.org/files/v4.3/ParaView-v4.3.1-source.tar.gz + source = http://paraview.org/files/v4.2/ParaView-v4.2.0-source.tar.gz source = paraview-salome.png source = paraview-salome.desktop - source = patch-uint.diff - source = patch-gcc49.diff - md5sums = d03d3ab504037edd21306413dff64293 + source = uint.patch + source = gcc49.patch + source = ParaView-4.2.0.patch + md5sums = 77cf0e3804eb7bb91d2d94b10bd470f4 md5sums = db623002bc71a257ddfdd0c9c7b14c3f md5sums = e3ba22be644f91da7018f429c3b7dd39 md5sums = e034fc590bd332175dcd6bf126f14d97 md5sums = 12fa547d0c79ea6a780279712574a5fe + md5sums = 3e4c48633eb337c42653f51e6112f347 pkgname = paraview-salome @@ -5,7 +5,7 @@ # Contributor: Simon Zilliken <simon____AT____zilliken____DOT____name> pkgname=paraview-salome -pkgver=4.3.1 +pkgver=4.2.0 pkgrel=1 pkgdesc='Parallel Visualization Application using VTK - This version is built to be linked against salome modules' arch=('i686' 'x86_64') @@ -14,7 +14,7 @@ license=('custom') depends=('qtwebkit' 'openmpi' 'python2' 'ffmpeg-compat' 'boost' 'libcgns-paraview' 'expat' 'freetype2' 'hdf5' 'libjpeg' 'libxml2' 'libtheora' 'libpng' 'libtiff' 'zlib' 'protobuf') makedepends=('cmake' 'mesa' 'eigen3') optdepends=('python2-matplotlib: Needed to support equation rendering using MathText markup language' 'python2-numpy: Needed for using some filters such as "Python Calculator"') -source=("http://paraview.org/files/v${pkgver:0:3}/ParaView-v${pkgver}-source.tar.gz" "${pkgname}.png" "${pkgname}.desktop" "patch-uint.diff" "patch-gcc49.diff") +source=("http://paraview.org/files/v${pkgver:0:3}/ParaView-v${pkgver}-source.tar.gz" "${pkgname}.png" "${pkgname}.desktop" "uint.patch" "gcc49.patch" "ParaView-4.2.0.patch") options=(staticlibs) provides=("paraview=${pkgver}") @@ -25,11 +25,14 @@ _installdir=/usr prepare(){ cd "${srcdir}/ParaView-v${pkgver}-source" - # patch to solve uint conversion to int - patch -Np1 -i "${srcdir}/patch-gcc49.diff" + # patch to solve gcc49 compatiblity + patch -Np1 -i "${srcdir}/gcc49.patch" # patch to solve uint conversion to int - patch -Np1 -i "${srcdir}/patch-uint.diff" + patch -Np1 -i "${srcdir}/uint.patch" + + # patch to solve uint conversion to int + patch -Np1 -i "${srcdir}/ParaView-4.2.0.patch" } build() { @@ -100,7 +103,7 @@ package() { cd "${srcdir}" #Install missing cmake file - for _FILE in TopologicalSort.cmake VTKTargets.cmake + for _FILE in TopologicalSort.cmake do install -Dm644 `find ./ -name ${_FILE}` "${pkgdir}${_installdir}/lib/cmake/paraview-${pkgver:0:3}/" done @@ -130,8 +133,9 @@ package() { done sed -e "s|${srcdir}/ParaView-v${pkgver}/CMake|${_installdir}/lib/CMake|" -i ParaViewConfig.cmake } -md5sums=('d03d3ab504037edd21306413dff64293' +md5sums=('77cf0e3804eb7bb91d2d94b10bd470f4' 'db623002bc71a257ddfdd0c9c7b14c3f' 'e3ba22be644f91da7018f429c3b7dd39' 'e034fc590bd332175dcd6bf126f14d97' - '12fa547d0c79ea6a780279712574a5fe') + '12fa547d0c79ea6a780279712574a5fe' + '3e4c48633eb337c42653f51e6112f347') diff --git a/ParaView-4.2.0.patch b/ParaView-4.2.0.patch new file mode 100644 index 000000000000..843a06844e0b --- /dev/null +++ b/ParaView-4.2.0.patch @@ -0,0 +1,1373 @@ +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/CMakeLists.txt ParaView-4.2.0_SRC.new/CMakeLists.txt +--- ParaView-4.2.0_SRC/CMakeLists.txt 2014-09-23 18:46:43.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/CMakeLists.txt 2014-12-19 15:39:41.000000000 +0300 +@@ -543,8 +543,8 @@ + + #---------------------------------------------------------------------------------- + # Set some flags that affect VTK's modules. +- set (VTK_NO_PYTHON_THREADS 1 CACHE INTERNAL +- "Disable Python Threads support" FORCE) ++ set (VTK_NO_PYTHON_THREADS ON CACHE BOOL ++ "Disable Python Threads support") + set(VTK_WRAP_PYTHON ${PARAVIEW_ENABLE_PYTHON} + CACHE INTERNAL "Should VTK Python wrapping be built?" FORCE) + +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx +--- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -100,7 +100,9 @@ + namespace { + bool hasModule(const char *module) + { ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject mod(PyImport_ImportModule(module)); ++ VTK_PY_GIL_RELEASE + bool result = mod; + return result; + } +@@ -108,11 +110,13 @@ + // Returns empty string on error. + std::string getModuleAttrAsString(const char *module, const char *attribute) + { ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject mod(PyImport_ImportModule(module)); + if (!mod) + { + std::ostringstream result; + result << "(module '" << module << "' not found)"; ++ VTK_PY_GIL_RELEASE + return result.str(); + } + +@@ -122,11 +126,13 @@ + std::ostringstream result; + result << "('" << module << "' module found, missing '" << attribute + << "' attribute)"; ++ VTK_PY_GIL_RELEASE + return result.str(); + } + + std::string result = PyBytes_AsString(attr); + ++ VTK_PY_GIL_RELEASE + return result; + } + +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkSession.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkSession.cxx +--- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkSession.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkSession.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -30,13 +30,15 @@ + //---------------------------------------------------------------------------- + void vtkSession::Activate() + { +- vtkProcessModule::GetProcessModule()->PushActiveSession(this); ++ if(vtkProcessModule::GetProcessModule()) ++ vtkProcessModule::GetProcessModule()->PushActiveSession(this); + } + + //---------------------------------------------------------------------------- + void vtkSession::DeActivate() + { +- vtkProcessModule::GetProcessModule()->PopActiveSession(this); ++ if(vtkProcessModule::GetProcessModule()) ++ vtkProcessModule::GetProcessModule()->PopActiveSession(this); + } + + //---------------------------------------------------------------------------- +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx +--- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -172,6 +172,7 @@ + if (geomFilter) + { + geomFilter->SetUseOutline(0); ++ geomFilter->SetTriangulate(0); + geomFilter->SetNonlinearSubdivisionLevel(1); + geomFilter->SetPassThroughCellIds(1); + geomFilter->SetPassThroughPointIds(1); +@@ -236,7 +237,7 @@ + vtkPVRenderView::MarkAsRedistributable(inInfo, this); + + // Tell the view if this representation needs ordered compositing. We need +- // ordered compositing when rendering translucent geometry. ++ // ordered compositing when rendering translucent geometry. + if (this->Actor->HasTranslucentPolygonalGeometry()) + { + // We need to extend this condition to consider translucent LUTs once we +@@ -270,7 +271,7 @@ + this->LODOutlineFilter->Update(); + // Pass along the LOD geometry to the view so that it can deliver it to + // the rendering node as and when needed. +- vtkPVRenderView::SetPieceLOD(inInfo, this, ++ vtkPVRenderView::SetPieceLOD(inInfo, this, + this->LODOutlineFilter->GetOutputDataObject(0)); + } + else +@@ -290,7 +291,7 @@ + + // Pass along the LOD geometry to the view so that it can deliver it to + // the rendering node as and when needed. +- vtkPVRenderView::SetPieceLOD(inInfo, this, ++ vtkPVRenderView::SetPieceLOD(inInfo, this, + this->Decimator->GetOutputDataObject(0)); + } + } +@@ -780,6 +781,19 @@ + } + + //---------------------------------------------------------------------------- ++void vtkGeometryRepresentation::SetTriangulate(int val) ++{ ++ if (vtkPVGeometryFilter::SafeDownCast(this->GeometryFilter)) ++ { ++ vtkPVGeometryFilter::SafeDownCast(this->GeometryFilter)->SetTriangulate(val); ++ } ++ ++ // since geometry filter needs to execute, we need to mark the representation ++ // modified. ++ this->MarkModified(); ++} ++ ++//---------------------------------------------------------------------------- + void vtkGeometryRepresentation::SetNonlinearSubdivisionLevel(int val) + { + if (vtkPVGeometryFilter::SafeDownCast(this->GeometryFilter)) +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h +--- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h 2014-12-19 15:39:41.000000000 +0300 +@@ -19,7 +19,7 @@ + // It handles non-polygonal datasets by extracting external surfaces. One can + // use this representation to show surface/wireframe/points/surface-with-edges. + // .SECTION Thanks +-// The addition of a transformation matrix was supported by CEA/DIF ++// The addition of a transformation matrix was supported by CEA/DIF + // Commissariat a l'Energie Atomique, Centre DAM Ile-De-France, Arpajon, France. + + #ifndef __vtkGeometryRepresentation_h +@@ -109,7 +109,7 @@ + // Description: + // Returns true if this class would like to get ghost-cells if available for + // the connection whose information object is passed as the argument. +- static bool DoRequestGhostCells(vtkInformation* information); ++ static bool DoRequestGhostCells(vtkInformation* information); + + // Description: + // Representations that use geometry representation as the internal +@@ -122,6 +122,7 @@ + //*************************************************************************** + // Forwarded to vtkPVGeometryFilter + virtual void SetUseOutline(int); ++ void SetTriangulate(int); + void SetNonlinearSubdivisionLevel(int); + + //*************************************************************************** +@@ -145,7 +146,7 @@ + virtual void SetPosition(double, double, double); + virtual void SetScale(double, double, double); + virtual void SetTexture(vtkTexture*); +- virtual void SetUserTransform(const double[16]); ++ virtual void SetUserTransform(const double[16]); + + //*************************************************************************** + // Forwarded to Mapper and LODMapper. +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx +--- ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -69,6 +69,7 @@ + #ifdef PARAVIEW_ENABLE_PYTHON + // ensure Python interpreter is initialized. + vtkPythonInterpreter::Initialize(); ++ VTK_PY_GIL_ENSURE + this->Internals->TraceModule.TakeReference(PyImport_ImportModule("paraview.smtrace")); + if (!this->Internals->TraceModule) + { +@@ -92,6 +93,7 @@ + this->Internals->CreateItemFunction.TakeReference(NULL); + } + } ++ VTK_PY_GIL_RELEASE + #endif + } + +@@ -115,12 +117,15 @@ + + #ifdef PARAVIEW_ENABLE_PYTHON + vtkPythonInterpreter::Initialize(); ++ VTK_PY_GIL_ENSURE + try + { ++ + vtkSmartPyObject module(PyImport_ImportModule("paraview.smstate")); + if (!module || PyErr_Occurred()) + { + vtkGenericWarningMacro("Failed to import paraview.smstate module."); ++ VTK_PY_GIL_RELEASE + throw 1; + } + +@@ -132,9 +137,12 @@ + if (!result || PyErr_Occurred()) + { + vtkGenericWarningMacro("Failed to generate state."); ++ VTK_PY_GIL_RELEASE + throw 1; + } +- return vtkStdString(PyString_AsString(result)); ++ vtkStdString s(PyString_AsString(result)); ++ VTK_PY_GIL_RELEASE ++ return s; + } + catch (int) + { +@@ -144,6 +152,7 @@ + PyErr_Clear(); + } + } ++ VTK_PY_GIL_RELEASE + #endif + (void)propertiesToTraceOnCreate; + (void)skipHiddenRepresentations; +@@ -164,9 +173,11 @@ + } + else + { ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject _start_trace_internal( + PyObject_CallMethod(vtkSMTrace::ActiveTracer->GetTraceModule(), + const_cast<char*>("_start_trace_internal"), NULL)); ++ VTK_PY_GIL_RELEASE + vtkSMTrace::ActiveTracer->CheckForError(); + } + #endif +@@ -192,6 +203,7 @@ + vtkSMTrace::ActiveTracer = NULL; + + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject _stop_trace_internal( + PyObject_CallMethod(active->GetTraceModule(), const_cast<char*>("_stop_trace_internal"), NULL)); + if (active->CheckForError() == false) +@@ -199,14 +211,18 @@ + // no error. + if (Py_None != _stop_trace_internal.GetPointer() && _stop_trace_internal.GetPointer() != NULL) + { +- return vtkStdString(PyString_AsString(_stop_trace_internal)); ++ vtkStdString s(PyString_AsString(_stop_trace_internal)); ++ VTK_PY_GIL_RELEASE ++ return s; + } + else + { + vtkGenericWarningMacro("Empty trace returned!!!"); ++ VTK_PY_GIL_RELEASE + return vtkStdString(); + } + } ++ VTK_PY_GIL_RELEASE + #endif + return vtkStdString(); + } +@@ -223,13 +239,17 @@ + + #ifdef PARAVIEW_ENABLE_PYTHON + vtkSMTrace* active = vtkSMTrace::ActiveTracer; ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject get_current_trace_output( + PyObject_CallMethod(active->GetTraceModule(), const_cast<char*>("get_current_trace_output"), NULL)); + if (active->CheckForError() == false && get_current_trace_output) + { + // no error. +- return vtkStdString(PyString_AsString(get_current_trace_output)); ++ vtkStdString s(PyString_AsString(get_current_trace_output)); ++ VTK_PY_GIL_RELEASE ++ return s; + } ++ VTK_PY_GIL_RELEASE + #endif + return vtkStdString(); + } +@@ -256,6 +276,7 @@ + bool vtkSMTrace::CheckForError() + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + PyObject *exception = PyErr_Occurred(); + if (exception) + { +@@ -264,12 +285,15 @@ + // catch Untraceable exceptions. We can log them when debugging is + // enabled. + PyErr_Clear(); ++ VTK_PY_GIL_RELEASE + return false; + } + PyErr_Print(); + PyErr_Clear(); ++ VTK_PY_GIL_RELEASE + return true; + } ++ VTK_PY_GIL_RELEASE + #endif + return false; + } +@@ -336,6 +360,7 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject keyObj(PyString_FromString(key)); + vtkSmartPyObject valObj(vtkPythonUtil::GetObjectFromPointer(val)); + assert(valObj && keyObj); +@@ -343,6 +368,7 @@ + int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)key; +@@ -358,6 +384,7 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject keyObj(PyString_FromString(key)); + vtkSmartPyObject valObj; + if (val == NULL) +@@ -374,6 +401,7 @@ + int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)key; +@@ -389,6 +417,7 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject keyObj(PyString_FromString(key)); + vtkSmartPyObject valObj(PyInt_FromLong(val)); + assert(keyObj && valObj); +@@ -396,6 +425,7 @@ + int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)key; +@@ -411,6 +441,7 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject keyObj(PyString_FromString(key)); + vtkSmartPyObject valObj(PyFloat_FromDouble(val)); + assert(keyObj && valObj); +@@ -418,6 +449,7 @@ + int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)key; +@@ -432,6 +464,7 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject keyObj(PyString_FromString(key)); + vtkSmartPyObject valObj(PyBool_FromLong(val? 1 : 0)); + assert(keyObj && valObj); +@@ -439,6 +472,7 @@ + int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)key; +@@ -452,11 +486,13 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject valObj(vtkPythonUtil::GetObjectFromPointer(val)); + assert(valObj); + int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)val; +@@ -470,11 +506,13 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject valObj(PyString_FromString(val)); + assert(valObj); + int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)val; +@@ -487,11 +525,13 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject valObj(PyInt_FromLong(val)); + assert(valObj); + int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)val; +@@ -504,11 +544,13 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject valObj(PyFloat_FromDouble(val)); + assert(valObj); + int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)val; +@@ -521,11 +563,13 @@ + if (vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject valObj(PyBool_FromLong(val? 1 : 0)); + assert(valObj); + int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj); + (void)ret; + assert(ret == 0); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)val; +@@ -557,9 +601,11 @@ + vtkSMTrace* tracer = vtkSMTrace::GetActiveTracer(); + if (tracer && this->Internals->PyItem) + { ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject reply( + PyObject_CallMethod(this->Internals->PyItem, + const_cast<char*>("finalize"), NULL)); ++ VTK_PY_GIL_RELEASE + tracer->CheckForError(); + tracer->InvokeEvent(vtkCommand::UpdateEvent); + } +@@ -583,6 +629,7 @@ + if (vtkSMTrace* tracer = vtkSMTrace::GetActiveTracer()) + { + #ifdef PARAVIEW_ENABLE_PYTHON ++ VTK_PY_GIL_ENSURE + assert(tracer->GetTraceModule()); + assert(tracer->GetCreateItemFunction()); + +@@ -613,6 +660,7 @@ + this->Internals->PyItem.TakeReference( + PyObject_Call(tracer->GetCreateItemFunction(), args, NULL)); + tracer->CheckForError(); ++ VTK_PY_GIL_RELEASE + #endif + } + (void)arguments; +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx +--- ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -276,7 +276,7 @@ + { + if (!info) + { +- vtkWarningMacro("Could not determine array range."); ++ // vtkWarningMacro("Could not determine array range."); + return false; + } + +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml +--- ParaView-4.2.0_SRC/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml 2014-12-19 15:39:41.000000000 +0300 +@@ -2044,16 +2044,14 @@ + <IntVectorProperty command="SetStereoRender" + default_values="0" + name="StereoRender" +- number_of_elements="1" +- is_internal="1"> ++ number_of_elements="1"> + <BooleanDomain name="bool" /> + </IntVectorProperty> + <IntVectorProperty command="SetStereoType" + default_values="3" + name="StereoType" + panel_visibility="never" +- number_of_elements="1" +- is_internal="1"> ++ number_of_elements="1"> + <EnumerationDomain name="enum"> + <Entry text="Crystal Eyes" + value="1" /> +@@ -3139,6 +3137,8 @@ + panel_visibility="advanced" /> + <Property name="UserTransform" + panel_visibility="never" /> ++ <Property name="Triangulate" ++ panel_visibility="advanced" /> + <Property name="NonlinearSubdivisionLevel" + panel_visibility="advanced" /> + <Property name="BlockVisibility" +@@ -8229,6 +8229,15 @@ + <!--<Entry value="2" text="Phong" />--> + </EnumerationDomain> + </IntVectorProperty> ++ <IntVectorProperty command="SetTriangulate" ++ default_values="0" ++ name="Triangulate" ++ number_of_elements="1"> ++ <BooleanDomain name="bool" /> ++ <Documentation>Triangulate the geometry internally to avoid rendering ++ issues of non-convex polygons. This feature has a processing and memory ++ cost, it should be enabled only when needed.</Documentation> ++ </IntVectorProperty> + <IntVectorProperty command="SetNonlinearSubdivisionLevel" + default_values="1" + name="NonlinearSubdivisionLevel" +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h +--- ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h 2014-12-19 15:39:41.000000000 +0300 +@@ -19,27 +19,15 @@ + + #include "vtkPVVTKExtensionsDefaultModule.h" //needed for exports + +-#ifdef PARAVIEW_USE_MPI +-#include "vtkMPIImageReader.h" +-#else + #include "vtkImageReader.h" +-#endif + +-class VTKPVVTKEXTENSIONSDEFAULT_EXPORT vtkPVImageReader : public +-#ifdef PARAVIEW_USE_MPI +-vtkMPIImageReader +-#else +-vtkImageReader +-#endif ++class VTKPVVTKEXTENSIONSDEFAULT_EXPORT vtkPVImageReader : public vtkImageReader + { + public: + static vtkPVImageReader* New(); + +-#ifdef PARAVIEW_USE_MPI +- vtkTypeMacro(vtkPVImageReader, vtkMPIImageReader); +-#else ++ + vtkTypeMacro(vtkPVImageReader, vtkImageReader); +-#endif + + void PrintSelf(ostream& os, vtkIndent indent); + +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx +--- ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -64,6 +64,7 @@ + #include "vtkStructuredGrid.h" + #include "vtkStructuredGridOutlineFilter.h" + #include "vtkTimerLog.h" ++#include "vtkTriangleFilter.h" + #include "vtkUniformGrid.h" + #include "vtkUnsignedCharArray.h" + #include "vtkUnsignedIntArray.h" +@@ -78,8 +79,6 @@ + #include <set> + #include <algorithm> + +-#define VTK_CREATE(type, name) \ +- vtkSmartPointer<type> name = vtkSmartPointer<type>::New() + + vtkStandardNewMacro(vtkPVGeometryFilter); + vtkCxxSetObjectMacro(vtkPVGeometryFilter, Controller, vtkMultiProcessController); +@@ -149,6 +148,7 @@ + this->UseOutline = 1; + this->UseStrips = 0; + this->GenerateCellNormals = 1; ++ this->Triangulate = false; + this->NonlinearSubdivisionLevel = 1; + + this->DataSetSurfaceFilter = vtkDataSetSurfaceFilter::New(); +@@ -1348,8 +1348,8 @@ + { + this->OutlineFlag = 0; + +- bool handleSubdivision = false; +- if (this->NonlinearSubdivisionLevel > 0) ++ bool handleSubdivision = (this->Triangulate != 0); ++ if (!handleSubdivision && (this->NonlinearSubdivisionLevel > 0)) + { + // Check to see if the data actually has nonlinear cells. Handling + // nonlinear cells adds unnecessary work if we only have linear cells. +@@ -1445,6 +1445,16 @@ + this->DataSetSurfaceFilter->UnstructuredGridExecute(input, output, updateghostlevel); + } + ++ if (this->Triangulate && (output->GetNumberOfPolys() > 0)) ++ { ++ // Triangulate the polygonal mesh if requested to avoid rendering ++ // issues of non-convex polygons. ++ vtkNew<vtkTriangleFilter> triangleFilter; ++ triangleFilter->SetInputData(output); ++ triangleFilter->Update(); ++ output->ShallowCopy(triangleFilter->GetOutput()); ++ } ++ + if (handleSubdivision) + { + // Restore state of DataSetSurfaceFilter. +@@ -1456,9 +1466,9 @@ + + // Now use vtkPVRecoverGeometryWireframe to create an edge flag attribute + // that will cause the wireframe to be rendered correctly. +- VTK_CREATE(vtkPolyData, nextStageInput); ++ vtkNew<vtkPolyData> nextStageInput; + nextStageInput->ShallowCopy(output); // Yes output is correct. +- this->RecoverWireframeFilter->SetInputData(nextStageInput); ++ this->RecoverWireframeFilter->SetInputData(nextStageInput.Get()); + + // Observe the progress of the internal filter. + // TODO: Make the consecutive internal filter execution have monotonically +@@ -1489,7 +1499,7 @@ + return; + } + vtkIdType numPts = polyPtIds2FacePtIds->GetNumberOfTuples(); +- VTK_CREATE(vtkIdTypeArray, polyPtIds2OriginalPtIds); ++ vtkNew<vtkIdTypeArray> polyPtIds2OriginalPtIds; + polyPtIds2OriginalPtIds->SetName("vtkOriginalPointIds"); + polyPtIds2OriginalPtIds->SetNumberOfComponents(1); + polyPtIds2OriginalPtIds->SetNumberOfTuples(numPts); +@@ -1503,7 +1513,7 @@ + } + polyPtIds2OriginalPtIds->SetValue(polyPtId, originalPtId); + } +- output->GetPointData()->AddArray(polyPtIds2OriginalPtIds); ++ output->GetPointData()->AddArray(polyPtIds2OriginalPtIds.Get()); + } + } + +@@ -1518,7 +1528,7 @@ + + //---------------------------------------------------------------------------- + void vtkPVGeometryFilter::PolyDataExecute( +- vtkPolyData* input, vtkPolyData* out, int doCommunicate) ++ vtkPolyData* input, vtkPolyData* output, int doCommunicate) + { + if (!this->UseOutline) + { +@@ -1533,54 +1543,90 @@ + inCopy->RemoveGhostCells(1); + stripper->SetInputData(inCopy); + stripper->Update(); +- out->CopyStructure(stripper->GetOutput()); +- out->GetPointData()->ShallowCopy(stripper->GetOutput()->GetPointData()); +- out->GetCellData()->ShallowCopy(stripper->GetOutput()->GetCellData()); ++ output->CopyStructure(stripper->GetOutput()); ++ output->GetPointData()->ShallowCopy(stripper->GetOutput()->GetPointData()); ++ output->GetCellData()->ShallowCopy(stripper->GetOutput()->GetCellData()); + inCopy->Delete(); + stripper->Delete(); + } + else + { +- out->ShallowCopy(input); ++ output->ShallowCopy(input); + if (this->PassThroughCellIds) + { +- vtkIdTypeArray *originalCellIds = vtkIdTypeArray::New(); ++ vtkNew<vtkIdTypeArray> originalCellIds; + originalCellIds->SetName("vtkOriginalCellIds"); + originalCellIds->SetNumberOfComponents(1); +- vtkCellData *outputCD = out->GetCellData(); +- outputCD->AddArray(originalCellIds); +- vtkIdType numTup = out->GetNumberOfCells(); ++ vtkNew<vtkIdTypeArray> originalFaceIds; ++ originalFaceIds->SetName(vtkPVRecoverGeometryWireframe::ORIGINAL_FACE_IDS()); ++ originalFaceIds->SetNumberOfComponents(1); ++ vtkCellData *outputCD = output->GetCellData(); ++ outputCD->AddArray(originalCellIds.Get()); ++ if (this->Triangulate) ++ { ++ outputCD->AddArray(originalFaceIds.Get()); ++ } ++ vtkIdType numTup = output->GetNumberOfCells(); + originalCellIds->SetNumberOfValues(numTup); ++ originalFaceIds->SetNumberOfValues(numTup); + for (vtkIdType cId = 0; cId < numTup; cId++) + { + originalCellIds->SetValue(cId, cId); ++ originalFaceIds->SetValue(cId, cId); + } +- originalCellIds->Delete(); +- originalCellIds = NULL; + } + if (this->PassThroughPointIds) + { +- vtkIdTypeArray *originalPointIds = vtkIdTypeArray::New(); ++ vtkNew<vtkIdTypeArray> originalPointIds; + originalPointIds->SetName("vtkOriginalPointIds"); + originalPointIds->SetNumberOfComponents(1); +- vtkPointData *outputPD = out->GetPointData(); +- outputPD->AddArray(originalPointIds); +- vtkIdType numTup = out->GetNumberOfPoints(); ++ vtkPointData *outputPD = output->GetPointData(); ++ outputPD->AddArray(originalPointIds.Get()); ++ vtkIdType numTup = output->GetNumberOfPoints(); + originalPointIds->SetNumberOfValues(numTup); + for (vtkIdType pId = 0; pId < numTup; pId++) + { + originalPointIds->SetValue(pId, pId); + } +- originalPointIds->Delete(); +- originalPointIds = NULL; + } +- out->RemoveGhostCells(1); ++ ++ output->RemoveGhostCells(1); ++ ++ if (this->Triangulate) ++ { ++ // Triangulate the polygonal mesh. ++ vtkNew<vtkTriangleFilter> triangleFilter; ++ triangleFilter->SetInputData(output); ++ triangleFilter->Update(); ++ ++ // Now use vtkPVRecoverGeometryWireframe to create an edge flag attribute ++ // that will cause the wireframe to be rendered correctly. ++ this->RecoverWireframeFilter->SetInputData(triangleFilter->GetOutput()); ++ ++ // Observe the progress of the internal filter. ++ // TODO: Make the consecutive internal filter execution have monotonically ++ // increasing progress rather than restarting for every internal filter. ++ this->RecoverWireframeFilter->AddObserver( ++ vtkCommand::ProgressEvent, ++ this->InternalProgressObserver); ++ this->RecoverWireframeFilter->Update(); ++ // The internal filter finished. Remove the observer. ++ this->RecoverWireframeFilter->RemoveObserver( ++ this->InternalProgressObserver); ++ ++ this->RecoverWireframeFilter->SetInputData(NULL); ++ ++ // Get what should be the final output. ++ output->ShallowCopy(this->RecoverWireframeFilter->GetOutput()); ++ ++ output->GetCellData()->RemoveArray(vtkPVRecoverGeometryWireframe::ORIGINAL_FACE_IDS()); ++ } + } + return; + } + + this->OutlineFlag = 1; +- this->DataSetExecute(input, out, doCommunicate); ++ this->DataSetExecute(input, output, doCommunicate); + } + + //---------------------------------------------------------------------------- +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h +--- ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h 2014-12-19 15:39:41.000000000 +0300 +@@ -85,6 +85,13 @@ + vtkBooleanMacro(GenerateCellNormals, int); + + // Description: ++ // Whether to triangulate mesh for rendering. This parameter avoid ++ // rendering issues of non-convex polygons. ++ vtkSetMacro(Triangulate, int); ++ vtkGetMacro(Triangulate, int); ++ vtkBooleanMacro(Triangulate, int); ++ ++ // Description: + // Nonlinear faces are approximated with flat polygons. This parameter + // controls how many times to subdivide nonlinear surface cells. Higher + // subdivisions generate closer approximations but take more memory and +@@ -101,8 +108,7 @@ + // Description: + // If on, the output polygonal dataset will have a celldata array that + // holds the cell index of the original 3D cell that produced each output +- // cell. This is useful for picking. The default is off to conserve +- // memory. ++ // cell. This is useful for picking but it takes memory. The default is on. + void SetPassThroughCellIds(int); + vtkGetMacro(PassThroughCellIds,int); + vtkBooleanMacro(PassThroughCellIds,int); +@@ -110,8 +116,7 @@ + // Description: + // If on, the output polygonal dataset will have a pointdata array that + // holds the point index of the original vertex that produced each output +- // vertex. This is useful for picking. The default is off to conserve +- // memory. ++ // vertex. This is useful for picking but it takes memory. The default is on. + void SetPassThroughPointIds(int); + vtkGetMacro(PassThroughPointIds,int); + vtkBooleanMacro(PassThroughPointIds,int); +@@ -176,7 +181,7 @@ + virtual vtkExecutive* CreateDefaultExecutive(); + + // Description: +- // Produce geometry for a block in the dataset. ++ // Produce geometry for a block in the dataset. + // This does not handle producing outlines. Call only when this->UseOutline == + // 0; \c extractface mask it is used to determine external faces. + void ExecuteAMRBlock(vtkUniformGrid* input, +@@ -250,6 +255,7 @@ + int UseOutline; + int UseStrips; + int GenerateCellNormals; ++ int Triangulate; + int NonlinearSubdivisionLevel; + + vtkMultiProcessController* Controller; +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Qt/Components/pqPropertiesPanel.cxx ParaView-4.2.0_SRC.new/Qt/Components/pqPropertiesPanel.cxx +--- ParaView-4.2.0_SRC/Qt/Components/pqPropertiesPanel.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Qt/Components/pqPropertiesPanel.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -383,6 +383,14 @@ + this->Internals->Ui.DisplayButton->setVisible(has_multiples_types && has_display); + this->Internals->Ui.ViewButton->setVisible(has_multiples_types && has_view); + ++ // added to avoid unwanted save restore buttons ++ this->Internals->Ui.PropertiesSaveAsDefaults->setVisible(has_source); ++ this->Internals->Ui.PropertiesRestoreDefaults->setVisible(has_source); ++ this->Internals->Ui.DisplaySaveAsDefaults->setVisible(has_display); ++ this->Internals->Ui.DisplayRestoreDefaults->setVisible(has_display); ++ this->Internals->Ui.ViewSaveAsDefaults->setVisible(has_view); ++ this->Internals->Ui.ViewRestoreDefaults->setVisible(has_view); ++ + this->updatePanel(); + } + +@@ -593,14 +601,15 @@ + } + + //----------------------------------------------------------------------------- +-void pqPropertiesPanel::updateViewPanel (pqView* _view) ++void pqPropertiesPanel::updateViewPanel (pqView* argView) + { ++ pqView* _view = argView; + if ( (this->PanelMode & pqPropertiesPanel::VIEW_PROPERTIES) == 0) + { + _view = NULL; + } + +- if (this->Internals->View != _view) ++ if (this->Internals->View != argView) + { + // The view has changed. + if (this->Internals->View) +@@ -611,8 +620,8 @@ + delete this->Internals->ViewWidgets; + } + } +- this->Internals->View = _view; +- emit this->viewChanged(_view); ++ this->Internals->View = argView; ++ emit this->viewChanged(argView); + if (_view) + { + // create the widgets for this view +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Qt/Python/pqPythonShell.cxx ParaView-4.2.0_SRC.new/Qt/Python/pqPythonShell.cxx +--- ParaView-4.2.0_SRC/Qt/Python/pqPythonShell.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Qt/Python/pqPythonShell.cxx 2014-12-19 15:40:01.000000000 +0300 +@@ -118,6 +118,7 @@ + /// string list. + QStringList getPythonAttributes(const QString& pythonObjectName) + { ++ VTK_PY_GIL_ENSURE + if (this->Interpreter == NULL || + this->Interpreter->GetInteractiveConsoleLocalsPyObject() == NULL) + { +@@ -191,7 +192,7 @@ + } + Py_DECREF(object); + } +- ++ VTK_PY_GIL_RELEASE + return results; + } + }; +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Qt/Python/pqPythonSyntaxHighlighter.cxx ParaView-4.2.0_SRC.new/Qt/Python/pqPythonSyntaxHighlighter.cxx +--- ParaView-4.2.0_SRC/Qt/Python/pqPythonSyntaxHighlighter.cxx 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Qt/Python/pqPythonSyntaxHighlighter.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -65,6 +65,7 @@ + this->Internals->TextEdit = textEdit; + this->Internals->TextEdit->installEventFilter(this); + vtkPythonInterpreter::Initialize(); ++ VTK_PY_GIL_ENSURE + this->Internals->PygmentsModule.TakeReference(PyImport_ImportModule("pygments")); + if (this->Internals->PygmentsModule && this->Internals->TextEdit != NULL) + { +@@ -99,6 +100,7 @@ + this->connect(this->Internals->TextEdit.data(), SIGNAL(textChanged()), + this, SLOT(rehighlightSyntax())); + } ++ VTK_PY_GIL_RELEASE + this->Internals->IsSyntaxHighlighting = false; + // Replace tabs with 4 spaces + this->Internals->ReplaceTabs = true; +@@ -175,10 +177,12 @@ + } + QString leadingWhitespace = text.left(leadingWhiteSpaceLength); + QString trailingWhitespace = text.right(trailingWhiteSpaceLength); ++ VTK_PY_GIL_ENSURE + vtkSmartPyObject args(Py_BuildValue("sOO",text.trimmed().toStdString().c_str(), + this->Internals->PythonLexer.GetPointer(),this->Internals->HtmlFormatter.GetPointer())); + vtkSmartPyObject resultingText(PyObject_Call(this->Internals->HighlightFunction,args,NULL)); + const char *resultingTextAsCString = PyString_AsString(resultingText); ++ VTK_PY_GIL_RELEASE + QString pygmentsOutput(resultingTextAsCString); + // the first span tag always should follow the pre tag like this; <pre ...><span + int startOfPre = pygmentsOutput.indexOf(">",pygmentsOutput.indexOf("<pre"))+1; +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C +--- ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C 2014-09-23 18:46:46.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C 2014-12-19 15:39:41.000000000 +0300 +@@ -2,7 +2,7 @@ + // This code was contributed to the VisIt project by Corvid Technologies + // on February 10, 2010. + // +- ++#define H5Eset_auto_vers 2 + #include <string.h> + #include <cstdlib> + +@@ -16,7 +16,6 @@ + #endif + + #include <VelodyneReader.h> +- + #include <visit-hdf5.h> + + #include <set> +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsFilter.C ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsFilter.C +--- ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsFilter.C 2014-09-23 18:46:46.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsFilter.C 2014-12-19 15:39:41.000000000 +0300 +@@ -1,3 +1,7 @@ ++#define H5Gopen_vers 2 ++#define H5Dopen_vers 2 ++#define H5Eset_auto_vers 2 ++#define H5Aiterate_vers 2 + #include <vtk_hdf5.h> + #include <visit-hdf5.h> + #if HDF5_VERSION_GE(1,8,1) +@@ -146,11 +150,7 @@ + + // Get info of the linked object. + H5O_info_t objinfo; +-#ifndef H5_USE_16_API + hid_t obj_id = H5Oopen(locId, name, H5P_DEFAULT); +-#else +- hid_t obj_id = H5Oopen(locId, name); +-#endif + + if (obj_id < 0) { + VsLog::errorLog() <<"VsFilter::visitLinks() - unable to get id for external object " <<name <<std::endl; +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsH5File.C ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsH5File.C +--- ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsH5File.C 2014-09-23 18:46:46.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsH5File.C 2014-12-19 15:39:41.000000000 +0300 +@@ -4,7 +4,7 @@ + * Created on: Apr 27, 2010 + * Author: mdurant + */ +- ++#define H5Eset_auto_vers 2 + #include "VsH5File.h" + #include "VsLog.h" + #include "VsFilter.h" +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/CMake/vtkModuleTop.cmake ParaView-4.2.0_SRC.new/VTK/CMake/vtkModuleTop.cmake +--- ParaView-4.2.0_SRC/VTK/CMake/vtkModuleTop.cmake 2014-09-23 18:47:10.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/CMake/vtkModuleTop.cmake 2014-12-19 15:39:41.000000000 +0300 +@@ -476,6 +476,7 @@ + get_property(VTK_TARGETS GLOBAL PROPERTY VTK_TARGETS) + if(VTK_TARGETS) + install(EXPORT ${VTK_INSTALL_EXPORT_NAME} DESTINATION ${VTK_INSTALL_PACKAGE_DIR}) ++ install(EXPORT ${VTK_INSTALL_EXPORT_NAME} DESTINATION ${VTK_INSTALL_PACKAGE_DIR} FILE VTKTargets.cmake) + else() + set(CMAKE_CONFIGURABLE_FILE_CONTENT "# No targets!") + configure_file(${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx ParaView-4.2.0_SRC.new/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx +--- ParaView-4.2.0_SRC/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -48,7 +48,7 @@ + //---------------------------------------------------------------------------- + vtkMatplotlibMathTextUtilities::Availablity + vtkMatplotlibMathTextUtilities::MPLMathTextAvailable = +-vtkMatplotlibMathTextUtilities::NOT_TESTED; ++vtkMatplotlibMathTextUtilities::UNAVAILABLE; + + // A macro that is used in New() to print warnings if VTK_MATPLOTLIB_DEBUG + // is defined in the environment. Use vtkGenericWarningMacro to allow this to +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp ParaView-4.2.0_SRC.new/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp +--- ParaView-4.2.0_SRC/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp 2014-12-19 15:39:41.000000000 +0300 +@@ -373,7 +373,7 @@ + coordinates[3][1] - coordinates[0][1], + coordinates[3][2] - coordinates[0][2] ); + +- double detTet = ab % ( ac * ad ); ++ double detTet = fabs( ab % ( ac * ad ) ); + + if( detTet < VERDICT_DBL_MIN ) + return (double)VERDICT_DBL_MAX; +@@ -413,7 +413,7 @@ + D = bd.length(); + + double aspect_ratio; +- aspect_ratio = normal_coeff * hm * ( A + B + C + D ) / fabs( detTet ); ++ aspect_ratio = normal_coeff * hm * ( A + B + C + D ) / detTet; + + if( aspect_ratio > 0 ) + return (double) VERDICT_MIN( aspect_ratio, VERDICT_DBL_MAX ); +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Utilities/Python/vtkPython.h ParaView-4.2.0_SRC.new/VTK/Utilities/Python/vtkPython.h +--- ParaView-4.2.0_SRC/VTK/Utilities/Python/vtkPython.h 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/Utilities/Python/vtkPython.h 2014-12-19 15:39:41.000000000 +0300 +@@ -87,4 +87,14 @@ + #error "Python.h is different version from what VTK was configured with!!" + #endif + ++#ifdef VTK_NO_PYTHON_THREADS ++# define VTK_PY_GIL_ENSURE ++# define VTK_PY_GIL_RELEASE ++#else ++# define VTK_PY_GIL_ENSURE PyGILState_STATE _gstate_avoid_clash = PyGILState_Ensure(); ++# define VTK_PY_GIL_RELEASE PyGILState_Release(_gstate_avoid_clash); ++# ++#endif ++ ++ + #endif +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx +--- ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -45,6 +45,7 @@ + + void CleanupPythonObjects() + { ++ VTK_PY_GIL_ENSURE + Py_XDECREF(this->InteractiveConsoleLocals); + Py_XDECREF(this->InteractiveConsole); + this->InteractiveConsole = NULL; +@@ -54,6 +55,7 @@ + const char* code = "import gc; gc.collect()\n"; + vtkPythonInterpreter::RunSimpleString(code); + } ++ VTK_PY_GIL_RELEASE + } + + PyObject* GetInteractiveConsole() +@@ -65,6 +67,7 @@ + + vtkPythonInterpreter::Initialize(); + ++ VTK_PY_GIL_ENSURE + // set up the code.InteractiveConsole instance that we'll use. + const char* code = "import code\n" + "__vtkConsoleLocals={'__name__':'__vtkconsole__','__doc__':None}\n" +@@ -83,6 +86,7 @@ + { + vtkGenericWarningMacro( + "Failed to locate the InteractiveConsole/InteractiveConsoleLocals object."); ++ VTK_PY_GIL_RELEASE + return NULL; + } + Py_INCREF(this->InteractiveConsole); +@@ -105,7 +109,7 @@ + PySys_SetObject(const_cast<char*>("ps2"), ps2 = PyString_FromString("... ")); + Py_XDECREF(ps2); + } +- ++ VTK_PY_GIL_RELEASE + return this->InteractiveConsole; + } + }; +@@ -167,6 +171,7 @@ + i++; + } + ++ VTK_PY_GIL_ENSURE + bool ret_value = false; + PyObject *res = PyObject_CallMethod(console, + const_cast<char*>("push"), const_cast<char*>("z"), buffer.c_str()); +@@ -179,6 +184,7 @@ + } + Py_DECREF(res); + } ++ VTK_PY_GIL_RELEASE + return ret_value; + } + +@@ -190,12 +196,14 @@ + + this->Internals->GetInteractiveConsole(); //ensure the console is initialized + ++ VTK_PY_GIL_ENSURE + PyObject* context = this->Internals->GetInteractiveConsoleLocalsPyObject(); + PyObject* result = PyRun_String(const_cast<char*>(script), Py_file_input, context, context); + + if (result == NULL) + { + PyErr_Print(); ++ VTK_PY_GIL_RELEASE + return -1; + } + +@@ -204,6 +212,7 @@ + { + PyErr_Clear(); + } ++ VTK_PY_GIL_RELEASE + return 0; + } + +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx +--- ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx 2014-12-19 15:39:54.000000000 +0300 +@@ -60,10 +60,12 @@ + + inline void vtkPrependPythonPath(const char* pathtoadd) + { ++ VTK_PY_GIL_ENSURE + PyObject* path = PySys_GetObject(const_cast<char*>("path")); + PyObject* newpath = PyString_FromString(pathtoadd); + PyList_Insert(path, 0, newpath); + Py_DECREF(newpath); ++ VTK_PY_GIL_RELEASE + } + } + +@@ -107,7 +109,6 @@ + //---------------------------------------------------------------------------- + bool vtkPythonInterpreter::Initialize(int initsigs /*=0*/) + { +- vtkPythonInterpreter::InitializedOnce = true; + if (Py_IsInitialized() == 0) + { + #if (VTK_PYTHON_MAJOR_VERSION > 2) ||\ +@@ -117,11 +118,26 @@ + (void)initsigs; + Py_Initialize(); + #endif +- + #ifdef SIGINT + // Put default SIGINT handler back after Py_Initialize/Py_InitializeEx. + signal(SIGINT, SIG_DFL); + #endif ++ } ++ ++ if (! vtkPythonInterpreter::InitializedOnce) ++ { ++#ifndef VTK_NO_PYTHON_THREADS ++ int threadInit = PyEval_ThreadsInitialized(); ++ PyEval_InitThreads(); // safe to call this multiple time ++#endif ++ // At this point we have GIL, or we are mono-thread. ++ // Access to the static below is safe: ++ vtkPythonInterpreter::InitializedOnce = true; ++ ++#ifndef VTK_NO_PYTHON_THREADS ++ if(!threadInit) ++ PyEval_SaveThread(); // release GIL ++#endif + // HACK: Calling PyRun_SimpleString for the first time for some reason results in + // a "\n" message being generated which is causing the error dialog to + // popup. So we flush that message out of the system before setting up the +@@ -134,15 +150,17 @@ + vtkPythonStdStreamCaptureHelper* wrapperErr = + NewPythonStdStreamCaptureHelper(true); + +- // Redirect Python's stdout and stderr and stdin +- PySys_SetObject(const_cast<char*>("stdout"), ++ // Redirect Python's stdout and stderr and stdin - GIL protected operation ++ VTK_PY_GIL_ENSURE ++ int ret1 = PySys_SetObject(const_cast<char*>("stdout"), + reinterpret_cast<PyObject*>(wrapperOut)); +- PySys_SetObject(const_cast<char*>("stderr"), ++ int ret2 = PySys_SetObject(const_cast<char*>("stderr"), + reinterpret_cast<PyObject*>(wrapperErr)); +- PySys_SetObject(const_cast<char*>("stdin"), ++ int ret3 = PySys_SetObject(const_cast<char*>("stdin"), + reinterpret_cast<PyObject*>(wrapperOut)); + Py_DECREF(wrapperOut); + Py_DECREF(wrapperErr); ++ VTK_PY_GIL_RELEASE + + for (size_t cc=0; cc < PythonPaths.size(); cc++) + { +@@ -162,6 +180,7 @@ + if (Py_IsInitialized() != 0) + { + NotifyInterpreters(vtkCommand::ExitEvent); ++ VTK_PY_GIL_ENSURE + Py_Finalize(); + } + } +@@ -221,7 +240,9 @@ + vtkPythonInterpreter::SetProgramName(argv[0]); + } + vtkPythonInterpreter::Initialize(1); ++ VTK_PY_GIL_ENSURE + return Py_Main(argc, argv); ++ // Py_Main already does a finalize etc ... + } + + //---------------------------------------------------------------------------- +@@ -235,7 +256,9 @@ + buffer.erase(std::remove(buffer.begin(), buffer.end(), '\r'), buffer.end()); + + // The cast is necessary because PyRun_SimpleString() hasn't always been const-correct ++ VTK_PY_GIL_ENSURE + PyRun_SimpleString(const_cast<char*>(buffer.c_str())); ++ VTK_PY_GIL_RELEASE + } + + //---------------------------------------------------------------------------- +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx +--- ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -30,14 +30,18 @@ + vtkPythonUtil::UnRegisterPythonCommand(this); + if (this->obj && Py_IsInitialized()) + { ++ VTK_PY_GIL_ENSURE + Py_DECREF(this->obj); ++ VTK_PY_GIL_RELEASE + } + this->obj = NULL; + } + + void vtkPythonCommand::SetObject(PyObject *o) + { ++ VTK_PY_GIL_ENSURE + Py_INCREF(o); ++ VTK_PY_GIL_RELEASE + this->obj = o; + } + +@@ -92,11 +96,11 @@ + // If a threadstate has been set using vtkPythonCommand::SetThreadState, + // then swap it in here. See the email to vtk-developers@vtk.org from + // June 18, 2009 with subject "Py_NewInterpreter and vtkPythonCallback issue" +- PyThreadState* prevThreadState = NULL; +- if (this->ThreadState) +- { +- prevThreadState = PyThreadState_Swap(this->ThreadState); +- } ++// PyThreadState* prevThreadState = NULL; ++// if (this->ThreadState) ++// { ++// prevThreadState = PyThreadState_Swap(this->ThreadState); ++// } + + PyObject * obj2 = NULL; + if (ptr && ptr->GetReferenceCount() > 0) +@@ -237,10 +241,10 @@ + } + + // If we did the swap near the top of this function then swap back now. +- if (this->ThreadState) +- { +- PyThreadState_Swap(prevThreadState); +- } ++// if (this->ThreadState) ++// { ++// PyThreadState_Swap(prevThreadState); ++// } + + #ifndef VTK_NO_PYTHON_THREADS + #if (PY_MAJOR_VERSION > 2) || \ +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx +--- ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx 2014-09-23 18:47:11.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx 2014-12-19 15:39:41.000000000 +0300 +@@ -30,37 +30,52 @@ + vtkSmartPyObject::vtkSmartPyObject(const vtkSmartPyObject &other) : + Object(other.Object) + { ++ VTK_PY_GIL_ENSURE + Py_XINCREF(this->Object); ++ VTK_PY_GIL_RELEASE + } + + //-------------------------------------------------------------------- + vtkSmartPyObject::~vtkSmartPyObject() + { +- Py_XDECREF(this->Object); ++ if (Py_IsInitialized()) ++ { ++ VTK_PY_GIL_ENSURE ++ Py_XDECREF(this->Object); ++ VTK_PY_GIL_RELEASE ++ } ++ else ++ Py_XDECREF(this->Object); + } + + //-------------------------------------------------------------------- + vtkSmartPyObject &vtkSmartPyObject::operator=(const vtkSmartPyObject &other) + { ++ VTK_PY_GIL_ENSURE + Py_XDECREF(this->Object); + this->Object = other.Object; + Py_XINCREF(this->Object); ++ VTK_PY_GIL_RELEASE + return *this; + } + + //-------------------------------------------------------------------- + vtkSmartPyObject &vtkSmartPyObject::operator=(PyObject *obj) + { ++ VTK_PY_GIL_ENSURE + Py_XDECREF(this->Object); + this->Object = obj; + Py_XINCREF(this->Object); ++ VTK_PY_GIL_RELEASE + return *this; + } + + //-------------------------------------------------------------------- + void vtkSmartPyObject::TakeReference(PyObject *obj) + { ++ VTK_PY_GIL_ENSURE + Py_XDECREF(this->Object); ++ VTK_PY_GIL_RELEASE + this->Object = obj; + } + +@@ -99,6 +114,8 @@ + //-------------------------------------------------------------------- + PyObject *vtkSmartPyObject::GetAndIncreaseReferenceCount() + { ++ VTK_PY_GIL_ENSURE + Py_XINCREF(this->Object); ++ VTK_PY_GIL_RELEASE + return this->Object; + } +diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Wrapping/Python/paraview/servermanager.py ParaView-4.2.0_SRC.new/Wrapping/Python/paraview/servermanager.py +--- ParaView-4.2.0_SRC/Wrapping/Python/paraview/servermanager.py 2014-09-23 18:46:44.000000000 +0400 ++++ ParaView-4.2.0_SRC.new/Wrapping/Python/paraview/servermanager.py 2014-12-19 15:39:41.000000000 +0300 +@@ -1092,7 +1092,7 @@ + property = self.SMProperty + nElems = property.GetNumberOfElements() + if nElems%2 != 0: +- raise ValueError, "The SMProperty with XML label '%s' has a size that is not a multiple of 2." % property.GetXMLLabel() ++ nElems -= 1 + self.__arrays = [] + for i in range(0, nElems, 2): + if self.GetElement(i+1) != '0': diff --git a/patch-gcc49.diff b/gcc49.patch index 2ed74f0282c9..2ed74f0282c9 100644 --- a/patch-gcc49.diff +++ b/gcc49.patch diff --git a/patch-uint.diff b/uint.patch index 2a66eea6e4f9..2a66eea6e4f9 100644 --- a/patch-uint.diff +++ b/uint.patch |