]> SALOME platform Git repositories - tools/configuration.git/commitdiff
Salome HOME
patches edf for V92 V9_2_0a2 V9_2_0b1
authoresy <emmanuel.streby@opencascade.com>
Fri, 19 Oct 2018 14:40:05 +0000 (16:40 +0200)
committeresy <emmanuel.streby@opencascade.com>
Fri, 19 Oct 2018 14:40:05 +0000 (16:40 +0200)
28 files changed:
config/EDF_patches/SALOME_8_5_0/OCCT-7.2.0.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/README.txt [deleted file]
config/EDF_patches/SALOME_8_5_0/RPy.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/cgal_cmake352.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/eigen-eigen-3.2.7.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/gl2ps.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/patchHDF5Build.py [deleted file]
config/EDF_patches/SALOME_8_5_0/patch_pv_b5c4c893_py_catalyst.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/pil.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/rpy_tools.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/scotch604_Make.inc.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/setup.patch [deleted file]
config/EDF_patches/SALOME_8_5_0/sphinx_w_intl_napoleon.patch [deleted file]
config/build_options/edf/options_compilation_config_XML.txt [new file with mode: 0644]
config/build_options/edf/options_compilation_salome_master.txt [new file with mode: 0644]
config/patches/edf/FreeImage3170_Make.patch [new file with mode: 0644]
config/patches/edf/OCCT-7.2.0.patch [new file with mode: 0644]
config/patches/edf/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch [new file with mode: 0644]
config/patches/edf/README.txt [new file with mode: 0644]
config/patches/edf/cgal_cmake352.patch [new file with mode: 0644]
config/patches/edf/gl2ps.patch [new file with mode: 0644]
config/patches/edf/omniORBpy-4.2.1-2-python3.patch [new file with mode: 0644]
config/patches/edf/otwrapy_0.7_py3.patch [new file with mode: 0644]
config/patches/edf/patch_pv_b5c4c893_py_catalyst.patch [new file with mode: 0644]
config/patches/edf/pillow-py3.patch [new file with mode: 0644]
config/patches/edf/scotch604_Make.inc.patch [new file with mode: 0644]
config/patches/edf/sphinx_w_intl_napoleon.patch [new file with mode: 0644]

