--- /dev/null
--- /dev/null
++FIXME: Patch away file(DOWNLOAD) call in Utilities/Doxygen/doc_makeall.cmake.in
--- /dev/null
--- /dev/null
++vtk9 (9.3.0+dfsg1-3) unstable; urgency=medium
++
++ * [a52f6c5] Fix segfault on python 3.13. (Closes: #1092354)
++
++ -- Anton Gladky <gladk@debian.org> Tue, 28 Jan 2025 21:40:49 +0100
++
++vtk9 (9.3.0+dfsg1-2) unstable; urgency=medium
++
++ * Team upload.
++ * Drop Depends: libqt5webkit5-dev.
++
++ -- Bastian Germann <bage@debian.org> Thu, 23 Jan 2025 08:49:29 +0100
++
++vtk9 (9.3.0+dfsg1-1.1) unstable; urgency=medium
++
++ * Non-maintainer upload.
++ * Build against libhdf5-mpi-dev, since libhdf5-openmpi-dev is no longer
++ available on 32-bit architectures. Closes: #1078743.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org> Fri, 22 Nov 2024 11:49:45 +0100
++
++vtk9 (9.3.0+dfsg1-1) unstable; urgency=medium
++
++ * Team upload.
++
++ [ Michael R. Crusoe ]
++ * Build the IO/GeoJSON module. Closes: #1029285
++ To the binary package libvtk9.1t64, this adds
++ /usr/lib/${DEB_HOST_MULTIARCH}/libvtkIOGeoJSON-9.1.so.9.1.0
++ /usr/lib/${DEB_HOST_MULTIARCH}/vtk/hierarchy/VTK/vtkIOGeoJSON-hierarchy.txt
++ /usr/lib/${DEB_HOST_MULTIARCH}/libvtkIOGeoJSON-9.1.so.1
++ To the binary package libvtk9-dev, this adds
++ /usr/include/vtk-9.1/vtkGeoJSONFeature.h
++ /usr/include/vtk-9.1/vtkGeoJSONReader.h
++ /usr/include/vtk-9.1/vtkGeoJSONWriter.h
++ /usr/include/vtk-9.1/vtkIOGeoJSONModule.h
++ /usr/lib/${DEB_HOST_MULTIARCH}/libvtkIOGeoJSON-9.1.so
++ To the binary package libvtk9-java, this adds
++ /usr/lib/${DEB_HOST_MULITARCH}/java/vtk-Linux-${DEB_HOST_GNU_CPU}
++ /libvtkIOGeoJSONJava.so
++ To the binary package python3-vtk9, this adds
++ /usr/lib/python3/dist-packages/vtkmodules
++ /vtkIOGeoJSON.cpython-311-${DEB_HOST_GNU_CPU}.so
++
++ [ Anton Gladky ]
++ * Upload of new version 9.3 into unstable.
++
++ -- Anton Gladky <gladk@debian.org> Thu, 06 Jun 2024 21:34:35 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-8) unstable; urgency=medium
++
++ [ Bo YU ]
++ * Team upload.
++ * Add support for loongarch64. Thanks to Dandan Zhang
++ <zhangdandan@loongson.cn>. (Closes: #1054471)
++
++ [ Michael R. Crusoe ]
++ * Cherry-pick patch from upstream to fix issue with newer expat and
++ appended data. Closes: #1064762
++ * d/control: build-dep on libhdf5-mpi-dev instead of libhdf5-openmpi-
++ dev. Closes: #1068321
++ * Cherry-pick patch from upstream to fix CVE-2021-42521. Closes:
++ #1031877.
++ * Fix Maintainer name of Debian Science team (routine-update)
++ * Remove trailing whitespace in debian/copyright (routine-update)
++ * d/control: Updated some dependencies on obsolete or supercede packages
++ names.
++
++ -- Michael R. Crusoe <crusoe@debian.org> Mon, 29 Apr 2024 16:16:28 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-7.1) unstable; urgency=medium
++
++ * Non-maintainer upload.
++ * Rename libraries for 64-bit time_t transition. Closes: #1063267
++
++ -- Steve Langasek <vorlon@debian.org> Wed, 28 Feb 2024 23:38:25 +0000
++
++vtk9 (9.3.0+dfsg1-1~exp4) experimental; urgency=medium
++
++ * [43fb8c1] Add libgl2ps-dev as depends.
++
++ -- Anton Gladky <gladk@debian.org> Sat, 20 Jan 2024 19:57:32 +0100
++
++vtk9 (9.3.0+dfsg1-1~exp3) experimental; urgency=medium
++
++ * [2767f12] Add missing GL-header.
++
++ -- Anton Gladky <gladk@debian.org> Wed, 10 Jan 2024 22:17:01 +0100
++
++vtk9 (9.3.0+dfsg1-1~exp2) experimental; urgency=medium
++
++ * [ad5a07d] Update build-depends.
++
++ -- Anton Gladky <gladk@debian.org> Tue, 09 Jan 2024 19:54:16 +0100
++
++vtk9 (9.3.0+dfsg1-1~exp1) experimental; urgency=medium
++
++ [ Bas Couwenberg ]
++ * Team upload.
++ * Merge GCC 13 changes from 9.1.0+really9.1.0+dfsg2-7.
++ (closes: #1037887)
++
++ [ Anton Gladky ]
++ * [69b4a61] Update copyright
++ * [d5dfcaf] New upstream version 9.3.0+dfsg1
++ * [5e949d9] Update binariries to vtk9.3
++ * [7c9a9bf] Update patches
++
++ -- Anton Gladky <gladk@debian.org> Fri, 05 Jan 2024 06:57:20 +0100
++
++vtk9 (9.2.6+dfsg1-1+exp2) experimental; urgency=medium
++
++ * Team upload.
++ * Merge changes from 9.1.0+really9.1.0+dfsg2-6.
++ * Add license paragraph for public-domain license.
++
++ -- Bas Couwenberg <sebastic@debian.org> Thu, 22 Jun 2023 13:22:18 +0200
++
++vtk9 (9.2.6+dfsg1-1+exp1) experimental; urgency=medium
++
++ * [965a45d] New upstream version 9.2.6+dfsg1
++
++ -- Anton Gladky <gladk@debian.org> Sat, 25 Mar 2023 15:34:05 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-7) unstable; urgency=medium
++
++ * Team upload.
++ * Cherry-pick patch from upstream to fix FTBFS with gcc-13.
++ (Closes: #1037887)
++
++ -- Michael R. Crusoe <crusoe@debian.org> Tue, 22 Aug 2023 00:27:20 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-6) unstable; urgency=medium
++
++ * Team upload.
++ * Don't use netcdf-cxx-legacy.
++ (closes: #1038614)
++
++ -- Bas Couwenberg <sebastic@debian.org> Thu, 22 Jun 2023 07:14:50 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-5) unstable; urgency=medium
++
++ [ Elvis Stansvik ]
++ * [a408ad0] Add upstream fix for shader crash with multivolume
++
++ [ Adrian Bunk ]
++ * [ab960ac] Build without libtbb also on alpha and ia64
++
++ [ Anton Gladky ]
++ * [be1ea19] Set upstream metadata fields: Bug-Database, Bug-Submit.
++ * [f5599c7] Update standards version to 4.6.2, no changes needed.
++
++ -- Anton Gladky <gladk@debian.org> Sat, 25 Feb 2023 09:59:35 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-4) unstable; urgency=medium
++
++ * [b05b21f] Fix FTBFS against NETCDF>4.9.0. (Closes: #1012703)
++
++ -- Anton Gladky <gladk@debian.org> Sun, 19 Jun 2022 16:25:33 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-3) unstable; urgency=medium
++
++ * Upload into unstable.
++
++ -- Anton Gladky <gladk@debian.org> Fri, 21 Jan 2022 21:24:01 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-3~exp2) experimental; urgency=medium
++
++ [ Adrian Bunk ]
++ * [33b75d5] Restore the 83_allow_gles_platforms.patch hack for Qt with OpenGL ES
++ * [b243b24] HACK: vtkQWidgetTexture.cxx: Don't use vtkOpenGLCheckErrorMacro
++
++ [ Anton Gladky ]
++ * [4449d7a] Add missing Breaks+Replaces to libvtk9. (Closes: #1002063)
++
++ -- Anton Gladky <gladk@debian.org> Wed, 19 Jan 2022 22:40:05 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-3~exp1) experimental; urgency=medium
++
++ * [948c358] Update package names due to so-version changes
++
++ -- Anton Gladky <gladk@debian.org> Mon, 29 Nov 2021 22:26:25 +0100
++
++vtk9 (9.1.0+really9.0.3+dfsg1-4) unstable; urgency=medium
++
++ * [90cbc11] vtkFreeTypeTools: avoid using an internal macro.
++ (Closes: #1000746)
++ * [9e418ba] Use python3-dev in BD
++
++ -- Anton Gladky <gladk@debian.org> Sun, 28 Nov 2021 23:34:47 +0100
++
++vtk9 (9.1.0+really9.0.3+dfsg1-3) unstable; urgency=medium
++
++ * Upload previous version to fix unstable. (Closes: #1000611)
++
++ -- Anton Gladky <gladk@debian.org> Sat, 27 Nov 2021 21:27:37 +0100
++
++vtk9 (9.1.0+dfsg2-2) unstable; urgency=medium
++
++ * [dda0c55] Fix FTBFS on build-any
++
++ -- Anton Gladky <gladk@debian.org> Wed, 24 Nov 2021 21:43:24 +0100
++
++vtk9 (9.1.0+dfsg2-1) unstable; urgency=medium
++
++ [ Anton Gladky ]
++ * [d2a3591] Drop Thirdparty/fides from the source
++ * [2f0d373] Fix lintian warnings
++ * [7169c10] Remove unused patches
++ * [a51ec5a] Fix manpages
++ * [e941542] Fix dependencies. (Closes: #998470, #1000501)
++ * [5c49e03] New upstream version 9.1.0+dfsg2
++
++ [ Samuel Thibault ]
++ * [82b2737] Disable libtbb-dev build-dep on !linux. (Closes: #996257)
++
++ -- Anton Gladky <gladk@debian.org> Wed, 24 Nov 2021 18:07:18 +0100
++
++vtk9 (9.1.0+dfsg1-1) unstable; urgency=medium
++
++ * [5442030] New upstream version 9.1.0+dfsg1
++ * [1ee83fe] Fix compilation
++
++ -- Anton Gladky <gladk@debian.org> Tue, 23 Nov 2021 20:17:56 +0100
++
++vtk9 (9.0.3+dfsg1-3) unstable; urgency=medium
++
++ * Team upload.
++ * Add upstream patch to include <limits> (Closes: #984399)
++ * Bump Java source/target versions (Closes: #981974)
++ * Add upstream patch for proj>=5 api (Closes: #983299)
++ * Use dh-sequencers
++ * Use execute_after_ of dh
++ * Add Multi-Arch hints from the MA hinter
++ * Bump policy versions (no changes)
++
++ -- Jochen Sprickerhof <jspricke@debian.org> Tue, 12 Oct 2021 10:21:32 +0200
++
++vtk9 (9.0.3+dfsg1-2) unstable; urgency=medium
++
++ * [ccb2b2e] Remove gitlab-ci
++ * [7e35e50] Add libtbb-dev as depends
++
++ -- Anton Gladky <gladk@debian.org> Sat, 18 Sep 2021 08:10:15 +0200
++
++vtk9 (9.0.3+dfsg1-1) unstable; urgency=medium
++
++ [ Adrian Bunk ]
++ * [f635946] Bump the libgl2ps-dev build dependency to >= 1.4.1
++
++ [ Francois Mazen ]
++ * [91a8c79] Set TBB as SMP backend.
++
++ [ Anton Gladky ]
++ * [3116116] New upstream version 9.0.3+dfsg1
++ * [6bce9b2] Compile with MPI
++ * [991e8b0] Apply cme fix dpkg
++ * [b64d990] Add .gitlab-ci.yml
++
++ -- Anton Gladky <gladk@debian.org> Fri, 17 Sep 2021 22:14:11 +0200
++
++vtk9 (9.0.1+dfsg1-8) unstable; urgency=medium
++
++ [ Samuel Thibault ]
++ * [e2a0f2b] Fix java dep on non-java ports. (Closes: #980125)
++
++ -- Anton Gladky <gladk@debian.org> Thu, 14 Jan 2021 21:36:46 +0100
++
++vtk9 (9.0.1+dfsg1-7) unstable; urgency=medium
++
++ * [cab8734] Enable some more modules
++
++ -- Anton Gladky <gladk@debian.org> Thu, 07 Jan 2021 19:43:49 +0100
++
++vtk9 (9.0.1+dfsg1-6) unstable; urgency=medium
++
++ [ Samuel Thibault ]
++ * [7027348] Fix FTBFS on hurd-i386 and non-java ports. (Closes: #978659)
++
++ [ Vagrant Cascadian ]
++ * [7a3a0e0] Make vtk9 build-reproducible. (Closes: #977522, #977521)
++
++ [ Anton Gladky ]
++ * [a341c32] Enable RenderingContextOpenGL2. (Closes: #979073)
++
++ -- Anton Gladky <gladk@debian.org> Mon, 04 Jan 2021 22:12:05 +0100
++
++vtk9 (9.0.1+dfsg1-5) unstable; urgency=medium
++
++ [ Adrian Bunk ]
++ * [06163ff] Fixes and workaround for platforms where Qt uses OpenGL ES
++
++ [ Anton Gladky ]
++ * [3e6d9ec] Ignore quilt dir
++ * [294ca1e] Revert "Do not build qt on some (GLES) archs"
++
++ -- Anton Gladky <gladk@debian.org> Sun, 13 Dec 2020 12:55:42 +0100
++
++vtk9 (9.0.1+dfsg1-4) unstable; urgency=medium
++
++ * [b80e4ab] Do not build qt on some (GLES) archs
++
++ -- Anton Gladky <gladk@debian.org> Sun, 13 Dec 2020 12:14:22 +0100
++
++vtk9 (9.0.1+dfsg1-3) unstable; urgency=medium
++
++ [ Adrian Bunk ]
++ * [52af841] Revert "Link against latomic"
++ * [381ea98] Link with libatomic on archtectures that need it
++
++ [ Anton Gladky ]
++ * [a983346] 80_allow_gles_platforms.patch.
++ * [e79137e] Fix FTBFS against freetype 2.10.4. (Closes: #976975)
++ * [d7ecb86] Add python3-vtk9 as Breaks+Replaces: python3-paraview.
++ (Closes: #976127)
++ * [19fe54e] Update changelog.
++
++ -- Anton Gladky <gladk@debian.org> Thu, 10 Dec 2020 17:33:59 +0100
++
++vtk9 (9.0.1+dfsg1-2) unstable; urgency=medium
++
++ * [3afb408] Fix autopkgtests
++ * [8c41fa9] Minor fix in d/copyright
++
++ -- Anton Gladky <gladk@debian.org> Wed, 25 Nov 2020 21:50:59 +0100
++
++vtk9 (9.0.1+dfsg1-1) unstable; urgency=medium
++
++ * [6b297c8] Link against latomic
++ * Upload into unstable
++
++ -- Anton Gladky <gladk@debian.org> Thu, 19 Nov 2020 19:59:45 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp6) experimental; urgency=medium
++
++ * [751a92f] Remove Qt-files from non-qt binaries. (Closes: #974923)
++
++ -- Anton Gladky <gladk@debian.org> Mon, 16 Nov 2020 21:39:46 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp5) experimental; urgency=medium
++
++ * [21adbaf] Fix FTBFS
++ * [4326c39] Sort build-dependencies
++
++ -- Anton Gladky <gladk@debian.org> Sun, 15 Nov 2020 08:47:31 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp4) experimental; urgency=medium
++
++ * [0be2017] Drop Build-Depends-Arch:
++
++ -- Anton Gladky <gladk@debian.org> Fri, 13 Nov 2020 23:29:02 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp3) experimental; urgency=medium
++
++ * [e5cfe7f] Move javahelper to BD
++
++ -- Anton Gladky <gladk@debian.org> Fri, 13 Nov 2020 22:53:27 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp2) experimental; urgency=medium
++
++ * [cedb51e] Fix FTBFS on -any arch
++
++ -- Anton Gladky <gladk@debian.org> Fri, 13 Nov 2020 16:07:58 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp1) experimental; urgency=medium
++
++ * Initial release. (Closes: #974165)
++
++ -- Anton Gladky <gladk@debian.org> Tue, 10 Nov 2020 22:12:50 +0100
--- /dev/null
--- /dev/null
++Source: vtk9
++Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
++Uploaders: Anton Gladky <gladk@debian.org>,
++ Gert Wollny <gewo@debian.org>,
++ Nico Schlömer <nico.schloemer@gmail.com>
++Section: graphics
++Priority: optional
++Build-Depends: dpkg-dev (>= 1.22.5),
++ chrpath,
++ cmake,
++ debhelper-compat (= 13),
++ default-jdk [!hppa !hurd-any !kfreebsd-any],
++ default-libmysqlclient-dev,
++ dh-sequence-python3,
++ doxygen-latex,
++ ghostscript,
++ gnuplot-nox,
++ graphviz,
++ hdf5-tools,
++ dh-sequence-javahelper,
++ libalglib-dev,
++ javahelper,
++ libavcodec-dev,
++ libavformat-dev,
++ libavutil-dev,
++ libdigest-md5-perl,
++ libdouble-conversion-dev,
++ libeigen3-dev,
++ libexpat-dev,
++ libfontconfig-dev,
++ libfreetype-dev,
++ libftgl-dev,
++ libgdal-dev,
++ libgl-dev,
++ libgl2ps-dev,
++ libglew-dev,
++ libglu-dev,
++ libhdf5-mpi-dev,
++ libhpdf-dev,
++ libjpeg-dev,
++ libjs-mathjax,
++ libjsoncpp-dev,
++ liblz4-dev,
++ libmrmpi-dev,
++ libnetcdf-dev (>= 1:4.9.0),
++ libogg-dev,
++ libosmesa6-dev,
++ libpng-dev,
++ libpq-dev,
++ libproj-dev,
++ libsqlite3-dev,
++ libswscale-dev,
++ libtbb-dev [linux-any],
++ libtheora-dev,
++ libtiff-dev,
++ libutfcpp-dev,
++ libx11-dev,
++ libxdmf-dev,
++ libxml2-dev,
++ libxpm-dev,
++ libxt-dev,
++ lzma,
++ mpi-default-dev,
++ pkgconf,
++ python3-dev,
++ python3-matplotlib,
++ python3-mpi4py,
++ qtbase5-dev,
++ libqt5opengl5-dev,
++ qtdeclarative5-dev,
++ r-base-core,
++ r-base-dev,
++ r-base,
++ tcl-dev,
++ texlive-binaries,
++ tk-dev,
++ x11proto-core-dev,
++ xauth,
++ xvfb,
++ zlib1g-dev,
++ sqlite3
++Standards-Version: 4.6.2
++Vcs-Browser: https://salsa.debian.org/science-team/vtk9
++Vcs-Git: https://salsa.debian.org/science-team/vtk9.git
++Homepage: https://www.vtk.org/
++Rules-Requires-Root: no
++
++Package: libvtk9-dev
++Architecture: any
++Multi-Arch: same
++Section: libdevel
++Depends: ${misc:Depends},
++ ${shlibs:Depends},
++ default-jdk [!hppa !hurd-any !kfreebsd-any],
++ default-libmysqlclient-dev,
++ libavcodec-dev,
++ libavformat-dev,
++ libavutil-dev,
++ libc6-dev,
++ libdouble-conversion-dev,
++ libeigen3-dev,
++ libexpat-dev,
++ libfreetype-dev,
++ libgdal-dev,
++ libgl-dev,
++ libgl2ps-dev,
++ libgl1-mesa-dev | libgl-dev,
++ libglew-dev,
++ libglu1-mesa-dev | libglu-dev,
++ libhdf5-mpi-dev,
++ libjpeg-dev,
++ libjsoncpp-dev,
++ liblz4-dev,
++ libnetcdf-dev,
++ libpng-dev,
++ libpq-dev,
++ libproj-dev,
++ libpython3-dev,
++ libswscale-dev,
++ libtbb-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64 !alpha !ia64],
++ libtheora-dev,
++ libtiff-dev,
++ libutfcpp-dev,
++ libvtk9.3 (= ${binary:Version}),
++ libvtk9-java (= ${binary:Version}) [!hppa !hurd-any !kfreebsd-any],
++ libx11-dev,
++ libxft-dev,
++ libxml2-dev,
++ libxss-dev,
++ libxt-dev,
++ mpi-default-dev,
++ python3-vtk9 (= ${binary:Version}),
++ tcl-dev,
++ tk-dev,
++ vtk9 (= ${binary:Version}),
++ x11proto-core-dev,
++ zlib1g-dev
++Suggests: vtk9-doc,
++ vtk9-examples
++Description: VTK header files
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the VTK header files required to compile
++ C++ programs that use VTK to do 3D visualisation.
++
++Package: libvtk9.3
++Architecture: any
++Multi-Arch: same
++Section: libs
++Depends: ${misc:Depends},
++ ${shlibs:Depends}
++Suggests: mpi-default-bin,
++ vtk9-doc,
++ vtk9-examples
++Breaks: libvtk9.1 (<< ${source:Version}),
++ libvtk9 (<< 9.1.0+really9.1.0)
++Provides: ${t64:Provides}
++Replaces: libvtk9.1,
++ libvtk9 (<< 9.1.0+really9.1.0)
++Description: VTK libraries
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the shared libraries needed to run C++ programs
++ that use VTK.
++
++Package: libvtk9-java
++Architecture: amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64el s390x alpha ia64 m68k powerpc ppc64 riscv64 sh4 sparc64 x32
++Section: java
++Depends: ${java:Depends},
++ ${misc:Depends},
++ ${python3:Depends},
++ ${shlibs:Depends}
++Suggests: java-virtual-machine,
++ libvtk9-dev (= ${binary:Version}),
++ vtk9-doc,
++ vtk9-examples
++Description: VTK - Java language support
++ The Visualization Toolkit (VTK) is an object oriented, high level
++ library that allows one to easily write C++ programs, Tcl, Python and
++ Java scripts that do 3D visualization.
++ .
++ This package provides the VTK Java language support.
++
++Package: python3-vtk9
++Architecture: any
++Section: python
++Depends: libvtk9.3 (= ${binary:Version}),
++ python3-mpi4py,
++ ${misc:Depends},
++ ${python3:Depends},
++ ${shlibs:Depends}
++Suggests: mayavi2,
++ vtk9-doc,
++ vtk9-examples
++Breaks: python3-vtk6,
++ python3-vtk7
++Replaces: python3-vtk6,
++ python3-vtk7
++Description: Python bindings for VTK
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the python3 bindings for VTK.
++
++Package: vtk9
++Architecture: any
++Section: interpreters
++Depends: libvtk9.3 (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends}
++Suggests: vtk9-doc,
++ vtk9-examples
++Description: Binaries for VTK9
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides binaries for VTK9
++
++Package: vtk9-doc
++Architecture: all
++Section: doc
++Depends: doc-base,
++ libjs-jquery,
++ libjs-mathjax,
++ ${misc:Depends}
++Suggests: libvtk9-dev,
++ vtk9-examples
++Description: VTK class reference documentation
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides documentation for VTK9
++
++Package: vtk9-examples
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Suggests: libvtk9-dev,
++ python3,
++ python3-vtk9,
++ vtk9-doc
++Description: VTK examples
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides examples for VTK9
++
++Package: libvtk9.3-qt
++Architecture: any
++Multi-Arch: same
++Section: libs
++Depends: ${misc:Depends},
++ ${shlibs:Depends}
++Breaks: libvtk9.1-qt (<< ${source:Version})
++Provides: ${t64:Provides}
++Replaces: libvtk9.1-qt
++Description: VTK libraries, Qt files
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the shared libraries needed to run C++ programs
++ that use VTK. Qt files
++X-Time64-Compat: libvtk9.1-qt
++
++Package: libvtk9-qt-dev
++Architecture: any
++Multi-Arch: same
++Section: libdevel
++Depends: libvtk9-dev (= ${binary:Version}),
++ libvtk9.3-qt (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++ qtbase5-dev,
++ qttools5-private-dev,
++ libqt5opengl5-dev,
++Description: VTK header files, containing Qt files
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the VTK header files required to compile
++ C++ programs that use VTK to do 3D visualisation. Qt files
--- /dev/null
--- /dev/null
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Source: https://www.vtk.org/
++Upstream-Name: Visualization Toolkit
++Files-Excluded:
++ Web/*
++ Examples/GUI/Win32
++ ThirdParty/doubleconversion/vtkdoubleconversion
++ ThirdParty/expat/vtkexpat
++ ThirdParty/freetype/vtkfreetype
++ ThirdParty/gl2ps/vtkgl2ps
++ ThirdParty/hdf5/vtkhdf5
++ ThirdParty/jpeg/vtkjpeg
++ ThirdParty/jsoncpp/vtkjsoncpp
++ ThirdParty/libproj/vtklibproj
++ ThirdParty/libxml2/vtklibxml2
++ ThirdParty/lz4/vtklz4
++ ThirdParty/lzma/vtklzma
++ ThirdParty/netcdf/vtknetcdf
++ ThirdParty/png/vtkpng
++ ThirdParty/sqlite/vtksqlite
++ ThirdParty/tiff/vtktiff
++ ThirdParty/zlib/vtkzlib
++ ThirdParty/glew/vtkglew
++ ThirdParty/utf8/vtkutf8
++ ThirdParty/mpi4py
++ ThirdParty/xdmf3
++ ThirdParty/ogg/vtkogg
++ ThirdParty/theora/vtktheora
++ ThirdParty/eigen/vtkeigen
++ ThirdParty/fides
++
++Files: *
++Copyright: 1993-2015 Ken Martin, Will Schroeder, Bill Lorensen,
++ Kitware inc., Sandia Corporation.
++License: BSD-3-clause
++
++Files: Accelerators/*
++Copyright: 2012 Sandia Corporation.
++License: BSD-3-clause
++
++Files: Common/Core/vtkMersenneTwister.h
++ Common/Core/vtkMersenneTwister_Private.cxx
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++ 2001-2009 Makoto Matsumoto and Takuji Nishimura.
++ 2009 Mutsuo Saito
++License: BSD-2-clause
++
++Files: Common/DataModel/vtkDistributedGraphHelper.cxx
++ Common/DataModel/vtkDistributedGraphHelper.h
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++License: BSL-1
++
++Files: Examples/Android/NativeVTK/*
++Copyright: 2010, The Android Open Source Project
++License: Apache-2
++
++Files: Filters/General/vtkTemporalPathLineFilter.cxx
++Copyright: CSCS - Swiss National Supercomputing Centre.
++License: BSD-3-clause
++
++Files: IO/Image/Testing/*
++Copyright: GeometryFactory
++License: BSD-3-clause
++
++Files: IO/PIO/BHTree.cxx
++ IO/PIO/BHTree.h
++Copyright: 2007, Los Alamos National Security, LLC
++License: BSD-3-clause
++
++Files: Interaction/Widgets/Testing/Cxx/*
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++License: Apache-2
++
++Files: ThirdParty/diy2/vtkdiy2/*
++Copyright: 2016-2018, Chobolabs Inc.
++License: BSD-3-clause
++
++Files: ThirdParty/diy2/vtkdiy2/include/vtkdiy2/fmt/*
++Copyright: 2012-2016, Victor Zverovich
++License: BSD-like
++ Permission is hereby granted, free of charge, to any person obtaining
++ a copy of this software and associated documentation files (the
++ "Software"), to deal in the Software without restriction, including
++ without limitation the rights to use, copy, modify, merge, publish,
++ distribute, sublicense, and/or sell copies of the Software, and to
++ permit persons to whom the Software is furnished to do so, subject to
++ the following conditions:
++ .
++ The above copyright notice and this permission notice shall be
++ included in all copies or substantial portions of the Software.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ .
++ --- Optional exception to the license ---
++ .
++ As an exception, if, as a result of your compiling your source code, portions
++ of this Software are embedded into a machine-executable object form of such
++ source code, you may redistribute such embedded portions in such object form
++ without including the above copyright and permission notices.
++
++Files: ThirdParty/kissfft/vtkkissfft/*
++Copyright: 2003-2010, Mark Borgerding .
++License: BSD-3-clause
++
++Files: ThirdParty/libharu/vtklibharu/*
++Copyright: 2007-2009, Antony Dovgal
++ 1999-2006, Takeshi Kanno
++ 2007-2009, Antony Dovgal et al.
++ 2000-2006, Takeshi Kanno
++License: Zlib
++
++Files: ThirdParty/pegtl/vtkpegtl/*
++Copyright: 2007-2019, Dr. Colin Hirsch and Daniel Frey
++License: Expat
++
++Files: ThirdParty/pugixml/vtkpugixml/*
++Copyright: 2006-2016, Arseny Kapoulkine
++License: Expat
++
++Files: ThirdParty/vpic/*
++Copyright: 2007, Los Alamos National Security, LLC
++License: BSD-3-clause
++
++Files: ThirdParty/xdmf2/vtkxdmf2/*
++Copyright: 1984, 1989, 1990, 2000-2003, Free Software Foundation, Inc.
++License: GPL-2+
++
++Files: ThirdParty/zfp/vtkzfp/*
++Copyright: 2014-2019, Lawrence Livermore National Security, LLC.
++License: BSD-3-clause-notice
++
++Files: Utilities/DICOMParser/*
++Copyright: 2003, Matt Turek
++License: BSD-3-clause
++
++Files: Utilities/KWSys/*
++Copyright: 1996, Silicon Graphics Computer Systems, Inc.
++License: BSD-3-clause
++
++Files: Utilities/KWSys/vtksys/MD5.c
++Copyright: 1999, 2000, 2002, Aladdin Enterprises.
++License: Zlib
++
++Files: Utilities/Maintenance/*
++Copyright: Insight Software Consortium
++License: Apache-2
++
++Files: Utilities/MetaIO/*
++Copyright: 2000-2011, Insight Software Consortium
++License: Apache-2
++
++Files: ThirdParty/cli11/*
++Copyright: 2017-2019 University of Cincinnati, developed by Henry
++License: BSD-3-clause
++
++Files: ThirdParty/exprtk/*
++Copyright: 1999-2021 Arash Partow
++License: MIT
++
++Files: ThirdParty/exodusII/vtkexodusII/*
++Copyright: 2005-2017 National Technology & Engineering Solutions of Sandia, LLC (NTESS)
++License: BSD-3-clause
++
++Files: ThirdParty/fmt/vtkfmt/*
++Copyright: 2012 - present, Victor Zverovich
++License: MIT-exception
++
++Files: ThirdParty/h5part/vtkh5part/*
++Copyright: 2006-2009, The Regents of the University of California
++License: BSD-3-clause-notice-2
++
++Files: ThirdParty/fast_float/vtkfast_fload/*
++Copyright: 2021, fast_float authors
++License: Expat
++
++Files: ThirdParty/loguru/vtkloguru/*
++Copyright: emil.ernerfeldt@gmail.com
++License: public-domain
++ This software is in the public domain. Where that dedication is not recognized,
++ you are granted a perpetual, irrevocable license to copy, modify and distribute
++ it as you see fit.
++ .
++ That being said, I would appreciate credit! If you find Loguru useful, tweet me
++ at @ernerfeldt mail me at emil.ernerfeldt@gmail.com.
++
++License: BSD-3-clause
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ * Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++ .
++ * Redistributions in binary form must reproduce the above copyright notice,
++ this list of conditions and the following disclaimer in the documentation
++ and/or other materials provided with the distribution.
++ .
++ * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names
++ of any contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
++ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
++ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++License: BSD-2-clause
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ .
++ * Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ * Redistributions in binary form must reproduce the above
++ copyright notice, this list of conditions and the following
++ disclaimer in the documentation and/or other materials provided
++ with the distribution.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++License: BSL-1
++ Boost Software License - Version 1.0 - August 17th, 2003
++ .
++ Permission is hereby granted, free of charge, to any person or organization
++ obtaining a copy of the software and accompanying documentation covered by
++ this license (the "Software") to use, reproduce, display, distribute,
++ execute, and transmit the Software, and to prepare derivative works of the
++ Software, and to permit third-parties to whom the Software is furnished to
++ do so, all subject to the following:
++ .
++ The copyright notices in the Software and this entire statement, including
++ the above license grant, this restriction and the following disclaimer,
++ must be included in all copies of the Software, in whole or in part, and
++ all derivative works of the Software, unless such copies or derivative
++ works are solely in the form of machine-executable object code generated by
++ a source language processor.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
++ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
++ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ DEALINGS IN THE SOFTWARE.
++
++License: Apache-2
++ On Debian systems, the full text of the Apache
++ License version 2 can be found in the file
++ `/usr/share/common-licenses/Apache-2'.
++
++License: Zlib
++ This software is provided 'as-is', without any express or implied warranty.
++ .
++ In no event will the authors be held liable for any damages arising from the
++ use of this software.
++ .
++ Permission is granted to anyone to use this software for any purpose,including
++ commercial applications, and to alter it and redistribute it freely, subject
++ to the following restrictions:
++ .
++ 1. The origin of this software must not be misrepresented; you must not claim
++ that you wrote the original software. If you use this software in a
++ product, an acknowledgment in the product documentation would be
++ appreciated but is not required.
++ 2. Altered source versions must be plainly marked as such, and must not be
++ misrepresented as being the original software.
++ 3. This notice may not be removed or altered from any source distribution.
++
++License: Expat
++ Permission is hereby granted, free of charge, to any person obtaining a copy
++ of this software and associated documentation files (the "Software"), to deal
++ in the Software without restriction, including without limitation the rights
++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ copies of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++ .
++ The above copyright notice and this permission notice shall be included in all
++ copies or substantial portions of the Software.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ SOFTWARE.
++
++License: GPL-2+
++ This program is free software; you can redistribute it
++ and/or modify it under the terms of the GNU General Public
++ License as published by the Free Software Foundation; either
++ version 2 of the License, or (at your option) any later
++ version.
++ .
++ On Debian systems, the full text of the GNU General Public
++ License version 2 can be found in the file
++ `/usr/share/common-licenses/GPL-2'.
++
++License: BSD-3-clause-notice
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the disclaimer below.
++ .
++ 2. Redistributions in binary form must reproduce the above copyright notice,
++ this list of conditions and the disclaimer (as noted below) in the
++ documentation and/or other materials provided with the distribution.
++ .
++ 3. Neither the name of the LLNS/LLNL nor the names of its contributors may
++ be used to endorse or promote products derived from this software without
++ specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
++ LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ .
++ .
++ Additional BSD Notice
++ .
++ 1. This notice is required to be provided under our contract with the U.S.
++ Department of Energy (DOE). This work was produced at Lawrence Livermore
++ National Laboratory under Contract No. DE-AC52-07NA27344 with the DOE.
++ .
++ 2. Neither the United States Government nor Lawrence Livermore National
++ Security, LLC nor any of their employees, makes any warranty, express or
++ implied, or assumes any liability or responsibility for the accuracy,
++ completeness, or usefulness of any information, apparatus, product, or
++ process disclosed, or represents that its use would not infringe
++ privately-owned rights.
++ .
++ 3. Also, reference herein to any specific commercial products, process, or
++ services by trade name, trademark, manufacturer or otherwise does not
++ necessarily constitute or imply its endorsement, recommendation, or
++ favoring by the United States Government or Lawrence Livermore National
++ Security, LLC. The views and opinions of authors expressed herein do not
++ necessarily state or reflect those of the United States Government or
++ Lawrence Livermore National Security, LLC, and shall not be used for
++ advertising or product endorsement purposes.
++
++License: MIT
++ Permission is hereby granted, free of charge, to any person obtaining a copy
++ of this software and associated documentation files (the "Software"), to deal
++ in the Software without restriction, including without limitation the rights
++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ copies of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++ .
++ The above copyright notice and this permission notice shall be included in all
++ copies or substantial portions of the Software.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ SOFTWARE.
++
++License: MIT-exception
++ Permission is hereby granted, free of charge, to any person obtaining
++ a copy of this software and associated documentation files (the
++ "Software"), to deal in the Software without restriction, including
++ without limitation the rights to use, copy, modify, merge, publish,
++ distribute, sublicense, and/or sell copies of the Software, and to
++ permit persons to whom the Software is furnished to do so, subject to
++ the following conditions:
++ .
++ The above copyright notice and this permission notice shall be
++ included in all copies or substantial portions of the Software.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ .
++ --- Optional exception to the license ---
++ .
++ As an exception, if, as a result of your compiling your source code, portions
++ of this Software are embedded into a machine-executable object form of such
++ source code, you may redistribute such embedded portions in such object form
++ without including the above copyright and permission notices.
++
++License: BSD-3-clause-notice-2
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ (1) Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ .
++ (2) Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ .
++ (3) Neither the name of the University of California, Lawrence Berkeley
++ National Laboratory, U.S. Dept. of Energy, Paul Scherrer Institut
++ (Switzerland) nor the names of its contributors may be used to endorse
++ or promote products derived from this software without specific prior
++ written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
++ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ .
++ You are under no obligation whatsoever to provide any bug fixes,
++ patches, or upgrades to the features, functionality or performance of
++ the source code ("Enhancements") to anyone; however, if you choose to
++ make your Enhancements available either publicly, or directly to
++ Lawrence Berkeley National Laboratory, without imposing a separate
++ written license agreement for such Enhancements, then you hereby grant
++ the following license: a non-exclusive, royalty-free perpetual license
++ to install, use, modify, prepare derivative works, incorporate into
++ other computer software, distribute, and sublicense such enhancements or
++ derivative works thereof, in binary and source code form.
++
--- /dev/null
--- /dev/null
++[DEFAULT]
++pristine-tar = True
++
--- /dev/null
--- /dev/null
++usr/include/vtk-9.3 usr/include
++usr/lib/*/*.so
++usr/lib/*/cmake/vtk-9.3
--- /dev/null
--- /dev/null
++libvtk9-dev: script-not-executable
--- /dev/null
--- /dev/null
++usr/share/doc/vtk-9.3/doxygen/* /usr/share/vtk-9.3/doxygen/
--- /dev/null
--- /dev/null
++usr/bin/vtkParseJava-9.3 usr/bin
++usr/bin/vtkWrapJava-9.3 usr/bin
++usr/lib/*/java/vtk9.jar usr/share/java
++usr/lib/*/java/vtk-L*
--- /dev/null
--- /dev/null
++libvtk9-java: shared-library-lacks-prerequisites
--- /dev/null
--- /dev/null
++debian/manpages/vtkParseJava-9.1.1
++debian/manpages/vtkWrapJava-9.1.1
--- /dev/null
--- /dev/null
++usr/lib/*/*Qt*.so
++usr/include/vtk-9.3/*Qt*
++usr/include/vtk-9.3/Q*
--- /dev/null
--- /dev/null
++libvtk9.1t64-qt: package-name-doesnt-match-sonames
++libvtk9.1t64-qt: package-name-doesnt-match-sonames libvtk9.1-qt
--- /dev/null
--- /dev/null
++libvtk9.1t64: package-name-doesnt-match-sonames
++libvtk9.1t64: package-name-doesnt-match-sonames libvtk9.1
--- /dev/null
--- /dev/null
++usr/lib/*/*Qt*.so.*
--- /dev/null
--- /dev/null
++libvtk9.3-qt: package-name-doesnt-match-sonames
--- /dev/null
--- /dev/null
++usr/lib/*/*.so.*
++usr/lib/*/vtk-9.3
--- /dev/null
--- /dev/null
++libvtk9.3: package-name-doesnt-match-sonames
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH VTKPARSEJAVA-9.0 "1" "November 2020" "vtkParseJava-9.0 9.0" "User Commands"
++.SH NAME
++vtkParseJava-9.0 \- please refer to VTK documentation
++.SH SYNOPSIS
++.B vtkParseJava-9.0
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkParseJava-9.0
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B vtkParseJava-9.0
++programs are properly installed at your site, the command
++.IP
++.B info vtkParseJava-9.0
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH VTKPROBEOPENGLVERSION-9.0 "1" "November 2020" "vtkProbeOpenGLVersion-9.0 9.0" "User Commands"
++.SH NAME
++vtkProbeOpenGLVersion-9.0 \- please refer to VTK documentation
++.SH SYNOPSIS
++.B vtkProbeOpenGLVersion-9.0
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkProbeOpenGLVersion-9.0
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B vtkProbeOpenGLVersion-9.0
++programs are properly installed at your site, the command
++.IP
++.B info vtkProbeOpenGLVersion-9.0
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH VTKWRAPHIERARCHY-9.0 "1" "November 2020" "vtkWrapHierarchy-9.0 9.0" "User Commands"
++.SH NAME
++vtkWrapHierarchy-9.0 \- please refer to VTK documentation
++.SH SYNOPSIS
++.B vtkWrapHierarchy-9.0
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++@<file>
++read arguments from a file
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapHierarchy-9.0
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B vtkWrapHierarchy-9.0
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapHierarchy-9.0
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH VTKWRAPJAVA-9.0 "1" "November 2020" "vtkWrapJava-9.0 9.0" "User Commands"
++.SH NAME
++vtkWrapJava-9.0 \- please refer to VTK documentation
++.SH SYNOPSIS
++.B vtkWrapJava-9.0
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapJava-9.0
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B vtkWrapJava-9.0
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapJava-9.0
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH VTKWRAPPYTHON-9.0 "1" "November 2020" "vtkWrapPython-9.0 9.0" "User Commands"
++.SH NAME
++vtkWrapPython-9.0 \- please refer to VTK documentation
++.SH SYNOPSIS
++.B vtkWrapPython-9.0
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapPython-9.0
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B vtkWrapPython-9.0
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapPython-9.0
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH VTKWRAPPYTHONINIT-9.0 "1" "November 2020" "vtkWrapPythonInit-9.0 9.0" "User Commands"
++.SH NAME
++vtkWrapPythonInit-9.0 \- please refer to VTK documentation
++.SH SYNOPSIS
++.B vtkWrapPythonInit-9.0
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapPythonInit-9.0
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B vtkWrapPythonInit-9.0
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapPythonInit-9.0
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
++.TH PYTHON "1" "November 2020" "Python 3.9.0+" "User Commands"
++.SH NAME
++Python \- manual page for vtkPython 3.9.0+ : VTK-Wrapper for Python
++.SH DESCRIPTION
++usage: /usr/bin/../lib/x86_64\-linux\-gnu/vtkpython [option] ... [\-c cmd | \fB\-m\fR mod | file | \fB\-]\fR [arg] ...
++Options and arguments (and corresponding environment variables):
++\fB\-b\fR : issue warnings about str(bytes_instance), str(bytearray_instance)
++.IP
++and comparing bytes/bytearray with str. (\fB\-bb\fR: issue errors)
++.PP
++\fB\-B\fR : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
++\fB\-c\fR cmd : program passed in as string (terminates option list)
++\fB\-d\fR : debug output from parser; also PYTHONDEBUG=x
++\fB\-E\fR : ignore PYTHON* environment variables (such as PYTHONPATH)
++\fB\-h\fR : print this help message and exit (also \fB\-\-help\fR)
++\fB\-i\fR : inspect interactively after running script; forces a prompt even
++.IP
++if stdin does not appear to be a terminal; also PYTHONINSPECT=x
++.PP
++\fB\-I\fR : isolate Python from the user's environment (implies \fB\-E\fR and \fB\-s\fR)
++\fB\-m\fR mod : run library module as a script (terminates option list)
++\fB\-O\fR : remove assert and __debug__\-dependent statements; add .opt\-1 before
++.IP
++\&.pyc extension; also PYTHONOPTIMIZE=x
++.PP
++\fB\-OO\fR : do \fB\-O\fR changes and also discard docstrings; add .opt\-2 before
++.IP
++\&.pyc extension
++.PP
++\fB\-q\fR : don't print version and copyright messages on interactive startup
++\fB\-s\fR : don't add user site directory to sys.path; also PYTHONNOUSERSITE
++\fB\-S\fR : don't imply 'import site' on initialization
++\fB\-u\fR : force the stdout and stderr streams to be unbuffered;
++.IP
++this option has no effect on stdin; also PYTHONUNBUFFERED=x
++.PP
++\fB\-v\fR : verbose (trace import statements); also PYTHONVERBOSE=x
++.IP
++can be supplied multiple times to increase verbosity
++.PP
++\fB\-V\fR : print the Python version number and exit (also \fB\-\-version\fR)
++.IP
++when given twice, print more information about the build
++.PP
++\fB\-W\fR arg : warning control; arg is action:message:category:module:lineno
++.IP
++also PYTHONWARNINGS=arg
++.PP
++\fB\-x\fR : skip first line of source, allowing use of non\-Unix forms of #!cmd
++\fB\-X\fR opt : set implementation\-specific option. The following options are available:
++.HP
++\fB\-X\fR faulthandler: enable faulthandler
++.HP
++\fB\-X\fR oldparser: enable the traditional LL(1) parser; also PYTHONOLDPARSER
++.HP
++\fB\-X\fR showrefcount: output the total reference count and number of used
++.IP
++memory blocks when the program finishes or after each statement in the
++interactive interpreter. This only works on debug builds
++.HP
++\fB\-X\fR tracemalloc: start tracing Python memory allocations using the
++.IP
++tracemalloc module. By default, only the most recent frame is stored in a
++traceback of a trace. Use \fB\-X\fR tracemalloc=NFRAME to start tracing with a
++traceback limit of NFRAME frames
++.HP
++\fB\-X\fR importtime: show how long each import takes. It shows module name,
++.IP
++cumulative time (including nested imports) and self time (excluding
++nested imports). Note that its output may be broken in multi\-threaded
++application. Typical usage is python3 \fB\-X\fR importtime \fB\-c\fR 'import asyncio'
++.HP
++\fB\-X\fR dev: enable CPython's "development mode", introducing additional runtime
++.IP
++checks which are too expensive to be enabled by default. Effect of the
++developer mode:
++.IP
++* Add default warning filter, as \fB\-W\fR default
++* Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function
++* Enable the faulthandler module to dump the Python traceback on a crash
++* Enable asyncio debug mode
++* Set the dev_mode attribute of sys.flags to True
++* io.IOBase destructor logs close() exceptions
++.HP
++\fB\-X\fR utf8: enable UTF\-8 mode for operating system interfaces, overriding the default
++.IP
++locale\-aware mode. \fB\-X\fR utf8=0 explicitly disables UTF\-8 mode (even when it would
++otherwise activate automatically)
++.HP
++\fB\-X\fR pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the
++.IP
++given directory instead of to the code tree
++.SS "--check-hash-based-pycs always|default|never:"
++.IP
++control how Python invalidates hash\-based .pyc files
++.PP
++file : program read from script file
++\- : program read from stdin (default; interactive mode if a tty)
++arg ...: arguments passed to program in sys.argv[1:]
++.PP
++Other environment variables:
++PYTHONSTARTUP: file executed on interactive startup (no default)
++PYTHONPATH : ':'\-separated list of directories prefixed to the
++.TP
++default module search path.
++The result is sys.path.
++.PP
++PYTHONHOME : alternate <prefix> directory (or <prefix>:<exec_prefix>).
++.IP
++The default module search path uses <prefix>/lib/pythonX.X.
++.PP
++PYTHONPLATLIBDIR : override sys.platlibdir.
++PYTHONCASEOK : ignore case in 'import' statements (Windows).
++PYTHONUTF8: if set to 1, enable the UTF\-8 mode.
++PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
++PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.
++PYTHONHASHSEED: if this variable is set to 'random', a random value is used
++.TP
++to seed the hashes of str and bytes objects.
++It can also be set to an
++.IP
++integer in the range [0,4294967295] to get hash values with a
++predictable seed.
++.PP
++PYTHONMALLOC: set the Python memory allocators and/or install debug hooks
++.IP
++on Python memory allocators. Use PYTHONMALLOC=debug to install debug
++hooks.
++.PP
++PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale
++.IP
++coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of
++locale coercion and locale compatibility warnings on stderr.
++.PP
++PYTHONBREAKPOINT: if this variable is set to 0, it disables the default
++.IP
++debugger. It can be set to the callable of your debugger of choice.
++.PP
++PYTHONDEVMODE: enable the development mode.
++PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.
++.SH "SEE ALSO"
++The full documentation for
++.B Python
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B Python
++programs are properly installed at your site, the command
++.IP
++.B info Python
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++From: Ben Boeckel <ben.boeckel@kitware.com>
++Date: Mon, 15 Apr 2024 22:22:22 -0400
++Subject: vtkXMLDataParser: track `AppendedData` state explicitly
++Bug-Debian: https://bugs.debian.org/1064762
++Origin: upstream,https://gitlab.kitware.com/vtk/vtk/-/commit/3efa07ad277efe5c1d11a2ef2b907c095f68bbef
++Forwarded: not-needed
++
++Newer `libexpat` doesn't like being given the appended data after the
++artificially ended document anymore. Avoid pushing it through to its
++parser.
++
++---
++ IO/XMLParser/vtkXMLDataParser.cxx | 6 +++++-
++ IO/XMLParser/vtkXMLDataParser.h | 3 +++
++ 2 files changed, 8 insertions(+), 1 deletion(-)
++
++Index: vtk9/IO/XMLParser/vtkXMLDataParser.cxx
++===================================================================
++--- vtk9.orig/IO/XMLParser/vtkXMLDataParser.cxx
+++++ vtk9/IO/XMLParser/vtkXMLDataParser.cxx
++@@ -36,6 +36,7 @@ vtkXMLDataParser::vtkXMLDataParser()
++ this->RootElement = nullptr;
++ this->AppendedDataPosition = 0;
++ this->AppendedDataMatched = 0;
+++ this->AppendedDataFound = false;
++ this->DataStream = nullptr;
++ this->InlineDataStream = vtkBase64InputStream::New();
++ this->AppendedDataStream = vtkBase64InputStream::New();
++@@ -88,6 +89,7 @@ void vtkXMLDataParser::PrintSelf(ostream
++ {
++ this->Superclass::PrintSelf(os, indent);
++ os << indent << "AppendedDataPosition: " << this->AppendedDataPosition << "\n";
+++ os << indent << "AppendedDataFound: " << this->AppendedDataFound << "\n";
++ if (this->RootElement)
++ {
++ this->RootElement->PrintXML(os, indent);
++@@ -214,7 +216,7 @@ int vtkXMLDataParser::ParsingComplete()
++ // If we have reached the appended data section, we stop parsing.
++ // This prevents the XML parser from having to walk over the entire
++ // appended data section.
++- if (this->AppendedDataPosition)
+++ if (this->AppendedDataPosition || this->AppendedDataFound)
++ {
++ return 1;
++ }
++@@ -433,6 +435,8 @@ int vtkXMLDataParser::ParseBuffer(const
++ {
++ return 0;
++ }
+++
+++ this->AppendedDataFound = true;
++ }
++
++ return 1;
++Index: vtk9/IO/XMLParser/vtkXMLDataParser.h
++===================================================================
++--- vtk9.orig/IO/XMLParser/vtkXMLDataParser.h
+++++ vtk9/IO/XMLParser/vtkXMLDataParser.h
++@@ -204,6 +204,9 @@ protected:
++ // How much of the string "<AppendedData" has been matched in input.
++ int AppendedDataMatched;
++
+++ // Whether AppendedData has been dealt with or not.
+++ bool AppendedDataFound;
+++
++ // The byte order of the binary input.
++ int ByteOrder;
++
--- /dev/null
--- /dev/null
++Description: Add missing GL header
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2024-01-10
++
++--- vtk9-9.3.0+dfsg1.orig/GUISupport/Qt/QVTKOpenGLWindow.cxx
+++++ vtk9-9.3.0+dfsg1/GUISupport/Qt/QVTKOpenGLWindow.cxx
++@@ -22,6 +22,8 @@
++ #include "vtkObjectFactory.h"
++ #include "vtkOpenGLState.h"
++
+++#include <GL/gl.h>
+++
++ VTK_ABI_NAMESPACE_BEGIN
++ QVTKOpenGLWindow::QVTKOpenGLWindow(QOpenGLWindow::UpdateBehavior ub, QWindow* p)
++ : QVTKOpenGLWindow(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New(), nullptr, ub, p)
--- /dev/null
--- /dev/null
++Description: _matplotlib
++Index: VTK-9.3.0/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
++===================================================================
++--- VTK-9.3.0.orig/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
+++++ VTK-9.3.0/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
++@@ -190,6 +190,10 @@ private:
++ * to implement IsAvailable.
++ */
++ static Availability CheckMPLAvailability();
+++ static void DisableMPL()
+++ {
+++ MPLMathTextAvailable = UNAVAILABLE;
+++ };
++
++ ///@{
++ /**
--- /dev/null
--- /dev/null
++Description: add support for loongarch64
++Upstream: https://gitlab.kitware.com/seanm/vtk/-/commit/886b536a0d0bb3694951e09169a52896d585c517
++Author: Dandan Zhang <zhangdandan@loongson.cn>
++
++---
++Last-Update: 2023-10-24
++
++Index: VTK-9.3.0/Utilities/KWIML/vtkkwiml/include/kwiml/abi.h
++===================================================================
++--- VTK-9.3.0.orig/Utilities/KWIML/vtkkwiml/include/kwiml/abi.h
+++++ VTK-9.3.0/Utilities/KWIML/vtkkwiml/include/kwiml/abi.h
++@@ -413,6 +413,10 @@ suppression macro KWIML_ABI_NO_VERIFY wa
++ #elif defined(__loongarch64)
++ # define KWIML_ABI_ENDIAN_ID KWIML_ABI_ENDIAN_ID_LITTLE
++
+++/* LoongArch */
+++#elif defined(__loongarch64)
+++# define KWIML_ABI_ENDIAN_ID KWIML_ABI_ENDIAN_ID_LITTLE
+++
++ /* Motorola 68k */
++ #elif defined(__m68k__) || defined(M68000)
++ # define KWIML_ABI_ENDIAN_ID KWIML_ABI_ENDIAN_ID_BIG
--- /dev/null
--- /dev/null
++Description: Fix python 3.13 segfault
++Author: Anton Gladky <gladk@debian.org>
++Bug-Debian: https://bugs.debian.org/1092354
++Applied-Upstream: https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11486 ; https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11486
++Last-Update: 2025-01-28
++
++--- vtk9-9.3.0+dfsg1.orig/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
+++++ vtk9-9.3.0+dfsg1/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
++@@ -96,6 +96,7 @@ wchar_t* vtk_Py_UTF8ToWide(const char* a
++ return result;
++ }
++
+++#if PY_VERSION_HEX < 0x03080000
++ std::string vtk_Py_WideToUTF8(const wchar_t* arg)
++ {
++ std::string result;
++@@ -109,6 +110,7 @@ std::string vtk_Py_WideToUTF8(const wcha
++
++ return result;
++ }
+++#endif
++
++ std::vector<vtkWeakPointer<vtkPythonInterpreter>>* GlobalInterpreters;
++ std::vector<std::string> PythonPaths;
++@@ -333,12 +335,21 @@ void SetupVTKPythonPaths(bool isolated)
++ if (vtklib.empty())
++ {
++ VTKPY_DEBUG_MESSAGE(
++- "`GetVTKVersion` library couldn't be found. Will use `Py_GetProgramName` next.");
+++ "`GetVTKVersion` library couldn't be found. Will use `sys.executable` next.");
++ }
++
++ if (vtklib.empty())
++ {
+++#if PY_VERSION_HEX >= 0x03080000
+++ vtkPythonScopeGilEnsurer gilEnsurer;
+++ PyObject* executable_path = PySys_GetObject("executable");
+++ if (executable_path != Py_None)
+++ {
+++ vtklib = PyUnicode_AsUTF8AndSize(executable_path, nullptr);
+++ }
+++#else
++ vtklib = vtk_Py_WideToUTF8(Py_GetProgramName());
+++#endif
++ }
++
++ vtklib = systools::CollapseFullPath(vtklib);
++--- /dev/null
+++++ vtk9-9.3.0+dfsg1/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx.orig
++@@ -0,0 +1,933 @@
+++// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
+++// SPDX-License-Identifier: BSD-3-Clause
+++#include "vtkPythonInterpreter.h"
+++#include "vtkPython.h" // this must be the first include.
+++
+++#include "vtkBuild.h"
+++#include "vtkCommand.h"
+++#include "vtkLogger.h"
+++#include "vtkNew.h"
+++#include "vtkObjectFactory.h"
+++#include "vtkOutputWindow.h"
+++#include "vtkPythonStdStreamCaptureHelper.h"
+++#include "vtkResourceFileLocator.h"
+++#include "vtkVersion.h"
+++#include "vtkWeakPointer.h"
+++#include "vtksys/Encoding.h"
+++
+++#include <vtksys/Encoding.hxx>
+++#include <vtksys/SystemInformation.hxx>
+++#include <vtksys/SystemTools.hxx>
+++
+++#include <algorithm>
+++#include <csignal>
+++#include <memory>
+++#include <sstream>
+++#include <string>
+++#include <vector>
+++
+++#if defined(_WIN32) && !defined(__CYGWIN__)
+++#define VTK_PATH_SEPARATOR "\\"
+++#else
+++#define VTK_PATH_SEPARATOR "/"
+++#endif
+++
+++#define VTKPY_DEBUG_MESSAGE(x) \
+++ vtkVLog(vtkLogger::ConvertToVerbosity(vtkPythonInterpreter::GetLogVerbosity()), x)
+++#define VTKPY_DEBUG_MESSAGE_VV(x) \
+++ vtkVLog(vtkLogger::ConvertToVerbosity(vtkPythonInterpreter::GetLogVerbosity() + 1), x)
+++
+++#if defined(_WIN32) && !defined(__CYGWIN__) && defined(VTK_BUILD_SHARED_LIBS) && \
+++ PY_VERSION_HEX >= 0x03080000
+++#define vtkPythonInterpreter_USE_DIRECTORY_COOKIE
+++#endif
+++
+++namespace
+++{
+++
+++template <class T>
+++class PoolT
+++{
+++ std::vector<T*> Strings;
+++
+++public:
+++ ~PoolT()
+++ {
+++ for (T* astring : this->Strings)
+++ {
+++ PyMem_RawFree(astring);
+++ }
+++ }
+++
+++ T* push_back(T* val)
+++ {
+++ this->Strings.push_back(val);
+++ return val;
+++ }
+++
+++ T* pop_last()
+++ {
+++ if (this->Strings.empty())
+++ {
+++ return nullptr;
+++ }
+++ T* last = *this->Strings.rbegin();
+++ this->Strings.pop_back();
+++ return last;
+++ }
+++};
+++
+++using StringPool = PoolT<char>;
+++using WCharStringPool = PoolT<wchar_t>;
+++
+++wchar_t* vtk_Py_UTF8ToWide(const char* arg)
+++{
+++ wchar_t* result = nullptr;
+++ if (arg != nullptr)
+++ {
+++ size_t length = vtksysEncoding_mbstowcs(nullptr, arg, 0);
+++ if (length > 0)
+++ {
+++ result = (wchar_t*)PyMem_RawMalloc(sizeof(wchar_t) * (length + 1));
+++ vtksysEncoding_mbstowcs(result, arg, length + 1);
+++ }
+++ }
+++
+++ return result;
+++}
+++
+++std::string vtk_Py_WideToUTF8(const wchar_t* arg)
+++{
+++ std::string result;
+++ size_t length = vtksysEncoding_wcstombs(nullptr, arg, 0);
+++ if (length > 0)
+++ {
+++ std::vector<char> chars(length + 1);
+++ vtksysEncoding_wcstombs(chars.data(), arg, length + 1);
+++ result.assign(chars.data(), length);
+++ }
+++
+++ return result;
+++}
+++
+++std::vector<vtkWeakPointer<vtkPythonInterpreter>>* GlobalInterpreters;
+++std::vector<std::string> PythonPaths;
+++
+++void NotifyInterpreters(unsigned long eventid, void* calldata = nullptr)
+++{
+++ std::vector<vtkWeakPointer<vtkPythonInterpreter>>::iterator iter;
+++ for (iter = GlobalInterpreters->begin(); iter != GlobalInterpreters->end(); ++iter)
+++ {
+++ if (iter->GetPointer())
+++ {
+++ iter->GetPointer()->InvokeEvent(eventid, calldata);
+++ }
+++ }
+++}
+++
+++inline void vtkPrependPythonPath(const char* pathtoadd)
+++{
+++ VTKPY_DEBUG_MESSAGE("adding module search path " << pathtoadd);
+++ vtkPythonScopeGilEnsurer gilEnsurer;
+++ PyObject* path = PySys_GetObject("path");
+++ PyObject* newpath = PyUnicode_FromString(pathtoadd);
+++
+++ // avoid adding duplicate paths.
+++ if (PySequence_Contains(path, newpath) == 0)
+++ {
+++ PyList_Insert(path, 0, newpath);
+++ }
+++ Py_DECREF(newpath);
+++}
+++}
+++
+++VTK_ABI_NAMESPACE_BEGIN
+++// Schwarz counter idiom for GlobalInterpreters object
+++static unsigned int vtkPythonInterpretersCounter;
+++vtkPythonGlobalInterpreters::vtkPythonGlobalInterpreters()
+++{
+++ if (vtkPythonInterpretersCounter++ == 0)
+++ {
+++ GlobalInterpreters = new std::vector<vtkWeakPointer<vtkPythonInterpreter>>();
+++ }
+++}
+++
+++vtkPythonGlobalInterpreters::~vtkPythonGlobalInterpreters()
+++{
+++ if (--vtkPythonInterpretersCounter == 0)
+++ {
+++ delete GlobalInterpreters;
+++ GlobalInterpreters = nullptr;
+++ }
+++}
+++
+++bool vtkPythonInterpreter::InitializedOnce = false;
+++bool vtkPythonInterpreter::CaptureStdin = false;
+++bool vtkPythonInterpreter::RedirectOutput = true;
+++bool vtkPythonInterpreter::ConsoleBuffering = false;
+++std::string vtkPythonInterpreter::StdErrBuffer;
+++std::string vtkPythonInterpreter::StdOutBuffer;
+++int vtkPythonInterpreter::LogVerbosity = vtkLogger::VERBOSITY_TRACE;
+++
+++#if PY_VERSION_HEX >= 0x03000000
+++struct CharDeleter
+++{
+++ void operator()(wchar_t* str) { PyMem_RawFree(str); }
+++};
+++#endif
+++
+++vtkStandardNewMacro(vtkPythonInterpreter);
+++//------------------------------------------------------------------------------
+++vtkPythonInterpreter::vtkPythonInterpreter()
+++{
+++ GlobalInterpreters->push_back(this);
+++}
+++
+++//------------------------------------------------------------------------------
+++vtkPythonInterpreter::~vtkPythonInterpreter()
+++{
+++ // We need to check that GlobalInterpreters has not been deleted yet. It can be
+++ // deleted prior to a call to this destructor if another static object with a
+++ // reference to a vtkPythonInterpreter object deletes that object after
+++ // GlobalInterpreters has been destructed. It all depends on the destruction order
+++ // of the other static object and GlobalInterpreters.
+++ if (!GlobalInterpreters)
+++ {
+++ return;
+++ }
+++ std::vector<vtkWeakPointer<vtkPythonInterpreter>>::iterator iter;
+++ for (iter = GlobalInterpreters->begin(); iter != GlobalInterpreters->end(); ++iter)
+++ {
+++ if (*iter == this)
+++ {
+++ GlobalInterpreters->erase(iter);
+++ break;
+++ }
+++ }
+++}
+++
+++//------------------------------------------------------------------------------
+++bool vtkPythonInterpreter::IsInitialized()
+++{
+++ return (Py_IsInitialized() != 0);
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::PrintSelf(ostream& os, vtkIndent indent)
+++{
+++ this->Superclass::PrintSelf(os, indent);
+++}
+++
+++//------------------------------------------------------------------------------
+++bool vtkPythonInterpreter::Initialize(int initsigs /*=0*/)
+++{
+++ return vtkPythonInterpreter::InitializeWithArgs(initsigs, 0, nullptr);
+++}
+++
+++#if PY_VERSION_HEX >= 0x03080000
+++static WCharStringPool PythonProgramName;
+++#endif
+++
+++//------------------------------------------------------------------------------
+++// Ensure that Python is pre-initialized enough for VTK to do its
+++// initialization. Must be called before any `PyMem_*` calls are made.
+++static bool vtkPythonPreConfig()
+++{
+++ // Guard against doing this multiple times.
+++ static bool done = false;
+++ if (done)
+++ {
+++ return false;
+++ }
+++ done = true;
+++
+++#if PY_VERSION_HEX >= 0x03080000
+++ PyStatus status;
+++ PyPreConfig preconfig;
+++ PyPreConfig_InitPythonConfig(&preconfig);
+++
+++ preconfig.allocator = PYMEM_ALLOCATOR_NOT_SET;
+++ preconfig.utf8_mode = 1;
+++
+++ status = Py_PreInitialize(&preconfig);
+++ if (PyStatus_Exception(status))
+++ {
+++ Py_ExitStatusException(status);
+++ }
+++
+++ return preconfig.isolated;
+++#else
+++ return Py_FrozenFlag;
+++#endif
+++}
+++
+++//------------------------------------------------------------------------------
+++namespace
+++{
+++/**
+++ * Since vtkPythonInterpreter is often used outside CPython executable, e.g.
+++ * vtkpython, the default logic to locate Python standard libraries used by
+++ * Python (which depends on the executable path) may fail or pickup incorrect
+++ * Python libs. This methods address the issue by setting program name to help
+++ * guide Python's default prefix/exec_prefix searching logic.
+++ */
+++void SetupPythonPrefix(bool isolated)
+++{
+++ using systools = vtksys::SystemTools;
+++
+++ // Check if we're using an isolated Python.
+++ if (isolated)
+++ {
+++ VTKPY_DEBUG_MESSAGE("Isolated Python detected; skipping setting up of program path.");
+++ return;
+++ }
+++
+++ std::string pythonlib = vtkGetLibraryPathForSymbol(Py_InitializeEx);
+++ if (pythonlib.empty())
+++ {
+++ VTKPY_DEBUG_MESSAGE("static Python build or `Py_InitializeEx` library couldn't be found. "
+++ "Set `PYTHONHOME` if Python standard library fails to load.");
+++ return;
+++ }
+++
+++ const std::string newprogramname =
+++ systools::GetFilenamePath(pythonlib) + VTK_PATH_SEPARATOR "vtkpython";
+++ VTKPY_DEBUG_MESSAGE("calling vtkPythonInterpreter::SetProgramName("
+++ << newprogramname << ") to aid in setup of Python prefix.");
+++ vtkPythonInterpreter::SetProgramName(newprogramname.c_str());
+++}
+++
+++#ifdef vtkPythonInterpreter_USE_DIRECTORY_COOKIE
+++PyObject* DLLDirectoryCookie = nullptr;
+++
+++void CloseDLLDirectoryCookie()
+++{
+++ if (DLLDirectoryCookie)
+++ {
+++ if (PyObject_HasAttrString(DLLDirectoryCookie, "close"))
+++ {
+++ PyObject* result = PyObject_CallMethod(DLLDirectoryCookie, "close", nullptr);
+++ Py_XDECREF(result);
+++ }
+++ Py_XDECREF(DLLDirectoryCookie);
+++ DLLDirectoryCookie = nullptr;
+++ }
+++}
+++#endif
+++
+++//------------------------------------------------------------------------------
+++/**
+++ * Add paths to VTK's Python modules.
+++ */
+++void SetupVTKPythonPaths(bool isolated)
+++{
+++ // Check if we're using an isolated Python.
+++ if (isolated)
+++ {
+++ VTKPY_DEBUG_MESSAGE("Isolated Python detected; skipping setting up of `vtk` package.");
+++ return;
+++ }
+++
+++ using systools = vtksys::SystemTools;
+++ std::string vtklib = vtkGetLibraryPathForSymbol(GetVTKVersion);
+++ if (vtklib.empty())
+++ {
+++ VTKPY_DEBUG_MESSAGE(
+++ "`GetVTKVersion` library couldn't be found. Will use `Py_GetProgramName` next.");
+++ }
+++
+++ if (vtklib.empty())
+++ {
+++ vtklib = vtk_Py_WideToUTF8(Py_GetProgramName());
+++ }
+++
+++ vtklib = systools::CollapseFullPath(vtklib);
+++ const std::string vtkdir = systools::GetFilenamePath(vtklib);
+++
+++#if defined(_WIN32) && !defined(__CYGWIN__) && defined(VTK_BUILD_SHARED_LIBS)
+++ // On Windows, based on how the executable is run, we end up failing to load
+++ // pyd files due to inability to load dependent dlls. This seems to overcome
+++ // the issue.
+++ if (!vtkdir.empty())
+++ {
+++#if PY_VERSION_HEX >= 0x03080000
+++ vtkPythonScopeGilEnsurer gilEnsurer(false, true);
+++ CloseDLLDirectoryCookie();
+++ PyObject* os = PyImport_ImportModule("os");
+++ if (os)
+++ {
+++ PyObject* add_dll_directory = PyObject_GetAttrString(os, "add_dll_directory");
+++ if (add_dll_directory && PyCallable_Check(add_dll_directory))
+++ {
+++ PyObject* newpath = PyUnicode_FromString(vtkdir.c_str());
+++ DLLDirectoryCookie = PyObject_CallFunctionObjArgs(add_dll_directory, newpath, nullptr);
+++ Py_XDECREF(newpath);
+++ }
+++
+++ Py_XDECREF(add_dll_directory);
+++ }
+++
+++ Py_XDECREF(os);
+++#else
+++ std::string env_path;
+++ if (systools::GetEnv("PATH", env_path))
+++ {
+++ env_path = vtkdir + ";" + env_path;
+++ }
+++ else
+++ {
+++ env_path = vtkdir;
+++ }
+++ systools::PutEnv(std::string("PATH=") + env_path);
+++#endif
+++ }
+++#endif
+++
+++#if defined(VTK_BUILD_SHARED_LIBS)
+++ vtkPythonInterpreter::PrependPythonPath(vtkdir.c_str(), "vtkmodules/__init__.py");
+++#else
+++ // since there may be other packages not zipped (e.g. mpi4py), we added path to _vtk.zip
+++ // to the search path as well.
+++ vtkPythonInterpreter::PrependPythonPath(vtkdir.c_str(), "_vtk.zip", /*add_landmark*/ false);
+++ vtkPythonInterpreter::PrependPythonPath(vtkdir.c_str(), "_vtk.zip", /*add_landmark*/ true);
+++#endif
+++}
+++}
+++
+++//------------------------------------------------------------------------------
+++bool vtkPythonInterpreter::InitializeWithArgs(int initsigs, int argc, char* argv[])
+++{
+++ bool isolated = vtkPythonPreConfig();
+++
+++ if (Py_IsInitialized() == 0)
+++ {
+++ // guide the mechanism to locate Python standard library, if possible.
+++ SetupPythonPrefix(isolated);
+++ bool signals_installed = initsigs != 0;
+++
+++ // Need two copies of args, because programs might modify the first
+++ using OwnedWideString = std::unique_ptr<wchar_t, CharDeleter>;
+++ std::vector<wchar_t*> argvForPython;
+++ std::vector<OwnedWideString> argvCleanup;
+++ for (int i = 0; i < argc; i++)
+++ {
+++ OwnedWideString argCopy(vtk_Py_UTF8ToWide(argv[i]), CharDeleter());
+++ if (argCopy == nullptr)
+++ {
+++ fprintf(stderr,
+++ "Fatal vtkpython error: "
+++ "unable to decode the command line argument #%i\n",
+++ i + 1);
+++ return false;
+++ }
+++
+++ argvForPython.push_back(argCopy.get());
+++ argvCleanup.emplace_back(std::move(argCopy));
+++ }
+++ argvForPython.push_back(nullptr);
+++
+++#if PY_VERSION_HEX < 0x03080000
+++ Py_InitializeEx(initsigs);
+++ // setup default argv. Without this, code snippets that check `sys.argv` may
+++ // fail when run in embedded VTK Python environment.
+++ PySys_SetArgvEx(argc, argvForPython.data(), 0);
+++
+++ isolated = Py_FrozenFlag;
+++#else
+++ PyConfig config;
+++ PyStatus status;
+++ PyConfig_InitPythonConfig(&config);
+++ config.install_signal_handlers = initsigs;
+++ config.program_name = PythonProgramName.pop_last();
+++ status = PyConfig_SetArgv(&config, argc, argvForPython.data());
+++ if (PyStatus_IsError(status))
+++ {
+++ PyConfig_Clear(&config);
+++ return false;
+++ }
+++
+++ status = Py_InitializeFromConfig(&config);
+++ if (PyStatus_IsError(status))
+++ {
+++ PyConfig_Clear(&config);
+++ return false;
+++ }
+++ isolated = config.pathconfig_warnings == 0;
+++ PyConfig_Clear(&config);
+++#endif
+++
+++#ifdef VTK_PYTHON_FULL_THREADSAFE
+++#if PY_VERSION_HEX < 0x03090000
+++ // In Python 3.9 and higher, PyEval_ThreadsInitialized() and
+++ // PyEval_InitThreads() are deprecated and do nothing.
+++ // GIL initialization is handled by Py_InitializeEx().
+++ int threadInit = PyEval_ThreadsInitialized();
+++ if (!threadInit)
+++ {
+++ PyEval_InitThreads(); // initialize and acquire GIL
+++ }
+++#endif
+++ // Always release GIL, as it has been acquired either by PyEval_InitThreads
+++ // prior to Python 3.7 or by Py_InitializeEx in Python 3.7 and after
+++ PyEval_SaveThread();
+++#endif
+++
+++#ifdef SIGINT
+++ if (signals_installed)
+++ {
+++ // Put default SIGINT handler back after Py_Initialize/Py_InitializeEx.
+++ signal(SIGINT, SIG_DFL);
+++ }
+++#endif
+++ }
+++
+++ if (!vtkPythonInterpreter::InitializedOnce)
+++ {
+++ vtkPythonInterpreter::InitializedOnce = true;
+++
+++ // HACK: Calling PyRun_SimpleString for the first time for some reason results in
+++ // a "\n" message being generated which is causing the error dialog to
+++ // popup. So we flush that message out of the system before setting up the
+++ // callbacks.
+++ vtkPythonInterpreter::RunSimpleString("");
+++
+++ // Redirect Python's stdout and stderr and stdin - GIL protected operation
+++ if (vtkPythonInterpreter::RedirectOutput)
+++ {
+++ // Setup handlers for stdout/stdin/stderr.
+++ vtkPythonStdStreamCaptureHelper* wrapperOut = NewPythonStdStreamCaptureHelper(false);
+++ vtkPythonStdStreamCaptureHelper* wrapperErr = NewPythonStdStreamCaptureHelper(true);
+++ vtkPythonScopeGilEnsurer gilEnsurer;
+++ PySys_SetObject("stdout", reinterpret_cast<PyObject*>(wrapperOut));
+++ PySys_SetObject("stderr", reinterpret_cast<PyObject*>(wrapperErr));
+++ PySys_SetObject("stdin", reinterpret_cast<PyObject*>(wrapperOut));
+++ Py_DECREF(wrapperOut);
+++ Py_DECREF(wrapperErr);
+++ }
+++
+++ // We call this before processing any of Python paths added by the
+++ // application using `PrependPythonPath`. This ensures that application
+++ // specified paths are preferred to the ones `vtkPythonInterpreter` adds.
+++ SetupVTKPythonPaths(isolated);
+++
+++ for (size_t cc = 0; cc < PythonPaths.size(); cc++)
+++ {
+++ vtkPrependPythonPath(PythonPaths[cc].c_str());
+++ }
+++
+++ NotifyInterpreters(vtkCommand::EnterEvent);
+++ return true;
+++ }
+++
+++ return false;
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::Finalize()
+++{
+++ if (Py_IsInitialized() != 0)
+++ {
+++ NotifyInterpreters(vtkCommand::ExitEvent);
+++ vtkPythonScopeGilEnsurer gilEnsurer(false, true);
+++#ifdef vtkPythonInterpreter_USE_DIRECTORY_COOKIE
+++ CloseDLLDirectoryCookie();
+++#endif
+++ // Py_Finalize will take care of releasing gil
+++ Py_Finalize();
+++ }
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::SetProgramName(const char* programname)
+++{
+++ vtkPythonPreConfig();
+++ if (programname)
+++ {
+++#if PY_VERSION_HEX >= 0x03080000
+++ if (wchar_t* argv0 = vtk_Py_UTF8ToWide(programname))
+++ {
+++ PythonProgramName.push_back(argv0);
+++ }
+++ else
+++ {
+++ fprintf(stderr,
+++ "Fatal vtkpython error: "
+++ "unable to decode the program name\n");
+++ wchar_t* empty = (wchar_t*)PyMem_RawMalloc(sizeof(wchar_t));
+++ empty[0] = 0;
+++ PythonProgramName.push_back(empty);
+++ }
+++#else
+++ // From Python Docs: The argument should point to a zero-terminated character
+++ // string in static storage whose contents will not change for the duration of
+++ // the program's execution. No code in the Python interpreter will change the
+++ // contents of this storage.
+++ wchar_t* argv0 = vtk_Py_UTF8ToWide(programname);
+++ if (argv0 == nullptr)
+++ {
+++ fprintf(stderr,
+++ "Fatal vtkpython error: "
+++ "unable to decode the program name\n");
+++ static wchar_t empty[1] = { 0 };
+++ argv0 = empty;
+++ Py_SetProgramName(argv0);
+++ }
+++ else
+++ {
+++ static WCharStringPool wpool;
+++ Py_SetProgramName(wpool.push_back(argv0));
+++ }
+++#endif
+++ }
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::PrependPythonPath(const char* dir)
+++{
+++ if (!dir)
+++ {
+++ return;
+++ }
+++
+++ std::string out_dir = dir;
+++
+++#if defined(_WIN32) && !defined(__CYGWIN__)
+++ // Convert slashes for this platform.
+++ std::replace(out_dir.begin(), out_dir.end(), '/', '\\');
+++#endif
+++
+++ if (Py_IsInitialized() == 0)
+++ {
+++ // save path for future use.
+++ PythonPaths.push_back(out_dir);
+++ return;
+++ }
+++
+++ // Append the path to the python sys.path object.
+++ vtkPrependPythonPath(out_dir.c_str());
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::PrependPythonPath(
+++ const char* anchor, const char* landmark, bool add_landmark)
+++{
+++ const std::vector<std::string> prefixes = {
+++ VTK_PYTHON_SITE_PACKAGES_SUFFIX
+++#if defined(__APPLE__)
+++ // if in an App bundle, the `sitepackages` dir is <app_root>/Contents/Python
+++ ,
+++ "Contents/Python"
+++#endif
+++ ,
+++ "."
+++ };
+++
+++ vtkNew<vtkResourceFileLocator> locator;
+++ locator->SetLogVerbosity(vtkPythonInterpreter::GetLogVerbosity() + 1);
+++ std::string path = locator->Locate(anchor, prefixes, landmark);
+++ if (!path.empty())
+++ {
+++ if (add_landmark)
+++ {
+++ path = path + "/" + landmark;
+++ }
+++ vtkPythonInterpreter::PrependPythonPath(path.c_str());
+++ }
+++}
+++
+++//------------------------------------------------------------------------------
+++int vtkPythonInterpreter::PyMain(int argc, char** argv)
+++{
+++ vtksys::SystemTools::EnableMSVCDebugHook();
+++
+++ int count_v = 0;
+++ for (int cc = 0; cc < argc; ++cc)
+++ {
+++ if (argv[cc] && strcmp(argv[cc], "-v") == 0)
+++ {
+++ ++count_v;
+++ }
+++ if (argv[cc] && strcmp(argv[cc], "-vv") == 0)
+++ {
+++ count_v += 2;
+++ }
+++ }
+++
+++ if (count_v > 0)
+++ {
+++ // change the vtkPythonInterpreter's log verbosity. We only touch it
+++ // if the command line arguments explicitly requested a certain verbosity.
+++ vtkPythonInterpreter::SetLogVerbosity(vtkLogger::VERBOSITY_INFO);
+++ vtkLogger::SetStderrVerbosity(vtkLogger::ConvertToVerbosity(count_v - 1));
+++ }
+++
+++ vtkLogger::Init(argc, argv, nullptr); // since `-v` and `-vv` are parsed as Python verbosity flags
+++ // and not log verbosity flags.
+++
+++ // Need two copies of args, because the first array may be modified elsewhere.
+++ using OwnedCString = std::unique_ptr<char, decltype(&std::free)>;
+++ std::vector<char*> argvForPython;
+++ std::vector<OwnedCString> argvCleanup;
+++ for (int i = 0; i < argc; i++)
+++ {
+++ if (!argv[i])
+++ {
+++ continue;
+++ }
+++ if (strcmp(argv[i], "--enable-bt") == 0)
+++ {
+++ vtksys::SystemInformation::SetStackTraceOnError(1);
+++ continue;
+++ }
+++ if (strcmp(argv[i], "-V") == 0)
+++ {
+++ // print out VTK version and let argument pass to Py_RunMain(). At which
+++ // point, Python will print its version and exit.
+++ cout << vtkVersion::GetVTKSourceVersion() << endl;
+++ }
+++
+++ OwnedCString argCopy(strdup(argv[i]), &std::free);
+++ if (argCopy == nullptr)
+++ {
+++ fprintf(stderr,
+++ "Fatal vtkpython error: "
+++ "unable to copy the command line argument #%i\n",
+++ i + 1);
+++ return 1;
+++ }
+++
+++ argvForPython.push_back(argCopy.get());
+++ argvCleanup.emplace_back(std::move(argCopy));
+++ }
+++ int argvForPythonSize = static_cast<int>(argvForPython.size());
+++ argvForPython.push_back(nullptr);
+++
+++ vtkPythonInterpreter::InitializeWithArgs(1, argvForPythonSize, argvForPython.data());
+++
+++#if PY_VERSION_HEX >= 0x03070000 && PY_VERSION_HEX < 0x03080000
+++ // Python 3.7.0 has a bug where Py_InitializeEx (called above) followed by
+++ // Py_Main (at the end of this block) causes a crash. Gracefully exit with
+++ // failure if we're using 3.7.0 and suggest getting the newest 3.7.x release.
+++ // See <https://gitlab.kitware.com/vtk/vtk/-/issues/17434> for details.
+++ {
+++ bool is_ok = true;
+++ vtkPythonScopeGilEnsurer gilEnsurer(false, true);
+++ PyObject* sys = PyImport_ImportModule("sys");
+++ if (sys)
+++ {
+++ // XXX: Check sys.implementation.name == 'cpython'?
+++
+++ PyObject* version_info = PyObject_GetAttrString(sys, "version_info");
+++ if (version_info)
+++ {
+++ PyObject* major = PyObject_GetAttrString(version_info, "major");
+++ PyObject* minor = PyObject_GetAttrString(version_info, "minor");
+++ PyObject* micro = PyObject_GetAttrString(version_info, "micro");
+++
+++ auto py_number_cmp = [](PyObject* obj, long expected) {
+++ return obj && PyLong_Check(obj) && PyLong_AsLong(obj) == expected;
+++ };
+++
+++ // Only 3.7.0 has this issue. Any failures to get the version
+++ // information is OK; we'll just crash later anyways if the version is
+++ // bad.
+++ is_ok = !py_number_cmp(major, 3) || !py_number_cmp(minor, 7) || !py_number_cmp(micro, 0);
+++
+++ Py_XDECREF(micro);
+++ Py_XDECREF(minor);
+++ Py_XDECREF(major);
+++ }
+++
+++ Py_XDECREF(version_info);
+++ }
+++
+++ Py_XDECREF(sys);
+++
+++ if (!is_ok)
+++ {
+++ std::cerr << "Python 3.7.0 has a known issue that causes a crash with a "
+++ "specific API usage pattern. This has been fixed in 3.7.1 and all "
+++ "newer 3.7.x Python releases. Exiting now to avoid the crash."
+++ << std::endl;
+++ return 1;
+++ }
+++ }
+++#endif
+++
+++#if PY_VERSION_HEX < 0x03080000
+++ // Need two copies of args, because programs might modify the first
+++ using OwnedWideString = std::unique_ptr<wchar_t, CharDeleter>;
+++ std::vector<wchar_t*> argvForPythonWide;
+++ std::vector<OwnedWideString> argvCleanupWide;
+++ for (size_t i = 0; i < argvCleanup.size(); i++)
+++ {
+++ OwnedWideString argCopy(vtk_Py_UTF8ToWide(argvCleanup[i].get()), CharDeleter());
+++ if (argCopy == nullptr)
+++ {
+++ fprintf(stderr,
+++ "Fatal vtkpython error: "
+++ "unable to decode the command line argument #%zu\n",
+++ i + 1);
+++ return 1;
+++ }
+++
+++ argvForPythonWide.push_back(argCopy.get());
+++ argvCleanupWide.emplace_back(std::move(argCopy));
+++ }
+++ int argvForPythonWideSize = static_cast<int>(argvForPythonWide.size());
+++ argvForPythonWide.push_back(nullptr);
+++
+++ vtkPythonScopeGilEnsurer gilEnsurer(false, true);
+++ return Py_Main(argvForPythonWideSize, argvForPythonWide.data());
+++#else
+++ vtkPythonScopeGilEnsurer gilEnsurer(false, true);
+++ return Py_RunMain();
+++#endif
+++}
+++
+++//------------------------------------------------------------------------------
+++int vtkPythonInterpreter::RunSimpleString(const char* script)
+++{
+++ vtkPythonInterpreter::Initialize(1);
+++ vtkPythonInterpreter::ConsoleBuffering = true;
+++
+++ // The embedded python interpreter cannot handle DOS line-endings, see
+++ // http://sourceforge.net/tracker/?group_id=5470&atid=105470&func=detail&aid=1167922
+++ std::string buffer = script ? script : "";
+++ buffer.erase(std::remove(buffer.begin(), buffer.end(), '\r'), buffer.end());
+++
+++ // The cast is necessary because PyRun_SimpleString() hasn't always been const-correct
+++ int pyReturn;
+++ {
+++ vtkPythonScopeGilEnsurer gilEnsurer;
+++ pyReturn = PyRun_SimpleString(buffer.c_str());
+++ }
+++
+++ vtkPythonInterpreter::ConsoleBuffering = false;
+++ if (!vtkPythonInterpreter::StdErrBuffer.empty())
+++ {
+++ vtkOutputWindow::GetInstance()->DisplayErrorText(vtkPythonInterpreter::StdErrBuffer.c_str());
+++ NotifyInterpreters(
+++ vtkCommand::ErrorEvent, const_cast<char*>(vtkPythonInterpreter::StdErrBuffer.c_str()));
+++ vtkPythonInterpreter::StdErrBuffer.clear();
+++ }
+++ if (!vtkPythonInterpreter::StdOutBuffer.empty())
+++ {
+++ vtkOutputWindow::GetInstance()->DisplayText(vtkPythonInterpreter::StdOutBuffer.c_str());
+++ NotifyInterpreters(
+++ vtkCommand::SetOutputEvent, const_cast<char*>(vtkPythonInterpreter::StdOutBuffer.c_str()));
+++ vtkPythonInterpreter::StdOutBuffer.clear();
+++ }
+++
+++ return pyReturn;
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::SetCaptureStdin(bool val)
+++{
+++ vtkPythonInterpreter::CaptureStdin = val;
+++}
+++
+++//------------------------------------------------------------------------------
+++bool vtkPythonInterpreter::GetCaptureStdin()
+++{
+++ return vtkPythonInterpreter::CaptureStdin;
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::SetRedirectOutput(bool redirect)
+++{
+++ vtkPythonInterpreter::RedirectOutput = redirect;
+++}
+++
+++//------------------------------------------------------------------------------
+++bool vtkPythonInterpreter::GetRedirectOutput()
+++{
+++ return vtkPythonInterpreter::RedirectOutput;
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::WriteStdOut(const char* txt)
+++{
+++ if (vtkPythonInterpreter::ConsoleBuffering)
+++ {
+++ vtkPythonInterpreter::StdOutBuffer += std::string(txt);
+++ }
+++ else
+++ {
+++ vtkOutputWindow::GetInstance()->DisplayText(txt);
+++ NotifyInterpreters(vtkCommand::SetOutputEvent, const_cast<char*>(txt));
+++ }
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::FlushStdOut() {}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::WriteStdErr(const char* txt)
+++{
+++ if (vtkPythonInterpreter::ConsoleBuffering)
+++ {
+++ vtkPythonInterpreter::StdErrBuffer += std::string(txt);
+++ }
+++ else
+++ {
+++ vtkOutputWindow::GetInstance()->DisplayErrorText(txt);
+++ NotifyInterpreters(vtkCommand::ErrorEvent, const_cast<char*>(txt));
+++ }
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::FlushStdErr() {}
+++
+++//------------------------------------------------------------------------------
+++vtkStdString vtkPythonInterpreter::ReadStdin()
+++{
+++ if (!vtkPythonInterpreter::CaptureStdin)
+++ {
+++ vtkStdString string;
+++ cin >> string;
+++ return string;
+++ }
+++ vtkStdString string;
+++ NotifyInterpreters(vtkCommand::UpdateEvent, &string);
+++ return string;
+++}
+++
+++//------------------------------------------------------------------------------
+++void vtkPythonInterpreter::SetLogVerbosity(int val)
+++{
+++ vtkPythonInterpreter::LogVerbosity = vtkLogger::ConvertToVerbosity(val);
+++}
+++
+++//------------------------------------------------------------------------------
+++int vtkPythonInterpreter::GetLogVerbosity()
+++{
+++ return vtkPythonInterpreter::LogVerbosity;
+++}
+++
+++#if defined(_WIN32)
+++//------------------------------------------------------------------------------
+++vtkWideArgsConverter::vtkWideArgsConverter(int argc, wchar_t* wargv[])
+++{
+++ this->Argc = argc;
+++ for (int i = 0; i < argc; i++)
+++ {
+++ std::string str = vtksys::Encoding::ToNarrow(wargv[i]);
+++ char* cstr = vtksys::SystemTools::DuplicateString(str.c_str());
+++ Args.push_back(cstr);
+++ MemCache.push_back(cstr);
+++ }
+++ Args.push_back(nullptr);
+++}
+++
+++//------------------------------------------------------------------------------
+++vtkWideArgsConverter::~vtkWideArgsConverter()
+++{
+++ for (auto cstr : MemCache)
+++ {
+++ delete[] cstr;
+++ }
+++}
+++#endif
+++VTK_ABI_NAMESPACE_END
++--- vtk9-9.3.0+dfsg1.orig/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
+++++ vtk9-9.3.0+dfsg1/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
++@@ -16,7 +16,8 @@ VTK_ABI_NAMESPACE_BEGIN
++ struct vtkPythonStdStreamCaptureHelper
++ {
++ PyObject_HEAD
++- int softspace; // Used by print to keep track of its state.
+++ int softspace; // Used by print to keep track of its state.
+++ const char* Encoding; // Encoding, set to "utf-8"
++ bool DumpToError;
++
++ void Write(const char* string)
++@@ -84,6 +85,9 @@ static PyMemberDef vtkPythonStdStreamCap
++ { VTK_PYTHON_MEMBER_DEF_STR("softspace"), T_INT,
++ offsetof(vtkPythonStdStreamCaptureHelper, softspace), 0,
++ VTK_PYTHON_MEMBER_DEF_STR("Placeholder so print can keep state.") },
+++ { VTK_PYTHON_MEMBER_DEF_STR("encoding"), T_STRING,
+++ offsetof(vtkPythonStdStreamCaptureHelper, Encoding), READONLY,
+++ VTK_PYTHON_MEMBER_DEF_STR("Text encoding for file.") },
++ { nullptr, 0, 0, 0, nullptr }
++ };
++
++@@ -250,6 +254,7 @@ static vtkPythonStdStreamCaptureHelper*
++ PyObject_New(vtkPythonStdStreamCaptureHelper, &vtkPythonStdStreamCaptureHelperType);
++ if (wrapper)
++ {
+++ wrapper->Encoding = "utf-8";
++ wrapper->DumpToError = for_stderr;
++ }
++
++--- vtk9-9.3.0+dfsg1.orig/Wrapping/Python/vtkmodules/test/Testing.py
+++++ vtk9-9.3.0+dfsg1/Wrapping/Python/vtkmodules/test/Testing.py
++@@ -515,8 +515,10 @@ def test(cases):
++ """
++ # Make the test suites from the arguments.
++ suites = []
++- for case in cases:
++- suites.append(unittest.makeSuite(case[0], case[1]))
+++ loader = unittest.TestLoader()
+++ # the "name" is ignored (it was always just 'test')
+++ for test,name in cases:
+++ suites.append(loader.loadTestsFromTestCase(test))
++ test_suite = unittest.TestSuite(suites)
++
++ # Now run the tests.
++--- vtk9-9.3.0+dfsg1.orig/Wrapping/PythonCore/PyVTKNamespace.cxx
+++++ vtk9-9.3.0+dfsg1/Wrapping/PythonCore/PyVTKNamespace.cxx
++@@ -112,8 +112,10 @@ PyObject* PyVTKNamespace_New(const char*
++ {
++ // make sure python has readied the type object
++ PyType_Ready(&PyVTKNamespace_Type);
++- // call the allocator provided by python for this type
++- self = PyVTKNamespace_Type.tp_alloc(&PyVTKNamespace_Type, 0);
+++ // call the superclass new function
+++ PyObject* empty = PyTuple_New(0);
+++ self = PyVTKNamespace_Type.tp_base->tp_new(&PyVTKNamespace_Type, empty, nullptr);
+++ Py_DECREF(empty);
++ // call the superclass init function
++ PyObject* pyname = PyUnicode_FromString(name);
++ PyObject* args = PyTuple_Pack(1, pyname);
++--- vtk9-9.3.0+dfsg1.orig/Wrapping/PythonCore/PyVTKTemplate.cxx
+++++ vtk9-9.3.0+dfsg1/Wrapping/PythonCore/PyVTKTemplate.cxx
++@@ -761,8 +761,10 @@ PyObject* PyVTKTemplate_New(const char*
++ {
++ // make sure python has readied the type object
++ PyType_Ready(&PyVTKTemplate_Type);
++- // call the allocator provided by python for this type
++- PyObject* self = PyVTKTemplate_Type.tp_alloc(&PyVTKTemplate_Type, 0);
+++ // call the superclass new function
+++ PyObject* empty = PyTuple_New(0);
+++ PyObject* self = PyVTKTemplate_Type.tp_base->tp_new(&PyVTKTemplate_Type, empty, nullptr);
+++ Py_DECREF(empty);
++ // call the superclass init function
++ PyObject* pyname = PyUnicode_FromString(name);
++ PyObject* pydoc = PyUnicode_FromString(docstring);
--- /dev/null
--- /dev/null
++Description: Do not try linking with -lsocket
++
++Index: VTK-9.3.0/Common/System/vtkTestSocketFeatures.cmake
++===================================================================
++--- VTK-9.3.0.orig/Common/System/vtkTestSocketFeatures.cmake
+++++ VTK-9.3.0/Common/System/vtkTestSocketFeatures.cmake
++@@ -11,9 +11,6 @@ check_library_exists("socket" getsocknam
++
++ if(NOT DEFINED VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T)
++ set(VTK_GETSOCKNAME_LIBS)
++- if(VTK_HAVE_LIBSOCKET)
++- list(APPEND VTK_GETSOCKNAME_LIBS "socket")
++- endif()
++ message(STATUS "Checking for getsockname with socklen_t")
++ try_compile(VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T_COMPILED
++ ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/SocklenT
--- /dev/null
--- /dev/null
++Description: Drop medical examples
++Last-Update: 2020-10-21
++
++Index: VTK-9.3.0/Examples/CMakeLists.txt
++===================================================================
++--- VTK-9.3.0.orig/Examples/CMakeLists.txt
+++++ VTK-9.3.0/Examples/CMakeLists.txt
++@@ -61,7 +61,7 @@ else ()
++ add_example(IO/Cxx)
++ add_example(ImageProcessing/Cxx)
++ add_example(Infovis/Cxx)
++- add_example(Medical/Cxx)
+++ #add_example(Medical/Cxx)
++ add_example(Modelling/Cxx)
++ add_example(MultiBlock/Cxx)
++ add_example(ParallelProcessing/Generic/Cxx)
--- /dev/null
--- /dev/null
++Description: Rename vtkpython to vtkpython-9.0
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2020-11-05
++
++Index: VTK-9.3.0/Wrapping/Python/CMakeLists.txt
++===================================================================
++--- VTK-9.3.0.orig/Wrapping/Python/CMakeLists.txt
+++++ VTK-9.3.0/Wrapping/Python/CMakeLists.txt
++@@ -23,21 +23,21 @@ endif ()
++
++ # The interpreters are not supported in wheel builds, so skip them.
++ if (NOT VTK_WHEEL_BUILD)
++- add_executable(vtkpython
+++ add_executable(vtkpython-9.0
++ vtkpython.rc
++ vtkPythonAppInit.cxx)
++- target_link_libraries(vtkpython
+++ target_link_libraries(vtkpython-9.0
++ PRIVATE
++ VTK::WrappingPythonCore
++ VTK::PythonInterpreter
++ VTK::Python
++ VTK::vtkpythonmodules
++ VTK::vtksys)
++- add_executable(VTK::vtkpython ALIAS vtkpython)
+++ add_executable(VTK::vtkpython-9.0 ALIAS vtkpython-9.0)
++ if (VTK_INSTALL_PYTHON_EXES)
++ install(
++- TARGETS vtkpython
++- EXPORT VTKPython
+++ TARGETS vtkpython-9.0
+++ EXPORT VTK9Python
++ DESTINATION "${CMAKE_INSTALL_BINDIR}")
++ endif ()
++
--- /dev/null
--- /dev/null
++Description: Fix path for the installation of python modules
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2020-11-06
++
++Index: VTK-9.3.0/CMake/vtkModuleWrapPython.cmake
++===================================================================
++--- VTK-9.3.0.orig/CMake/vtkModuleWrapPython.cmake
+++++ VTK-9.3.0/CMake/vtkModuleWrapPython.cmake
++@@ -78,7 +78,7 @@ function (vtk_module_python_default_dest
++ "for Python modules.")
++ set(_vtk_python_version_suffix)
++ endif ()
++- set(destination "${CMAKE_INSTALL_LIBDIR}/python${_vtk_python_version_suffix}/site-packages")
+++ set(destination "lib/python3/dist-packages")
++ endif ()
++
++ set("${var}" "${destination}" PARENT_SCOPE)
++Index: VTK-9.3.0/Utilities/Python/CMakeLists.txt
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Python/CMakeLists.txt
+++++ VTK-9.3.0/Utilities/Python/CMakeLists.txt
++@@ -61,7 +61,7 @@ if (NOT VTK_PYTHON_SITE_PACKAGES_SUFFIX)
++ set(VTK_PYTHON_SITE_PACKAGES_SUFFIX "Lib/site-packages")
++ else ()
++ set(VTK_PYTHON_SITE_PACKAGES_SUFFIX
++- "python${vtk_python_version_pair}/site-packages")
+++ "python3/dist-packages")
++ endif ()
++ endif ()
++
--- /dev/null
--- /dev/null
++Description: Fix shebang for the perl scripts
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2020-11-08
++
++Index: VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_class2example.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2004-06-09 11:12:38 barre>
++ #
++ # Build cross-references between classes and examples
++Index: VTK-9.3.0/Utilities/Doxygen/doc_cleanhtml.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_cleanhtml.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_cleanhtml.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2002-10-25 20:17:59 barre>
++ #
++ # Clean the HTML generated by Doxygen to remove some layout quicks
++Index: VTK-9.3.0/Utilities/Doxygen/doc_codematch.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_codematch.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_codematch.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2002-01-18 16:17:26 barre>
++ #
++ # Summary ?
++Index: VTK-9.3.0/Utilities/Doxygen/doc_index.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_index.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_index.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2001-11-21 17:40:48 barre>
++ #
++ # Build full-text index
++Index: VTK-9.3.0/Utilities/Doxygen/doc_rmpath.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_rmpath.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_rmpath.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2001-10-05 11:49:40 barre>
++ #
++ # Remove path to intermediate Doxygen dir from html doc
++Index: VTK-9.3.0/Utilities/Doxygen/doc_version.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_version.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_version.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2006-11-15 13:25:02 barre>
++ #
++ # Extract VTK version and add it to documentation
--- /dev/null
--- /dev/null
++Description: HACK: vtkQWidgetTexture.cxx: Don't use vtkOpenGLCheckErrorMacro
++ Fixes building for Qt with OpenGL ES.
++Author: Adrian Bunk <bunk@debian.org>
++
++Index: VTK-9.3.0/GUISupport/Qt/vtkQWidgetTexture.cxx
++===================================================================
++--- VTK-9.3.0.orig/GUISupport/Qt/vtkQWidgetTexture.cxx
+++++ VTK-9.3.0/GUISupport/Qt/vtkQWidgetTexture.cxx
++@@ -7,7 +7,7 @@
++ #include "vtkOpenGLResourceFreeCallback.h"
++ #include "vtkOpenGLState.h"
++
++-#include "vtkOpenGLError.h"
+++//#include "vtkOpenGLError.h"
++
++ #include <QGraphicsProxyWidget>
++ #include <QGraphicsScene>
++@@ -88,7 +88,7 @@ vtkQWidgetTexture::vtkQWidgetTexture()
++ }
++
++ this->Create2DFromRaw(width, height, 4, VTK_UNSIGNED_CHAR, this->ImageBuffer);
++- vtkOpenGLCheckErrorMacro("failed after QWidgeTexture repaint and draw");
+++ //vtkOpenGLCheckErrorMacro("failed after QWidgeTexture repaint and draw");
++ }
++ };
++ }
--- /dev/null
--- /dev/null
++https://gitlab.kitware.com/diatomic/diy/-/merge_requests/59
++
++From bb0d55c8ae34a43354b1002262dad722c410d8cb Mon Sep 17 00:00:00 2001
++From: Samuel Thibault <samuel.thibault@ens-lyon.org>
++Date: Sat, 13 Jun 2020 13:59:31 +0200
++Subject: [PATCH] Fix build on mach-based OS which are not OS X
++
++---
++ include/diy/time.hpp | 6 +++---
++ 1 file changed, 3 insertions(+), 3 deletions(-)
++
++Index: VTK-9.3.0/ThirdParty/diy2/vtkdiy2/include/vtkdiy2/time.hpp
++===================================================================
++--- VTK-9.3.0.orig/ThirdParty/diy2/vtkdiy2/include/vtkdiy2/time.hpp
+++++ VTK-9.3.0/ThirdParty/diy2/vtkdiy2/include/vtkdiy2/time.hpp
++@@ -3,10 +3,10 @@
++
++ #ifndef _WIN32
++ #include <sys/time.h>
++-#ifdef __MACH__
+++#if defined(__MACH__) && defined(__APPLE__)
++ #include <mach/clock.h>
++ #include <mach/mach.h>
++-#endif // __MACH__
+++#endif // __MACH__ && __APPLE__
++ #endif // ifndef _WIN32
++
++ namespace diy
++@@ -16,7 +16,7 @@ typedef unsigned long time_typ
++
++ inline time_type get_time()
++ {
++-#ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
+++#if defined(__MACH__) && defined(__APPLE__) // OS X does not have clock_gettime, use clock_get_time
++ clock_serv_t cclock;
++ mach_timespec_t ts;
++ host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
--- /dev/null
--- /dev/null
++From c3f5613299c9dfdee66709674a6cafafb6576137 Mon Sep 17 00:00:00 2001
++From: Vagrant Cascadian <vagrant@reproducible-builds.org>
++Date: Tue, 15 Dec 2020 07:38:56 +0000
++Subject: [PATCH 2/2] doc_class2example.pl: Sort the parsers array.
++
++Thanks to Bernhard M. Wiedemann <bernhardout@lsmod.de>.
++---
++ Utilities/Doxygen/doc_class2example.pl | 1 +
++ 1 file changed, 1 insertion(+)
++
++Index: VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_class2example.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++@@ -261,6 +261,7 @@ if (exists $args{"parser"}) {
++ } else {
++ @parsers = keys %parsers;
++ }
+++@parsers = sort @parsers;
++
++ my $os_is_win = ($^O =~ m/(MSWin32|Cygwin)/i);
++ my $open_file_as_text = $os_is_win ? O_TEXT : 0;
--- /dev/null
--- /dev/null
++Description: Fix mpi4py search
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2021-09-17
++
++Index: VTK-9.3.0/Parallel/MPI4Py/vtk.module
++===================================================================
++--- VTK-9.3.0.orig/Parallel/MPI4Py/vtk.module
+++++ VTK-9.3.0/Parallel/MPI4Py/vtk.module
++@@ -16,4 +16,3 @@ DEPENDS
++ PRIVATE_DEPENDS
++ VTK::ParallelMPI
++ VTK::mpi
++- VTK::mpi4py
--- /dev/null
--- /dev/null
++Description: Fix FTBFS
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2021-11-14
++
++Index: VTK-9.3.0/CMake/vtkCompilerExtraFlags.cmake
++===================================================================
++--- VTK-9.3.0.orig/CMake/vtkCompilerExtraFlags.cmake
+++++ VTK-9.3.0/CMake/vtkCompilerExtraFlags.cmake
++@@ -3,7 +3,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
++ include(CheckCXXCompilerFlag)
++
++ # Additional warnings for GCC
++- set(CMAKE_CXX_FLAGS_WARN "-Wnon-virtual-dtor -Wno-long-long -ansi -Wcast-align -Wchar-subscripts -Wall -Wextra -Wpointer-arith -Wformat-security -Woverloaded-virtual -Wshadow -Wunused-parameter -fno-check-new -fno-common -Werror=undef")
+++ set(CMAKE_CXX_FLAGS_WARN "-Wnon-virtual-dtor -Wno-long-long -ansi -Wcast-align -Wchar-subscripts -Wall -Wextra -Wpointer-arith -Wformat-security -Woverloaded-virtual -Wshadow -Wunused-parameter -fno-check-new -fno-common")
++
++ # This flag is useful as not returning from a non-void function is an error
++ # with MSVC, but it is not supported on all GCC compiler versions
--- /dev/null
--- /dev/null
++09_newer_expat.patch
++10_matplotlib.patch
++20_do_not_link_against_socket.patch
++30_drop_medical_example.patch
++40_vtkpython-9.patch
++50_fix_python-modules_path.patch
++60_fix_path_perl.patch
++84_vtkQWidgetTexture_no_vtkOpenGLCheckErrorMacro.patch
++95_java_mach-arch_fix.patch
++97_reproducible_builds.patch
++98_fix_mpi4py.py
++99_fix_ftbfs.patch
++100_add_missing_gl_header.patch
++121_add_support_for_loong64.patch
++130_fix_python_3.13.patch
--- /dev/null
--- /dev/null
++usr/lib/python3
++usr/bin/pvtkpython
++usr/bin/vtkpython-9.0
++usr/bin/vtkWrapPython-9.3
++usr/bin/vtkWrapPythonInit-9.3
--- /dev/null
--- /dev/null
++debian/manpages/vtkWrapPython-9.1.1
++debian/manpages/vtkWrapPythonInit-9.1.1
++debian/manpages/vtkpython-9.0.1
--- /dev/null
--- /dev/null
++#!/usr/bin/make -f
++BUILDDIR = $(CURDIR)/debian/build
++
++include /usr/share/dpkg/architecture.mk
++
++nojava_archs=hppa hurd-i386 kfreebsd-i386 kfreebsd-amd64
++ifneq ($(DEB_BUILD_ARCH),$(filter $(DEB_BUILD_ARCH), $(nojava_archs)))
++ export JAVA_HOME=/usr/lib/jvm/default-java
++ extra_flags += -DVTK_WRAP_JAVA=ON
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), armel m68k mips mipsel powerpc sh4))
++ export DEB_CXXFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
++ export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
++endif
++
++notbb_archs=hurd-i386 kfreebsd-i386 kfreebsd-amd64
++ifneq ($(DEB_BUILD_ARCH),$(filter $(DEB_BUILD_ARCH), $(notbb_archs)))
++ extra_flags += -DVTK_SMP_IMPLEMENTATION_TYPE:STRING="TBB"
++else
++ extra_flags += -DVTK_SMP_IMPLEMENTATION_TYPE:STRING="OpenMP"
++endif
++
++%:
++ dh $@ --buildsystem=cmake --builddirectory=$(BUILDDIR)
++
++extra_flags += \
++ -DBUILD_SHARED_LIBS=ON \
++ -DCMAKE_C_COMPILER=mpicc \
++ -DCMAKE_CXX_COMPILER=mpic++ \
++ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -latomic" \
++ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed" \
++ -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" \
++ -DCMAKE_VERBOSE_MAKEFILE=ON \
++ -DHDF5_IS_PARALLEL=OFF \
++ -DVTK_BUILD_DOCUMENTATION=ON \
++ -DVTK_BUILD_EXAMPLES=OFF \
++ -DVTK_BUILD_TESTING=OFF \
++ -DVTK_EXTRA_COMPILER_WARNINGS=ON \
++ -DVTK_GROUP_ENABLE_Qt:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL:STRING="NO" \
++ -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING="DONT_WANT" \
++ -DVTK_GROUP_ENABLE_Rendering:STRING="YES" \
++ -DVTK_GROUP_ENABLE_StandAlone:STRING="YES" \
++ -DVTK_GROUP_ENABLE_Views:STRING="YES" \
++ -DVTK_GROUP_ENABLE_MPI:STRING="YES" \
++ -DVTK_GROUP_ENABLE_Imaging:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_IOGeoJSON:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_RenderingQt:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_RenderingTk:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_utf8:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_InteractionWidgets:STRING="YES" \
++ -DVTK_MODULE_ENABLE_VTK_InteractionImage:STRING="YES" \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_eigen:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_glew:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_jpeg:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_libproj:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_lz4:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_lzma:BOOL:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_ogg:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_sqlite:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_theora:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_tiff:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_utf8:BOOL=ON \
++ -DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=ON \
++ -DVTK_PYTHON_VERSION:STRING=3 \
++ -DVTK_USE_TK=ON \
++ -DVTK_WRAP_PYTHON=ON \
++ -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
++ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
++ -DVTK_MODULE_ENABLE_VTK_ParallelMPI:STRING="YES" \
++ -DVTK_USE_MPI=ON \
++ -DVTK_JAVA_SOURCE_VERSION:STRING=1.8 \
++ -DVTK_JAVA_TARGET_VERSION:STRING=1.8 \
++
++
++override_dh_auto_configure:
++ dh_auto_configure -- $(extra_flags)
++
++execute_after_dh_auto_clean:
++ rm -rf $(BUILDDIR)
++
++execute_after_dh_auto_build:
++ cd $(BUILDDIR) && make DoxygenDoc
++ find $(BUILDDIR)/Utilities/Doxygen/doc/html/ -name "*.md5" | xargs rm -f
++
++override_dh_auto_install:
++ dh_auto_install -X.pyc -X.pyo
++ifneq ($(JAVA_HOME),)
++ # Correct headers for paraview
++ mv $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/java/vtk.jar $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/java/vtk9.jar
++endif
++ sed -i -e "s/FATAL_ERROR/STATUS/g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/vtk-9.3/VTK-targets.cmake
++
++execute_after_dh_install:
++ rm -rf $(CURDIR)/debian/tmp/usr/share/licenses
++ find $(CURDIR)/debian/libvtk9-dev/ -name "*Qt*" -exec rm {} \; || true
++ find $(CURDIR)/debian/libvtk9-dev/ -name "libvtkRenderingPythonTkWidgets.so" -exec rm {} \; || true
++ find $(CURDIR)/debian/libvtk9-dev/usr/include/ -name "Q*" -exec rm {} \; || true
++ find $(CURDIR)/debian/libvtk9.3/ -name "*Qt*" -exec rm {} \; || true
++ find $(CURDIR)/debian/tmp/usr/share/doc/vtk-9.0/doxygen -name "_formulas.log" -exec rm {} \; || true
++ find $(CURDIR)/debian/build/Utilities/Doxygen/doc/html -name "_formulas.log" -exec rm {} \; || true
++
++# Fix privacy breach
++execute_after_dh_installdocs-indep:
++ find $(CURDIR)/debian/vtk9-doc/ -type f -print0 | xargs -0 sed -i 's/https:\/\/raw\.githubusercontent\.com//g'
++ find $(CURDIR)/debian/vtk9-doc/ -type f -print0 | xargs -0 sed -i 's/https:\/\/cdn\.jsdelivr\.net\/npm\/mathjax@2/\/usr\/share\/javascript\/mathjax/g'
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 2.6)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkVersion.h>
++#include <vtkBooleanOperationPolyDataFilter.h>
++
++#include <vtkActor.h>
++#include <vtkPolyDataReader.h>
++#include <vtkPolyDataMapper.h>
++#include <vtkProperty.h>
++#include <vtkRenderer.h>
++#include <vtkRenderWindow.h>
++#include <vtkRenderWindowInteractor.h>
++#include <vtkSmartPointer.h>
++#include <vtkSphereSource.h>
++
++int main(int argc, char *argv[])
++{
++ vtkSmartPointer<vtkPolyData> input1;
++ vtkSmartPointer<vtkPolyData> input2;
++
++ std::string operation("intersection");
++
++ if (argc == 4)
++ {
++ vtkSmartPointer<vtkPolyDataReader> reader1 =
++ vtkSmartPointer<vtkPolyDataReader>::New();
++ reader1->SetFileName(argv[1]);
++ reader1->Update();
++ input1 = reader1->GetOutput();
++
++ vtkSmartPointer<vtkPolyDataReader> reader2 =
++ vtkSmartPointer<vtkPolyDataReader>::New();
++ reader2->SetFileName(argv[3]);
++ reader2->Update();
++ input2 = reader2->GetOutput();
++
++ operation = argv[2];
++ }
++ else
++ {
++ vtkSmartPointer<vtkSphereSource> sphereSource1 =
++ vtkSmartPointer<vtkSphereSource>::New();
++ sphereSource1->SetCenter(.25, 0, 0);
++ sphereSource1->Update();
++ input1 = sphereSource1->GetOutput();
++
++ vtkSmartPointer<vtkSphereSource> sphereSource2 =
++ vtkSmartPointer<vtkSphereSource>::New();
++ sphereSource2->Update();
++ input2 = sphereSource2->GetOutput();
++
++ if (argc == 2)
++ {
++ operation = argv[1];
++ }
++ }
++
++ vtkSmartPointer<vtkPolyDataMapper> input1Mapper =
++ vtkSmartPointer<vtkPolyDataMapper>::New();
++#if VTK_MAJOR_VERSION <= 5
++ input1Mapper->SetInputConnection( input1->GetProducerPort() );
++#else
++ input1Mapper->SetInputData( input1 );
++#endif
++ input1Mapper->ScalarVisibilityOff();
++ vtkSmartPointer<vtkActor> input1Actor =
++ vtkSmartPointer<vtkActor>::New();
++ input1Actor->SetMapper( input1Mapper );
++ input1Actor->GetProperty()->SetColor(1,0,0);
++ input1Actor->SetPosition(
++ input1->GetBounds()[1]-input1->GetBounds()[0],
++ 0, 0);
++ vtkSmartPointer<vtkPolyDataMapper> input2Mapper =
++ vtkSmartPointer<vtkPolyDataMapper>::New();
++#if VTK_MAJOR_VERSION <= 5
++ input2Mapper->SetInputConnection( input2->GetProducerPort() );
++#else
++ input2Mapper->SetInputData( input2 );
++#endif
++ input2Mapper->ScalarVisibilityOff();
++ vtkSmartPointer<vtkActor> input2Actor =
++ vtkSmartPointer<vtkActor>::New();
++ input2Actor->SetMapper( input2Mapper );
++ input2Actor->GetProperty()->SetColor(0,1,0);
++ input2Actor->SetPosition(
++ -(input2->GetBounds()[1]-input2->GetBounds()[0]),
++ 0, 0);
++ vtkSmartPointer<vtkBooleanOperationPolyDataFilter> booleanOperation =
++ vtkSmartPointer<vtkBooleanOperationPolyDataFilter>::New();
++ if (operation == "union")
++ {
++ booleanOperation->SetOperationToUnion();
++ }
++ else if (operation == "intersection")
++ {
++ booleanOperation->SetOperationToIntersection();
++ }
++ else if (operation == "difference")
++ {
++ booleanOperation->SetOperationToDifference();
++ }
++ else
++ {
++ std::cout << "Unknown operation: " << operation << std::endl;
++ return EXIT_FAILURE;
++ }
++#if VTK_MAJOR_VERSION <= 5
++ booleanOperation->SetInputConnection( 0, input1->GetProducerPort() );
++ booleanOperation->SetInputConnection( 1, input2->GetProducerPort() );
++#else
++ booleanOperation->SetInputData( 0, input1 );
++ booleanOperation->SetInputData( 1, input2 );
++#endif
++ vtkSmartPointer<vtkPolyDataMapper> booleanOperationMapper =
++ vtkSmartPointer<vtkPolyDataMapper>::New();
++ booleanOperationMapper->SetInputConnection( booleanOperation->GetOutputPort() );
++ booleanOperationMapper->ScalarVisibilityOff();
++
++ vtkSmartPointer<vtkActor> booleanOperationActor =
++ vtkSmartPointer<vtkActor>::New();
++ booleanOperationActor->SetMapper( booleanOperationMapper );
++
++ vtkSmartPointer<vtkRenderer> renderer =
++ vtkSmartPointer<vtkRenderer>::New();
++ renderer->AddViewProp(input1Actor);
++ renderer->AddViewProp(input2Actor);
++ renderer->AddViewProp(booleanOperationActor);
++ renderer->SetBackground(.1, .2, .3);
++ vtkSmartPointer<vtkRenderWindow> renderWindow =
++ vtkSmartPointer<vtkRenderWindow>::New();
++ renderWindow->AddRenderer( renderer );
++
++ vtkSmartPointer<vtkRenderWindowInteractor> renWinInteractor =
++ vtkSmartPointer<vtkRenderWindowInteractor>::New();
++ renWinInteractor->SetRenderWindow( renderWindow );
++
++ return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++echo "run: OK"
--- /dev/null
--- /dev/null
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 2.6)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkMath.h>
++
++int main(int, char *[])
++{
++ // Create two points.
++ double p0[3] = {0.0, 0.0, 0.0};
++ double p1[3] = {1.0, 1.0, 1.0};
++
++ // Find the squared distance between the points.
++ double squaredDistance = vtkMath::Distance2BetweenPoints(p0, p1);
++
++ // Take the square root to get the Euclidean distance between the points.
++ double distance = sqrt(squaredDistance);
++
++ // Output the results.
++ std::cout << "SquaredDistance = " << squaredDistance << std::endl;
++ std::cout << "Distance = " << distance << std::endl;
++
++ return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++echo "run: OK"
--- /dev/null
--- /dev/null
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 2.6)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkImageData.h>
++#include <vtkPNGWriter.h>
++#include <vtkSmartPointer.h>
++#include <vtkImageCanvasSource2D.h>
++#include <vtkImageCast.h>
++
++int main(int argc, char *argv[])
++{
++ std::string outputFilename;
++ if( argc > 1)
++ {
++ outputFilename = argv[1];
++ }
++ else
++ {
++ outputFilename = "output.png";
++ }
++
++ int extent[6] = {0, 99, 0, 99, 0, 0};
++ vtkSmartPointer<vtkImageCanvasSource2D> imageSource =
++ vtkSmartPointer<vtkImageCanvasSource2D>::New();
++ imageSource->SetExtent(extent);
++ imageSource->SetScalarTypeToUnsignedChar();
++ imageSource->SetNumberOfScalarComponents(3);
++ imageSource->SetDrawColor(127, 45, 255);
++ imageSource->FillBox(0, 99, 0, 99);
++ imageSource->SetDrawColor(255,255,255);
++ imageSource->FillBox(40, 70, 20, 50);
++ imageSource->Update();
++
++ vtkSmartPointer<vtkImageCast> castFilter =
++ vtkSmartPointer<vtkImageCast>::New();
++ castFilter->SetOutputScalarTypeToUnsignedChar ();
++ castFilter->SetInputConnection(imageSource->GetOutputPort());
++ castFilter->Update();
++
++ vtkSmartPointer<vtkPNGWriter> writer =
++ vtkSmartPointer<vtkPNGWriter>::New();
++ writer->SetFileName(outputFilename.c_str());
++ writer->SetInputConnection(castFilter->GetOutputPort());
++ writer->Write();
++
++ return EXIT_SUCCESS;
++}
++
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++echo "run: OK"
--- /dev/null
--- /dev/null
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 2.6)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkPolyData.h>
++#include <vtkSimplePointsWriter.h>
++#include <vtkSphereSource.h>
++#include <vtkSmartPointer.h>
++
++int main(int argc, char *argv[])
++{
++ vtkSmartPointer<vtkSphereSource> sphereSource =
++ vtkSmartPointer<vtkSphereSource>::New();
++ sphereSource->Update();
++
++ vtkSmartPointer<vtkSimplePointsWriter> writer =
++ vtkSmartPointer<vtkSimplePointsWriter>::New();
++ writer->SetFileName("test.xyz");
++ writer->SetInputConnection(sphereSource->GetOutputPort());
++ writer->Write();
++
++ return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++cat test.xyz
++echo "run: OK"
--- /dev/null
--- /dev/null
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 2.6)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkVersion.h>
++#include <vtkCellArray.h>
++#include <vtkPoints.h>
++#include <vtkXMLPolyDataWriter.h>
++#include <vtkPolyData.h>
++#include <vtkSmartPointer.h>
++
++int main ( int, char *[] )
++{
++ vtkSmartPointer<vtkPoints> points =
++ vtkSmartPointer<vtkPoints>::New();
++
++ for ( unsigned int i = 0; i < 10; ++i )
++ {
++ points->InsertNextPoint ( i, i, i );
++ }
++
++ vtkSmartPointer<vtkPolyData> polydata =
++ vtkSmartPointer<vtkPolyData>::New();
++ polydata->SetPoints(points);
++
++ vtkSmartPointer<vtkXMLPolyDataWriter> writer =
++ vtkSmartPointer<vtkXMLPolyDataWriter>::New();
++ writer->SetFileName("test.vtp");
++#if VTK_MAJOR_VERSION <= 5
++ writer->SetInput(polydata);
++#else
++ writer->SetInputData(polydata);
++#endif
++ writer->Write();
++
++ return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++cat test.vtp
++echo "run: OK"
--- /dev/null
--- /dev/null
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 2.6)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkVersion.h>
++#include <vtkSmartPointer.h>
++#include <vtkTetra.h>
++#include <vtkCellArray.h>
++#include <vtkXMLUnstructuredGridReader.h>
++#include <vtkDataSetMapper.h>
++#include <vtkActor.h>
++#include <vtkRenderer.h>
++#include <vtkRenderWindow.h>
++#include <vtkRenderWindowInteractor.h>
++#include <vtkXMLUnstructuredGridWriter.h>
++#include <vtkUnstructuredGrid.h>
++#include <vtkPointData.h>
++#include <vtkVertexGlyphFilter.h>
++
++int main(int argc, char *argv[])
++{
++ if(argc != 2)
++ {
++ std::cout << "Required arguments: OutputFilename" << std::endl;
++ return EXIT_FAILURE;
++ }
++
++ std::string filename = argv[1];
++
++ vtkSmartPointer<vtkPoints> points =
++ vtkSmartPointer<vtkPoints>::New();
++ points->InsertNextPoint(0, 0, 0);
++ points->InsertNextPoint(1, 0, 0);
++ points->InsertNextPoint(1, 1, 0);
++ points->InsertNextPoint(0, 1, 1);
++
++ vtkSmartPointer<vtkTetra> tetra =
++ vtkSmartPointer<vtkTetra>::New();
++
++ tetra->GetPointIds()->SetId(0, 0);
++ tetra->GetPointIds()->SetId(1, 1);
++ tetra->GetPointIds()->SetId(2, 2);
++ tetra->GetPointIds()->SetId(3, 3);
++
++ vtkSmartPointer<vtkCellArray> cellArray =
++ vtkSmartPointer<vtkCellArray>::New();
++ cellArray->InsertNextCell(tetra);
++
++
++ vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid =
++ vtkSmartPointer<vtkUnstructuredGrid>::New();
++ unstructuredGrid->SetPoints(points);
++ unstructuredGrid->SetCells(VTK_TETRA, cellArray);
++
++ // Write file
++ vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =
++ vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
++ writer->SetFileName(filename.c_str());
++#if VTK_MAJOR_VERSION <= 5
++ writer->SetInput(unstructuredGrid);
++#else
++ writer->SetInputData(unstructuredGrid);
++#endif
++ writer->Write();
++
++ vtkSmartPointer<vtkXMLUnstructuredGridReader> reader =
++ vtkSmartPointer<vtkXMLUnstructuredGridReader>::New();
++ reader->SetFileName(filename.c_str());
++ reader->Update();
++
++ vtkSmartPointer<vtkDataSetMapper> mapper =
++ vtkSmartPointer<vtkDataSetMapper>::New();
++ mapper->SetInputConnection(reader->GetOutputPort());
++
++ vtkSmartPointer<vtkActor> actor =
++ vtkSmartPointer<vtkActor>::New();
++ actor->SetMapper(mapper);
++
++ vtkSmartPointer<vtkRenderer> renderer =
++ vtkSmartPointer<vtkRenderer>::New();
++ vtkSmartPointer<vtkRenderWindow> renderWindow =
++ vtkSmartPointer<vtkRenderWindow>::New();
++ renderWindow->AddRenderer(renderer);
++ vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
++ vtkSmartPointer<vtkRenderWindowInteractor>::New();
++ renderWindowInteractor->SetRenderWindow(renderWindow);
++
++ renderer->AddActor(actor);
++ renderer->SetBackground(.3, .6, .3);
++
++ return EXIT_SUCCESS;
++}
++
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo a.vtu
++cat a.vtu
++echo "run: OK"
--- /dev/null
--- /dev/null
++Tests: buildBoolean buildPoint buildVTU buildDistance buildPNG buildVTP
++Depends: libvtk9-dev, libvtk9-qt-dev, build-essential, cmake
++Restrictions: allow-stderr
--- /dev/null
--- /dev/null
++Name: VTK
++Bug-Database: https://gitlab.kitware.com/vtk/vtk/issues
++Bug-Submit: https://gitlab.kitware.com/vtk/vtk/issues/new
++Documentation: https://vtk.org/documentation/
++Repository: https://gitlab.kitware.com/vtk/vtk.git
++Repository-Browse: https://gitlab.kitware.com/vtk/vtk
++Reference:
++ Author: Schroeder, Will and Martin, Ken and Lorensen, Bill
++ Year: 2006
++ Title: The Visualization Toolkit (4th ed.)
++ ISBN: 978-1-930934-19-1
--- /dev/null
--- /dev/null
++debian/tmp/usr/share/doc/vtk-9.3/doxygen
++debian/build/Utilities/Doxygen/doc/html
--- /dev/null
--- /dev/null
++usr/share/javascript/jquery/jquery.js usr/share/doc/vtk9-doc/html/jquery.js
--- /dev/null
--- /dev/null
++Examples/
--- /dev/null
--- /dev/null
++usr/bin/vtkWrapHierarchy-9.3
++usr/bin/vtkProbeOpenGLVersion-9.3
--- /dev/null
--- /dev/null
++debian/manpages/vtkWrapHierarchy-9.1.1
++debian/manpages/vtkProbeOpenGLVersion-9.1.1
--- /dev/null
--- /dev/null
++version=4
++opts=repacksuffix=+dfsg1,uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a)\d*)$/$1~$2/,dversionmangle=s/\+(debian|dfsg|ds|deb)\d*$// \
++https://github.com/Kitware/VTK/tags .*/v?(9\.\d\S*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))