diff --git a/common/shlibs b/common/shlibs index e03048c75bc428..222ce710d934b9 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3343,116 +3343,116 @@ libgnuradio-pdu.so.3.10.10 gnuradio-3.10.10.0_1 libgnuradio-osmosdr.so.0.2.0 gnuradio-osmosdr-0.2.0_1 libflann_cpp.so.1.9 flann-1.9.1_1 libflann.so.1.9 flann-1.9.1_1 -libvtkCommonCore-9.2.so.1 vtk-9.2.2_1 -libvtksys-9.2.so.1 vtk-9.2.2_1 -libvtkCommonMisc-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingContext2D-9.2.so.1 vtk-9.2.2_1 -libvtkCommonTransforms-9.2.so.1 vtk-9.2.2_1 -libvtkCommonMath-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingLOD-9.2.so.1 vtk-9.2.2_1 -libvtkViewsInfovis-9.2.so.1 vtk-9.2.2_1 -libvtkIOIOSS-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingLabel-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersPoints-9.2.so.1 vtk-9.2.2_1 -libvtkCommonExecutionModel-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingHyperTreeGrid-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersGeometry-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersGeneral-9.2.so.1 vtk-9.2.2_1 -libvtkCommonDataModel-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersTopology-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersSources-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingVolumeOpenGL2-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingCore-9.2.so.1 vtk-9.2.2_1 -libvtkIOOggTheora-9.2.so.1 vtk-9.2.2_1 -libvtkIOExportGL2PS-9.2.so.1 vtk-9.2.2_1 -libvtkIOAMR-9.2.so.1 vtk-9.2.2_1 -libvtkIOCesium3DTiles-9.2.so.1 vtk-9.2.2_1 -libvtkIOSegY-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingVtkJS-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersTexture-9.2.so.1 vtk-9.2.2_1 -libvtkIOVideo-9.2.so.1 vtk-9.2.2_1 -libvtkImagingSources-9.2.so.1 vtk-9.2.2_1 -libvtkImagingStencil-9.2.so.1 vtk-9.2.2_1 -libvtkIOCGNSReader-9.2.so.1 vtk-9.2.2_1 -libvtkCommonComputationalGeometry-9.2.so.1 vtk-9.2.2_1 -libvtkIOVeraOut-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersHybrid-9.2.so.1 vtk-9.2.2_1 -libvtkInteractionImage-9.2.so.1 vtk-9.2.2_1 -libvtkChartsCore-9.2.so.1 vtk-9.2.2_1 -libvtkImagingStatistics-9.2.so.1 vtk-9.2.2_1 -libvtkImagingHybrid-9.2.so.1 vtk-9.2.2_1 -libvtkGeovisCore-9.2.so.1 vtk-9.2.2_1 -libvtkInteractionWidgets-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersImaging-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersVerdict-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersSMP-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingUI-9.2.so.1 vtk-9.2.2_1 -libvtkIOHDF-9.2.so.1 vtk-9.2.2_1 -libvtkCommonSystem-9.2.so.1 vtk-9.2.2_1 -libvtkImagingColor-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingSceneGraph-9.2.so.1 vtk-9.2.2_1 -libvtkParallelCore-9.2.so.1 vtk-9.2.2_1 -libvtkIOInfovis-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingOpenGL2-9.2.so.1 vtk-9.2.2_1 -libvtkImagingFourier-9.2.so.1 vtk-9.2.2_1 -libvtkCommonColor-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingAnnotation-9.2.so.1 vtk-9.2.2_1 -libvtkIOSQL-9.2.so.1 vtk-9.2.2_1 -libvtkIOImage-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersCore-9.2.so.1 vtk-9.2.2_1 -libvtkInfovisCore-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersExtraction-9.2.so.1 vtk-9.2.2_1 -libvtkIOGeometry-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersFlowPaths-9.2.so.1 vtk-9.2.2_1 -libvtkIOMovie-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingVolume-9.2.so.1 vtk-9.2.2_1 -libvtkIOEnSight-9.2.so.1 vtk-9.2.2_1 -libvtkDomainsChemistryOpenGL2-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersStatistics-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersSelection-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersModeling-9.2.so.1 vtk-9.2.2_1 -libvtkViewsCore-9.2.so.1 vtk-9.2.2_1 -libvtkIOMotionFX-9.2.so.1 vtk-9.2.2_1 -libvtkIOLSDyna-9.2.so.1 vtk-9.2.2_1 -libvtkIOParallel-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingContextOpenGL2-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingImage-9.2.so.1 vtk-9.2.2_1 -libvtkIOXMLParser-9.2.so.1 vtk-9.2.2_1 -libvtkImagingMorphological-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersParallel-9.2.so.1 vtk-9.2.2_1 -libvtkViewsContext2D-9.2.so.1 vtk-9.2.2_1 -libvtkIOImport-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingLICOpenGL2-9.2.so.1 vtk-9.2.2_1 -libvtkIOAsynchronous-9.2.so.1 vtk-9.2.2_1 -libvtkIOTecplotTable-9.2.so.1 vtk-9.2.2_1 -libvtkIOCityGML-9.2.so.1 vtk-9.2.2_1 -libvtkImagingMath-9.2.so.1 vtk-9.2.2_1 -libvtkIOParallelXML-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingGL2PSOpenGL2-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersGeneric-9.2.so.1 vtk-9.2.2_1 -libvtkIONetCDF-9.2.so.1 vtk-9.2.2_1 -libvtkImagingCore-9.2.so.1 vtk-9.2.2_1 -libvtkInfovisLayout-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersHyperTree-9.2.so.1 vtk-9.2.2_1 -libvtkIOExportPDF-9.2.so.1 vtk-9.2.2_1 -libvtkImagingGeneral-9.2.so.1 vtk-9.2.2_1 -libvtkIOXML-9.2.so.1 vtk-9.2.2_1 -libvtkIOChemistry-9.2.so.1 vtk-9.2.2_1 -libvtkInteractionStyle-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersAMR-9.2.so.1 vtk-9.2.2_1 -libvtkIOMINC-9.2.so.1 vtk-9.2.2_1 -libvtkTestingRendering-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersParallelImaging-9.2.so.1 vtk-9.2.2_1 -libvtkDomainsChemistry-9.2.so.1 vtk-9.2.2_1 -libvtkIOExport-9.2.so.1 vtk-9.2.2_1 -libvtkIOCore-9.2.so.1 vtk-9.2.2_1 -libvtkFiltersProgrammable-9.2.so.1 vtk-9.2.2_1 -libvtkIOCONVERGECFD-9.2.so.1 vtk-9.2.2_1 -libvtkIOLegacy-9.2.so.1 vtk-9.2.2_1 -libvtkRenderingFreeType-9.2.so.1 vtk-9.2.2_1 -libvtkIOPLY-9.2.so.1 vtk-9.2.2_1 -libvtkIOExodus-9.2.so.1 vtk-9.2.2_1 -libvtkkissfft-9.2.so.1 vtk-9.2.2_1 +libvtkCommonCore-9.3.so.1 vtk-9.3.0_1 +libvtksys-9.3.so.1 vtk-9.3.0_1 +libvtkCommonMisc-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingContext2D-9.3.so.1 vtk-9.3.0_1 +libvtkCommonTransforms-9.3.so.1 vtk-9.3.0_1 +libvtkCommonMath-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingLOD-9.3.so.1 vtk-9.3.0_1 +libvtkViewsInfovis-9.3.so.1 vtk-9.3.0_1 +libvtkIOIOSS-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingLabel-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersPoints-9.3.so.1 vtk-9.3.0_1 +libvtkCommonExecutionModel-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingHyperTreeGrid-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersGeometry-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersGeneral-9.3.so.1 vtk-9.3.0_1 +libvtkCommonDataModel-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersTopology-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersSources-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingVolumeOpenGL2-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingCore-9.3.so.1 vtk-9.3.0_1 +libvtkIOOggTheora-9.3.so.1 vtk-9.3.0_1 +libvtkIOExportGL2PS-9.3.so.1 vtk-9.3.0_1 +libvtkIOAMR-9.3.so.1 vtk-9.3.0_1 +libvtkIOCesium3DTiles-9.3.so.1 vtk-9.3.0_1 +libvtkIOSegY-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingVtkJS-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersTexture-9.3.so.1 vtk-9.3.0_1 +libvtkIOVideo-9.3.so.1 vtk-9.3.0_1 +libvtkImagingSources-9.3.so.1 vtk-9.3.0_1 +libvtkImagingStencil-9.3.so.1 vtk-9.3.0_1 +libvtkIOCGNSReader-9.3.so.1 vtk-9.3.0_1 +libvtkCommonComputationalGeometry-9.3.so.1 vtk-9.3.0_1 +libvtkIOVeraOut-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersHybrid-9.3.so.1 vtk-9.3.0_1 +libvtkInteractionImage-9.3.so.1 vtk-9.3.0_1 +libvtkChartsCore-9.3.so.1 vtk-9.3.0_1 +libvtkImagingStatistics-9.3.so.1 vtk-9.3.0_1 +libvtkImagingHybrid-9.3.so.1 vtk-9.3.0_1 +libvtkGeovisCore-9.3.so.1 vtk-9.3.0_1 +libvtkInteractionWidgets-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersImaging-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersVerdict-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersSMP-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingUI-9.3.so.1 vtk-9.3.0_1 +libvtkIOHDF-9.3.so.1 vtk-9.3.0_1 +libvtkCommonSystem-9.3.so.1 vtk-9.3.0_1 +libvtkImagingColor-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingSceneGraph-9.3.so.1 vtk-9.3.0_1 +libvtkParallelCore-9.3.so.1 vtk-9.3.0_1 +libvtkIOInfovis-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingOpenGL2-9.3.so.1 vtk-9.3.0_1 +libvtkImagingFourier-9.3.so.1 vtk-9.3.0_1 +libvtkCommonColor-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingAnnotation-9.3.so.1 vtk-9.3.0_1 +libvtkIOSQL-9.3.so.1 vtk-9.3.0_1 +libvtkIOImage-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersCore-9.3.so.1 vtk-9.3.0_1 +libvtkInfovisCore-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersExtraction-9.3.so.1 vtk-9.3.0_1 +libvtkIOGeometry-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersFlowPaths-9.3.so.1 vtk-9.3.0_1 +libvtkIOMovie-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingVolume-9.3.so.1 vtk-9.3.0_1 +libvtkIOEnSight-9.3.so.1 vtk-9.3.0_1 +libvtkDomainsChemistryOpenGL2-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersStatistics-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersSelection-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersModeling-9.3.so.1 vtk-9.3.0_1 +libvtkViewsCore-9.3.so.1 vtk-9.3.0_1 +libvtkIOMotionFX-9.3.so.1 vtk-9.3.0_1 +libvtkIOLSDyna-9.3.so.1 vtk-9.3.0_1 +libvtkIOParallel-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingContextOpenGL2-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingImage-9.3.so.1 vtk-9.3.0_1 +libvtkIOXMLParser-9.3.so.1 vtk-9.3.0_1 +libvtkImagingMorphological-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersParallel-9.3.so.1 vtk-9.3.0_1 +libvtkViewsContext2D-9.3.so.1 vtk-9.3.0_1 +libvtkIOImport-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingLICOpenGL2-9.3.so.1 vtk-9.3.0_1 +libvtkIOAsynchronous-9.3.so.1 vtk-9.3.0_1 +libvtkIOTecplotTable-9.3.so.1 vtk-9.3.0_1 +libvtkIOCityGML-9.3.so.1 vtk-9.3.0_1 +libvtkImagingMath-9.3.so.1 vtk-9.3.0_1 +libvtkIOParallelXML-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingGL2PSOpenGL2-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersGeneric-9.3.so.1 vtk-9.3.0_1 +libvtkIONetCDF-9.3.so.1 vtk-9.3.0_1 +libvtkImagingCore-9.3.so.1 vtk-9.3.0_1 +libvtkInfovisLayout-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersHyperTree-9.3.so.1 vtk-9.3.0_1 +libvtkIOExportPDF-9.3.so.1 vtk-9.3.0_1 +libvtkImagingGeneral-9.3.so.1 vtk-9.3.0_1 +libvtkIOXML-9.3.so.1 vtk-9.3.0_1 +libvtkIOChemistry-9.3.so.1 vtk-9.3.0_1 +libvtkInteractionStyle-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersAMR-9.3.so.1 vtk-9.3.0_1 +libvtkIOMINC-9.3.so.1 vtk-9.3.0_1 +libvtkTestingRendering-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersParallelImaging-9.3.so.1 vtk-9.3.0_1 +libvtkDomainsChemistry-9.3.so.1 vtk-9.3.0_1 +libvtkIOExport-9.3.so.1 vtk-9.3.0_1 +libvtkIOCore-9.3.so.1 vtk-9.3.0_1 +libvtkFiltersProgrammable-9.3.so.1 vtk-9.3.0_1 +libvtkIOCONVERGECFD-9.3.so.1 vtk-9.3.0_1 +libvtkIOLegacy-9.3.so.1 vtk-9.3.0_1 +libvtkRenderingFreeType-9.3.so.1 vtk-9.3.0_1 +libvtkIOPLY-9.3.so.1 vtk-9.3.0_1 +libvtkIOExodus-9.3.so.1 vtk-9.3.0_1 +libvtkkissfft-9.3.so.1 vtk-9.3.0_1 libvolume_key.so.1 volume_key-0.3.9_1 librand48_r.so.0 rand48_r-0.1_1 libxxhash.so.0 libxxHash-0.6.5_2 diff --git a/srcpkgs/vtk/patches/0001-stat64.patch b/srcpkgs/vtk/patches/0001-stat64.patch new file mode 100644 index 00000000000000..aa673d2b6e9266 --- /dev/null +++ b/srcpkgs/vtk/patches/0001-stat64.patch @@ -0,0 +1,390 @@ +From 748572894e96b1eab4089da912441ae1b588b2aa Mon Sep 17 00:00:00 2001 +From: Jaswant Panchumarti +Date: Wed, 30 Aug 2023 15:24:16 -0400 +Subject: [PATCH] emsdk 3.1.45: get code to compile + +- closes vtk/vtk#19060. +- disable IOExportGL2PS for WebAssembly. +- handle stat64 vs stat for emscripten in LSDyna and Ensight readers. +--- + .../docs/advanced/build_wasm_emscripten.md | 10 +++ + .../release/dev/update-dawn-webgpu.md | 6 ++ + IO/EnSight/vtkEnSight6BinaryReader.cxx | 8 ++ + IO/EnSight/vtkEnSightGoldBinaryReader.cxx | 8 ++ + IO/ExportGL2PS/vtk.module | 2 +- + IO/LSDyna/LSDynaFamily.cxx | 8 ++ + Rendering/WebGPU/vtkWGPUContext.cxx | 77 ++++++------------- + Rendering/WebGPU/vtkWebGPUActor.cxx | 5 ++ + .../WebGPU/vtkWebGPUInternalsShaderModule.cxx | 2 +- + Rendering/WebGPU/vtkWebGPURenderWindow.cxx | 38 ++++++--- + 10 files changed, 98 insertions(+), 66 deletions(-) + create mode 100644 Documentation/release/dev/update-dawn-webgpu.md + +diff --git a/Documentation/docs/advanced/build_wasm_emscripten.md b/Documentation/docs/advanced/build_wasm_emscripten.md +index ceb50ce1115..c58b1a269c3 100644 +--- a/Documentation/docs/advanced/build_wasm_emscripten.md ++++ b/Documentation/docs/advanced/build_wasm_emscripten.md +@@ -54,6 +54,16 @@ For this guide, you will need the following: + These instructions use a specific convention for the source, build and install directories that is appropriate when building VTK for wasm inside + a docker container. Please replace these _root-directory_ paths if VTK is being built outside a docker container. + ++### Install emscripten ports (IMPORTANT!) ++Emscripten uses SDL2 to connect user input events to the browser event subsystem. The SDL2 port ++will need to be built if this is the first time you downloaded the EMSDK. The `embuilder` script ++will be on the path if you installed and activated EMSDK as described in the prerequisites. ++```bash ++$ embuilder build sdl2 ++``` ++ ++### Build VTK ++ + 1. Configure the project with CMake. `emcmake` tells CMake to use the `emscripten` toolchain for cross compilation. + + ```bash +diff --git a/Documentation/release/dev/update-dawn-webgpu.md b/Documentation/release/dev/update-dawn-webgpu.md +new file mode 100644 +index 00000000000..faa8f53bbbe +--- /dev/null ++++ b/Documentation/release/dev/update-dawn-webgpu.md +@@ -0,0 +1,6 @@ ++# Update Dawn/WebGPU API in the WebGPU backend ++ ++- `WGPUShaderModuleWGSLDescriptor::source` has now been renamed to `WGPUShaderModuleWGSLDescriptor::code`. ++- `SetDeviceLostCallback`(deprecated by webgpu) has been removed in favor of `WGPUDeviceDescriptor::deviceLostCallback` member. ++- `dawn::native::GetAdapter` (deprecated by dawn) has now been renamed to `dawn::native::EnumerateAdapters`. ++- `wgpu::RenderBundleEncoder::colorFormatsCount` (deprecated by webgpu) has now been renamed to `colorFormatCount`. However, emscripten still uses the version of webgpu which shipped with `colorFormatsCount`, so in webassembly, `colorFormatsCount` continues to be used. We will change this after emscripten updates it's webgpu headers. +diff --git a/IO/EnSight/vtkEnSight6BinaryReader.cxx b/IO/EnSight/vtkEnSight6BinaryReader.cxx +index 2cd04c9755b..167e63efd41 100644 +--- a/IO/EnSight/vtkEnSight6BinaryReader.cxx ++++ b/IO/EnSight/vtkEnSight6BinaryReader.cxx +@@ -31,6 +31,14 @@ + // The BSDs use stat(). + #define VTK_STAT_STRUCT struct stat + #define VTK_STAT_FUNC stat ++#elif defined __EMSCRIPTEN__ ++#if defined _LARGEFILE64_SOURCE ++#define VTK_STAT_STRUCT struct stat64 ++#define VTK_STAT_FUNC stat64 ++#else ++#define VTK_STAT_STRUCT struct stat ++#define VTK_STAT_FUNC stat ++#endif + #else + // here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help + // us on POSIX without resorting to using stat64. +diff --git a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx +index e3c81bd5e8c..c374f9879bf 100644 +--- a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx ++++ b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx +@@ -37,6 +37,14 @@ + // The BSDs use stat(). + #define VTK_STAT_STRUCT struct stat + #define VTK_STAT_FUNC stat ++#elif defined __EMSCRIPTEN__ ++#if defined _LARGEFILE64_SOURCE ++#define VTK_STAT_STRUCT struct stat64 ++#define VTK_STAT_FUNC stat64 ++#else ++#define VTK_STAT_STRUCT struct stat ++#define VTK_STAT_FUNC stat ++#endif + #else + // here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help + // us on POSIX without resorting to using stat64. +diff --git a/IO/ExportGL2PS/vtk.module b/IO/ExportGL2PS/vtk.module +index d72b75b482e..97038c7fb17 100644 +--- a/IO/ExportGL2PS/vtk.module ++++ b/IO/ExportGL2PS/vtk.module +@@ -3,7 +3,7 @@ NAME + LIBRARY_NAME + vtkIOExportGL2PS + CONDITION +- NOT ANDROID AND NOT APPLE_IOS AND NOT VTK_OPENGL_USE_GLES ++ NOT ANDROID AND NOT APPLE_IOS AND NOT EMSCRIPTEN AND NOT VTK_OPENGL_USE_GLES + IMPLEMENTABLE + IMPLEMENTS + VTK::IOExportGL2PS +diff --git a/IO/LSDyna/LSDynaFamily.cxx b/IO/LSDyna/LSDynaFamily.cxx +index 15755d06840..fdb914ab6fa 100644 +--- a/IO/LSDyna/LSDynaFamily.cxx ++++ b/IO/LSDyna/LSDynaFamily.cxx +@@ -24,8 +24,16 @@ namespace + #if (VTK_SIZEOF_ID_TYPE == 8) && !defined(_DARWIN_FEATURE_64_BIT_INODE) && \ + !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) + #ifndef _WIN32 ++#if defined __EMSCRIPTEN__ ++#if defined _LARGEFILE64_SOURCE + #define USE_STAT_64 + #else ++#define USE_STAT ++#endif ++#else ++#define USE_STAT_64 ++#endif ++#else + #define USE_WIN_STAT_64 + #endif + #else +diff --git a/Rendering/WebGPU/vtkWGPUContext.cxx b/Rendering/WebGPU/vtkWGPUContext.cxx +index d0400786707..b280022873a 100644 +--- a/Rendering/WebGPU/vtkWGPUContext.cxx ++++ b/Rendering/WebGPU/vtkWGPUContext.cxx +@@ -73,7 +73,7 @@ static void WaitABit() + + } + namespace vtkWGPUImpl = vtkWGPUEmscriptenImpl; +-#elif VTK_USE_DAWN_NATIVE ++#elif VTK_USE_DAWN_WEBGPU + #include + #include + #include +@@ -88,11 +88,11 @@ static struct + struct + { + DawnProcTable ProcTable; +- std::unique_ptr Instance = nullptr; ++ std::unique_ptr Instance = nullptr; + } DawnNativeEntryPoint; + struct + { +- dawn_native::Adapter Handle; ++ dawn::native::Adapter Handle; + wgpu::BackendType DawnBackendType; + struct + { +@@ -113,10 +113,10 @@ static void Initialize() + } + + // Set up the native procs for the global proctable +- GPUContext.DawnNativeEntryPoint.ProcTable = dawn_native::GetProcs(); ++ GPUContext.DawnNativeEntryPoint.ProcTable = dawn::native::GetProcs(); + dawnProcSetProcs(&GPUContext.DawnNativeEntryPoint.ProcTable); + GPUContext.DawnNativeEntryPoint.Instance = +- std::unique_ptr(new dawn_native::Instance()); ++ std::unique_ptr(new dawn::native::Instance()); + GPUContext.DawnNativeEntryPoint.Instance->DiscoverDefaultAdapters(); + GPUContext.DawnNativeEntryPoint.Instance->EnableBackendValidation(true); + +@@ -125,16 +125,12 @@ static void Initialize() + // are the preferred on their respective platforms, and Vulkan is preferred to + // OpenGL + GPUContext.Adapter.DawnBackendType = +-#if defined(VTK_DAWN_ENABLE_BACKEND_D3D12) ++#if defined(_WIN32) + wgpu::BackendType::D3D12; +-#elif defined(VTK_DAWN_ENABLE_BACKEND_METAL) ++#elif defined(__APPLE__) + wgpu::BackendType::Metal; +-#elif defined(VTK_DAWN_ENABLE_BACKEND_VULKAN) +- wgpu::BackendType::Vulkan; +-#elif defined(VTK_DAWN_ENABLE_BACKEND_OPENGL) +- wgpu::BackendType::OpenGL; + #else +-#error ++ wgpu::BackendType::Vulkan; + #endif + GPUContext.Adapter.Handle = nullptr; + GPUContext.Initialized = true; +@@ -159,48 +155,19 @@ static wgpu::Adapter RequestAdapter(const wgpu::RequestAdapterOptions& options) + { + Initialize(); + +- // Search available adapters for a good match, in the +- // following priority order +- std::vector typePriority; +- if (options.powerPreference == wgpu::PowerPreference::LowPower) +- { +- // low power +- typePriority = std::vector{ +- wgpu::AdapterType::IntegratedGPU, +- wgpu::AdapterType::DiscreteGPU, +- wgpu::AdapterType::CPU, +- }; +- } +- else if (options.powerPreference == wgpu::PowerPreference::HighPerformance) +- { +- // high performance +- typePriority = std::vector{ +- wgpu::AdapterType::DiscreteGPU, +- wgpu::AdapterType::IntegratedGPU, +- wgpu::AdapterType::CPU, +- }; +- } +- +- std::vector adapters = +- GPUContext.DawnNativeEntryPoint.Instance->GetAdapters(); +- for (auto reqType : typePriority) ++ std::vector adapters = ++ GPUContext.DawnNativeEntryPoint.Instance->EnumerateAdapters(&options); ++ for (const dawn::native::Adapter& adapter : adapters) + { +- for (const dawn_native::Adapter& adapter : adapters) +- { +- wgpu::AdapterProperties ap; +- adapter.GetProperties(&ap); +- if (ap.adapterType == reqType && +- (reqType == wgpu::AdapterType::CPU || ap.backendType == GPUContext.Adapter.DawnBackendType)) +- { +- GPUContext.Adapter.Handle = adapter; +- SetAdapterInfo(ap); +- std::string msg = vtkfmt::format( +- "Selected adapter {0} (device={1:#x} vendor={2:#x} type={3}/{4})", ap.name, ap.deviceID, +- ap.vendorID, GPUContext.Adapter.Info.TypeName, GPUContext.Adapter.Info.BackendName); +- vtkWGPUContextLog(msg); +- return wgpu::Adapter(GPUContext.Adapter.Handle.Get()); +- } +- } ++ GPUContext.Adapter.Handle = adapter; ++ wgpu::AdapterProperties ap; ++ adapter.GetProperties(&ap); ++ SetAdapterInfo(ap); ++ std::string msg = vtkfmt::format( ++ "Selected adapter {0} (device={1:#x} vendor={2:#x} type={3}/{4})", ap.name, ap.deviceID, ++ ap.vendorID, GPUContext.Adapter.Info.TypeName, GPUContext.Adapter.Info.BackendName); ++ vtkWGPUContextLog(msg); ++ return wgpu::Adapter(GPUContext.Adapter.Handle.Get()); + } + + return nullptr; +@@ -234,7 +201,7 @@ static void LogAvailableAdapters() + + std::stringstream msg; + msg << "Available adapters:\n"; +- for (auto&& a : GPUContext.DawnNativeEntryPoint.Instance->GetAdapters()) ++ for (auto&& a : GPUContext.DawnNativeEntryPoint.Instance->EnumerateAdapters()) + { + wgpu::AdapterProperties p; + a.GetProperties(&p); +@@ -297,7 +264,7 @@ static const char* AdapterTypeName(wgpu::AdapterType t) + } + } + namespace vtkWGPUImpl = vtkWGPUDawnImpl; +-#endif // VTK_USE_DAWN_NATIVE ++#endif // VTK_USE_DAWN_WEBGPU + + //------------------------------------------------------------------------------ + void vtkWGPUContext::LogAvailableAdapters() +diff --git a/Rendering/WebGPU/vtkWebGPUActor.cxx b/Rendering/WebGPU/vtkWebGPUActor.cxx +index 4121547120e..63aa4d5ede1 100644 +--- a/Rendering/WebGPU/vtkWebGPUActor.cxx ++++ b/Rendering/WebGPU/vtkWebGPUActor.cxx +@@ -79,7 +79,12 @@ wgpu::RenderBundle vtkWebGPUActor::RenderToBundle(vtkRenderer* ren, vtkMapper* m + const int sampleCount = wgpuRenWin->GetMultiSamples() ? wgpuRenWin->GetMultiSamples() : 1; + + wgpu::RenderBundleEncoderDescriptor bundleEncDesc; ++#if __EMSCRIPTEN__ ++ // FIXME: Update this after emscripten webgpu updates to colorFormatCount + bundleEncDesc.colorFormatsCount = 1; ++#else ++ bundleEncDesc.colorFormatCount = 1; ++#endif + bundleEncDesc.colorFormats = &colorFormat; + bundleEncDesc.depthStencilFormat = wgpuRenWin->GetDepthStencilFormat(); + bundleEncDesc.sampleCount = sampleCount; +diff --git a/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx b/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx +index 2d0731ac253..705fb9b59ac 100644 +--- a/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx ++++ b/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx +@@ -8,7 +8,7 @@ wgpu::ShaderModule vtkWebGPUInternalsShaderModule::CreateFromWGSL( + const wgpu::Device& device, const std::string& source) + { + wgpu::ShaderModuleWGSLDescriptor wgslDesc; +- wgslDesc.source = source.c_str(); ++ wgslDesc.code = source.c_str(); + + wgpu::ShaderModuleDescriptor descriptor; + descriptor.nextInChain = &wgslDesc; +diff --git a/Rendering/WebGPU/vtkWebGPURenderWindow.cxx b/Rendering/WebGPU/vtkWebGPURenderWindow.cxx +index f0e824f0e54..95a7d7fd605 100644 +--- a/Rendering/WebGPU/vtkWebGPURenderWindow.cxx ++++ b/Rendering/WebGPU/vtkWebGPURenderWindow.cxx +@@ -61,8 +61,9 @@ void device_lost_callback(WGPUDeviceLostReason reason, char const* message, void + default: + reason_type_lbl = "Unknown"; + } +- vtkErrorWithObjectMacro(reinterpret_cast(self), +- << "Device lost! Reason : " << message << " Reason Type: " << reason_type_lbl); ++ auto renWin = vtkRenderWindow::SafeDownCast(reinterpret_cast(self)); ++ vtkWarningWithObjectMacro( ++ renWin, << "Device lost! Reason : " << message << " Reason Type: " << reason_type_lbl); + } + + struct PixelReadDescriptor +@@ -136,6 +137,8 @@ bool vtkWebGPURenderWindow::WGPUInit() + this->Adapter = vtkWGPUContext::RequestAdapter(options); + wgpu::DeviceDescriptor deviceDescriptor = {}; + deviceDescriptor.label = "vtkWebGPURenderWindow::WGPUInit"; ++ deviceDescriptor.deviceLostCallback = &device_lost_callback; ++ deviceDescriptor.deviceLostUserdata = this; + ///@{ TODO: Populate feature requests + // ... + ///@} +@@ -150,7 +153,6 @@ bool vtkWebGPURenderWindow::WGPUInit() + } + // install error handler + this->Device.SetUncapturedErrorCallback(&::print_wgpu_error, this); +- this->Device.SetDeviceLostCallback(&::device_lost_callback, this); + ///@} + return true; + } +@@ -161,7 +163,6 @@ void vtkWebGPURenderWindow::WGPUFinalize() + vtkDebugMacro(<< __func__ << " WGPUInitialized=" << this->WGPUInitialized); + this->DestroyDepthStencilTexture(); + this->DestroySwapChain(); +- this->Device.SetDeviceLostCallback(nullptr, nullptr); + this->Device = nullptr; + } + +@@ -586,18 +587,35 @@ void vtkWebGPURenderWindow::ReadPixels() + this->BufferMapReadContext.src = this->ColorAttachment.OffscreenBuffer; + this->BufferMapReadContext.size = this->ColorAttachment.OffscreenBuffer.GetSize(); + this->BufferMapReadContext.dst = this->CachedPixelBytes; ++ this->BufferMapReadContext.window = this; + + auto onBufferMapped = [](WGPUBufferMapAsyncStatus status, void* userdata) { + auto ctx = reinterpret_cast(userdata); + switch (status) + { +- case WGPUBufferMapAsyncStatus_DestroyedBeforeCallback: ++ case WGPUBufferMapAsyncStatus_ValidationError: ++ vtkErrorWithObjectMacro(ctx->window, << "Validation error occurred"); ++ break; ++ case WGPUBufferMapAsyncStatus_Unknown: ++ vtkErrorWithObjectMacro(ctx->window, << "Unknown error occurred"); ++ break; + case WGPUBufferMapAsyncStatus_DeviceLost: +- case WGPUBufferMapAsyncStatus_Error: ++ vtkErrorWithObjectMacro(ctx->window, << "Device lost!"); ++ break; ++ case WGPUBufferMapAsyncStatus_DestroyedBeforeCallback: ++ vtkErrorWithObjectMacro(ctx->window, << "Buffer destroyed before callback"); ++ break; + case WGPUBufferMapAsyncStatus_UnmappedBeforeCallback: +- case WGPUBufferMapAsyncStatus_Unknown: +- default: +- assert(false); ++ vtkErrorWithObjectMacro(ctx->window, << "Buffer unmapped before callback"); ++ break; ++ case WGPUBufferMapAsyncStatus_MappingAlreadyPending: ++ vtkErrorWithObjectMacro(ctx->window, << "Buffer already has a mapping pending completion"); ++ break; ++ case WGPUBufferMapAsyncStatus_OffsetOutOfRange: ++ vtkErrorWithObjectMacro(ctx->window, << "Buffer offset out of range"); ++ break; ++ case WGPUBufferMapAsyncStatus_SizeOutOfRange: ++ vtkErrorWithObjectMacro(ctx->window, << "Buffer size out of range"); + break; + case WGPUBufferMapAsyncStatus_Success: + { +@@ -611,6 +629,8 @@ void vtkWebGPURenderWindow::ReadPixels() + std::copy(mapped, mapped + ctx->size, ctx->dst->GetPointer(0)); + } + break; ++ default: ++ break; + } + ctx->src.Unmap(); + }; +-- +GitLab + diff --git a/srcpkgs/vtk/patches/0002-stat64.patch b/srcpkgs/vtk/patches/0002-stat64.patch new file mode 100644 index 00000000000000..01da6d55b01c56 --- /dev/null +++ b/srcpkgs/vtk/patches/0002-stat64.patch @@ -0,0 +1,170 @@ +From 0f4635e876560d00df58c809526435180d0b1912 Mon Sep 17 00:00:00 2001 +From: David Gobbi +Date: Sun, 18 Aug 2024 09:24:26 -0600 +Subject: [PATCH] Prefer SystemTools::Stat over system stat/stat64 + +This keeps all of the stat() calls in VTK centralized (except the +ones implemented in ThirdParty). Note that kwsys no longer defines +any LSF support macros since 2019, so this might impact the ability +to use large files on some 32-bit platforms, but hopefully any +platforms where this is a concern will honor _FILE_OFFSET_BITS=64 +like 32-bit glibc does. +--- + IO/EnSight/vtkEnSight6BinaryReader.cxx | 28 ++----------- + IO/EnSight/vtkEnSightGoldBinaryReader.cxx | 25 +----------- + IO/LSDyna/LSDynaFamily.cxx | 48 +---------------------- + 3 files changed, 8 insertions(+), 93 deletions(-) + +diff --git a/IO/EnSight/vtkEnSight6BinaryReader.cxx b/IO/EnSight/vtkEnSight6BinaryReader.cxx +index 167e63efd41..1f26a171c26 100644 +--- a/IO/EnSight/vtkEnSight6BinaryReader.cxx ++++ b/IO/EnSight/vtkEnSight6BinaryReader.cxx +@@ -18,33 +18,13 @@ + #include "vtkUnstructuredGrid.h" + #include "vtksys/Encoding.hxx" + #include "vtksys/FStream.hxx" ++#include "vtksys/SystemTools.hxx" + + #include + #include +-#include +- +-#if defined(_WIN32) +-#define VTK_STAT_STRUCT struct _stat64 +-#define VTK_STAT_FUNC _stat64 +-#elif defined _DARWIN_FEATURE_64_BIT_INODE || defined __FreeBSD__ || defined __NetBSD__ || \ +- defined __OpenBSD__ +-// The BSDs use stat(). +-#define VTK_STAT_STRUCT struct stat +-#define VTK_STAT_FUNC stat +-#elif defined __EMSCRIPTEN__ +-#if defined _LARGEFILE64_SOURCE +-#define VTK_STAT_STRUCT struct stat64 +-#define VTK_STAT_FUNC stat64 +-#else +-#define VTK_STAT_STRUCT struct stat +-#define VTK_STAT_FUNC stat +-#endif +-#else +-// here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help +-// us on POSIX without resorting to using stat64. +-#define VTK_STAT_STRUCT struct stat64 +-#define VTK_STAT_FUNC stat64 +-#endif ++ ++#define VTK_STAT_STRUCT vtksys::SystemTools::Stat_t ++#define VTK_STAT_FUNC vtksys::SystemTools::Stat + + VTK_ABI_NAMESPACE_BEGIN + vtkStandardNewMacro(vtkEnSight6BinaryReader); +diff --git a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx +index ff8cad7bd46..75c126a2b0c 100644 +--- a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx ++++ b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx +@@ -26,31 +26,10 @@ + #include + #include + #include +-#include + #include + +-#if defined(_WIN32) +-#define VTK_STAT_STRUCT struct _stat64 +-#define VTK_STAT_FUNC _stat64 +-#elif defined _DARWIN_FEATURE_64_BIT_INODE || defined __FreeBSD__ || defined __NetBSD__ || \ +- defined __OpenBSD__ +-// The BSDs use stat(). +-#define VTK_STAT_STRUCT struct stat +-#define VTK_STAT_FUNC stat +-#elif defined __EMSCRIPTEN__ +-#if defined _LARGEFILE64_SOURCE +-#define VTK_STAT_STRUCT struct stat64 +-#define VTK_STAT_FUNC stat64 +-#else +-#define VTK_STAT_STRUCT struct stat +-#define VTK_STAT_FUNC stat +-#endif +-#else +-// here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help +-// us on POSIX without resorting to using stat64. +-#define VTK_STAT_STRUCT struct stat64 +-#define VTK_STAT_FUNC stat64 +-#endif ++#define VTK_STAT_STRUCT vtksys::SystemTools::Stat_t ++#define VTK_STAT_FUNC vtksys::SystemTools::Stat + + VTK_ABI_NAMESPACE_BEGIN + class vtkEnSightGoldBinaryReader::vtkUtilities +diff --git a/IO/LSDyna/LSDynaFamily.cxx b/IO/LSDyna/LSDynaFamily.cxx +index fdb914ab6fa..1574d97b281 100644 +--- a/IO/LSDyna/LSDynaFamily.cxx ++++ b/IO/LSDyna/LSDynaFamily.cxx +@@ -18,44 +18,6 @@ + VTK_ABI_NAMESPACE_BEGIN + namespace + { +-// Decide which of 3 stat varieties to use: stat, stat64, __stat64 +-// Usually stat uses 32 bit fields, and stat64 (with underscores in Windows) uses 64 bit fields. +-// But on the BSDs, stat uses 64 bit fields these days. +-#if (VTK_SIZEOF_ID_TYPE == 8) && !defined(_DARWIN_FEATURE_64_BIT_INODE) && \ +- !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) +-#ifndef _WIN32 +-#if defined __EMSCRIPTEN__ +-#if defined _LARGEFILE64_SOURCE +-#define USE_STAT_64 +-#else +-#define USE_STAT +-#endif +-#else +-#define USE_STAT_64 +-#endif +-#else +-#define USE_WIN_STAT_64 +-#endif +-#else +-#define USE_STAT +-#endif +- +-#if defined(USE_STAT_64) +-int LS_DYNA_STAT(const char* fname, struct stat64& s) +-{ +- return stat64(fname, &s); +-} +-#elif defined(USE_WIN_STAT_64) +-int LS_DYNA_STAT(const char* fname, struct __stat64& s) +-{ +- return __stat64(fname, &s); +-} +-#elif defined(USE_STAT) +-int LS_DYNA_STAT(const char* fname, struct stat& s) +-{ +- return stat(fname, &s); +-} +-#endif + + vtkLSDynaFile_t VTK_LSDYNA_OPENFILE(const char* fname) + { +@@ -205,18 +167,12 @@ int LSDynaFamily::ScanDatabaseDirectory() + int adaptLevel = 0; + int tryAdapt = 0; // don't try an adaptive step unless we have one good file at the current level. + bool adapted = true; // true when advancing over a mesh adaptation. +-#if defined(USE_WIN_STAT_64) +- struct __stat64 st; +-#elif defined(USE_STAT_64) +- struct stat64 st; +-#elif defined(USE_STAT) +- struct stat st; +-#endif ++ vtksys::SystemTools::Stat_t st; + while (tryAdapt >= 0) + { + tmpFile = vtkLSGetFamilyFileName( + this->DatabaseDirectory.c_str(), this->DatabaseBaseName, adaptLevel, filenum); +- if (LS_DYNA_STAT(tmpFile.c_str(), st) == 0) ++ if (vtksys::SystemTools::Stat(tmpFile.c_str(), &st) == 0) + { + if (adapted) + { +-- +GitLab + diff --git a/srcpkgs/vtk/patches/gcc13.patch b/srcpkgs/vtk/patches/gcc13.patch deleted file mode 100644 index d0ba2017b70ca0..00000000000000 --- a/srcpkgs/vtk/patches/gcc13.patch +++ /dev/null @@ -1,13 +0,0 @@ -Source: https://src.fedoraproject.org/rpms/vtk/blob/1a12f28665b2f24537b98fcf4b3fb3a176fa7fba/f/vtk-include.patch - -diff -up VTK-9.2.5/IO/Image/vtkSEPReader.h.include VTK-9.2.5/IO/Image/vtkSEPReader.h ---- VTK-9.2.5/IO/Image/vtkSEPReader.h.include 2023-01-05 08:51:35.000000000 -0700 -+++ VTK-9.2.5/IO/Image/vtkSEPReader.h 2023-01-17 07:43:41.988095734 -0700 -@@ -26,6 +26,7 @@ - #include "vtkNew.h" // for ivars - - #include // for std::array -+#include // for std::uint8_t - #include // for std::string - - namespace details diff --git a/srcpkgs/vtk/patches/vtkioss-unistd.patch b/srcpkgs/vtk/patches/vtkioss-unistd.patch index df43a1fe5bba9c..d07abb59fe5edd 100644 --- a/srcpkgs/vtk/patches/vtkioss-unistd.patch +++ b/srcpkgs/vtk/patches/vtkioss-unistd.patch @@ -11,9 +11,9 @@ index ca5f15de..99c2bbdd 100644 #else -#include +#include - #endif - - #ifdef SEACAS_HAVE_MPI + #if defined(__APPLE__) && defined(__MACH__) + #include + #include @@ -35,9 +35,6 @@ #include diff --git a/srcpkgs/vtk/template b/srcpkgs/vtk/template index 189591d55725a7..5d87abde765f37 100644 --- a/srcpkgs/vtk/template +++ b/srcpkgs/vtk/template @@ -1,7 +1,7 @@ # Template file for 'vtk' pkgname=vtk -version=9.2.6 -revision=3 +version=9.3.1 +revision=1 build_style=cmake # vtk can be huge, especially with -DVTK_BUILD_ALL_MODULES=ON" # Build only the core modules plus python bindings for now @@ -14,6 +14,7 @@ configure_args="-DBUILD_SHARED_LIBS=ON -DVTK_FORBID_DOWNLOADS=ON -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF -DVTK_MODULE_USE_EXTERNAL_VTK_cgns=OFF -DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_fast_float=OFF -DVTK_WRAP_PYTHON=ON -DVTK_PYTHON_VERSION=3" # vtk forks libharu, bumps to v2.4.0, and requires libharu>=2.4.0 makedepends="zlib-devel freetype-devel liblz4-devel expat-devel MesaLib-devel @@ -26,7 +27,7 @@ maintainer="Piraty " license="BSD-3-Clause" homepage="https://www.vtk.org" distfiles="https://www.vtk.org/files/release/${version:0:3}/VTK-${version}.tar.gz" -checksum=06fc8d49c4e56f498c40fcb38a563ed8d4ec31358d0101e8988f0bb4d539dd12 +checksum=8354ec084ea0d2dc3d23dbe4243823c4bfc270382d0ce8d658939fd50061cab8 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then makedepends+=" libexecinfo-devel"