diff --git a/config/EDF_patches/SALOME_8_5_0/OCCT-7.2.0.patch b/config/EDF_patches/SALOME_8_5_0/OCCT-7.2.0.patch
deleted file mode 100644 (file)
index 4ffcd5a..0000000
+++ /dev/null
@@ -1,969 +0,0 @@
-diff --git a/adm/cmake/occt_resources.cmake b/adm/cmake/occt_resources.cmake
-index 7a88051..d51df4d 100644
---- a/adm/cmake/occt_resources.cmake
-+++ b/adm/cmake/occt_resources.cmake
-@@ -68,6 +68,7 @@ FILE_TO_LIST ("adm/RESOURCES" RESOURCES)
- foreach (CurrentResource ${RESOURCES})
-   get_filename_component (CurrentResource_FileName "${CurrentResource}" NAME)
-   if ("${CurrentResource_FileName}" STREQUAL TObj.msg OR
-+      "${CurrentResource_FileName}" STREQUAL BOPAlgo.msg OR
-       "${CurrentResource_FileName}" STREQUAL Units.dat OR
-       "${CurrentResource}" STREQUAL XSMessage OR
-       "${CurrentResource}" STREQUAL SHMessage OR
-diff --git a/src/BOPAlgo/BOPAlgo.msg b/src/BOPAlgo/BOPAlgo.msg
-index 67350fc..673a39e 100644
---- a/src/BOPAlgo/BOPAlgo.msg
-+++ b/src/BOPAlgo/BOPAlgo.msg
-@@ -67,3 +67,12 @@ Warning: Removal of internal boundaries among Faces has failed
- .BOPAlgo_AlertRemovalOfIBForEdgesFailed
- Warning: Removal of internal boundaries among Edges has failed
-+
-+.BOPAlgo_AlertIntersectionOfPairOfShapesFailed
-+Warning: Intersection of pair of shapes has failed
-+
-+.BOPAlgo_AlertBuildingPCurveFailed
-+Warning: Building 2D curve of edge on face has failed
-+
-+.BOPAlgo_AlertAcquiredSelfIntersection
-+Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered
-diff --git a/src/BOPAlgo/BOPAlgo_Alerts.hxx b/src/BOPAlgo/BOPAlgo_Alerts.hxx
-index 02cec15..04ce9c7 100644
---- a/src/BOPAlgo/BOPAlgo_Alerts.hxx
-+++ b/src/BOPAlgo/BOPAlgo_Alerts.hxx
-@@ -78,4 +78,14 @@ DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertShellSplitterFailed)
- //! Some edges are too small and have no valid range
- DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertTooSmallEdge)
-+//! Intersection of pair of shapes has failed
-+DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertIntersectionOfPairOfShapesFailed)
-+
-+//! Building 2D curve of edge on face has failed
-+DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertBuildingPCurveFailed)
-+
-+//! Some sub-shapes of some of the argument become connected through
-+//! other shapes and the argument became self-interfered
-+DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertAcquiredSelfIntersection)
-+
- #endif // _BOPAlgo_Alerts_HeaderFile
-diff --git a/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx b/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
-index c63a538..feec778 100644
---- a/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
-+++ b/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
-@@ -69,4 +69,13 @@ static const char BOPAlgo_BOPAlgo_msg[] =
-   "Warning: Removal of internal boundaries among Faces has failed\n"
-   "\n"
-   ".BOPAlgo_AlertRemovalOfIBForEdgesFailed\n"
--  "Warning: Removal of internal boundaries among Edges has failed\n";
-+  "Warning: Removal of internal boundaries among Edges has failed\n"
-+  "\n"
-+  ".BOPAlgo_AlertIntersectionOfPairOfShapesFailed\n"
-+  "Warning: Intersection of pair of shapes has failed\n"
-+  "\n"
-+  ".BOPAlgo_AlertBuildingPCurveFailed\n"
-+  "Warning: Building 2D curve of edge on face has failed\n"
-+  "\n"
-+  ".BOPAlgo_AlertAcquiredSelfIntersection\n"
-+  "Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered\n";
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
-index ab79f4e..bd4e512 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
-@@ -87,13 +87,19 @@ class TopoDS_Face;
- //! - *Gluing options* - allows to speed up the calculation on the special
- //!                      cases, in which some sub-shapes are coincide.<br>
- //!
--//! The algorithm returns the following Warning statuses:<br>
--//! - *BOPAlgo_AlertSelfInterferingShape* - in case some of the argument shapes are self-interfering shapes;<br>
--//! - *BOPAlgo_AlertTooSmallEdge* - in case some edges of the input shapes have no valid range;<br>
-+//! The algorithm returns the following Warning statuses:
-+//! - *BOPAlgo_AlertSelfInterferingShape* - in case some of the argument shapes are self-interfering shapes;
-+//! - *BOPAlgo_AlertTooSmallEdge* - in case some edges of the input shapes have no valid range;
- //! - *BOPAlgo_AlertNotSplittableEdge* - in case some edges of the input shapes has such a small
--//!                         valid range so it cannot be split;<br>
-+//!                                      valid range so it cannot be split;
- //! - *BOPAlgo_AlertBadPositioning* - in case the positioning of the input shapes leads to creation
--//!                      of small edges.<br>
-+//!                                   of small edges;
-+//! - *BOPAlgo_AlertIntersectionOfPairOfShapesFailed* - in case intersection of some of the
-+//!                                                     sub-shapes has failed;
-+//! - *BOPAlgo_AlertAcquiredSelfIntersection* - in case some sub-shapes of the argument become connected
-+//!                                             through other shapes;
-+//! - *BOPAlgo_AlertBuildingPCurveFailed* - in case building 2D curve for some of the edges
-+//!                                         on the faces has failed.
- //!
- //! The algorithm returns the following Error alerts:
- //! - *BOPAlgo_AlertTooFewArguments* - in case there are no enough arguments to
-@@ -290,6 +296,7 @@ protected:
-                                     BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDMExEdges,
-                                     BOPCol_DataMapOfIntegerInteger& theDMNewSD,
-                                     const BOPCol_IndexedMapOfShape& theMicroEdges,
-+                                    const BOPCol_IndexedMapOfShape& theVertsOnRejectedPB,
-                                     const BOPCol_BaseAllocator& theAllocator);
-   
-   Standard_EXPORT void FindPaveBlocks (const Standard_Integer theV, const Standard_Integer theF, BOPDS_ListOfPaveBlock& theLPB);
-@@ -474,6 +481,8 @@ protected:
-   //! In case self-interference is found the warning is added.
-   Standard_EXPORT void CheckSelfInterference();
-+  //! Adds the warning about failed intersection of pair of sub-shapes
-+  Standard_EXPORT void AddIntersectionFailedWarning(const TopoDS_Shape& theS1, const TopoDS_Shape& theS2);
-   BOPCol_ListOfShape myArguments;
-   BOPDS_PDS myDS;
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
-index c8341c5..83faf2d 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
-@@ -112,7 +112,8 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-               }
-               //
-               if (aLE.Extent() > 1) {
--                // Add warning
-+                // Add the acquired self-interference warning:
-+                // The same common block contains several edges from one argument
-                 TopoDS_Compound aWC;
-                 aBB.MakeCompound(aWC);
-                 //
-@@ -122,7 +123,7 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-                   aBB.Add(aWC, aE1);
-                 }
-                 //
--                AddWarning (new BOPAlgo_AlertSelfInterferingShape (aWC));
-+                AddWarning (new BOPAlgo_AlertAcquiredSelfIntersection (aWC));
-               }
-             }
-           }
-@@ -168,7 +169,8 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-     for (j = 1; j <= aNbC; ++j) {
-       const BOPCol_IndexedMapOfShape& aMCS = aMCSI(j);
-       if (aMCS.Extent() > 1) {
--        // Add self-interference warning
-+        // Add acquired self-interference warning:
-+        // Several faces from one argument contain the same vertex or edge
-         TopoDS_Compound aWC;
-         aBB.MakeCompound(aWC);
-         //
-@@ -177,7 +179,7 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-           const TopoDS_Shape& aSx = aMCS(iS);
-           aBB.Add(aWC, aSx);
-         }
--        AddWarning (new BOPAlgo_AlertSelfInterferingShape (aWC));
-+        AddWarning (new BOPAlgo_AlertAcquiredSelfIntersection (aWC));
-       }
-     }
-   }
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
-index c496668..9ac5e67 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
-@@ -17,6 +17,7 @@
- #include <BOPAlgo_PaveFiller.hxx>
-+#include <BOPAlgo_Alerts.hxx>
- #include <BOPAlgo_Tools.hxx>
- #include <BOPCol_NCVector.hxx>
- #include <BOPCol_Parallel.hxx>
-@@ -27,6 +28,7 @@
- #include <BOPDS_PaveBlock.hxx>
- #include <BOPDS_VectorOfInterfVE.hxx>
- #include <BOPTools_AlgoTools.hxx>
-+#include <BRep_Builder.hxx>
- #include <BRep_Tool.hxx>
- #include <gp_Pnt.hxx>
- #include <IntTools_Context.hxx>
-@@ -110,7 +112,16 @@ class BOPAlgo_VertexEdge : public BOPAlgo_Algo {
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    myFlag=myContext->ComputeVE (myV, myE, myT, myTolVNew, myFuzzyValue);
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      myFlag=myContext->ComputeVE (myV, myE, myT, myTolVNew, myFuzzyValue);
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   };
-   //
-  protected:
-@@ -267,6 +278,11 @@ void BOPAlgo_PaveFiller::IntersectVE
-   for (i = 0; i < aNbVE; ++i) {
-     const BOPAlgo_VertexEdge& aVESolver = aVVE(i);
-     if (aVESolver.Flag() != 0) {
-+      if (aVESolver.HasErrors())
-+      {
-+        // Warn about failed intersection of sub-shapes
-+        AddIntersectionFailedWarning(aVESolver.Vertex(), aVESolver.Edge());
-+      }
-       continue;
-     }
-     //
-@@ -491,3 +507,19 @@ void BOPAlgo_PaveFiller::SplitPaveBlocks(const BOPCol_MapOfInteger& theMEdges,
-     }
-   }
- }
-+
-+//=======================================================================
-+// function: AddIntersectionFailedWarning
-+// purpose: 
-+//=======================================================================
-+void BOPAlgo_PaveFiller::AddIntersectionFailedWarning(const TopoDS_Shape& theS1,
-+                                                      const TopoDS_Shape& theS2)
-+{
-+  // Create the warn shape
-+  TopoDS_Compound aWC;
-+  BRep_Builder().MakeCompound(aWC);
-+  BRep_Builder().Add(aWC, theS1);
-+  BRep_Builder().Add(aWC, theS2);
-+  // Add the warning
-+  AddWarning(new BOPAlgo_AlertIntersectionOfPairOfShapesFailed(aWC));
-+}
-\ No newline at end of file
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
-index 3a8892e..5db97a8 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
-@@ -93,7 +93,16 @@ class BOPAlgo_EdgeEdge :
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    IntTools_EdgeEdge::Perform();
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      IntTools_EdgeEdge::Perform();
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -229,7 +238,11 @@ void BOPAlgo_PaveFiller::PerformEE()
-     Bnd_Box aBB1, aBB2;
-     //
-     BOPAlgo_EdgeEdge& anEdgeEdge=aVEdgeEdge(k);
--    if (!anEdgeEdge.IsDone()) {
-+    if (!anEdgeEdge.IsDone() || anEdgeEdge.HasErrors()) {
-+      // Warn about failed intersection of sub-shapes
-+      const TopoDS_Shape& aE1 = myDS->Shape(anEdgeEdge.PaveBlock1()->OriginalEdge());
-+      const TopoDS_Shape& aE2 = myDS->Shape(anEdgeEdge.PaveBlock2()->OriginalEdge());
-+      AddIntersectionFailedWarning(aE1, aE2);
-       continue;
-     }
-     //
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
-index 291edb2..900d363 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
-@@ -17,6 +17,7 @@
- #include <BOPAlgo_PaveFiller.hxx>
-+#include <BOPAlgo_Alerts.hxx>
- #include <BOPAlgo_SectionAttribute.hxx>
- #include <BOPCol_MapOfInteger.hxx>
- #include <BOPCol_NCVector.hxx>
-@@ -107,7 +108,16 @@ class BOPAlgo_VertexFace : public BOPAlgo_Algo {
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    myFlag=myContext->ComputeVF(myV, myF, myT1, myT2, myTolVNew, myFuzzyValue);
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      myFlag=myContext->ComputeVF(myV, myF, myT1, myT2, myTolVNew, myFuzzyValue);
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -212,7 +222,12 @@ void BOPAlgo_PaveFiller::PerformVF()
-     const BOPAlgo_VertexFace& aVertexFace=aVVF(k);
-     // 
-     iFlag=aVertexFace.Flag();
--    if (iFlag) {
-+    if (iFlag != 0) {
-+      if (aVertexFace.HasErrors())
-+      {
-+        // Warn about failed intersection of sub-shapes
-+        AddIntersectionFailedWarning(aVertexFace.Vertex(), aVertexFace.Face());
-+      }
-       continue;
-     }
-     //
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
-index 84fc6d1..717e478 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
-@@ -103,7 +103,16 @@ class BOPAlgo_EdgeFace :
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    IntTools_EdgeFace::Perform();
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      IntTools_EdgeFace::Perform();
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -258,7 +267,9 @@ void BOPAlgo_PaveFiller::PerformEF()
-   //
-   for (k=0; k < aNbEdgeFace; ++k) {
-     BOPAlgo_EdgeFace& aEdgeFace=aVEdgeFace(k);
--    if (!aEdgeFace.IsDone()) {
-+    if (!aEdgeFace.IsDone() || aEdgeFace.HasErrors()) {
-+      // Warn about failed intersection of sub-shapes
-+      AddIntersectionFailedWarning(aEdgeFace.Edge(), aEdgeFace.Face());
-       continue;
-     }
-     //
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
-index bbc1b35..dfbfe61 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
-@@ -144,7 +144,16 @@ class BOPAlgo_FaceFace :
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    IntTools_FaceFace::Perform(myF1, myF2);
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      IntTools_FaceFace::Perform(myF1, myF2);
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -263,10 +272,12 @@ void BOPAlgo_PaveFiller::PerformFF()
-   for (k = 0; k < aNbFaceFace; ++k) {
-     BOPAlgo_FaceFace& aFaceFace = aVFaceFace(k);
-     aFaceFace.Indices(nF1, nF2);
--    if (!aFaceFace.IsDone()) {
-+    if (!aFaceFace.IsDone() || aFaceFace.HasErrors()) {
-       BOPDS_InterfFF& aFF = aFFs.Append1();
-       aFF.SetIndices(nF1, nF2);
-       aFF.Init(0, 0);
-+      // Warn about failed intersection of faces
-+      AddIntersectionFailedWarning(aFaceFace.Face1(), aFaceFace.Face2());
-       continue;
-     }
-     //
-@@ -373,6 +384,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
-   BOPCol_DataMapOfIntegerListOfInteger aDMBV(100, aAllocator);
-   BOPCol_DataMapIteratorOfDataMapOfIntegerReal aItMV;
-   BOPCol_IndexedMapOfShape aMicroEdges(100, aAllocator);
-+  BOPCol_IndexedMapOfShape aVertsOnRejectedPB;
-   //
-   for (i=0; i<aNbFF; ++i) {
-     //
-@@ -557,6 +569,19 @@ void BOPAlgo_PaveFiller::MakeBlocks()
-             if (!bInBothFaces) {
-               aMPBAdd.Add(aPBOut);
-               PreparePostTreatFF(i, j, aPBOut, aMSCPB, aMVI, aLPBC);
-+              // Try fusing the vertices of the existing pave block
-+              // with the vertices put on the real section curve (except
-+              // for technological vertices, which will be removed)
-+              Standard_Integer nVOut1, nVOut2;
-+              aPBOut->Indices(nVOut1, nVOut2);
-+              if (nV1 != nVOut1 && nV1 != nVOut2 && !aMVBounds.Contains(nV1))
-+              {
-+                aVertsOnRejectedPB.Add(aV1);
-+              }
-+              if (nV2 != nVOut1 && nV2 != nVOut2 && !aMVBounds.Contains(nV2))
-+              {
-+                aVertsOnRejectedPB.Add(aV2);
-+              }
-             }
-           }
-           continue;
-@@ -639,7 +664,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
-   // 
-   // post treatment
-   MakeSDVerticesFF(aDMVLV, aDMNewSD);
--  PostTreatFF(aMSCPB, aDMExEdges, aDMNewSD, aMicroEdges, aAllocator);
-+  PostTreatFF(aMSCPB, aDMExEdges, aDMNewSD, aMicroEdges, aVertsOnRejectedPB, aAllocator);
-   if (HasErrors()) {
-     return;
-   }
-@@ -697,6 +722,7 @@ void BOPAlgo_PaveFiller::PostTreatFF
-      BOPDS_DataMapOfPaveBlockListOfPaveBlock& aDMExEdges,
-      BOPCol_DataMapOfIntegerInteger& aDMNewSD,
-      const BOPCol_IndexedMapOfShape& theMicroEdges,
-+     const BOPCol_IndexedMapOfShape& theVertsOnRejectedPB,
-      const Handle(NCollection_BaseAllocator)& theAllocator)
- {
-   Standard_Integer aNbS = theMSCPB.Extent();
-@@ -724,8 +750,9 @@ void BOPAlgo_PaveFiller::PostTreatFF
-   BOPDS_VectorOfInterfFF& aFFs=myDS->InterfFF();
-   //
-   Standard_Integer aNbME = theMicroEdges.Extent();
-+  Standard_Integer aNbVOnRPB = theVertsOnRejectedPB.Extent();
-   // 0
--  if (aNbS==1 && (aNbME == 0)) {
-+  if (aNbS==1 && (aNbME == 0) && (aNbVOnRPB == 0)) {
-     const TopoDS_Shape& aS=theMSCPB.FindKey(1);
-     const BOPDS_CoupleOfPaveBlocks &aCPB=theMSCPB.FindFromIndex(1);
-     //
-@@ -824,6 +851,20 @@ void BOPAlgo_PaveFiller::PostTreatFF
-       aBB.UpdateVertex(aVerts[1], aTolV2 + aDist);
-     }
-   }
-+
-+  // Add vertices put on the real section curves to unify them with the
-+  // vertices of the edges, by which these sections curves have been rejected
-+  for (Standard_Integer i = 1; i <= aNbVOnRPB; ++i)
-+  {
-+    TopoDS_Shape aVer = theVertsOnRejectedPB(i);
-+    Standard_Integer iVer = myDS->Index(aVer);
-+    const Standard_Integer* pSD = aDMNewSD.Seek(iVer);
-+    if (pSD)
-+      aVer = myDS->Shape(*pSD);
-+
-+    if (anAddedSD.Add(aVer))
-+      aLS.Append(aVer);
-+  }
-   //
-   // 2 Fuse shapes
-   aPF.SetProgressIndicator(myProgressIndicator);
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
-index bf02175..1e91f55 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
-@@ -16,6 +16,7 @@
- // commercial license or contractual agreement.
- #include <BOPAlgo_PaveFiller.hxx>
-+#include <BOPAlgo_Alerts.hxx>
- #include <BOPAlgo_SectionAttribute.hxx>
- #include <BOPAlgo_Tools.hxx>
- #include <BOPCol_IndexedMapOfShape.hxx>
-@@ -241,28 +242,37 @@ class BOPAlgo_MPC : public BOPAlgo_Algo  {
-   }
-   //
-   virtual void Perform() {
--    Standard_Integer iErr;
--    //
--    iErr=1;
--    if (!myEz.IsNull()) {
--      TopoDS_Edge aSpz;
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      Standard_Integer iErr;
-       //
--      BOPTools_AlgoTools::MakeSplitEdge(myEz,myV1, myT1, 
--                                        myV2, myT2, aSpz);
-+      iErr=1;
-+      if (!myEz.IsNull()) {
-+        TopoDS_Edge aSpz;
-+        //
-+        BOPTools_AlgoTools::MakeSplitEdge(myEz,myV1, myT1, 
-+                                          myV2, myT2, aSpz);
-+        //
-+        iErr=
-+          BOPTools_AlgoTools2D::AttachExistingPCurve(aSpz, 
-+                                                     myE, 
-+                                                     myF, 
-+                                                     myContext);
-+      }
-       //
--      iErr=
--        BOPTools_AlgoTools2D::AttachExistingPCurve(aSpz, 
--                                                   myE, 
--                                                   myF, 
--                                                   myContext);
--    }
--    //
--    if (iErr) { 
--      BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(myE, myF, myContext);
-+      if (iErr) { 
-+        BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(myE, myF, myContext);
-+      }
-+      // 
-+      if (myFlag) {
-+        UpdateVertices(myE, myF);
-+      }
-     }
--    // 
--    if (myFlag) {
--      UpdateVertices(myE, myF);
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertBuildingPCurveFailed(TopoDS_Shape()));
-     }
-   }
-   //
-@@ -676,6 +686,20 @@ void BOPAlgo_PaveFiller::MakePCurves()
-   //======================================================
-   BOPAlgo_MPCCnt::Perform(myRunParallel, aVMPC, myContext);
-   //======================================================
-+
-+  // Add warnings of the failed projections
-+  Standard_Integer aNb = aVMPC.Extent();
-+  for (i = 0; i < aNb; ++i)
-+  {
-+    if (aVMPC(i).HasErrors())
-+    {
-+      TopoDS_Compound aWC;
-+      BRep_Builder().MakeCompound(aWC);
-+      BRep_Builder().Add(aWC, aVMPC(i).Edge());
-+      BRep_Builder().Add(aWC, aVMPC(i).Face());
-+      AddWarning(new BOPAlgo_AlertBuildingPCurveFailed(aWC));
-+    }
-+  }
- }
- //=======================================================================
- //function : UpdateVertices
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
-index 495c640..08f515a 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
-@@ -32,6 +32,7 @@
- #include <Geom2d_Line.hxx>
- #include <Geom2d_TrimmedCurve.hxx>
- #include <Geom2dAdaptor_Curve.hxx>
-+#include <Geom2dAPI_ProjectPointOnCurve.hxx>
- #include <Geom2dInt_GInter.hxx>
- #include <gp_Lin2d.hxx>
- #include <gp_Pnt.hxx>
-@@ -52,6 +53,11 @@ static
-                        const Standard_Real  aP2,
-                        TopoDS_Edge& aNewEdge);
-+static
-+  Standard_Boolean AddSplitPoint(const Handle(BOPDS_PaveBlock)& thePBD,
-+                                 const BOPDS_Pave& thePave,
-+                                 const Standard_Real theTol);
-+
- //=======================================================================
- //function : ProcessDE
- //purpose  : 
-@@ -304,25 +310,30 @@ void BOPAlgo_PaveFiller::ProcessDE()
-     }
-     // Intersection
-     Geom2dInt_GInter aGInter(aGAC1, aGAC2, aTolInt, aTolInt);
--    if (!aGInter.IsDone()) {
--      continue;
--    }
--    //
--    // Analyze intersection points
--    Standard_Integer i, aNbPoints = aGInter.NbPoints();
--    for (i = 1; i <= aNbPoints; ++i) {
--      Standard_Real aX = aGInter.Point(i).ParamOnFirst();
--      if (aX - aTD1 < aTolCmp || aTD2 - aX < aTolCmp) {
--        continue;
-+    if (aGInter.IsDone() && aGInter.NbPoints())
-+    {
-+      // Analyze intersection points
-+      Standard_Integer i, aNbPoints = aGInter.NbPoints();
-+      for (i = 1; i <= aNbPoints; ++i) {
-+        Standard_Real aX = aGInter.Point(i).ParamOnFirst();
-+        aPave.SetParameter(aX);
-+        AddSplitPoint(aPBD, aPave, aTolCmp);
-       }
--      //
--      Standard_Integer anInd;
--      if (aPBD->ContainsParameter(aX, aTolCmp, anInd)) {
--        continue;
-+    }
-+    else
-+    {
-+      // If the intersection did not succeed, try the projection of the end point
-+      // of the curve corresponding to the vertex of degenerated edge
-+      Standard_Real aT = (nVD == aPB->Pave1().Index() ?
-+        aPB->Pave1().Parameter() : aPB->Pave2().Parameter());
-+      gp_Pnt2d aP2d = aC2D->Value(aT);
-+      Geom2dAPI_ProjectPointOnCurve aProj2d(aP2d, aC2DDE, aTD1, aTD2);
-+      if (aProj2d.NbPoints())
-+      {
-+        Standard_Real aX = aProj2d.LowerDistanceParameter();
-+        aPave.SetParameter(aX);
-+        AddSplitPoint(aPBD, aPave, aTolCmp);
-       }
--      //
--      aPave.SetParameter(aX);
--      aPBD->AppendExtPave1(aPave);
-     }
-   }
- }
-@@ -354,3 +365,34 @@ void BOPAlgo_PaveFiller::ProcessDE()
-   BB.UpdateEdge(E, aTol);
-   aNewEdge=E;
- }
-+
-+//=======================================================================
-+// function: AddSplitPoint
-+// purpose: Validates the point represented by the pave <thePave>
-+//          for the Pave Block <thePBD>.
-+//          In case the point passes the checks it is added as an
-+//          Extra Pave to the Pave Block for further splitting of the latter.
-+//          Returns TRUE if the point is added, otherwise returns FALSE.
-+//=======================================================================
-+Standard_Boolean AddSplitPoint(const Handle(BOPDS_PaveBlock)& thePBD,
-+                               const BOPDS_Pave& thePave,
-+                               const Standard_Real theTol)
-+{
-+  Standard_Real aTD1, aTD2;
-+  thePBD->Range(aTD1, aTD2);
-+
-+  Standard_Real aT = thePave.Parameter();
-+  // Check that the parameter is inside the Pave Block
-+  if (aT - aTD1 < theTol || aTD2 - aT < theTol)
-+    return Standard_False;
-+
-+  // Check that the pave block does not contain the same parameter
-+  Standard_Integer anInd;
-+  if (thePBD->ContainsParameter(aT, theTol, anInd))
-+    return Standard_False;
-+
-+  // Add the point as an Extra pave to the Pave Block for further
-+  // splitting of the latter
-+  thePBD->AppendExtPave1(thePave);
-+  return Standard_True;
-+}
-diff --git a/src/BOPTest/BOPTest_CheckCommands.cxx b/src/BOPTest/BOPTest_CheckCommands.cxx
-index 618e86c..77d5cd2 100644
---- a/src/BOPTest/BOPTest_CheckCommands.cxx
-+++ b/src/BOPTest/BOPTest_CheckCommands.cxx
-@@ -235,6 +235,8 @@ Standard_Integer bopcheck (Draw_Interpretor& di,
-   //
-   aTimer.Stop();
-   //
-+  BOPTest::ReportAlerts(aChecker);
-+  //
-   iErr=aChecker.HasErrors();
-   //
-   const BOPDS_DS& aDS=*(aChecker.PDS());
-diff --git a/src/IntWalk/IntWalk_PWalking.cxx b/src/IntWalk/IntWalk_PWalking.cxx
-index 54c42a1..eed1c63 100644
---- a/src/IntWalk/IntWalk_PWalking.cxx
-+++ b/src/IntWalk/IntWalk_PWalking.cxx
-@@ -159,6 +159,35 @@ static void IsParallel(const Handle(IntSurf_LineOn2S)& theLine,
-   theIsUparallel = ((aVmax - aVmin) < theToler);
- }
-+//=======================================================================
-+//function : AdjustToDomain
-+//purpose  : Returns TRUE if theP has been changed (i.e. initial value
-+//            was out of the domain)
-+//=======================================================================
-+static Standard_Boolean AdjustToDomain(const Standard_Integer theNbElem,
-+                                       Standard_Real* theParam,
-+                                       const Standard_Real* const theLowBorder,
-+                                       const Standard_Real* const theUppBorder)
-+{
-+  Standard_Boolean aRetVal = Standard_False;
-+  for (Standard_Integer i = 0; i < theNbElem; i++)
-+  {
-+    if ((theParam[i] - theLowBorder[i]) < -Precision::PConfusion())
-+    {
-+      theParam[i] = theLowBorder[i];
-+      aRetVal = Standard_True;
-+    }
-+
-+    if ((theParam[i] - theUppBorder[i]) > Precision::PConfusion())
-+    {
-+      theParam[i] = theUppBorder[i];
-+      aRetVal = Standard_True;
-+    }
-+  }
-+
-+  return aRetVal;
-+}
-+
- //==================================================================================
- // function : IntWalk_PWalking::IntWalk_PWalking
- // purpose  : 
-@@ -2247,7 +2276,19 @@ Standard_Boolean IntWalk_PWalking::HandleSingleSingularPoint(const Handle(Adapto
-         continue;
-       anInt.Point().Parameters(thePnt(1), thePnt(2), thePnt(3), thePnt(4));
--      return Standard_True;
-+
-+      Standard_Boolean isInDomain = Standard_True;
-+      for (Standard_Integer j = 1; isInDomain && (j <= 4); ++j)
-+      {
-+        if ((thePnt(j) - aLowBorder[j - 1] + Precision::PConfusion())*
-+            (thePnt(j) - aUppBorder[j - 1] - Precision::PConfusion()) > 0.0)
-+        {
-+          isInDomain = Standard_False;
-+        }
-+      }
-+
-+      if (isInDomain)
-+        return Standard_True;
-     }
-   }
-@@ -2259,16 +2300,26 @@ Standard_Boolean IntWalk_PWalking::HandleSingleSingularPoint(const Handle(Adapto
- //purpose  : 
- //=======================================================================
- Standard_Boolean IntWalk_PWalking::
--SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
--                    const Handle(Adaptor3d_HSurface)& theASurf2,
--                    const Standard_Real theU1,
--                    const Standard_Real theV1,
--                    const Standard_Real theU2,
--                    const Standard_Real theV2,
--                    const Standard_Boolean isTheFirst)
-+        SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
-+                            const Handle(Adaptor3d_HSurface)& theASurf2,
-+                            const Standard_Real theU1,
-+                            const Standard_Real theV1,
-+                            const Standard_Real theU2,
-+                            const Standard_Real theV2,
-+                            const Standard_Boolean isTheFirst)
- {
-   Standard_Boolean isOK = Standard_False;
-+  // u1, v1, u2, v2 order is used.
-+  const Standard_Real aLowBorder[4] = {theASurf1->FirstUParameter(),
-+                                       theASurf1->FirstVParameter(),
-+                                       theASurf2->FirstUParameter(),
-+                                       theASurf2->FirstVParameter()};
-+  const Standard_Real aUppBorder[4] = {theASurf1->LastUParameter(),
-+                                       theASurf1->LastVParameter(),
-+                                       theASurf2->LastUParameter(),
-+                                       theASurf2->LastVParameter()};
-+
-   // Tune solution tolerance according with object size.
-   const Standard_Real aRes1 = Max(Precision::PConfusion() / theASurf1->UResolution(1.0),
-                                   Precision::PConfusion() / theASurf1->VResolution(1.0));
-@@ -2288,21 +2339,26 @@ SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
-   {
-     aNbIter--;
-     aStatus = DistanceMinimizeByGradient(theASurf1, theASurf2, aPnt);
--    if(aStatus)
-+    if (aStatus && !AdjustToDomain(4, &aPnt(1), &aLowBorder[0], &aUppBorder[0]))
-       break;
--    aStatus = DistanceMinimizeByExtrema(theASurf1, theASurf2->Value(aPnt(3), aPnt(4)), aPnt(1), aPnt(2));
--    if(aStatus)
-+    aStatus = DistanceMinimizeByExtrema(theASurf1, theASurf2->Value(aPnt(3), aPnt(4)),
-+                                        aPnt(1), aPnt(2));
-+    if (aStatus && !AdjustToDomain(2, &aPnt(1), &aLowBorder[0], &aUppBorder[0]))
-       break;
--    aStatus = DistanceMinimizeByExtrema(theASurf2, theASurf1->Value(aPnt(1), aPnt(2)), aPnt(3), aPnt(4));
--    if(aStatus)
-+    aStatus = DistanceMinimizeByExtrema(theASurf2, theASurf1->Value(aPnt(1), aPnt(2)),
-+                                        aPnt(3), aPnt(4));
-+    if (aStatus && !AdjustToDomain(2, &aPnt(3), &aLowBorder[2], &aUppBorder[2]))
-       break;
-   }
-   while(!aStatus && (aNbIter > 0));
-   // Handle singular points.
--  Standard_Boolean aSingularStatus = HandleSingleSingularPoint(theASurf1, theASurf2, aTol, aSingularPnt);
-+  Standard_Boolean aSingularStatus = HandleSingleSingularPoint(theASurf1,
-+                                                               theASurf2,
-+                                                               aTol,
-+                                                               aSingularPnt);
-   if (aSingularStatus)
-     aPnt = aSingularPnt;
-diff --git a/tests/bugs/modalg_7/bug25879 b/tests/bugs/modalg_7/bug25879
-index bb45244..e344c39 100755
---- a/tests/bugs/modalg_7/bug25879
-+++ b/tests/bugs/modalg_7/bug25879
-@@ -13,7 +13,8 @@ explode Box E
- blend Fillet Box 1 Box_1 1 Box_2 1 Box_3 1 Box_4 1 Box_5 1 Box_6 1 Box_7 1 Box_8 1 Box_9 1 Box_10 1 Box_11 1 Box_12
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet]] == 1 } {
-+set bug_info [string trim [bopcheck Fillet]]
-+if {$bug_info != "This shape seems to be OK."} {
-     puts "Error : result of blend fails the bopcheck"
- }
-diff --git a/tests/bugs/modalg_7/bug29073 b/tests/bugs/modalg_7/bug29073
-new file mode 100644
-index 0000000..e13beca
---- /dev/null
-+++ b/tests/bugs/modalg_7/bug29073
-@@ -0,0 +1,34 @@
-+puts "======="
-+puts "0029073"
-+puts "======="
-+puts ""
-+##################################################
-+# Regression: General Cut produces invalid shape
-+##################################################
-+
-+brestore [locate_data_file bug29073_M6.brep] b1
-+brestore [locate_data_file bug29073_Shell.brep] b2
-+
-+bclearobjects
-+bcleartools
-+baddobjects b1
-+baddtools b2
-+bfillds
-+
-+# check the result of SECTION
-+bbop rsec 4
-+checknbshapes rsec -edge 1 -vertex 2
-+
-+# check the result of GF
-+bbuild rgf
-+checkshape rgf
-+checkprops rgf -s 163.708 -v 115.912
-+checknbshapes rgf -wire 25 -face 24 -shell 3 -solid 1
-+
-+# check the CUT
-+bbop result 3
-+checkshape result
-+checkprops result -s 0.000713987
-+checknbshapes result -wire 1 -face 1
-+
-+checkview -display result -2d -path ${imagedir}/${test_image}.png
-diff --git a/tests/bugs/modalg_7/bug29099 b/tests/bugs/modalg_7/bug29099
-new file mode 100644
-index 0000000..f4bbf91
---- /dev/null
-+++ b/tests/bugs/modalg_7/bug29099
-@@ -0,0 +1,23 @@
-+puts "======="
-+puts "0029099"
-+puts "======="
-+puts ""
-+##################################################
-+# Extra shapes in result of General Cut (box by ellipsoid)
-+##################################################
-+
-+brestore [locate_data_file bug29099_Box.brep] b1
-+brestore [locate_data_file bug29099_Rotation.brep] b2
-+
-+bclearobjects
-+bcleartools
-+baddobjects b1
-+baddtools b2
-+bfillds
-+bbuild result
-+
-+checkshape result
-+checknbshapes result -wire 11 -face 10 -shell 3 -solid 3
-+checkprops result -s 12651.3 -v 52187.5
-+
-+checkview -display result -2d -path ${imagedir}/${test_image}.png
-\ No newline at end of file
-diff --git a/tests/bugs/modalg_7/bug29103 b/tests/bugs/modalg_7/bug29103
-new file mode 100644
-index 0000000..33bc06c
---- /dev/null
-+++ b/tests/bugs/modalg_7/bug29103
-@@ -0,0 +1,56 @@
-+puts "========"
-+puts "OCC29103"
-+puts "========"
-+puts ""
-+#################################################
-+# No intersection curve between faces if starting points are given
-+#################################################
-+
-+set MaxTolReached 2.0e-7
-+set GoodNbCurv 1
-+set ExpLength 0.074141742883251954
-+
-+restore [locate_data_file bug29073_M6.brep] a
-+restore [locate_data_file bug29073_Shell.brep] b
-+explode a f
-+explode b f
-+
-+don b_2
-+axo
-+fit
-+disp a_6
-+
-+set log1 [bopcurves a_6 b_2 -2d]
-+
-+checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png
-+checklength c_1 -l $ExpLength
-+
-+don b_2
-+axo
-+fit
-+disp a_6
-+
-+set log2 [bopcurves a_6 b_2 -2d -p -0.55478319275098653 1.2919191091235780 0.80333089657224976 0.67079577554162440 -p -0.62451407353846222 1.2667484772947102 0.82894736842100003 0.70523311453721027]
-+
-+checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png
-+checklength c_1 -l $ExpLength
-+
-+regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler1 NbCurv1
-+regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler2 NbCurv2
-+
-+if {$Toler1 > $MaxTolReached} {
-+  puts "Error: Big tolerance is returned by intersector w/o start points"
-+}
-+
-+if {$Toler2 > $MaxTolReached} {
-+  puts "Error: Big tolerance is returned by intersector with start points"
-+}
-+
-+if {$NbCurv1 != $GoodNbCurv} {
-+  puts "Error: Please check NbCurves for intersector w/o start points"
-+}
-+
-+if {$NbCurv2 != $GoodNbCurv} {
-+  puts "Error: Please check NbCurves for intersector with start points"
-+}
-+
-diff --git a/tests/bugs/moddata_3/bug25693_1 b/tests/bugs/moddata_3/bug25693_1
-index de7953d..86d1aeb 100755
---- a/tests/bugs/moddata_3/bug25693_1
-+++ b/tests/bugs/moddata_3/bug25693_1
-@@ -10,7 +10,8 @@ puts ""
- restore [locate_data_file bug25693_path3035.brep] result
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck result]] == 1 } {
-+set bug_info [string trim [bopcheck result]]
-+if {$bug_info != "This shape seems to be OK."} {
-     puts "Error : Wire of BSplines fails bopcheck"
- }
-diff --git a/tests/bugs/moddata_3/bug25693_2 b/tests/bugs/moddata_3/bug25693_2
-index 6b3bfb1..cfc7a0e 100755
---- a/tests/bugs/moddata_3/bug25693_2
-+++ b/tests/bugs/moddata_3/bug25693_2
-@@ -12,11 +12,13 @@ restore [locate_data_file bug25693_path3039.brep] path3039
- prism Extrude_path3039 path3039 0 0 50
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck path3039]] == 1 } {
-+set log1 [string trim [bopcheck path3039]]
-+if {$log1 != "This shape seems to be OK."} {
-     puts "Error : bad shape"
- }
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Extrude_path3039]] == 1 } {
-+set log2 [string trim [bopcheck Extrude_path3039]]
-+if {$log2 != "This shape seems to be OK."} {
-     puts "Error : Wire of BSplines fails bopcheck"
- }
diff --git a/config/EDF_patches/SALOME_8_5_0/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch b/config/EDF_patches/SALOME_8_5_0/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch
deleted file mode 100644 (file)
index 5240a41..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- orig/ParaView-5.4.0-463c0633_SRC/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx  2017-09-13 10:51:02.000000000 +0300
-+++ ParaView-5.4.0-463c0633_SRC/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx       2017-11-14 16:15:29.312760666 +0300
-@@ -402,10 +402,13 @@
-   }
- }
-+static bool ctxErrorOccurred = false;
-+
- extern "C"
- {
-   int vtkXOGLContextCreationErrorHandler(Display*, XErrorEvent*)
-   {
-+    ctxErrorOccurred = true;
-     return 1;
-   }
- }
-@@ -584,6 +587,11 @@
-             GL_TRUE, context_attribs );
-         // Sync to ensure any errors generated are processed.
-         XSync( this->DisplayId, False );
-+        if(ctxErrorOccurred)
-+        {
-+          this->Internal->ContextId = nullptr;
-+          ctxErrorOccurred = false;
-+        }
-       }
-       XSetErrorHandler(previousHandler);
-       if ( this->Internal->ContextId )
diff --git a/config/EDF_patches/SALOME_8_5_0/README.txt b/config/EDF_patches/SALOME_8_5_0/README.txt
deleted file mode 100644 (file)
index 279a1fe..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-n this directory you can find all the patch used for V8_5_0 building :
-
-CGAL           4.0                     : cgal_cmake352.patch
-EIGEN          3.2.7                   : eigen-eigen-3.2.7.patch
-GL2PS          1.4.0-20170729          : gl2ps.patch
-HDF5           1.8.14                  : patchHDF5Build.py
-OCC            7.2.0p3                 : OCCT-7.2.0.patch
-PARAVIEW       git_tag/v5.4.1p2        : ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch, patch_pv_b5c4c893_py_catalyst.patch
-PIL            1.1.7                   : pil.patch
-RPY            1.0.3                   : setup.patch, rpy_tools.patch, RPy.patch
-SCOTCH         6.0.4                   : scotch604_Make.inc.patch
-SPHINX         1.2.3                   : sphinx_w_intl_napoleon.patch
diff --git a/config/EDF_patches/SALOME_8_5_0/RPy.patch b/config/EDF_patches/SALOME_8_5_0/RPy.patch
deleted file mode 100644 (file)
index 784af8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/RPy.h        2016-09-27 14:41:20.485222614 +0200
-+++ b/src/RPy.h        2016-09-27 14:41:29.177144534 +0200
-@@ -74,7 +74,7 @@
- #  endif
- #endif  /* _WIN32 */
--#include <Rdevices.h> /* must follow Graphics.h */
-+//#include <Rdevices.h> /* must follow Graphics.h */
- /* Missing definitions from Rinterface.h or RStartup.h */
diff --git a/config/EDF_patches/SALOME_8_5_0/cgal_cmake352.patch b/config/EDF_patches/SALOME_8_5_0/cgal_cmake352.patch
deleted file mode 100644 (file)
index 88124b3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/CMakeLists.txt       2012-02-10 21:00:53.000000000 +0100
-+++ b/src/CMakeLists.txt       2016-04-21 17:09:10.641089365 +0200
-@@ -117,7 +117,7 @@
-   file(GLOB CONFIGURED_LIBS_IN_PACKAGE ${package}/src/CGAL*/CMakeLists.txt)
-   foreach (libconfigfile ${CONFIGURED_LIBS_IN_PACKAGE})
-     string(REPLACE "${package}/src/" "" libconfigfile ${libconfigfile})
--    string(REPLACE "//CMakeLists.txt" "" CGAL_CONFIGURED_LIBRARY_SUBDIR ${libconfigfile})
-+    string(REPLACE "/CMakeLists.txt" "" CGAL_CONFIGURED_LIBRARY_SUBDIR ${libconfigfile})
-     if (NOT ${CGAL_CONFIGURED_LIBRARY_SUBDIR} STREQUAL "CGAL")
-       string(REPLACE "CGAL" "" CGAL_CONFIGURED_LIBRARY_NAME ${CGAL_CONFIGURED_LIBRARY_SUBDIR})
diff --git a/config/EDF_patches/SALOME_8_5_0/eigen-eigen-3.2.7.patch b/config/EDF_patches/SALOME_8_5_0/eigen-eigen-3.2.7.patch
deleted file mode 100644 (file)
index 77d31cf..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-commit 43401eee36e1af2ca170b2824e76875f2ac56964
-Author: spo <sergey.pokhodenko@opencascade.com>
-Date:   Tue Dec 22 12:46:02 2015 +0300
-
-    Replace nullptr with 0
-
-diff --git a/Eigen/src/Core/DenseStorage.h b/Eigen/src/Core/DenseStorage.h
-index 568493c..c30c084 100755
---- a/Eigen/src/Core/DenseStorage.h
-+++ b/Eigen/src/Core/DenseStorage.h
-@@ -278,7 +278,7 @@ template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynam
-       , m_rows(std::move(other.m_rows))
-       , m_cols(std::move(other.m_cols))
-     {
--      other.m_data = nullptr;
-+      other.m_data = 0;
-     }
-     DenseStorage& operator=(DenseStorage&& other)
-     {
-@@ -336,7 +336,7 @@ template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Ro
-       : m_data(std::move(other.m_data))
-       , m_cols(std::move(other.m_cols))
-     {
--      other.m_data = nullptr;
-+      other.m_data = 0;
-     }
-     DenseStorage& operator=(DenseStorage&& other)
-     {
-@@ -390,7 +390,7 @@ template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dyn
-       : m_data(std::move(other.m_data))
-       , m_rows(std::move(other.m_rows))
-     {
--      other.m_data = nullptr;
-+      other.m_data = 0;
-     }
-     DenseStorage& operator=(DenseStorage&& other)
-     {
diff --git a/config/EDF_patches/SALOME_8_5_0/gl2ps.patch b/config/EDF_patches/SALOME_8_5_0/gl2ps.patch
deleted file mode 100644 (file)
index 9b99528..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- A/CMakeLists.txt   2016-07-19 11:43:42.845939766 +0200
-+++ B/CMakeLists.txt   2016-07-19 11:44:33.633939452 +0200
-@@ -140,9 +140,9 @@
- if(GLUT_FOUND)
-   add_executable(gl2psTest WIN32 gl2psTest.c)
--  target_link_libraries(gl2psTest lib ${EXTERNAL_LIBRARIES})
-+  target_link_libraries(gl2psTest lib m ${EXTERNAL_LIBRARIES})
-   add_executable(gl2psTestSimple WIN32 gl2psTestSimple.c)
--  target_link_libraries(gl2psTestSimple lib ${EXTERNAL_LIBRARIES})
-+  target_link_libraries(gl2psTestSimple lib m ${EXTERNAL_LIBRARIES})
- endif(GLUT_FOUND)
- find_package(LATEX)
diff --git a/config/EDF_patches/SALOME_8_5_0/patchHDF5Build.py b/config/EDF_patches/SALOME_8_5_0/patchHDF5Build.py
deleted file mode 100644 (file)
index af886ca..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-import os
-
-li=[]
-for root,dirs,fis in os.walk(os.getcwd()):
-  if "link.txt" in fis:
-    li.append(os.path.join(root,"link.txt"))
-
-for f in li:
-  fid=file(f)
-  lines=fid.readlines()
-  for ii,st in enumerate(lines):
-    st=st.replace("-Wl,--export-dynamic;","-Wl,--export-dynamic")
-    st=st.replace("--enable-new-dtags;","--enable-new-dtags")
-    lines[ii]=st
-    pass
-  fid=file(f,"w") ; fid.writelines(lines)
-
diff --git a/config/EDF_patches/SALOME_8_5_0/patch_pv_b5c4c893_py_catalyst.patch b/config/EDF_patches/SALOME_8_5_0/patch_pv_b5c4c893_py_catalyst.patch
deleted file mode 100644 (file)
index 055f0e4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e3031c3..f5585fa 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -923,3 +923,6 @@ if (NOT WIN32 AND is_git)
-       "paraview-source-${format}")
-   endforeach ()
- endif ()
-+
-+FILE(WRITE ${PROJECT_BINARY_DIR}/lib/cmake/paraview-5.4/Modules/vtkPVPythonCatalystHierarchy.txt "This is a patch")
-+
diff --git a/config/EDF_patches/SALOME_8_5_0/pil.patch b/config/EDF_patches/SALOME_8_5_0/pil.patch
deleted file mode 100644 (file)
index 59f4de5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/setup.py 2009-11-15 17:06:10.000000000 +0100
-+++ b/setup.py 2012-09-19 13:39:39.417889941 +0200
-@@ -34,8 +34,13 @@
- # TIFF_ROOT = libinclude("/opt/tiff")
- TCL_ROOT = None
-+TCL_ROOT = libinclude(os.getenv("TCLDIR"))
-+TK_ROOT = libinclude(os.getenv("TKDIR"))
- JPEG_ROOT = None
- ZLIB_ROOT = None
-+JPEG_ROOT = ("/usr/lib/x86_64-linux-gnu","/usr/include/x86_64-linux-gnu")
-+ZLIB_ROOT = ("/usr/lib/x86_64-linux-gnu","/usr/include/x86_64-linux-gnu")
- TIFF_ROOT = None
- FREETYPE_ROOT = None
-+FREETYPE_ROOT = libinclude(os.getenv("FREETYPEDIR"))
- LCMS_ROOT = None
-@@ -189,7 +193,7 @@
-         #
-         # add configured kits
--        for root in (TCL_ROOT, JPEG_ROOT, TCL_ROOT, TIFF_ROOT, ZLIB_ROOT,
-+        for root in (TCL_ROOT, JPEG_ROOT, TK_ROOT, TIFF_ROOT, ZLIB_ROOT,
-                      FREETYPE_ROOT, LCMS_ROOT):
-             if isinstance(root, type(())):
-                 lib_root, include_root = root
diff --git a/config/EDF_patches/SALOME_8_5_0/rpy_tools.patch b/config/EDF_patches/SALOME_8_5_0/rpy_tools.patch
deleted file mode 100644 (file)
index d4524d5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/rpy_tools.py     2016-09-27 14:40:12.501833432 +0200
-+++ b/rpy_tools.py     2016-09-27 14:40:51.289484908 +0200
-@@ -98,7 +98,7 @@
-       raise RuntimeError("Couldn't execute the R interpreter" +
-                          " `%s'.\n" % rexec )
-     # edd 05 Apr 2006  version = re.search("R +([0-9]\.[0-9]\.[0-9])", output)
--    version = re.search(" +([0-9]\.[0-9]\.[0-9])", output)
-+    version = re.search(" (\d+?\.\d+?\.\d+?) ", output)
-     if not version:
-       raise RuntimeError("Couldn't obtain version number from output\n"
-                                "of `R --version'.\n")
diff --git a/config/EDF_patches/SALOME_8_5_0/scotch604_Make.inc.patch b/config/EDF_patches/SALOME_8_5_0/scotch604_Make.inc.patch
deleted file mode 100644 (file)
index 2f09266..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -Naur Scotch-604/src/Make.inc/Makefile.inc.i686_pc_linux2 Scotch-604_esmumps/src/Make.inc/Makefile.inc.i686_pc_linux2
---- Scotch-604/src/Make.inc/Makefile.inc.i686_pc_linux2        2018-02-20 11:23:34.588586025 +0100
-+++ Scotch-604_esmumps/src/Make.inc/Makefile.inc.i686_pc_linux2        2018-02-20 17:15:15.203967949 +0100
-@@ -9,9 +9,9 @@
- CCS           = gcc
- CCP           = mpicc
- CCD           = gcc
--CFLAGS                = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
-+CFLAGS                = -O3 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
- CLIBFLAGS     =
--LDFLAGS               = -lz -lm -pthread
-+LDFLAGS               = -lz -lm -pthread -lrt
- CP            = cp
- LEX           = flex -Pscotchyy -olex.yy.c
- LN            = ln
-diff -Naur Scotch-604EDFp1/src/Makefile Scotch-604EDFp1_esmumps/src/Makefile
---- Scotch-604EDFp1/src/Makefile       2018-03-30 15:37:48.930229374 +0200
-+++ Scotch-604EDFp1_esmumps/src/Makefile       2018-03-30 15:35:09.765696046 +0200
-@@ -93,11 +93,13 @@
-                                       (cd libscotch ;      $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
-                                       (cd scotch ;         $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
-                                       (cd libscotchmetis ; $(MAKE)                                                                scotch && $(MAKE) install)
-+                                      (cd esmumps ;        $(MAKE)                                                                scotch && $(MAKE) install)
- ptscotch                      :       required
-                                       (cd libscotch ;      $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
-                                       (cd scotch ;         $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
-                                       (cd libscotchmetis ; $(MAKE)                                                                ptscotch && $(MAKE) ptinstall)
-+                                      (cd esmumps ;        $(MAKE)                                                                ptscotch && $(MAKE) ptinstall)
- check                         :       scotch
-                                       (cd check ; $(MAKE) check)
-@@ -105,17 +107,12 @@
- ptcheck                               :       ptscotch
-                                       (cd check ; $(MAKE) ptcheck)
--esmumps                               :       scotch
--                                      (cd esmumps ; $(MAKE) scotch && $(MAKE) install)
--
--ptesmumps                     :       ptscotch
--                                      (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
--
- install                               :       required        $(bindir)       $(includedir)   $(libdir)       $(mandir)/man1
-                                       -$(CP) -f ../bin/[agm]*$(EXE) $(bindir)
-                                       -$(CP) -f ../bin/d[agm]*$(EXE) $(bindir)
-                                       -$(CP) -f ../include/*scotch*.h $(includedir)
-                                       -$(CP) -f ../lib/*scotch*$(LIB) $(libdir)
-+                                      -$(CP) -f ../lib/*esmumps*$(LIB) $(libdir)
-                                       -$(CP) -Rf ../man/* $(mandir)
- clean                         :       required
diff --git a/config/EDF_patches/SALOME_8_5_0/setup.patch b/config/EDF_patches/SALOME_8_5_0/setup.patch
deleted file mode 100644 (file)
index 072db38..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/setup.py 2016-09-29 14:48:18.045084416 +0200
-+++ b/setup.py 2016-09-29 14:49:30.645413214 +0200
-@@ -113,7 +113,8 @@
-     r_libs = [ # Different verisons of R put .so/.dll in different places
-               os.path.join(RHOME, 'bin'),  # R 2.0.0+
--              os.path.join(RHOME, 'lib'),  # Pre 2.0.0
-+              os.path.join(RHOME, 'lib64', 'R', 'lib'),  # Pre 2.0.0
-+              os.path.join(RHOME, 'lib', 'R', 'lib'),  # Pre 2.0.0
-              ]
-     print "RHOME=",RHOME
-@@ -158,8 +159,9 @@
-         extra_compile_args=["-shared"]
-         source_files = source_files + ["src/setenv.c"]
-     else: # unix-like systems, this is known to work for Linux and Solaris
--        include_dirs = [ os.path.join(RHOME.strip(), 'include'), 
--                         'src', '/usr/share/R/include' ]
-+        include_dirs = [ os.path.join(RHOME.strip(), 'lib64' ,'R' ,'include'), 
-+                         os.path.join(RHOME.strip(), 'lib' ,'R' ,'include'), 
-+                         'src' ]
-         libraries=['R','Rlapack']
-         library_dirs = r_libs
-         runtime_libs = r_libs
diff --git a/config/EDF_patches/SALOME_8_5_0/sphinx_w_intl_napoleon.patch b/config/EDF_patches/SALOME_8_5_0/sphinx_w_intl_napoleon.patch
deleted file mode 100644 (file)
index 1e78c5d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- Sphinx-123-doc012-jin273-pyg202-py2710-set3840/setup.py    2014-09-01 16:22:41.000000000 +0200
-+++ Sphinx-123-doc012-jin273-pyg202-py2710-set3840_w_intl_nap/setup.py 2018-04-12 15:05:37.575068486 +0200
-@@ -41,7 +41,7 @@
- * Setuptools integration
- '''
--requires = ['Pygments>=1.2', 'docutils>=0.7']
-+requires = ['sphinxcontrib-napoleon==0.6.1', 'sphinx-intl==0.9.10','Pygments>=1.2', 'docutils>=0.7']
- if sys.version_info[:3] >= (3, 3, 0):
-     requires[1] = 'docutils>=0.10'
diff --git a/config/build_options/edf/options_compilation_config_XML.txt b/config/build_options/edf/options_compilation_config_XML.txt
new file mode 100644 (file)
index 0000000..3660a76
--- /dev/null
@@ -0,0 +1,88 @@
+OPENTURNS_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+HELLO1_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+DOCUMENTATION_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+SMESH_master/.yamm/configuration.xml:2:  <option name="SALOME_SMESH_USE_CGNS" value="ON"/>
+SMESH_master/.yamm/configuration.xml:3:  <option name="CGNS_ROOT_DIR" value="${CGNSLIB_INSTALL_DIR}"/>
+SMESH_master/.yamm/configuration.xml:4:  <option name="CMAKE_MODULE_PATH" value="&quot;${CONFIGURATION_CMAKE_DIR}&quot;"/>
+SMESH_master/.yamm/configuration.xml:5:  <option name="MEDFILE_ROOT_DIR" value="$MEDFICHIER_INSTALL_DIR"/>
+SMESH_master/.yamm/configuration.xml:6:  <option name="PADDERHOME:STRING" value="${PADDERHOME}"/>
+SMESH_master/.yamm/configuration.xml:7:  <option name="QWT_ROOT_DIR" value="$QWT_INSTALL_DIR"/>
+SMESH_master/.yamm/configuration.xml:8:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+SMESH_master/.yamm/configuration.xml:9:  <option name="SALOME_SMESH_USE_TBB" value="ON"/>
+SMESH_master/.yamm/configuration.xml:10:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+YACS_master/.yamm/configuration.xml:2:  <option name="SALOME_BUILD_GUI" value="ON"/>
+YACS_master/.yamm/configuration.xml:3:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+HYBRIDPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+EFICAS_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+HEXOTICPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+HEXABLOCKPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+ATOMSOLV_master/.yamm/configuration.xml:2:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
+ATOMSOLV_master/.yamm/configuration.xml:3:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+ATOMSOLV_master/.yamm/configuration.xml:4:  <option name="SWIG_DIR:PATH" value="$"/>
+ATOMSOLV_master/.yamm/configuration.xml:5:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+GUI_master/.yamm/configuration.xml:2:  <option name="CMAKE_MODULE_PATH" value="&quot;${CONFIGURATION_CMAKE_DIR}&quot;"/>
+GUI_master/.yamm/configuration.xml:3:  <option name="CAS_ROOT_DIR" value="$OCC_INSTALL_DIR"/>
+GUI_master/.yamm/configuration.xml:4:  <option name="PARAVIEW_VERSION" value="${PVVERSION}"/>
+GUI_master/.yamm/configuration.xml:5:  <option name="PYQT5_ROOT_DIR" value="$PYQT_INSTALL_DIR"/>
+GUI_master/.yamm/configuration.xml:6:  <option name="SALOME_BUILD_WITH_QT5" value="ON"/>
+GUI_master/.yamm/configuration.xml:7:  <option name="QT5_ROOT_DIR" value="$QT_INSTALL_DIR"/>
+GUI_master/.yamm/configuration.xml:8:  <option name="QWT_LIBRARY" value="$QWT_INSTALL_DIR/lib/libqwt"/>
+GUI_master/.yamm/configuration.xml:9:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
+GUI_master/.yamm/configuration.xml:10:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+GUI_master/.yamm/configuration.xml:11:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+PYHELLO1_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+HEXABLOCK_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+MED_master/.yamm/configuration.xml:2:  <option name="MEDCOUPLING_ROOT_DIR" value="${MEDCOUPLING_INSTALL_DIR}"/>
+MED_master/.yamm/configuration.xml:3:  <option name="MEDFILE_ROOT_DIR" value="${MEDFICHIER_INSTALL_DIR}"/>
+MED_master/.yamm/configuration.xml:4:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+HOMARD_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:2:  <option name="WITH_GUI_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:3:  <option name="WITH_MEDCOUPLING_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:4:  <option name="WITH_PARAVIS_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:5:  <option name="WITH_CAOMAILLAGE_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:6:  <option name="WITH_USECASES_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:7:  <option name="WITH_LARGECASES_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:8:  <option name="WITH_ARCHITECTURE_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:9:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+FIELDS_master/.yamm/configuration.xml:2:  <option name="MEDCOUPLING_ROOT_DIR" value="${MEDCOUPLING_INSTALL_DIR}"/>
+FIELDS_master/.yamm/configuration.xml:3:  <option name="FIELDSFILE_ROOT_DIR" value="${MEDFICHIER_INSTALL_DIR}"/>
+FIELDS_master/.yamm/configuration.xml:4:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+ATOMGEN_master/.yamm/configuration.xml:2:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
+ATOMGEN_master/.yamm/configuration.xml:3:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+ATOMGEN_master/.yamm/configuration.xml:4:  <option name="SWIG_DIR:PATH" value="$"/>
+ATOMGEN_master/.yamm/configuration.xml:5:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+PARAVIS_master/.yamm/configuration.xml:2:  <option name="VTK_DIR" value="${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview"/>
+PARAVIS_master/.yamm/configuration.xml:3:  <option name="PYTHON_EXECUTABLE" value="$"/>
+PARAVIS_master/.yamm/configuration.xml:4:  <option name="PYTHON_ROOT_DIR" value="${PYTHONHOME}"/>
+PARAVIS_master/.yamm/configuration.xml:5:  <option name="SALOME_PARAVIS_MINIMAL_CORBA" value="ON"/>
+PARAVIS_master/.yamm/configuration.xml:6:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+GMSHPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+NETGENPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+CALCULATOR_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+JOBMANAGER_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+KERNEL_master/.yamm/configuration.xml:2:  <option name="CMAKE_MODULE_PATH" value="${CONFIGURATION_CMAKE_DIR}"/>
+KERNEL_master/.yamm/configuration.xml:3:  <option name="SALOME_BUILD_TESTS" value="ON"/>
+KERNEL_master/.yamm/configuration.xml:4:  <option name="SALOME_USE_LIBBATCH" value="ON"/>
+KERNEL_master/.yamm/configuration.xml:5:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+KERNEL_master/.yamm/configuration.xml:6:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+GHS3DPLUGIN_master/.yamm/configuration.xml:2:  <option name="MESHGEMS_ROOT_DIR" value="&quot;${MESHGEMS_ROOT_DIR}&quot;"/>
+GHS3DPLUGIN_master/.yamm/configuration.xml:3:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+LIGHT_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+BLSURFPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+ATOMIC_master/.yamm/configuration.xml:2:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
+ATOMIC_master/.yamm/configuration.xml:3:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+ATOMIC_master/.yamm/configuration.xml:4:  <option name="SWIG_DIR:PATH" value="$"/>
+ATOMIC_master/.yamm/configuration.xml:5:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+PYLIGHT_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+NON_REGRESSION_TESTS_CONFIDENTIAL_occ_python3_porting/.yamm/configuration.xml:2:  <option name="WITH_CAOMAILLAGE_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_CONFIDENTIAL_occ_python3_porting/.yamm/configuration.xml:3:  <option name="WITH_USECASES_TESTS:BOOL" value="ON"/>
+NON_REGRESSION_TESTS_CONFIDENTIAL_occ_python3_porting/.yamm/configuration.xml:4:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+GENERICSOLVER_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+GEOM_master/.yamm/configuration.xml:2:  <option name="CMAKE_MODULE_PATH" value="&quot;${CONFIGURATION_CMAKE_DIR}&quot;"/>
+GEOM_master/.yamm/configuration.xml:3:  <option name="FREETYPE_INCLUDE_DIR_freetype2" value="&quot;${FREETYPE_INSTALL_DIR}/include/freetype2/freetype&quot;"/>
+GEOM_master/.yamm/configuration.xml:4:  <option name="FREETYPE_INCLUDE_DIR_ft2build" value="&quot;${FREETYPE_INSTALL_DIR}/include/freetype2/freetype&quot;"/>
+GEOM_master/.yamm/configuration.xml:5:  <option name="FREETYPE_LIBRARY" value="&quot;${FREETYPE_INSTALL_DIR}/lib&quot;"/>
+GEOM_master/.yamm/configuration.xml:6:  <option name="SALOME_GEOM_USE_OPENCV" value="ON"/>
+GEOM_master/.yamm/configuration.xml:7:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
+GEOM_master/.yamm/configuration.xml:8:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
+
diff --git a/config/build_options/edf/options_compilation_salome_master.txt b/config/build_options/edf/options_compilation_salome_master.txt
new file mode 100644 (file)
index 0000000..46ef79a
--- /dev/null
@@ -0,0 +1,148 @@
+KERNEL
+kernel.py:84:      self.config_options += " -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR} "
+
+GUI
+gui.py:78:      self.config_options += ' -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}" '
+gui.py:81:      self.config_options += " -DPARAVIEW_VERSION=${PVVERSION}"
+gui.py:84:      self.config_options += " -DWITH_MPI=${ENVOPENMPI_LIB}"
+gui.py:87:      self.config_options += " -DSALOME_BUILD_WITH_QT%d=ON " % misc.major(version_name)
+gui.py:90:      self.config_options += " -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON"
+gui.py:94:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+gui.py:98:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+gui.py:108:      self.config_options += " -DQWT_LIBRARY=$QWT_INSTALL_DIR/lib/libqwt.so"
+gui.py:111:      self.config_options += " -DCAS_ROOT_DIR=$OCC_INSTALL_DIR"
+gui.py:114:      self.config_options += " -DQT%d_ROOT_DIR=$QT_INSTALL_DIR " % misc.major(version_name)
+gui.py:118:        self.config_options += " -DPYQT%s_ROOT_DIR=$PYQT_INSTALL_DIR" % qtversion
+
+GEOM
+geom.py:62:      self.config_options += " -DSALOME_GEOM_USE_OPENCV=ON "
+geom.py:65:      self.config_options += ' -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}" '
+geom.py:69:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+geom.py:73:      self.config_options += ' -DFREETYPE_INCLUDE_DIR_freetype2="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype" '
+geom.py:74:      self.config_options += ' -DFREETYPE_INCLUDE_DIR_ft2build="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype" '
+geom.py:75:      self.config_options += ' -DFREETYPE_LIBRARY="${FREETYPE_INSTALL_DIR}/lib" '
+
+HOMARD
+homard.py:81:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+GMSHPLUGIN
+gmshplugin.py:55:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+FIELDS
+fields.py:70:      self.config_options += ' -DSALOME_USE_MPI=ON -DSALOME_FIELDS_ENABLE_PARTITIONER=OFF '
+fields.py:71:      self.config_options += ' -DSALOME_FIELDS_ENABLE_RENUMBER=OFF -DSALOME_BUILD_TESTS=OFF '
+fields.py:72:      self.config_options += ' -DSALOME_BUILD_DOC=OFF -DSALOME_FIELDS_STANDALONE=OFF '
+fields.py:73:      self.config_options += ' -DSALOME_FIELDS_MICROFIELDS=OFF -DMPI_CXX_LIBRARIES:FILEPATH=${ENVOPENMPI_LIB} libmpi_cxx.so '
+fields.py:74:      self.config_options += ' -DMPI_C_LIBRARIES:FILEPATH=${ENVOPENMPI_LIB} libmpi.so '
+fields.py:75:      self.config_options += ' -DMPI_LIBRARY:PATH=${ENVOPENMPI_LIB} '
+fields.py:76:      self.config_options += ' -DCMAKE_SHARED_LINKER_FLAGS="-L${ENVOPENMPI_LIB}" -lmpi_cxx -lmpi " '
+fields.py:77:      self.config_options += ' -DCMAKE_EXE_LINKER_FLAGS="-L${ENVOPENMPI_LIB}" -lmpi_cxx -lmpi" '
+fields.py:81:      self.config_options += " -DMEDCOUPLING_ROOT_DIR=${MEDCOUPLING_INSTALL_DIR} "
+fields.py:83:      self.config_options += " -DFIELDSFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR} "
+fields.py:85:      self.config_options += " -DMMETIS_ROOT_DIR=${METIS_INSTALL_DIR} "
+fields.py:87:      self.config_options += " -DSCOTCH_ROOT_DIR=${SCOTCH_INSTALL_DIR} "
+fields.py:91:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+YACS
+yacs.py:81:      self.config_options += " -DSALOME_BUILD_GUI=ON "
+yacs.py:87:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+MODULECARMEL
+modulecarmel.py:43:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+LIGHT
+light.py:52:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+PYCALCULATOR
+pycalculator.py:50:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+hybridplugin.py:54:      self.config_options += "--with-meshgems=$MESHGEMS_INSTALL_DIR"
+hybridplugin.py:58:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+component.py:49:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+oscard.py:43:      self.config_options += " -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR} "
+
+calculator.py:49:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+parametric.py:55:      self.config_options += " -DPYTHON_EXECUTABLE=$(which python%s)" % self.python_version
+parametric.py:59:      self.config_options += " -DPYTHON_ROOT_DIR=${PYTHONHOME}"
+parametric.py:63:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+openturns.py:91:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+hello1.py:52:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+atomgen.py:55:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+atomgen.py:56:      self.config_options += " -DSWIG_DIR:PATH=$(swig%s -swiglib) " % swig_version
+atomgen.py:59:      self.config_options += " -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON"
+atomgen.py:63:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+ghs3dplugin.py:51:      self.config_options += " -DMESHGEMS_ROOT_DIR=\"${MESHGEMS_ROOT_DIR}\" "
+ghs3dplugin.py:55:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+kernel.py:80:      self.config_options += " -DSALOME_BUILD_TESTS=ON "
+kernel.py:82:      self.config_options += " -DSALOME_USE_LIBBATCH=ON "
+kernel.py:84:      self.config_options += " -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR} "
+kernel.py:86:      self.config_options += ' -DSALOME_USE_MPI=ON '
+kernel.py:89:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+kernel.py:93:      self.config_options += " --with-cppunit=${CPPUNIT_INSTALL_DIR} "
+kernel.py:97:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+shaper.py:38:    self.config_options += "-DADD_MODELS_TESTS=TRUE"
+shaper.py:71:      self.config_options += " -DQT%d_ROOT_DIR=${QT_INSTALL_DIR} " % misc.major(version_name)
+shaper.py:75:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+modulemagnetothermic.py:48:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+hexablockplugin.py:48:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+eficas.py:60:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+med.py:70:      self.config_options += ' -DSALOME_USE_MPI=ON -DSALOME_MED_ENABLE_PARTITIONER=OFF '
+med.py:71:      self.config_options += ' -DSALOME_MED_ENABLE_RENUMBER=OFF -DSALOME_BUILD_TESTS=OFF '
+med.py:72:      self.config_options += ' -DSALOME_BUILD_DOC=OFF -DSALOME_MED_STANDALONE=OFF '
+med.py:73:      self.config_options += ' -DSALOME_MED_MICROMED=OFF -DMPI_CXX_LIBRARIES:FILEPATH=${ENVOPENMPI_LIB} libmpi_cxx.so '
+med.py:74:      self.config_options += ' -DMPI_C_LIBRARIES:FILEPATH=${ENVOPENMPI_LIB} libmpi.so '
+med.py:75:      self.config_options += ' -DMPI_LIBRARY:PATH=${ENVOPENMPI_LIB} '
+med.py:76:      self.config_options += ' -DCMAKE_SHARED_LINKER_FLAGS="-L${ENVOPENMPI_LIB}" -lmpi_cxx -lmpi " '
+med.py:77:      self.config_options += ' -DCMAKE_EXE_LINKER_FLAGS="-L${ENVOPENMPI_LIB}" -lmpi_cxx -lmpi" '
+med.py:81:      self.config_options += " -DMEDCOUPLING_ROOT_DIR=${MEDCOUPLING_INSTALL_DIR} "
+med.py:83:      self.config_options += " -DMEDFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR} "
+med.py:85:      self.config_options += " -DMMETIS_ROOT_DIR=${METIS_INSTALL_DIR} "
+med.py:87:      self.config_options += " -DSCOTCH_ROOT_DIR=${SCOTCH_INSTALL_DIR} "
+med.py:91:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+modulecarmelcnd.py:47:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+documentation.py:63:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+pylight.py:55:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+pyhello1.py:54:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+hexablock.py:52:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+jobmanager.py:53:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+atomic.py:53:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+atomic.py:54:      self.config_options += " -DSWIG_DIR:PATH=$(swig%s -swiglib) " % swig_version
+atomic.py:57:      self.config_options += " -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON"
+ot.py:80:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+dsccode.py:48:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+smesh.py:113:      self.config_options += " -DCMAKE_MODULE_PATH=\"${CONFIGURATION_CMAKE_DIR}\" "
+smesh.py:115:      self.config_options += " -DSALOME_SMESH_USE_TBB=ON "
+smesh.py:117:      self.config_options += " -DSALOME_SMESH_USE_CGNS=ON "
+smesh.py:119:      self.config_options += ' -DSALOME_USE_MPI=ON -DCMAKE_SHARED_LINKER_FLAGS="-L${ENVOPENMPI_LIB} -lmpi_cxx -lmpi" '
+smesh.py:120:      self.config_options += ' -DCMAKE_EXE_LINKER_FLAGS="-L${ENVOPENMPI_LIB} -lmpi_cxx -lmpi" '
+smesh.py:123:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+smesh.py:130:      self.config_options += " -DPADDERHOME:STRING=${PADDERHOME} "
+smesh.py:133:        self.config_options += " --with-TBB=${TBB_INSTALL_DIR}"
+smesh.py:136:        self.config_options += " --with-cgns=${CGNSLIB_INSTALL_DIR}"
+smesh.py:138:        self.config_options += " -DCGNS_ROOT_DIR=${CGNSLIB_INSTALL_DIR} "
+smesh.py:140:      self.config_options += " -DMEDFILE_ROOT_DIR=$MEDFICHIER_INSTALL_DIR "
+smesh.py:142:      self.config_options += " -DQWT_ROOT_DIR=$QWT_INSTALL_DIR "
+smesh.py:148:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+adao.py:53:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+paravis.py:61:    self.config_options += " -DSALOME_PARAVIS_MINIMAL_CORBA=ON "
+paravis.py:77:      self.config_options += " -DPYTHON_EXECUTABLE=$(which python%s)" % self.python_version
+paravis.py:79:      self.config_options += ' -DSALOME_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=ON -DSALOME_PARAVIS_BUILD_PLUGINS=ON '
+paravis.py:83:      self.config_options += " -DPYTHON_ROOT_DIR=${PYTHONHOME}"
+paravis.py:87:      self.config_options += " -DVTK_DIR=${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview-%s " % pvversion
+paravis.py:91:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+ghs3dprlplugin.py:53:      self.config_options += ' -DCMAKE_SHARED_LINKER_FLAGS="-L${ENVOPENMPI_LIB} -lmpi_cxx -lmpi" '
+ghs3dprlplugin.py:54:      self.config_options += ' -DCMAKE_EXE_LINKER_FLAGS="-L${ENVOPENMPI_LIB} -lmpi_cxx -lmpi" '
+ghs3dprlplugin.py:61:      self.config_options += " -DMESHGEMS_ROOT_DIR=\"${MESHGEMS_ROOT_DIR}\" "
+moduleinterpol.py:43:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+atomsolv.py:55:      self.config_options += " -DSWIG_EXECUTABLE:PATH=$(which swig%s) " % swig_version
+atomsolv.py:56:      self.config_options += " -DSWIG_DIR:PATH=$(swig%s -swiglib) " % swig_version
+atomsolv.py:59:      self.config_options += " -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON"
+atomsolv.py:63:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+netgenplugin.py:57:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+hexoticplugin.py:55:      self.config_options += " -DSPHINX_ROOT_DIR:FILEPATH=$(dirname $(dpkg -L python3-sphinx |grep sphinx-build))"
+
+
diff --git a/config/patches/edf/FreeImage3170_Make.patch b/config/patches/edf/FreeImage3170_Make.patch
new file mode 100644 (file)
index 0000000..37ec343
--- /dev/null
@@ -0,0 +1,61 @@
+diff -Naur FreeImage3170/Makefile.fip FreeImage3170p1/Makefile.fip 
+--- FreeImage3170/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
++++ FreeImage3170p1/Makefile.fip       2018-10-18 14:48:29.531048024 +0200
+@@ -4,9 +4,9 @@
+ include fipMakefile.srcs
+ # General configuration variables:
+-DESTDIR ?= /
+-INCDIR ?= $(DESTDIR)/usr/include
+-INSTALLDIR ?= $(DESTDIR)/usr/lib
++DESTDIR ?= $(DESTDIR)
++INCDIR ?= $(DESTDIR)/include
++INSTALLDIR ?= $(DESTDIR)/lib
+ # Converts cr/lf to just lf
+ DOS2UNIX = dos2unix
+@@ -72,10 +72,10 @@
+ install:
+       install -d $(INCDIR) $(INSTALLDIR)
+-      install -m 644 -o root -g root $(HEADER) $(INCDIR)
+-      install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
+-      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+-      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
++      install -m 755 $(HEADER) $(INCDIR)
++      install -m 755 $(HEADERFIP) $(INCDIR)
++      install -m 755 $(STATICLIB) $(INSTALLDIR)
++      install -m 755 $(SHAREDLIB) $(INSTALLDIR)
+       ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+       ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+
+diff -Naur FreeImage3170/Makefile.gnu FreeImage3170p1/Makefile.gnu
+--- FreeImage3170/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
++++ FreeImage3170p1/Makefile.gnu       2018-10-18 14:53:23.100138977 +0200
+@@ -4,9 +4,9 @@
+ include Makefile.srcs
+ # General configuration variables:
+-DESTDIR ?= /
+-INCDIR ?= $(DESTDIR)/usr/include
+-INSTALLDIR ?= $(DESTDIR)/usr/lib
++DESTDIR ?= $(DESTDIR)
++INCDIR ?= $(DESTDIR)/include
++INSTALLDIR ?= $(DESTDIR)/lib
+ # Converts cr/lf to just lf
+ DOS2UNIX = dos2unix
+@@ -71,9 +71,9 @@
+ install:
+       install -d $(INCDIR) $(INSTALLDIR)
+-      install -m 644 -o root -g root $(HEADER) $(INCDIR)
+-      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+-      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
++      install -m 755 $(HEADER) $(INCDIR)
++      install -m 755 $(STATICLIB) $(INSTALLDIR)
++      install -m 755 $(SHAREDLIB) $(INSTALLDIR)
+       ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+       ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)   
+ #     ldconfig
+
diff --git a/config/patches/edf/OCCT-7.2.0.patch b/config/patches/edf/OCCT-7.2.0.patch
new file mode 100644 (file)
index 0000000..4ffcd5a
--- /dev/null
@@ -0,0 +1,969 @@
+diff --git a/adm/cmake/occt_resources.cmake b/adm/cmake/occt_resources.cmake
+index 7a88051..d51df4d 100644
+--- a/adm/cmake/occt_resources.cmake
++++ b/adm/cmake/occt_resources.cmake
+@@ -68,6 +68,7 @@ FILE_TO_LIST ("adm/RESOURCES" RESOURCES)
+ foreach (CurrentResource ${RESOURCES})
+   get_filename_component (CurrentResource_FileName "${CurrentResource}" NAME)
+   if ("${CurrentResource_FileName}" STREQUAL TObj.msg OR
++      "${CurrentResource_FileName}" STREQUAL BOPAlgo.msg OR
+       "${CurrentResource_FileName}" STREQUAL Units.dat OR
+       "${CurrentResource}" STREQUAL XSMessage OR
+       "${CurrentResource}" STREQUAL SHMessage OR
+diff --git a/src/BOPAlgo/BOPAlgo.msg b/src/BOPAlgo/BOPAlgo.msg
+index 67350fc..673a39e 100644
+--- a/src/BOPAlgo/BOPAlgo.msg
++++ b/src/BOPAlgo/BOPAlgo.msg
+@@ -67,3 +67,12 @@ Warning: Removal of internal boundaries among Faces has failed
+ .BOPAlgo_AlertRemovalOfIBForEdgesFailed
+ Warning: Removal of internal boundaries among Edges has failed
++
++.BOPAlgo_AlertIntersectionOfPairOfShapesFailed
++Warning: Intersection of pair of shapes has failed
++
++.BOPAlgo_AlertBuildingPCurveFailed
++Warning: Building 2D curve of edge on face has failed
++
++.BOPAlgo_AlertAcquiredSelfIntersection
++Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered
+diff --git a/src/BOPAlgo/BOPAlgo_Alerts.hxx b/src/BOPAlgo/BOPAlgo_Alerts.hxx
+index 02cec15..04ce9c7 100644
+--- a/src/BOPAlgo/BOPAlgo_Alerts.hxx
++++ b/src/BOPAlgo/BOPAlgo_Alerts.hxx
+@@ -78,4 +78,14 @@ DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertShellSplitterFailed)
+ //! Some edges are too small and have no valid range
+ DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertTooSmallEdge)
++//! Intersection of pair of shapes has failed
++DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertIntersectionOfPairOfShapesFailed)
++
++//! Building 2D curve of edge on face has failed
++DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertBuildingPCurveFailed)
++
++//! Some sub-shapes of some of the argument become connected through
++//! other shapes and the argument became self-interfered
++DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertAcquiredSelfIntersection)
++
+ #endif // _BOPAlgo_Alerts_HeaderFile
+diff --git a/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx b/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
+index c63a538..feec778 100644
+--- a/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
++++ b/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
+@@ -69,4 +69,13 @@ static const char BOPAlgo_BOPAlgo_msg[] =
+   "Warning: Removal of internal boundaries among Faces has failed\n"
+   "\n"
+   ".BOPAlgo_AlertRemovalOfIBForEdgesFailed\n"
+-  "Warning: Removal of internal boundaries among Edges has failed\n";
++  "Warning: Removal of internal boundaries among Edges has failed\n"
++  "\n"
++  ".BOPAlgo_AlertIntersectionOfPairOfShapesFailed\n"
++  "Warning: Intersection of pair of shapes has failed\n"
++  "\n"
++  ".BOPAlgo_AlertBuildingPCurveFailed\n"
++  "Warning: Building 2D curve of edge on face has failed\n"
++  "\n"
++  ".BOPAlgo_AlertAcquiredSelfIntersection\n"
++  "Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered\n";
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
+index ab79f4e..bd4e512 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
+@@ -87,13 +87,19 @@ class TopoDS_Face;
+ //! - *Gluing options* - allows to speed up the calculation on the special
+ //!                      cases, in which some sub-shapes are coincide.<br>
+ //!
+-//! The algorithm returns the following Warning statuses:<br>
+-//! - *BOPAlgo_AlertSelfInterferingShape* - in case some of the argument shapes are self-interfering shapes;<br>
+-//! - *BOPAlgo_AlertTooSmallEdge* - in case some edges of the input shapes have no valid range;<br>
++//! The algorithm returns the following Warning statuses:
++//! - *BOPAlgo_AlertSelfInterferingShape* - in case some of the argument shapes are self-interfering shapes;
++//! - *BOPAlgo_AlertTooSmallEdge* - in case some edges of the input shapes have no valid range;
+ //! - *BOPAlgo_AlertNotSplittableEdge* - in case some edges of the input shapes has such a small
+-//!                         valid range so it cannot be split;<br>
++//!                                      valid range so it cannot be split;
+ //! - *BOPAlgo_AlertBadPositioning* - in case the positioning of the input shapes leads to creation
+-//!                      of small edges.<br>
++//!                                   of small edges;
++//! - *BOPAlgo_AlertIntersectionOfPairOfShapesFailed* - in case intersection of some of the
++//!                                                     sub-shapes has failed;
++//! - *BOPAlgo_AlertAcquiredSelfIntersection* - in case some sub-shapes of the argument become connected
++//!                                             through other shapes;
++//! - *BOPAlgo_AlertBuildingPCurveFailed* - in case building 2D curve for some of the edges
++//!                                         on the faces has failed.
+ //!
+ //! The algorithm returns the following Error alerts:
+ //! - *BOPAlgo_AlertTooFewArguments* - in case there are no enough arguments to
+@@ -290,6 +296,7 @@ protected:
+                                     BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDMExEdges,
+                                     BOPCol_DataMapOfIntegerInteger& theDMNewSD,
+                                     const BOPCol_IndexedMapOfShape& theMicroEdges,
++                                    const BOPCol_IndexedMapOfShape& theVertsOnRejectedPB,
+                                     const BOPCol_BaseAllocator& theAllocator);
+   
+   Standard_EXPORT void FindPaveBlocks (const Standard_Integer theV, const Standard_Integer theF, BOPDS_ListOfPaveBlock& theLPB);
+@@ -474,6 +481,8 @@ protected:
+   //! In case self-interference is found the warning is added.
+   Standard_EXPORT void CheckSelfInterference();
++  //! Adds the warning about failed intersection of pair of sub-shapes
++  Standard_EXPORT void AddIntersectionFailedWarning(const TopoDS_Shape& theS1, const TopoDS_Shape& theS2);
+   BOPCol_ListOfShape myArguments;
+   BOPDS_PDS myDS;
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
+index c8341c5..83faf2d 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
+@@ -112,7 +112,8 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
+               }
+               //
+               if (aLE.Extent() > 1) {
+-                // Add warning
++                // Add the acquired self-interference warning:
++                // The same common block contains several edges from one argument
+                 TopoDS_Compound aWC;
+                 aBB.MakeCompound(aWC);
+                 //
+@@ -122,7 +123,7 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
+                   aBB.Add(aWC, aE1);
+                 }
+                 //
+-                AddWarning (new BOPAlgo_AlertSelfInterferingShape (aWC));
++                AddWarning (new BOPAlgo_AlertAcquiredSelfIntersection (aWC));
+               }
+             }
+           }
+@@ -168,7 +169,8 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
+     for (j = 1; j <= aNbC; ++j) {
+       const BOPCol_IndexedMapOfShape& aMCS = aMCSI(j);
+       if (aMCS.Extent() > 1) {
+-        // Add self-interference warning
++        // Add acquired self-interference warning:
++        // Several faces from one argument contain the same vertex or edge
+         TopoDS_Compound aWC;
+         aBB.MakeCompound(aWC);
+         //
+@@ -177,7 +179,7 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
+           const TopoDS_Shape& aSx = aMCS(iS);
+           aBB.Add(aWC, aSx);
+         }
+-        AddWarning (new BOPAlgo_AlertSelfInterferingShape (aWC));
++        AddWarning (new BOPAlgo_AlertAcquiredSelfIntersection (aWC));
+       }
+     }
+   }
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
+index c496668..9ac5e67 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
+@@ -17,6 +17,7 @@
+ #include <BOPAlgo_PaveFiller.hxx>
++#include <BOPAlgo_Alerts.hxx>
+ #include <BOPAlgo_Tools.hxx>
+ #include <BOPCol_NCVector.hxx>
+ #include <BOPCol_Parallel.hxx>
+@@ -27,6 +28,7 @@
+ #include <BOPDS_PaveBlock.hxx>
+ #include <BOPDS_VectorOfInterfVE.hxx>
+ #include <BOPTools_AlgoTools.hxx>
++#include <BRep_Builder.hxx>
+ #include <BRep_Tool.hxx>
+ #include <gp_Pnt.hxx>
+ #include <IntTools_Context.hxx>
+@@ -110,7 +112,16 @@ class BOPAlgo_VertexEdge : public BOPAlgo_Algo {
+   //
+   virtual void Perform() {
+     BOPAlgo_Algo::UserBreak();
+-    myFlag=myContext->ComputeVE (myV, myE, myT, myTolVNew, myFuzzyValue);
++    try
++    {
++      OCC_CATCH_SIGNALS
++
++      myFlag=myContext->ComputeVE (myV, myE, myT, myTolVNew, myFuzzyValue);
++    }
++    catch (Standard_Failure)
++    {
++      AddError(new BOPAlgo_AlertIntersectionFailed);
++    }
+   };
+   //
+  protected:
+@@ -267,6 +278,11 @@ void BOPAlgo_PaveFiller::IntersectVE
+   for (i = 0; i < aNbVE; ++i) {
+     const BOPAlgo_VertexEdge& aVESolver = aVVE(i);
+     if (aVESolver.Flag() != 0) {
++      if (aVESolver.HasErrors())
++      {
++        // Warn about failed intersection of sub-shapes
++        AddIntersectionFailedWarning(aVESolver.Vertex(), aVESolver.Edge());
++      }
+       continue;
+     }
+     //
+@@ -491,3 +507,19 @@ void BOPAlgo_PaveFiller::SplitPaveBlocks(const BOPCol_MapOfInteger& theMEdges,
+     }
+   }
+ }
++
++//=======================================================================
++// function: AddIntersectionFailedWarning
++// purpose: 
++//=======================================================================
++void BOPAlgo_PaveFiller::AddIntersectionFailedWarning(const TopoDS_Shape& theS1,
++                                                      const TopoDS_Shape& theS2)
++{
++  // Create the warn shape
++  TopoDS_Compound aWC;
++  BRep_Builder().MakeCompound(aWC);
++  BRep_Builder().Add(aWC, theS1);
++  BRep_Builder().Add(aWC, theS2);
++  // Add the warning
++  AddWarning(new BOPAlgo_AlertIntersectionOfPairOfShapesFailed(aWC));
++}
+\ No newline at end of file
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
+index 3a8892e..5db97a8 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
+@@ -93,7 +93,16 @@ class BOPAlgo_EdgeEdge :
+   //
+   virtual void Perform() {
+     BOPAlgo_Algo::UserBreak();
+-    IntTools_EdgeEdge::Perform();
++    try
++    {
++      OCC_CATCH_SIGNALS
++
++      IntTools_EdgeEdge::Perform();
++    }
++    catch (Standard_Failure)
++    {
++      AddError(new BOPAlgo_AlertIntersectionFailed);
++    }
+   }
+   //
+  protected:
+@@ -229,7 +238,11 @@ void BOPAlgo_PaveFiller::PerformEE()
+     Bnd_Box aBB1, aBB2;
+     //
+     BOPAlgo_EdgeEdge& anEdgeEdge=aVEdgeEdge(k);
+-    if (!anEdgeEdge.IsDone()) {
++    if (!anEdgeEdge.IsDone() || anEdgeEdge.HasErrors()) {
++      // Warn about failed intersection of sub-shapes
++      const TopoDS_Shape& aE1 = myDS->Shape(anEdgeEdge.PaveBlock1()->OriginalEdge());
++      const TopoDS_Shape& aE2 = myDS->Shape(anEdgeEdge.PaveBlock2()->OriginalEdge());
++      AddIntersectionFailedWarning(aE1, aE2);
+       continue;
+     }
+     //
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
+index 291edb2..900d363 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
+@@ -17,6 +17,7 @@
+ #include <BOPAlgo_PaveFiller.hxx>
++#include <BOPAlgo_Alerts.hxx>
+ #include <BOPAlgo_SectionAttribute.hxx>
+ #include <BOPCol_MapOfInteger.hxx>
+ #include <BOPCol_NCVector.hxx>
+@@ -107,7 +108,16 @@ class BOPAlgo_VertexFace : public BOPAlgo_Algo {
+   //
+   virtual void Perform() {
+     BOPAlgo_Algo::UserBreak();
+-    myFlag=myContext->ComputeVF(myV, myF, myT1, myT2, myTolVNew, myFuzzyValue);
++    try
++    {
++      OCC_CATCH_SIGNALS
++
++      myFlag=myContext->ComputeVF(myV, myF, myT1, myT2, myTolVNew, myFuzzyValue);
++    }
++    catch (Standard_Failure)
++    {
++      AddError(new BOPAlgo_AlertIntersectionFailed);
++    }
+   }
+   //
+  protected:
+@@ -212,7 +222,12 @@ void BOPAlgo_PaveFiller::PerformVF()
+     const BOPAlgo_VertexFace& aVertexFace=aVVF(k);
+     // 
+     iFlag=aVertexFace.Flag();
+-    if (iFlag) {
++    if (iFlag != 0) {
++      if (aVertexFace.HasErrors())
++      {
++        // Warn about failed intersection of sub-shapes
++        AddIntersectionFailedWarning(aVertexFace.Vertex(), aVertexFace.Face());
++      }
+       continue;
+     }
+     //
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
+index 84fc6d1..717e478 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
+@@ -103,7 +103,16 @@ class BOPAlgo_EdgeFace :
+   //
+   virtual void Perform() {
+     BOPAlgo_Algo::UserBreak();
+-    IntTools_EdgeFace::Perform();
++    try
++    {
++      OCC_CATCH_SIGNALS
++
++      IntTools_EdgeFace::Perform();
++    }
++    catch (Standard_Failure)
++    {
++      AddError(new BOPAlgo_AlertIntersectionFailed);
++    }
+   }
+   //
+  protected:
+@@ -258,7 +267,9 @@ void BOPAlgo_PaveFiller::PerformEF()
+   //
+   for (k=0; k < aNbEdgeFace; ++k) {
+     BOPAlgo_EdgeFace& aEdgeFace=aVEdgeFace(k);
+-    if (!aEdgeFace.IsDone()) {
++    if (!aEdgeFace.IsDone() || aEdgeFace.HasErrors()) {
++      // Warn about failed intersection of sub-shapes
++      AddIntersectionFailedWarning(aEdgeFace.Edge(), aEdgeFace.Face());
+       continue;
+     }
+     //
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
+index bbc1b35..dfbfe61 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
+@@ -144,7 +144,16 @@ class BOPAlgo_FaceFace :
+   //
+   virtual void Perform() {
+     BOPAlgo_Algo::UserBreak();
+-    IntTools_FaceFace::Perform(myF1, myF2);
++    try
++    {
++      OCC_CATCH_SIGNALS
++
++      IntTools_FaceFace::Perform(myF1, myF2);
++    }
++    catch (Standard_Failure)
++    {
++      AddError(new BOPAlgo_AlertIntersectionFailed);
++    }
+   }
+   //
+  protected:
+@@ -263,10 +272,12 @@ void BOPAlgo_PaveFiller::PerformFF()
+   for (k = 0; k < aNbFaceFace; ++k) {
+     BOPAlgo_FaceFace& aFaceFace = aVFaceFace(k);
+     aFaceFace.Indices(nF1, nF2);
+-    if (!aFaceFace.IsDone()) {
++    if (!aFaceFace.IsDone() || aFaceFace.HasErrors()) {
+       BOPDS_InterfFF& aFF = aFFs.Append1();
+       aFF.SetIndices(nF1, nF2);
+       aFF.Init(0, 0);
++      // Warn about failed intersection of faces
++      AddIntersectionFailedWarning(aFaceFace.Face1(), aFaceFace.Face2());
+       continue;
+     }
+     //
+@@ -373,6 +384,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
+   BOPCol_DataMapOfIntegerListOfInteger aDMBV(100, aAllocator);
+   BOPCol_DataMapIteratorOfDataMapOfIntegerReal aItMV;
+   BOPCol_IndexedMapOfShape aMicroEdges(100, aAllocator);
++  BOPCol_IndexedMapOfShape aVertsOnRejectedPB;
+   //
+   for (i=0; i<aNbFF; ++i) {
+     //
+@@ -557,6 +569,19 @@ void BOPAlgo_PaveFiller::MakeBlocks()
+             if (!bInBothFaces) {
+               aMPBAdd.Add(aPBOut);
+               PreparePostTreatFF(i, j, aPBOut, aMSCPB, aMVI, aLPBC);
++              // Try fusing the vertices of the existing pave block
++              // with the vertices put on the real section curve (except
++              // for technological vertices, which will be removed)
++              Standard_Integer nVOut1, nVOut2;
++              aPBOut->Indices(nVOut1, nVOut2);
++              if (nV1 != nVOut1 && nV1 != nVOut2 && !aMVBounds.Contains(nV1))
++              {
++                aVertsOnRejectedPB.Add(aV1);
++              }
++              if (nV2 != nVOut1 && nV2 != nVOut2 && !aMVBounds.Contains(nV2))
++              {
++                aVertsOnRejectedPB.Add(aV2);
++              }
+             }
+           }
+           continue;
+@@ -639,7 +664,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
+   // 
+   // post treatment
+   MakeSDVerticesFF(aDMVLV, aDMNewSD);
+-  PostTreatFF(aMSCPB, aDMExEdges, aDMNewSD, aMicroEdges, aAllocator);
++  PostTreatFF(aMSCPB, aDMExEdges, aDMNewSD, aMicroEdges, aVertsOnRejectedPB, aAllocator);
+   if (HasErrors()) {
+     return;
+   }
+@@ -697,6 +722,7 @@ void BOPAlgo_PaveFiller::PostTreatFF
+      BOPDS_DataMapOfPaveBlockListOfPaveBlock& aDMExEdges,
+      BOPCol_DataMapOfIntegerInteger& aDMNewSD,
+      const BOPCol_IndexedMapOfShape& theMicroEdges,
++     const BOPCol_IndexedMapOfShape& theVertsOnRejectedPB,
+      const Handle(NCollection_BaseAllocator)& theAllocator)
+ {
+   Standard_Integer aNbS = theMSCPB.Extent();
+@@ -724,8 +750,9 @@ void BOPAlgo_PaveFiller::PostTreatFF
+   BOPDS_VectorOfInterfFF& aFFs=myDS->InterfFF();
+   //
+   Standard_Integer aNbME = theMicroEdges.Extent();
++  Standard_Integer aNbVOnRPB = theVertsOnRejectedPB.Extent();
+   // 0
+-  if (aNbS==1 && (aNbME == 0)) {
++  if (aNbS==1 && (aNbME == 0) && (aNbVOnRPB == 0)) {
+     const TopoDS_Shape& aS=theMSCPB.FindKey(1);
+     const BOPDS_CoupleOfPaveBlocks &aCPB=theMSCPB.FindFromIndex(1);
+     //
+@@ -824,6 +851,20 @@ void BOPAlgo_PaveFiller::PostTreatFF
+       aBB.UpdateVertex(aVerts[1], aTolV2 + aDist);
+     }
+   }
++
++  // Add vertices put on the real section curves to unify them with the
++  // vertices of the edges, by which these sections curves have been rejected
++  for (Standard_Integer i = 1; i <= aNbVOnRPB; ++i)
++  {
++    TopoDS_Shape aVer = theVertsOnRejectedPB(i);
++    Standard_Integer iVer = myDS->Index(aVer);
++    const Standard_Integer* pSD = aDMNewSD.Seek(iVer);
++    if (pSD)
++      aVer = myDS->Shape(*pSD);
++
++    if (anAddedSD.Add(aVer))
++      aLS.Append(aVer);
++  }
+   //
+   // 2 Fuse shapes
+   aPF.SetProgressIndicator(myProgressIndicator);
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
+index bf02175..1e91f55 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
+@@ -16,6 +16,7 @@
+ // commercial license or contractual agreement.
+ #include <BOPAlgo_PaveFiller.hxx>
++#include <BOPAlgo_Alerts.hxx>
+ #include <BOPAlgo_SectionAttribute.hxx>
+ #include <BOPAlgo_Tools.hxx>
+ #include <BOPCol_IndexedMapOfShape.hxx>
+@@ -241,28 +242,37 @@ class BOPAlgo_MPC : public BOPAlgo_Algo  {
+   }
+   //
+   virtual void Perform() {
+-    Standard_Integer iErr;
+-    //
+-    iErr=1;
+-    if (!myEz.IsNull()) {
+-      TopoDS_Edge aSpz;
++    try
++    {
++      OCC_CATCH_SIGNALS
++
++      Standard_Integer iErr;
+       //
+-      BOPTools_AlgoTools::MakeSplitEdge(myEz,myV1, myT1, 
+-                                        myV2, myT2, aSpz);
++      iErr=1;
++      if (!myEz.IsNull()) {
++        TopoDS_Edge aSpz;
++        //
++        BOPTools_AlgoTools::MakeSplitEdge(myEz,myV1, myT1, 
++                                          myV2, myT2, aSpz);
++        //
++        iErr=
++          BOPTools_AlgoTools2D::AttachExistingPCurve(aSpz, 
++                                                     myE, 
++                                                     myF, 
++                                                     myContext);
++      }
+       //
+-      iErr=
+-        BOPTools_AlgoTools2D::AttachExistingPCurve(aSpz, 
+-                                                   myE, 
+-                                                   myF, 
+-                                                   myContext);
+-    }
+-    //
+-    if (iErr) { 
+-      BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(myE, myF, myContext);
++      if (iErr) { 
++        BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(myE, myF, myContext);
++      }
++      // 
++      if (myFlag) {
++        UpdateVertices(myE, myF);
++      }
+     }
+-    // 
+-    if (myFlag) {
+-      UpdateVertices(myE, myF);
++    catch (Standard_Failure)
++    {
++      AddError(new BOPAlgo_AlertBuildingPCurveFailed(TopoDS_Shape()));
+     }
+   }
+   //
+@@ -676,6 +686,20 @@ void BOPAlgo_PaveFiller::MakePCurves()
+   //======================================================
+   BOPAlgo_MPCCnt::Perform(myRunParallel, aVMPC, myContext);
+   //======================================================
++
++  // Add warnings of the failed projections
++  Standard_Integer aNb = aVMPC.Extent();
++  for (i = 0; i < aNb; ++i)
++  {
++    if (aVMPC(i).HasErrors())
++    {
++      TopoDS_Compound aWC;
++      BRep_Builder().MakeCompound(aWC);
++      BRep_Builder().Add(aWC, aVMPC(i).Edge());
++      BRep_Builder().Add(aWC, aVMPC(i).Face());
++      AddWarning(new BOPAlgo_AlertBuildingPCurveFailed(aWC));
++    }
++  }
+ }
+ //=======================================================================
+ //function : UpdateVertices
+diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
+index 495c640..08f515a 100644
+--- a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
++++ b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
+@@ -32,6 +32,7 @@
+ #include <Geom2d_Line.hxx>
+ #include <Geom2d_TrimmedCurve.hxx>
+ #include <Geom2dAdaptor_Curve.hxx>
++#include <Geom2dAPI_ProjectPointOnCurve.hxx>
+ #include <Geom2dInt_GInter.hxx>
+ #include <gp_Lin2d.hxx>
+ #include <gp_Pnt.hxx>
+@@ -52,6 +53,11 @@ static
+                        const Standard_Real  aP2,
+                        TopoDS_Edge& aNewEdge);
++static
++  Standard_Boolean AddSplitPoint(const Handle(BOPDS_PaveBlock)& thePBD,
++                                 const BOPDS_Pave& thePave,
++                                 const Standard_Real theTol);
++
+ //=======================================================================
+ //function : ProcessDE
+ //purpose  : 
+@@ -304,25 +310,30 @@ void BOPAlgo_PaveFiller::ProcessDE()
+     }
+     // Intersection
+     Geom2dInt_GInter aGInter(aGAC1, aGAC2, aTolInt, aTolInt);
+-    if (!aGInter.IsDone()) {
+-      continue;
+-    }
+-    //
+-    // Analyze intersection points
+-    Standard_Integer i, aNbPoints = aGInter.NbPoints();
+-    for (i = 1; i <= aNbPoints; ++i) {
+-      Standard_Real aX = aGInter.Point(i).ParamOnFirst();
+-      if (aX - aTD1 < aTolCmp || aTD2 - aX < aTolCmp) {
+-        continue;
++    if (aGInter.IsDone() && aGInter.NbPoints())
++    {
++      // Analyze intersection points
++      Standard_Integer i, aNbPoints = aGInter.NbPoints();
++      for (i = 1; i <= aNbPoints; ++i) {
++        Standard_Real aX = aGInter.Point(i).ParamOnFirst();
++        aPave.SetParameter(aX);
++        AddSplitPoint(aPBD, aPave, aTolCmp);
+       }
+-      //
+-      Standard_Integer anInd;
+-      if (aPBD->ContainsParameter(aX, aTolCmp, anInd)) {
+-        continue;
++    }
++    else
++    {
++      // If the intersection did not succeed, try the projection of the end point
++      // of the curve corresponding to the vertex of degenerated edge
++      Standard_Real aT = (nVD == aPB->Pave1().Index() ?
++        aPB->Pave1().Parameter() : aPB->Pave2().Parameter());
++      gp_Pnt2d aP2d = aC2D->Value(aT);
++      Geom2dAPI_ProjectPointOnCurve aProj2d(aP2d, aC2DDE, aTD1, aTD2);
++      if (aProj2d.NbPoints())
++      {
++        Standard_Real aX = aProj2d.LowerDistanceParameter();
++        aPave.SetParameter(aX);
++        AddSplitPoint(aPBD, aPave, aTolCmp);
+       }
+-      //
+-      aPave.SetParameter(aX);
+-      aPBD->AppendExtPave1(aPave);
+     }
+   }
+ }
+@@ -354,3 +365,34 @@ void BOPAlgo_PaveFiller::ProcessDE()
+   BB.UpdateEdge(E, aTol);
+   aNewEdge=E;
+ }
++
++//=======================================================================
++// function: AddSplitPoint
++// purpose: Validates the point represented by the pave <thePave>
++//          for the Pave Block <thePBD>.
++//          In case the point passes the checks it is added as an
++//          Extra Pave to the Pave Block for further splitting of the latter.
++//          Returns TRUE if the point is added, otherwise returns FALSE.
++//=======================================================================
++Standard_Boolean AddSplitPoint(const Handle(BOPDS_PaveBlock)& thePBD,
++                               const BOPDS_Pave& thePave,
++                               const Standard_Real theTol)
++{
++  Standard_Real aTD1, aTD2;
++  thePBD->Range(aTD1, aTD2);
++
++  Standard_Real aT = thePave.Parameter();
++  // Check that the parameter is inside the Pave Block
++  if (aT - aTD1 < theTol || aTD2 - aT < theTol)
++    return Standard_False;
++
++  // Check that the pave block does not contain the same parameter
++  Standard_Integer anInd;
++  if (thePBD->ContainsParameter(aT, theTol, anInd))
++    return Standard_False;
++
++  // Add the point as an Extra pave to the Pave Block for further
++  // splitting of the latter
++  thePBD->AppendExtPave1(thePave);
++  return Standard_True;
++}
+diff --git a/src/BOPTest/BOPTest_CheckCommands.cxx b/src/BOPTest/BOPTest_CheckCommands.cxx
+index 618e86c..77d5cd2 100644
+--- a/src/BOPTest/BOPTest_CheckCommands.cxx
++++ b/src/BOPTest/BOPTest_CheckCommands.cxx
+@@ -235,6 +235,8 @@ Standard_Integer bopcheck (Draw_Interpretor& di,
+   //
+   aTimer.Stop();
+   //
++  BOPTest::ReportAlerts(aChecker);
++  //
+   iErr=aChecker.HasErrors();
+   //
+   const BOPDS_DS& aDS=*(aChecker.PDS());
+diff --git a/src/IntWalk/IntWalk_PWalking.cxx b/src/IntWalk/IntWalk_PWalking.cxx
+index 54c42a1..eed1c63 100644
+--- a/src/IntWalk/IntWalk_PWalking.cxx
++++ b/src/IntWalk/IntWalk_PWalking.cxx
+@@ -159,6 +159,35 @@ static void IsParallel(const Handle(IntSurf_LineOn2S)& theLine,
+   theIsUparallel = ((aVmax - aVmin) < theToler);
+ }
++//=======================================================================
++//function : AdjustToDomain
++//purpose  : Returns TRUE if theP has been changed (i.e. initial value
++//            was out of the domain)
++//=======================================================================
++static Standard_Boolean AdjustToDomain(const Standard_Integer theNbElem,
++                                       Standard_Real* theParam,
++                                       const Standard_Real* const theLowBorder,
++                                       const Standard_Real* const theUppBorder)
++{
++  Standard_Boolean aRetVal = Standard_False;
++  for (Standard_Integer i = 0; i < theNbElem; i++)
++  {
++    if ((theParam[i] - theLowBorder[i]) < -Precision::PConfusion())
++    {
++      theParam[i] = theLowBorder[i];
++      aRetVal = Standard_True;
++    }
++
++    if ((theParam[i] - theUppBorder[i]) > Precision::PConfusion())
++    {
++      theParam[i] = theUppBorder[i];
++      aRetVal = Standard_True;
++    }
++  }
++
++  return aRetVal;
++}
++
+ //==================================================================================
+ // function : IntWalk_PWalking::IntWalk_PWalking
+ // purpose  : 
+@@ -2247,7 +2276,19 @@ Standard_Boolean IntWalk_PWalking::HandleSingleSingularPoint(const Handle(Adapto
+         continue;
+       anInt.Point().Parameters(thePnt(1), thePnt(2), thePnt(3), thePnt(4));
+-      return Standard_True;
++
++      Standard_Boolean isInDomain = Standard_True;
++      for (Standard_Integer j = 1; isInDomain && (j <= 4); ++j)
++      {
++        if ((thePnt(j) - aLowBorder[j - 1] + Precision::PConfusion())*
++            (thePnt(j) - aUppBorder[j - 1] - Precision::PConfusion()) > 0.0)
++        {
++          isInDomain = Standard_False;
++        }
++      }
++
++      if (isInDomain)
++        return Standard_True;
+     }
+   }
+@@ -2259,16 +2300,26 @@ Standard_Boolean IntWalk_PWalking::HandleSingleSingularPoint(const Handle(Adapto
+ //purpose  : 
+ //=======================================================================
+ Standard_Boolean IntWalk_PWalking::
+-SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
+-                    const Handle(Adaptor3d_HSurface)& theASurf2,
+-                    const Standard_Real theU1,
+-                    const Standard_Real theV1,
+-                    const Standard_Real theU2,
+-                    const Standard_Real theV2,
+-                    const Standard_Boolean isTheFirst)
++        SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
++                            const Handle(Adaptor3d_HSurface)& theASurf2,
++                            const Standard_Real theU1,
++                            const Standard_Real theV1,
++                            const Standard_Real theU2,
++                            const Standard_Real theV2,
++                            const Standard_Boolean isTheFirst)
+ {
+   Standard_Boolean isOK = Standard_False;
++  // u1, v1, u2, v2 order is used.
++  const Standard_Real aLowBorder[4] = {theASurf1->FirstUParameter(),
++                                       theASurf1->FirstVParameter(),
++                                       theASurf2->FirstUParameter(),
++                                       theASurf2->FirstVParameter()};
++  const Standard_Real aUppBorder[4] = {theASurf1->LastUParameter(),
++                                       theASurf1->LastVParameter(),
++                                       theASurf2->LastUParameter(),
++                                       theASurf2->LastVParameter()};
++
+   // Tune solution tolerance according with object size.
+   const Standard_Real aRes1 = Max(Precision::PConfusion() / theASurf1->UResolution(1.0),
+                                   Precision::PConfusion() / theASurf1->VResolution(1.0));
+@@ -2288,21 +2339,26 @@ SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
+   {
+     aNbIter--;
+     aStatus = DistanceMinimizeByGradient(theASurf1, theASurf2, aPnt);
+-    if(aStatus)
++    if (aStatus && !AdjustToDomain(4, &aPnt(1), &aLowBorder[0], &aUppBorder[0]))
+       break;
+-    aStatus = DistanceMinimizeByExtrema(theASurf1, theASurf2->Value(aPnt(3), aPnt(4)), aPnt(1), aPnt(2));
+-    if(aStatus)
++    aStatus = DistanceMinimizeByExtrema(theASurf1, theASurf2->Value(aPnt(3), aPnt(4)),
++                                        aPnt(1), aPnt(2));
++    if (aStatus && !AdjustToDomain(2, &aPnt(1), &aLowBorder[0], &aUppBorder[0]))
+       break;
+-    aStatus = DistanceMinimizeByExtrema(theASurf2, theASurf1->Value(aPnt(1), aPnt(2)), aPnt(3), aPnt(4));
+-    if(aStatus)
++    aStatus = DistanceMinimizeByExtrema(theASurf2, theASurf1->Value(aPnt(1), aPnt(2)),
++                                        aPnt(3), aPnt(4));
++    if (aStatus && !AdjustToDomain(2, &aPnt(3), &aLowBorder[2], &aUppBorder[2]))
+       break;
+   }
+   while(!aStatus && (aNbIter > 0));
+   // Handle singular points.
+-  Standard_Boolean aSingularStatus = HandleSingleSingularPoint(theASurf1, theASurf2, aTol, aSingularPnt);
++  Standard_Boolean aSingularStatus = HandleSingleSingularPoint(theASurf1,
++                                                               theASurf2,
++                                                               aTol,
++                                                               aSingularPnt);
+   if (aSingularStatus)
+     aPnt = aSingularPnt;
+diff --git a/tests/bugs/modalg_7/bug25879 b/tests/bugs/modalg_7/bug25879
+index bb45244..e344c39 100755
+--- a/tests/bugs/modalg_7/bug25879
++++ b/tests/bugs/modalg_7/bug25879
+@@ -13,7 +13,8 @@ explode Box E
+ blend Fillet Box 1 Box_1 1 Box_2 1 Box_3 1 Box_4 1 Box_5 1 Box_6 1 Box_7 1 Box_8 1 Box_9 1 Box_10 1 Box_11 1 Box_12
+-if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet]] == 1 } {
++set bug_info [string trim [bopcheck Fillet]]
++if {$bug_info != "This shape seems to be OK."} {
+     puts "Error : result of blend fails the bopcheck"
+ }
+diff --git a/tests/bugs/modalg_7/bug29073 b/tests/bugs/modalg_7/bug29073
+new file mode 100644
+index 0000000..e13beca
+--- /dev/null
++++ b/tests/bugs/modalg_7/bug29073
+@@ -0,0 +1,34 @@
++puts "======="
++puts "0029073"
++puts "======="
++puts ""
++##################################################
++# Regression: General Cut produces invalid shape
++##################################################
++
++brestore [locate_data_file bug29073_M6.brep] b1
++brestore [locate_data_file bug29073_Shell.brep] b2
++
++bclearobjects
++bcleartools
++baddobjects b1
++baddtools b2
++bfillds
++
++# check the result of SECTION
++bbop rsec 4
++checknbshapes rsec -edge 1 -vertex 2
++
++# check the result of GF
++bbuild rgf
++checkshape rgf
++checkprops rgf -s 163.708 -v 115.912
++checknbshapes rgf -wire 25 -face 24 -shell 3 -solid 1
++
++# check the CUT
++bbop result 3
++checkshape result
++checkprops result -s 0.000713987
++checknbshapes result -wire 1 -face 1
++
++checkview -display result -2d -path ${imagedir}/${test_image}.png
+diff --git a/tests/bugs/modalg_7/bug29099 b/tests/bugs/modalg_7/bug29099
+new file mode 100644
+index 0000000..f4bbf91
+--- /dev/null
++++ b/tests/bugs/modalg_7/bug29099
+@@ -0,0 +1,23 @@
++puts "======="
++puts "0029099"
++puts "======="
++puts ""
++##################################################
++# Extra shapes in result of General Cut (box by ellipsoid)
++##################################################
++
++brestore [locate_data_file bug29099_Box.brep] b1
++brestore [locate_data_file bug29099_Rotation.brep] b2
++
++bclearobjects
++bcleartools
++baddobjects b1
++baddtools b2
++bfillds
++bbuild result
++
++checkshape result
++checknbshapes result -wire 11 -face 10 -shell 3 -solid 3
++checkprops result -s 12651.3 -v 52187.5
++
++checkview -display result -2d -path ${imagedir}/${test_image}.png
+\ No newline at end of file
+diff --git a/tests/bugs/modalg_7/bug29103 b/tests/bugs/modalg_7/bug29103
+new file mode 100644
+index 0000000..33bc06c
+--- /dev/null
++++ b/tests/bugs/modalg_7/bug29103
+@@ -0,0 +1,56 @@
++puts "========"
++puts "OCC29103"
++puts "========"
++puts ""
++#################################################
++# No intersection curve between faces if starting points are given
++#################################################
++
++set MaxTolReached 2.0e-7
++set GoodNbCurv 1
++set ExpLength 0.074141742883251954
++
++restore [locate_data_file bug29073_M6.brep] a
++restore [locate_data_file bug29073_Shell.brep] b
++explode a f
++explode b f
++
++don b_2
++axo
++fit
++disp a_6
++
++set log1 [bopcurves a_6 b_2 -2d]
++
++checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png
++checklength c_1 -l $ExpLength
++
++don b_2
++axo
++fit
++disp a_6
++
++set log2 [bopcurves a_6 b_2 -2d -p -0.55478319275098653 1.2919191091235780 0.80333089657224976 0.67079577554162440 -p -0.62451407353846222 1.2667484772947102 0.82894736842100003 0.70523311453721027]
++
++checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png
++checklength c_1 -l $ExpLength
++
++regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler1 NbCurv1
++regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler2 NbCurv2
++
++if {$Toler1 > $MaxTolReached} {
++  puts "Error: Big tolerance is returned by intersector w/o start points"
++}
++
++if {$Toler2 > $MaxTolReached} {
++  puts "Error: Big tolerance is returned by intersector with start points"
++}
++
++if {$NbCurv1 != $GoodNbCurv} {
++  puts "Error: Please check NbCurves for intersector w/o start points"
++}
++
++if {$NbCurv2 != $GoodNbCurv} {
++  puts "Error: Please check NbCurves for intersector with start points"
++}
++
+diff --git a/tests/bugs/moddata_3/bug25693_1 b/tests/bugs/moddata_3/bug25693_1
+index de7953d..86d1aeb 100755
+--- a/tests/bugs/moddata_3/bug25693_1
++++ b/tests/bugs/moddata_3/bug25693_1
+@@ -10,7 +10,8 @@ puts ""
+ restore [locate_data_file bug25693_path3035.brep] result
+-if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck result]] == 1 } {
++set bug_info [string trim [bopcheck result]]
++if {$bug_info != "This shape seems to be OK."} {
+     puts "Error : Wire of BSplines fails bopcheck"
+ }
+diff --git a/tests/bugs/moddata_3/bug25693_2 b/tests/bugs/moddata_3/bug25693_2
+index 6b3bfb1..cfc7a0e 100755
+--- a/tests/bugs/moddata_3/bug25693_2
++++ b/tests/bugs/moddata_3/bug25693_2
+@@ -12,11 +12,13 @@ restore [locate_data_file bug25693_path3039.brep] path3039
+ prism Extrude_path3039 path3039 0 0 50
+-if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck path3039]] == 1 } {
++set log1 [string trim [bopcheck path3039]]
++if {$log1 != "This shape seems to be OK."} {
+     puts "Error : bad shape"
+ }
+-if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Extrude_path3039]] == 1 } {
++set log2 [string trim [bopcheck Extrude_path3039]]
++if {$log2 != "This shape seems to be OK."} {
+     puts "Error : Wire of BSplines fails bopcheck"
+ }
diff --git a/config/patches/edf/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch b/config/patches/edf/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch
new file mode 100644 (file)
index 0000000..5240a41
--- /dev/null
@@ -0,0 +1,28 @@
+--- orig/ParaView-5.4.0-463c0633_SRC/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx  2017-09-13 10:51:02.000000000 +0300
++++ ParaView-5.4.0-463c0633_SRC/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx       2017-11-14 16:15:29.312760666 +0300
+@@ -402,10 +402,13 @@
+   }
+ }
++static bool ctxErrorOccurred = false;
++
+ extern "C"
+ {
+   int vtkXOGLContextCreationErrorHandler(Display*, XErrorEvent*)
+   {
++    ctxErrorOccurred = true;
+     return 1;
+   }
+ }
+@@ -584,6 +587,11 @@
+             GL_TRUE, context_attribs );
+         // Sync to ensure any errors generated are processed.
+         XSync( this->DisplayId, False );
++        if(ctxErrorOccurred)
++        {
++          this->Internal->ContextId = nullptr;
++          ctxErrorOccurred = false;
++        }
+       }
+       XSetErrorHandler(previousHandler);
+       if ( this->Internal->ContextId )
diff --git a/config/patches/edf/README.txt b/config/patches/edf/README.txt
new file mode 100644 (file)
index 0000000..b9038a8
--- /dev/null
@@ -0,0 +1,12 @@
+In this directory you can find all the patch used for V9_2_0 building :
+
+CGAL           4.0                     : cgal_cmake352.patch
+FREEIMAGE      3.1.6                   : 
+GL2PS          1.4.0-20170729          : gl2ps.patch
+OCC            7.2.0p3                 : OCCT-7.2.0.patch
+OMNIORBPY      4.2.2                   : omniORBpy-4.2.1-2-python3.patch
+OPENTURNS_WRAPY        0.7                     : otwrapy_0.7_py3.patch
+PARAVIEW       v5.6.0                  : ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch, patch_pv_b5c4c893_py_catalyst.patch
+PILLOW         3.4.2                   : pillow-py3.patch 
+SCOTCH         6.0.4                   : scotch604_Make.inc.patch
+SPHINX         1.2.3                   : sphinx176_w_intl_napoleon.patch
diff --git a/config/patches/edf/cgal_cmake352.patch b/config/patches/edf/cgal_cmake352.patch
new file mode 100644 (file)
index 0000000..88124b3
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/CMakeLists.txt       2012-02-10 21:00:53.000000000 +0100
++++ b/src/CMakeLists.txt       2016-04-21 17:09:10.641089365 +0200
+@@ -117,7 +117,7 @@
+   file(GLOB CONFIGURED_LIBS_IN_PACKAGE ${package}/src/CGAL*/CMakeLists.txt)
+   foreach (libconfigfile ${CONFIGURED_LIBS_IN_PACKAGE})
+     string(REPLACE "${package}/src/" "" libconfigfile ${libconfigfile})
+-    string(REPLACE "//CMakeLists.txt" "" CGAL_CONFIGURED_LIBRARY_SUBDIR ${libconfigfile})
++    string(REPLACE "/CMakeLists.txt" "" CGAL_CONFIGURED_LIBRARY_SUBDIR ${libconfigfile})
+     if (NOT ${CGAL_CONFIGURED_LIBRARY_SUBDIR} STREQUAL "CGAL")
+       string(REPLACE "CGAL" "" CGAL_CONFIGURED_LIBRARY_NAME ${CGAL_CONFIGURED_LIBRARY_SUBDIR})
diff --git a/config/patches/edf/gl2ps.patch b/config/patches/edf/gl2ps.patch
new file mode 100644 (file)
index 0000000..9b99528
--- /dev/null
@@ -0,0 +1,14 @@
+--- A/CMakeLists.txt   2016-07-19 11:43:42.845939766 +0200
++++ B/CMakeLists.txt   2016-07-19 11:44:33.633939452 +0200
+@@ -140,9 +140,9 @@
+ if(GLUT_FOUND)
+   add_executable(gl2psTest WIN32 gl2psTest.c)
+-  target_link_libraries(gl2psTest lib ${EXTERNAL_LIBRARIES})
++  target_link_libraries(gl2psTest lib m ${EXTERNAL_LIBRARIES})
+   add_executable(gl2psTestSimple WIN32 gl2psTestSimple.c)
+-  target_link_libraries(gl2psTestSimple lib ${EXTERNAL_LIBRARIES})
++  target_link_libraries(gl2psTestSimple lib m ${EXTERNAL_LIBRARIES})
+ endif(GLUT_FOUND)
+ find_package(LATEX)
diff --git a/config/patches/edf/omniORBpy-4.2.1-2-python3.patch b/config/patches/edf/omniORBpy-4.2.1-2-python3.patch
new file mode 100644 (file)
index 0000000..82b749a
--- /dev/null
@@ -0,0 +1,74 @@
+diff -Naur a/python3/omniORB/__init__.py b/python3/omniORB/__init__.py
+--- a/python3/omniORB/__init__.py      2015-06-08 13:39:59.000000000 +0200
++++ b/python3/omniORB/__init__.py      2017-05-09 14:57:00.521302183 +0200
+@@ -458,17 +458,65 @@
+     def __repr__(self):
+         return self._n
+-    def __cmp__(self, other):
++    def __eq__(self, other):
+         try:
+             if isinstance(other, EnumItem):
+                 if other._parent_id == self._parent_id:
+-                    return cmp(self._v, other._v)
++                    return self._v == other._v
+                 else:
+-                    return cmp(self._parent_id, other._parent_id)
++                    return self._parent_id == other._parent_id
+             else:
+-                return cmp(id(self), id(other))
++                return id(self) == id(other)
+         except:
+-            return cmp(id(self), id(other))
++            return id(self) == id(other)
++
++    def __lt__(self, other):
++        try:
++            if isinstance(other, EnumItem):
++                if other._parent_id == self._parent_id:
++                    return self._v < other._v
++                else:
++                    return self._parent_id < other._parent_id
++            else:
++                return id(self) < id(other)
++        except:
++            return id(self) < id(other)
++
++    def __le__(self, other):
++        try:
++            if isinstance(other, EnumItem):
++                if other._parent_id == self._parent_id:
++                    return self._v <= other._v
++                else:
++                    return self._parent_id <= other._parent_id
++            else:
++                return id(self) <= id(other)
++        except:
++            return id(self) <= id(other)
++
++    def __gt__(self, other):
++        try:
++            if isinstance(other, EnumItem):
++                if other._parent_id == self._parent_id:
++                    return self._v > other._v
++                else:
++                    return self._parent_id > other._parent_id
++            else:
++                return id(self) > id(other)
++        except:
++            return id(self) > id(other)
++
++    def __ge__(self, other):
++        try:
++            if isinstance(other, EnumItem):
++                if other._parent_id == self._parent_id:
++                    return self._v >= other._v
++                else:
++                    return self._parent_id >= other._parent_id
++            else:
++                return id(self) >= id(other)
++        except:
++            return id(self) >= id(other)
+     def __hash__(self):
+         return hash(self._parent_id + "/" + self._n)
diff --git a/config/patches/edf/otwrapy_0.7_py3.patch b/config/patches/edf/otwrapy_0.7_py3.patch
new file mode 100644 (file)
index 0000000..1935b68
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur a/setup.py b/setup.py
+--- a/setup.py 2017-10-26 11:31:16.000000000 +0200
++++ b/setup.py 2018-09-13 13:58:34.256434654 +0200
+@@ -6,7 +6,7 @@
+ from codecs import open
+ from os import path
+-with open('otwrapy/__init__.py') as fid:
++with open('otwrapy/__init__.py', 'r') as fid:
+     for line in fid:
+         if line.startswith('__version__'):
+             version = line.strip().split()[-1][1:-1]
diff --git a/config/patches/edf/patch_pv_b5c4c893_py_catalyst.patch b/config/patches/edf/patch_pv_b5c4c893_py_catalyst.patch
new file mode 100644 (file)
index 0000000..055f0e4
--- /dev/null
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e3031c3..f5585fa 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -923,3 +923,6 @@ if (NOT WIN32 AND is_git)
+       "paraview-source-${format}")
+   endforeach ()
+ endif ()
++
++FILE(WRITE ${PROJECT_BINARY_DIR}/lib/cmake/paraview-5.4/Modules/vtkPVPythonCatalystHierarchy.txt "This is a patch")
++
diff --git a/config/patches/edf/pillow-py3.patch b/config/patches/edf/pillow-py3.patch
new file mode 100644 (file)
index 0000000..a77d1d1
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur Pillow-3.4.2/setup.py Pillow-3.4.2-new/setup.py
+--- Pillow-3.4.2/setup.py      2017-05-10 14:42:20.479585980 +0200
++++ Pillow-3.4.2-new/setup.py  2017-05-10 14:41:33.468524757 +0200
+@@ -116,7 +116,7 @@
+ ZLIB_ROOT = None
+ IMAGEQUANT_ROOT = None
+ TIFF_ROOT = None
+-FREETYPE_ROOT = None
++FREETYPE_ROOT = os.getenv("FREETYPEDIR")
+ LCMS_ROOT = None
diff --git a/config/patches/edf/scotch604_Make.inc.patch b/config/patches/edf/scotch604_Make.inc.patch
new file mode 100644 (file)
index 0000000..2f09266
--- /dev/null
@@ -0,0 +1,51 @@
+diff -Naur Scotch-604/src/Make.inc/Makefile.inc.i686_pc_linux2 Scotch-604_esmumps/src/Make.inc/Makefile.inc.i686_pc_linux2
+--- Scotch-604/src/Make.inc/Makefile.inc.i686_pc_linux2        2018-02-20 11:23:34.588586025 +0100
++++ Scotch-604_esmumps/src/Make.inc/Makefile.inc.i686_pc_linux2        2018-02-20 17:15:15.203967949 +0100
+@@ -9,9 +9,9 @@
+ CCS           = gcc
+ CCP           = mpicc
+ CCD           = gcc
+-CFLAGS                = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
++CFLAGS                = -O3 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
+ CLIBFLAGS     =
+-LDFLAGS               = -lz -lm -pthread
++LDFLAGS               = -lz -lm -pthread -lrt
+ CP            = cp
+ LEX           = flex -Pscotchyy -olex.yy.c
+ LN            = ln
+diff -Naur Scotch-604EDFp1/src/Makefile Scotch-604EDFp1_esmumps/src/Makefile
+--- Scotch-604EDFp1/src/Makefile       2018-03-30 15:37:48.930229374 +0200
++++ Scotch-604EDFp1_esmumps/src/Makefile       2018-03-30 15:35:09.765696046 +0200
+@@ -93,11 +93,13 @@
+                                       (cd libscotch ;      $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
+                                       (cd scotch ;         $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
+                                       (cd libscotchmetis ; $(MAKE)                                                                scotch && $(MAKE) install)
++                                      (cd esmumps ;        $(MAKE)                                                                scotch && $(MAKE) install)
+ ptscotch                      :       required
+                                       (cd libscotch ;      $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
+                                       (cd scotch ;         $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
+                                       (cd libscotchmetis ; $(MAKE)                                                                ptscotch && $(MAKE) ptinstall)
++                                      (cd esmumps ;        $(MAKE)                                                                ptscotch && $(MAKE) ptinstall)
+ check                         :       scotch
+                                       (cd check ; $(MAKE) check)
+@@ -105,17 +107,12 @@
+ ptcheck                               :       ptscotch
+                                       (cd check ; $(MAKE) ptcheck)
+-esmumps                               :       scotch
+-                                      (cd esmumps ; $(MAKE) scotch && $(MAKE) install)
+-
+-ptesmumps                     :       ptscotch
+-                                      (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
+-
+ install                               :       required        $(bindir)       $(includedir)   $(libdir)       $(mandir)/man1
+                                       -$(CP) -f ../bin/[agm]*$(EXE) $(bindir)
+                                       -$(CP) -f ../bin/d[agm]*$(EXE) $(bindir)
+                                       -$(CP) -f ../include/*scotch*.h $(includedir)
+                                       -$(CP) -f ../lib/*scotch*$(LIB) $(libdir)
++                                      -$(CP) -f ../lib/*esmumps*$(LIB) $(libdir)
+                                       -$(CP) -Rf ../man/* $(mandir)
+ clean                         :       required
diff --git a/config/patches/edf/sphinx_w_intl_napoleon.patch b/config/patches/edf/sphinx_w_intl_napoleon.patch
new file mode 100644 (file)
index 0000000..1e78c5d
--- /dev/null
@@ -0,0 +1,11 @@
+--- Sphinx-123-doc012-jin273-pyg202-py2710-set3840/setup.py    2014-09-01 16:22:41.000000000 +0200
++++ Sphinx-123-doc012-jin273-pyg202-py2710-set3840_w_intl_nap/setup.py 2018-04-12 15:05:37.575068486 +0200
+@@ -41,7 +41,7 @@
+ * Setuptools integration
+ '''
+-requires = ['Pygments>=1.2', 'docutils>=0.7']
++requires = ['sphinxcontrib-napoleon==0.6.1', 'sphinx-intl==0.9.10','Pygments>=1.2', 'docutils>=0.7']
+ if sys.version_info[:3] >= (3, 3, 0):
+     requires[1] = 'docutils>=0.10'