From 46d35da054d2832453e32444ff8ad5987303927b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Fri, 28 Aug 2020 23:04:57 -0300 Subject: [PATCH] freecad: fix build for vtk9 and musl. New patch, add libexecinfo to makedepends and stop removing qt5-webkit for musl. [ci skip] --- srcpkgs/freecad/patches/150-vtk9.patch | 760 +++++++++++++++++++++++++ srcpkgs/freecad/template | 8 +- 2 files changed, 763 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/freecad/patches/150-vtk9.patch diff --git a/srcpkgs/freecad/patches/150-vtk9.patch b/srcpkgs/freecad/patches/150-vtk9.patch new file mode 100644 index 00000000000..e8fb5ec14b7 --- /dev/null +++ b/srcpkgs/freecad/patches/150-vtk9.patch @@ -0,0 +1,760 @@ +Taken from https://github.com/wwmayer/FreeCAD/commit/52599f771fa934ceeb11a970c3639bfa8f90411e + +diff --git src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx b/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx +index 14a6d9a76..7b9d88db1 100644 +--- src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx ++++ src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx +@@ -40,10 +40,16 @@ + + #include + #include ++#include + + //typedef unsigned short UShortType; + typedef short ShortType; + typedef int LongType; ++#ifdef VTK_CELL_ARRAY_V2 ++typedef const vtkIdType* vtkIdTypePtr; ++#else ++typedef vtkIdType* vtkIdTypePtr; ++#endif + + class SMDS_MeshNode; + class SMDS_MeshEdge; +@@ -192,7 +198,7 @@ protected: + //! Element index in vector SMDS_Mesh::myNodes or SMDS_Mesh::myCells + int myID; + //! index in vtkUnstructuredGrid +- int myVtkID; ++ vtkIdType myVtkID; + //! SMDS_Mesh identification in SMESH + ShortType myMeshId; + //! SubShape and SubMesh identification in SMESHDS +diff --git src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx b/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx +index 9e4a23edd..774658145 100644 +--- src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx ++++ src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx +@@ -95,7 +95,11 @@ public: + std::map >& nodeQuadDomains); + vtkCellLinks* GetLinks() + { ++#ifdef VTK_CELL_ARRAY_V2 ++ return static_cast(GetCellLinks()); ++#else + return Links; ++#endif + } + SMDS_Downward* getDownArray(unsigned char vtkType) + { +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp +index 299093c94..990e2b641 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp +@@ -68,9 +68,13 @@ bool SMDS_BallElement::ChangeNode (const SMDS_MeshNode * node) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[0] = node->getVtkId(); ++#endif + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; + } +@@ -83,7 +87,8 @@ void SMDS_BallElement::Print (std::ostream & OS) const + const SMDS_MeshNode* SMDS_BallElement::GetNode (const int ind) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( myVtkID, npts, pts ); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ 0 ]); + } +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp +index d6049c0bd..77555d5bc 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp +@@ -303,7 +303,7 @@ int SMDS_Down1D::getNodeSet(int cellId, int* nodeSet) + void SMDS_Down1D::setNodes(int cellId, int vtkId) + { + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + _grid->GetCellPoints(vtkId, npts, pts); + // MESSAGE(vtkId << " " << npts << " " << _nbDownCells); + //ASSERT(npts == _nbDownCells); +@@ -532,7 +532,7 @@ int SMDS_Down2D::computeVolumeIds(int cellId, int* ids) + // --- find point id's of the face + + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + _grid->GetCellPoints(cellId, npts, pts); + vector nodes; + for (int i = 0; i < npts; i++) +@@ -627,7 +627,7 @@ int SMDS_Down2D::computeVolumeIdsFromNodesFace(int* pts, int npts, int* ids) + void SMDS_Down2D::setTempNodes(int cellId, int vtkId) + { + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + _grid->GetCellPoints(vtkId, npts, pts); + // MESSAGE(vtkId << " " << npts << " " << _nbNodes); + //ASSERT(npts == _nbNodes); +@@ -795,7 +795,7 @@ void SMDS_Down3D::getNodeIds(int cellId, std::set& nodeSet) + { + int vtkId = this->_vtkCellIds[cellId]; + vtkIdType npts = 0; +- vtkIdType *nodes; // will refer to the point id's of the volume ++ vtkIdTypePtr nodes; // will refer to the point id's of the volume + _grid->GetCellPoints(vtkId, npts, nodes); + for (int i = 0; i < npts; i++) + nodeSet.insert(nodes[i]); +@@ -1126,7 +1126,7 @@ void SMDS_DownTetra::getOrderedNodesOfFace(int cellId, std::vector& o + //MESSAGE("cellId = " << cellId); + + vtkIdType npts = 0; +- vtkIdType *nodes; // will refer to the point id's of the volume ++ vtkIdTypePtr nodes; // will refer to the point id's of the volume + _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes); + + set tofind; +@@ -1178,7 +1178,7 @@ void SMDS_DownTetra::computeFacesWithNodes(int cellId, ListElemByNodesType& face + // --- find point id's of the volume + + vtkIdType npts = 0; +- vtkIdType *nodes; // will refer to the point id's of the volume ++ vtkIdTypePtr nodes; // will refer to the point id's of the volume + _grid->GetCellPoints(cellId, npts, nodes); + + // --- create all the ordered list of node id's for each face +@@ -1234,7 +1234,7 @@ void SMDS_DownQuadTetra::getOrderedNodesOfFace(int cellId, std::vectorGetCellLinks(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkCellLinks *links = static_cast(myGrid->GetCellLinks()); ++#else ++ vtkCellLinks *links = myGrid->GetCellLinks(); ++#endif + for (int i=0; iGetNcells(i); +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp +index 95438eab0..a7f8059e0 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp +@@ -147,7 +147,7 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + if (nbNodes != npts) + { +@@ -155,7 +155,11 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN + return false; + } + myNode = nodes[0]; ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[0] = myNode->getVtkId(); ++#endif + + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp +index f647a5f1b..5b903c8fb 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp +@@ -191,7 +191,7 @@ public: + SMDS_ElemIteratorPtr SMDS_MeshNode:: + GetInverseElementIterator(SMDSAbs_ElementType type) const + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + //MESSAGE("myID " << myID << " ncells " << l.ncells); + return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type)); + } +@@ -251,7 +251,7 @@ elementsIterator(SMDSAbs_ElementType type) const + return SMDS_MeshElement::elementsIterator(SMDSAbs_Node); + else + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type)); + } + } +@@ -350,7 +350,7 @@ void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME) + const SMDS_MeshCell *cell = dynamic_cast (ME); + assert(cell); + SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkCellLinks *Links = grid->GetCellLinks(); ++ vtkCellLinks *Links = static_cast(grid->GetCellLinks()); + Links->ResizeCellList(myVtkID, 1); + Links->AddCellReference(cell->getVtkId(), myVtkID); + } +@@ -366,7 +366,7 @@ void SMDS_MeshNode::ClearInverseElements() + + bool SMDS_MeshNode::emptyInverseElements() + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + return (l.ncells == 0); + } + +@@ -378,7 +378,7 @@ bool SMDS_MeshNode::emptyInverseElements() + + int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + + if ( type == SMDSAbs_All ) + return l.ncells; +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +index fbd903b1e..19ccebcab 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +@@ -139,8 +139,8 @@ int SMDS_UnstructuredGrid::InsertNextLinkedCell(int type, int npts, vtkIdType *p + for (; it != setOfNodes.end(); ++it) + { + //MESSAGE("reverse link for node " << *it << " cell " << cellid); +- this->Links->ResizeCellList(*it, 1); +- this->Links->AddCellReference(cellid, *it); ++ this->GetLinks()->ResizeCellList(*it, 1); ++ this->GetLinks()->AddCellReference(cellid, *it); + } + + return cellid; +@@ -332,9 +332,13 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *newTypes, + { + newTypes->SetValue(alreadyCopied, this->Types->GetValue(j)); + idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkIdType oldLoc; //FIXME: vtk9 ++#else + vtkIdType oldLoc = this->Locations->GetValue(j); ++#endif + vtkIdType nbpts; +- vtkIdType *oldPtsCell = 0; ++ vtkIdTypePtr oldPtsCell = 0; + this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell); + assert(nbpts < NBMAXNODESINCELL); + //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts ); +@@ -953,14 +957,18 @@ void SMDS_UnstructuredGrid::GetNodeIds(std::set& nodeSet, int downId, unsig + void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map localClonedNodeIds) + { + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + this->GetCellPoints(vtkVolId, npts, pts); + for (int i = 0; i < npts; i++) + { + if (localClonedNodeIds.count(pts[i])) + { + vtkIdType oldpt = pts[i]; ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[i] = localClonedNodeIds[oldpt]; ++#endif + //MESSAGE(oldpt << " --> " << pts[i]); + //this->RemoveReferenceToCell(oldpt, vtkVolId); + //this->AddReferenceToCell(pts[i], vtkVolId); +@@ -995,11 +1003,20 @@ void SMDS_UnstructuredGrid::BuildLinks() + this->Links->UnRegister(this); + } + ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++ this->Links = SMDS_CellLinks::New(); ++ //this->Links->Allocate(this->GetNumberOfPoints()); ++ this->Links->Register(this); ++ //this->Links->BuildLinks(this, this->Connectivity); ++ this->Links->Delete(); ++#else + this->Links = SMDS_CellLinks::New(); + this->Links->Allocate(this->GetNumberOfPoints()); + this->Links->Register(this); + this->Links->BuildLinks(this, this->Connectivity); + this->Links->Delete(); ++#endif + } + + /*! Create a volume (prism or hexahedron) by duplication of a face. +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp +index deb05985f..63b6eabb7 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp +@@ -33,7 +33,8 @@ SMDS_VtkCellIterator::SMDS_VtkCellIterator(SMDS_Mesh* mesh, int vtkCellId, SMDSA + } + else + { +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( _cellId, npts, pts ); + _vtkIdList->SetNumberOfIds( _nbNodes = npts ); + for (int i = 0; i < _nbNodes; i++) +@@ -67,7 +68,7 @@ SMDS_VtkCellIteratorToUNV::SMDS_VtkCellIteratorToUNV(SMDS_Mesh* mesh, int vtkCel + //MESSAGE("SMDS_VtkCellInterlacedIterator (UNV)" << _type); + + _vtkIdList = vtkIdList::New(); +- vtkIdType* pts; ++ vtkIdTypePtr pts; + vtkIdType npts; + vtkUnstructuredGrid* grid = _mesh->getGrid(); + grid->GetCellPoints((vtkIdType)_cellId, npts, pts); +@@ -182,7 +183,7 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellIteratorPolyH(SMDS_Mesh* mesh, int vtkCel + { + //MESSAGE("SMDS_VtkCellIterator Polyhedra"); + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(_cellId, nFaces, ptIds); + int id = 0; + _nbNodesInFaces = 0; +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp +index 9786abf9a..58d2df3cf 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp +@@ -68,7 +68,7 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + if (nbNodes != npts) + { +@@ -77,7 +77,11 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + } + for (int i = 0; i < nbNodes; i++) + { ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[i] = nodes[i]->getVtkId(); ++#endif + } + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; +@@ -87,7 +91,7 @@ bool SMDS_VtkEdge::IsMediumNode(const SMDS_MeshNode* node) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + //MESSAGE("IsMediumNode " << npts << " " << (node->getVtkId() == pts[npts-1])); + return ((npts == 3) && (node->getVtkId() == pts[2])); +@@ -137,7 +141,8 @@ const SMDS_MeshNode* + SMDS_VtkEdge::GetNode(const int ind) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]); + } +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp +index 1389e0d35..a92601f1e 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp +@@ -102,7 +102,7 @@ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + if (nbNodes != npts) + { +@@ -111,7 +111,11 @@ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + } + for (int i = 0; i < nbNodes; i++) + { ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[i] = nodes[i]->getVtkId(); ++#endif + } + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; +@@ -173,7 +177,8 @@ const SMDS_MeshNode* + SMDS_VtkFace::GetNode(const int ind) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]); + } +@@ -186,7 +191,8 @@ SMDS_VtkFace::GetNode(const int ind) const + int SMDS_VtkFace::GetNodeIndex( const SMDS_MeshNode* node ) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + for ( vtkIdType i = 0; i < npts; ++i ) + if ( pts[i] == node->getVtkId() ) +@@ -251,7 +257,7 @@ bool SMDS_VtkFace::IsMediumNode(const SMDS_MeshNode* node) const + return false; + } + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + vtkIdType nodeId = node->getVtkId(); + for (int rank = 0; rank < npts; rank++) +@@ -357,10 +363,14 @@ void SMDS_VtkFace::ChangeApex(SMDS_MeshNode* node) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + grid->RemoveReferenceToCell(pts[0], myVtkID); ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[0] = node->getVtkId(); ++#endif + node->AddInverseElement(this), + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + } +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp +index 015edf75f..da2f73ffb 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp +@@ -134,7 +134,7 @@ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + if (nbNodes != npts) + { +@@ -143,7 +143,11 @@ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes + } + for (int i = 0; i < nbNodes; i++) + { ++#ifdef VTK_CELL_ARRAY_V2 ++//FIXME: vtk9 ++#else + pts[i] = nodes[i]->getVtkId(); ++#endif + } + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; +@@ -207,7 +211,7 @@ int SMDS_VtkVolume::NbFaces() const + case VTK_POLYHEDRON: + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + nbFaces = nFaces; + break; +@@ -236,7 +240,7 @@ int SMDS_VtkVolume::NbNodes() const + else + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -276,7 +280,7 @@ int SMDS_VtkVolume::NbEdges() const + case VTK_POLYHEDRON: + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + nbEdges = 0; + int id = 0; +@@ -312,7 +316,7 @@ int SMDS_VtkVolume::NbFaceNodes(const int face_ind) const + if (aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -342,7 +346,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetFaceNode(const int face_ind, const int n + if (aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -372,7 +376,7 @@ std::vector SMDS_VtkVolume::GetQuantities() const + if (aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -430,7 +434,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetNode(const int ind) const + if ( aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0, nbPoints = 0; + for (int i = 0; i < nFaces; i++) +@@ -443,7 +447,8 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetNode(const int ind) const + } + return 0; + } +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + const std::vector& interlace = SMDS_MeshCell::fromVtkOrder( VTKCellType( aVtkType )); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ interlace.empty() ? ind : interlace[ind]] ); +@@ -460,7 +465,7 @@ int SMDS_VtkVolume::GetNodeIndex( const SMDS_MeshNode* node ) const + if ( aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int iF = 0; iF < nFaces; iF++) +@@ -473,7 +478,8 @@ int SMDS_VtkVolume::GetNodeIndex( const SMDS_MeshNode* node ) const + } + return -1; + } +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + for ( vtkIdType i = 0; i < npts; ++i ) + if ( pts[i] == node->getVtkId() ) +@@ -534,7 +540,7 @@ bool SMDS_VtkVolume::IsMediumNode(const SMDS_MeshNode* node) const + return false; + } + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + vtkIdType nodeId = node->getVtkId(); + for (int rank = 0; rank < npts; rank++) +diff --git src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp b/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp +index a742702ff..1ff4d5eef 100644 +--- src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp ++++ src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp +@@ -11343,7 +11343,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vectorGetCellLinks()->GetLink(oldId); ++ vtkCellLinks::Link l = static_cast(grid->GetCellLinks())->GetLink(oldId); + for (int i=0; iGetID()); + double values[3]; + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(vtkVolIds[ivol], npts, pts); + SMDS_VtkVolume::gravityCenter(grid, pts, npts, values); + if (id ==0) +@@ -11703,7 +11703,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vectorfirst; + //MESSAGE(" node " << oldId); +- vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId); ++ vtkCellLinks::Link l = static_cast(grid->GetCellLinks())->GetLink(oldId); + for (int i = 0; i < l.ncells; i++) + { + int vtkId = l.cells[i]; +@@ -12160,7 +12160,7 @@ void SMESH_MeshEditor::CreateHoleSkin(double radius, + MESSAGE("volume to check, vtkId " << vtkId << " smdsId " << meshDS->fromVtkToSmds(vtkId)); + bool volInside = false; + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(vtkId, npts, pts); + for (int i=0; iGetPoints(); + pntData = pd->GetPointData(); diff --git a/srcpkgs/freecad/template b/srcpkgs/freecad/template index b56d8227d60..8a36d1a38e4 100644 --- a/srcpkgs/freecad/template +++ b/srcpkgs/freecad/template @@ -36,11 +36,9 @@ homepage="https://freecadweb.org/" distfiles="https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz" checksum=4e0cce447b31b8989a00cf68c49ae012ce8e5546a56c6e0874fbd8f7ddedffd2 -case "$XBPS_TARGET_MACHINE" in - *-musl) # SIGSEGV with musl, see https://github.com/void-linux/void-packages/issues/12595 - makedepends=${makedepends/qt5-webkit-devel/} - ;; -esac +if [ "$XBPS_TARGET_LIBC" = musl ]; then + makedepends+=" libexecinfo-devel" +fi post_extract() { # Report exact minor version