diff options
28 files changed, 1022 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..129ec19a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,279 @@ +gudhi (3.5.0+dfsg-3) unstable; urgency=medium + + * Add patch to fix building with CGAL 5.5. (Closes: #1017138) + * Standards-version 4.6.1.1. No changes needed. + + -- Gard Spreemann <gspr@nonempty.org> Tue, 16 Aug 2022 16:01:50 +0200 + +gudhi (3.5.0+dfsg-2) unstable; urgency=medium + + * Update d/libgudhi-doc.doc-base to reflect moved docs. + * Rebuild with hera 1.0.0. + + -- Gard Spreemann <gspr@nonempty.org> Sun, 01 May 2022 11:19:32 +0200 + +gudhi (3.5.0+dfsg-1) unstable; urgency=medium + + * New upstream version. + * Rebase patches. + * Drop patches: + - 0005-Install-Python-module-in-correct-location + - 0006-Move-towards-reproducible-builds + - 0007-Turn-positional-argument-into-keyword-argument + * Update copyright ranges. + * Remove some files from files-excluded as they have been dropped + upstream. + * Move HTML documentation to libgudhi-dev's doc directory. + * Add patch to avoid building Doxygen docs from source root. + * Don't build Python modules using CMake. + + -- Gard Spreemann <gspr@nonempty.org> Fri, 14 Jan 2022 19:28:42 +0100 + +gudhi (3.4.1+dfsg-3) unstable; urgency=medium + + * Add patch to turn sklearn positional args into keyword ones, for + compatibility with sklearn 1.0. (Closes: #1002331) + * Standards-version 4.6.0.1. No changes needed. + * Remove tomato test from blacklist. + + -- Gard Spreemann <gspr@nonempty.org> Thu, 23 Dec 2021 16:37:05 +0100 + +gudhi (3.4.1+dfsg-2) unstable; urgency=medium + + * Fix watch file. + * Rebuild with new version of libhera-dev. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 18 Aug 2021 09:22:39 +0200 + +gudhi (3.4.1+dfsg-1) unstable; urgency=medium + + * New upstream version. + * Drop upstreamed patch for CGAL 5.2. + * Drop patch that forces linking with libatomic, it seems no longer to + be needed. + + -- Gard Spreemann <gspr@nonempty.org> Fri, 22 Jan 2021 11:27:48 +0100 + +gudhi (3.4.0+dfsg-2) unstable; urgency=medium + + * Add patch to fix building with CGAL 5.2. (Closes: #978191) + + -- Gard Spreemann <gspr@nonempty.org> Tue, 29 Dec 2020 11:00:12 +0100 + +gudhi (3.4.0+dfsg-1) unstable; urgency=medium + + * New upstream version. + - Disable new test that requires PyTorch and TensorFlow. + * Standards-version 4.5.1, no changes needed. + * Prevent some tests from even loading, as their imports fail. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 17 Dec 2020 14:50:12 +0100 + +gudhi (3.3.0+dfsg-4) unstable; urgency=medium + + * Enable EagerPy support. (Closes: #972686) + - Enable tests that require EagerPy. + * Tune GCC GC to help Ubuntu buildds not run out of memory on arm. + * Disable test that wants to use X. + + -- Gard Spreemann <gspr@nonempty.org> Sun, 01 Nov 2020 14:20:00 +0100 + +gudhi (3.3.0+dfsg-3) unstable; urgency=medium + + * Fix binary-all FTBFS. (Closes: #972267) + + -- Gard Spreemann <gspr@nonempty.org> Fri, 16 Oct 2020 11:11:36 +0200 + +gudhi (3.3.0+dfsg-2) unstable; urgency=medium + + * Treat all Python versions the same way during build. + * Fix broken build with multiple Python versions. (Closes: #972009) + + -- Gard Spreemann <gspr@nonempty.org> Sun, 11 Oct 2020 17:23:10 +0200 + +gudhi (3.3.0+dfsg-1) unstable; urgency=medium + + * New upstream version. + * Drop patch for working around #963955 (bug closed in Qt). + * Build the exported "user version". + * Drop 0008-Don-t-try-to-install-Hera.patch, no longer needed. + * Install collapse utilities. + * Move git to Salsa. + * Tidy up Boost dependencies. + + -- Gard Spreemann <gspr@nonempty.org> Tue, 11 Aug 2020 13:58:59 +0200 + +gudhi (3.2.0+dfsg-4) unstable; urgency=medium + + * Re-enable build-time tests on s390x, no longer failing. + * Simplify autopkgtesting. + * Demote matplotlib and POT to recommends for python3-gudhi. + * Demote libhera-dev to suggests for libgudhi-dev. + + -- Gard Spreemann <gspr@nonempty.org> Fri, 10 Jul 2020 11:14:03 +0200 + +gudhi (3.2.0+dfsg-3) unstable; urgency=medium + + * Enable Wasserstein Python module. (Closes: #949475) + - Depend on python3-pot. + - Drop corresponding patch. + - Don't blacklist Wasserstein tests anymore. + * Recommend POT, SciPy and scikit-learn. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 08 Jul 2020 21:32:32 +0200 + +gudhi (3.2.0+dfsg-2) unstable; urgency=medium + + * Add patch 0010-Work-around-963955.patch to work around FTBFS with + Qt 5.14. + * DH compat level 13. + + -- Gard Spreemann <gspr@nonempty.org> Mon, 29 Jun 2020 13:40:18 +0200 + +gudhi (3.2.0+dfsg-1) unstable; urgency=medium + + * New upstream release. (Closes: #961783) + * Refresh patches. + * Depend on pybind11 and hera. + * Fix broken tests that trivially passed. + + -- Gard Spreemann <gspr@nonempty.org> Sat, 06 Jun 2020 15:12:31 +0200 + +gudhi (3.1.1+dfsg-1) unstable; urgency=medium + + * New upstream bugfix release. + + -- Gard Spreemann <gspr@nonempty.org> Fri, 07 Feb 2020 18:04:44 +0100 + +gudhi (3.1.0+dfsg-2) unstable; urgency=medium + + * Require PyTest for autopkgtests. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 22 Jan 2020 11:16:38 +0100 + +gudhi (3.1.0+dfsg-1) unstable; urgency=medium + + * Allow forcing parallel builds for local use. + * Standards-version 4.5.0.0. No changes needed. + * New upstream release. + + -- Gard Spreemann <gspr@nonempty.org> Tue, 21 Jan 2020 10:26:33 +0100 + +gudhi (3.0.0+dfsg-4) unstable; urgency=medium + + * Drop 0003-Don-t-set-runtime-library-dirs-for-Python-extensions.patch + in favor of CMake option. + * Disable parallel builds. A lot of buildds seem to be swapping out, and + some Ubuntu ones run out of memory outright. (Closes: #945226) + * Standards-version 4.4.1. No changes needed. + * Drop 0004-Force-linking-of-Python-module-with-CGAL.patch since CGAL is + now header-only. + * Add 0007-Move-towards-reproducible-builds.patch to move towards + reproducible builds. + + -- Gard Spreemann <gspr@nonempty.org> Tue, 10 Dec 2019 14:33:51 +0100 + +gudhi (3.0.0+dfsg-3) unstable; urgency=medium + + * Disable build-time tests on i386 and s390x. + * Drop support for mipsel due to failure to build because of too little + addressable memory. This introduces an explicit architecture list for + the packages. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 30 Oct 2019 09:27:19 +0100 + +gudhi (3.0.0+dfsg-2) unstable; urgency=medium + + * Fix binary-arch build. + * Disable parallel building also on i386. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 23 Oct 2019 22:18:22 +0200 + +gudhi (3.0.0+dfsg-1) unstable; urgency=medium + + * New upstream: + - Python interface for sparse Rips complexes. + - New C++ interface for alpha complexes. + * Standards-version 4.4.0. No changes needed. + * DH compat 12. + * Declare Rules-Requires-Root: no. + * Change maintainer email address. + * Refresh patches for new version. + - Drop 0008-Propagate-CXXFLAGS-when-building-Python-modules.patch, seems no + longer needed. + - Add 0008-Install-Python-module-in-correct-location.patch to install Python + modules in correct location. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 23 Oct 2019 11:47:25 +0200 + +gudhi (2.3.0+dfsg-2) unstable; urgency=medium + + * Disable parallel building on certain architectures to avoid buildds + running out of memory. + * New patch to properly propagate CXXFLAGS when building the Python + modules. + + -- Gard Spreemann <gspreemann@gmail.com> Fri, 05 Oct 2018 17:05:03 +0200 + +gudhi (2.3.0+dfsg-1) unstable; urgency=medium + + * New upstream release: + - Python interface for GIC. + * Refresh patches: + - Expand patch to disable new tests that rely on DFSG-deleted data. + * Standards-version 4.2.1. No changes needed. + + -- Gard Spreemann <gspreemann@gmail.com> Tue, 11 Sep 2018 16:10:44 +0200 + +gudhi (2.2.0+dfsg-3) unstable; urgency=medium + + * Fix build of bindings for multiple Python versions when building just + binary-arch. + * Test all supported Python (3) versions. + + -- Gard Spreemann <gspreemann@gmail.com> Tue, 14 Aug 2018 13:45:43 +0200 + +gudhi (2.2.0+dfsg-2) unstable; urgency=medium + + * Build Python bindings for all supported Python (3) versions. + * Drop patch forcing Python 3 detection. Upstream has cmake option for + selecting Python version. + * Standards-version 4.2.0. No changes needed. + + -- Gard Spreemann <gspreemann@gmail.com> Tue, 07 Aug 2018 13:47:38 +0200 + +gudhi (2.2.0+dfsg-1) unstable; urgency=medium + + * New upstream release. + - Čech complex. + - New functionality for the Rips complex. + * Refresh patches: + - Drop floating point precision workaround patch (fixed upstream). + - Drop CGAL 4.12 compatibility patch (fixed upstream). + * Streamline the copyright information a bit. + * Bump CMake build-dep to 3.1. + * New upstream utilities in gudhi-utils. + + -- Gard Spreemann <gspreemann@gmail.com> Fri, 22 Jun 2018 10:12:19 +0200 + +gudhi (2.1.0+dfsg-3) unstable; urgency=medium + + * Add patch for floating point rounding problem on some architectures. + * Add patch that forces linking against libatomic. This hopefully fixes + building on MIPS et al. + * Install utilities (gudhi-utils). + + -- Gard Spreemann <gspreemann@gmail.com> Thu, 14 Jun 2018 20:07:51 +0200 + +gudhi (2.1.0+dfsg-2) unstable; urgency=medium + + * Add patches for CGAL 4.12 compatibility. + * Bump standards-version to 4.1.4. No changes needed. + + -- Gard Spreemann <gspreemann@gmail.com> Thu, 24 May 2018 11:46:12 +0200 + +gudhi (2.1.0+dfsg-1) unstable; urgency=medium + + * Initial packaging. (Closes: #840686) + + -- Gard Spreemann <gspreemann@gmail.com> Sun, 25 Mar 2018 23:52:14 +0200 diff --git a/debian/clean b/debian/clean new file mode 100644 index 00000000..1258531f --- /dev/null +++ b/debian/clean @@ -0,0 +1,2 @@ +GUDHIVersion.cmake +doc/html/ diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..627bc8dd --- /dev/null +++ b/debian/control @@ -0,0 +1,142 @@ +Source: gudhi +Maintainer: Gard Spreemann <gspr@nonempty.org> +Section: math +Priority: optional +Standards-Version: 4.6.1.1 +Build-Depends: cmake (>= 3.5), + cython3, + debhelper-compat (= 13), + dh-python, + libboost-filesystem-dev (>= 1.56), + libboost-program-options-dev (>= 1.56), + libboost-system-dev (>= 1.56), + libboost-test-dev (>= 1.56), + libboost-thread-dev (>= 1.56), + libboost-timer-dev (>= 1.56), + libcgal-dev (>= 5.0), + libcgal-qt5-dev (>> 4.11.0), + libeigen3-dev, + libgmp-dev, + libhera-dev (>= 1.0.0), + libqglviewer-dev-qt5, + libtbb-dev, + pybind11-dev, + python3-all-dev, + python3-eagerpy, + python3-matplotlib, + python3-numpy, + python3-pot, + python3-pybind11, + python3-pytest, + python3-scipy, + python3-setuptools, + python3-sklearn, + python3-tk, + qtbase5-dev +Build-Depends-Indep: doxygen, + graphviz +Rules-Requires-Root: no +Homepage: https://gudhi.inria.fr/ +Vcs-Browser: https://salsa.debian.org/gspr/gudhi +Vcs-Git: https://salsa.debian.org/gspr/gudhi.git -b debian/sid + +Package: libgudhi-dev +Section: libdevel +Architecture: all +Multi-Arch: foreign +Depends: libboost-filesystem-dev (>= 1.56), + libboost-program-options-dev (>= 1.56), + libboost-system-dev (>= 1.56), + libboost-test-dev (>= 1.56), + libboost-thread-dev (>= 1.56), + libboost-timer-dev (>= 1.56), + libcgal-dev (>= 5.0), + libeigen3-dev (>= 3.1.0), + libgmp-dev (>= 4.2), + libtbb-dev, + ${misc:Depends} +Suggests: libgudhi-doc, libgudhi-examples, libhera-dev +Description: Generic open source C++ library for topological data analysis + The GUDHI library is a generic open source C++ library for + Topological Data Analysis (TDA) and Higher Dimensional Geometry + Understanding. The library offers state-of-the-art data structures + and algorithms to construct simplicial complexes and compute + persistent homology. + . + This package contains the header files. See the libgudhi-examples + package for example programs using the library. + +Package: libgudhi-examples +Section: misc +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends} +Suggests: libgudhi-dev, libgudhi-doc +Description: Example programs for the GUDHI library + The GUDHI library is a generic open source C++ library for + Topological Data Analysis (TDA) and Higher Dimensional Geometry + Understanding. The library offers state-of-the-art data structures + and algorithms to construct simplicial complexes and compute + persistent homology. + . + This package contains some source code examples. + +Package: libgudhi-doc +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: libjs-mathjax, ${misc:Depends} +Description: Documentation for the GUDHI library + The GUDHI library is a generic open source C++ library for + Topological Data Analysis (TDA) and Higher Dimensional Geometry + Understanding. The library offers state-of-the-art data structures + and algorithms to construct simplicial complexes and compute + persistent homology. + . + This package contains documentation. + +Package: python3-gudhi +Section: python +Architecture: amd64 arm64 i386 mips64el ppc64el s390x ia64 ppc64 riscv64 sparc64 x32 +Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} +Recommends: python3-eagerpy, + python3-matplotlib, + python3-pot, + python3-scipy, + python3-sklearn +Description: Python 3 interface to the GUDHI library + The GUDHI library is a generic open source C++ library for + Topological Data Analysis (TDA) and Higher Dimensional Geometry + Understanding. The library offers state-of-the-art data structures + and algorithms to construct simplicial complexes and compute + persistent homology. + . + This package contains GUDHI's Python (3) interface. + +Package: gudhui +Section: math +Architecture: amd64 arm64 i386 mips64el ppc64el s390x ia64 ppc64 riscv64 sparc64 x32 +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: GUI for some of the functionality of the GUDHI library + The GUDHI library is a generic open source C++ library for + Topological Data Analysis (TDA) and Higher Dimensional Geometry + Understanding. The library offers state-of-the-art data structures + and algorithms to construct simplicial complexes and compute + persistent homology. + . + This package contains GudhUI, a graphical interface to a few of GUDHI's + features. Be aware that it is quite rough around the edges. + +Package: gudhi-utils +Section: math +Architecture: amd64 arm64 i386 mips64el ppc64el s390x ia64 ppc64 riscv64 sparc64 x32 +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Utilities from the GUDHI library + The GUDHI library is a generic open source C++ library for + Topological Data Analysis (TDA) and Higher Dimensional Geometry + Understanding. The library offers state-of-the-art data structures + and algorithms to construct simplicial complexes and compute + persistent homology. + . + This package contains some utilities built with the GUDHI library. + diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..8bdb7d64 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,104 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: gudhi +Files-Excluded: data/points/COIL_database data/points/SO3* data/points/human* +Source: https://gudhi.inria.fr/ +Comment: Deleted upstream data files of unclear licensing status for DFSG + repack. + . + Most of the GUDHI project is licensed under the MIT license, but certain parts + of the code rely on GPL-3+ code. The Debian binaries are thus licensed as + GPL-3+. +License: GPL-3+ + +Files: * +Copyright: 2014-2022 Inria +License: MIT + +Files: src/common/include/gudhi/writing_persistence_to_file.h +Copyright: 2017 Swansea University +License: MIT + +Files: src/Cech_complex/include/gudhi/Miniball* +Copyright: 1999-2013 Bernd Gärtner +License: GPL-3+ + +Files: src/cmake/modules/FindEigen3.cmake +Copyright: 2006, 2007 Montel Laurent <montel@kde.org> + 2008, 2009 Gael Guennebaud <g.gael@free.fr> + 2009 Benoit Jacob <jacob.benoit.1@gmail.com> +License: BSD-2-clause + +Files: src/cmake/modules/FindTBB.cmake +Copyright: 2011 Hannes Hofmann +License: MIT + +Files: src/Nerve_GIC/utilities/km.py* +Copyright: 2015 Triskelion - HJ van Veen <info@mlwave.com> +License: MIT + +Files: debian/* +Copyright: 2016-2022 Gard Spreemann <gspr@nonempty.org> +License: GPL-3+ + +License: GPL-3+ + 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 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". + +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: + . + 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. + . + 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 + HOLDER 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: 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. diff --git a/debian/gudhi-utils.1 b/debian/gudhi-utils.1 new file mode 100644 index 00000000..2cb654a5 --- /dev/null +++ b/debian/gudhi-utils.1 @@ -0,0 +1,18 @@ +.TH "gudhi-utils" 1 +.SH NAME +gudhi-utils \- utilities built with the GUDHI library +.SH SYNOPSIS +.B gudhi-* +[\fIoptions\fR] +.SH DESCRIPTION +The +.B gudhi-* +programs are a collection of utilities built around the GUDHI library +for topological data analysis. Each individual one currently lacks a +man page, but they will all print informative help texts describing +usage if run with no arguments. +.SH ARGUMENTS +.TP +.BR options +The options differ for each individual program. Run them without any +arguments to see a help text describing the options. diff --git a/debian/gudhi-utils.install b/debian/gudhi-utils.install new file mode 100644 index 00000000..71e8eb9f --- /dev/null +++ b/debian/gudhi-utils.install @@ -0,0 +1 @@ +debian/tmp/usr/bin/gudhi-* usr/bin/ diff --git a/debian/gudhui.1 b/debian/gudhui.1 new file mode 100644 index 00000000..53ce0867 --- /dev/null +++ b/debian/gudhui.1 @@ -0,0 +1,12 @@ +.TH GUDHUI 1 "" "" "" +.SH NAME +GudhUI \- graphical interface for some of the GUDHI library's features +.SH SYNOPSIS +.B gudhui +[\fIQt options\fR] +.SH DESCRIPTION +.B gudhui +is a graphical interface for some of the GUDHI library's features. It +can aid the exploratory steps of topological data analysis. +.SH OPTIONS +The program accepts only standard Qt options. diff --git a/debian/gudhui.install b/debian/gudhui.install new file mode 100644 index 00000000..9f140378 --- /dev/null +++ b/debian/gudhui.install @@ -0,0 +1 @@ +debian/tmp/usr/bin/gudhui diff --git a/debian/gudhui.manpages b/debian/gudhui.manpages new file mode 100644 index 00000000..4ffbdc9f --- /dev/null +++ b/debian/gudhui.manpages @@ -0,0 +1 @@ +debian/gudhui.1
\ No newline at end of file diff --git a/debian/libgudhi-dev.docs b/debian/libgudhi-dev.docs new file mode 100644 index 00000000..3d523db3 --- /dev/null +++ b/debian/libgudhi-dev.docs @@ -0,0 +1 @@ +biblio diff --git a/debian/libgudhi-dev.install b/debian/libgudhi-dev.install new file mode 100644 index 00000000..953f5aab --- /dev/null +++ b/debian/libgudhi-dev.install @@ -0,0 +1 @@ +build/userversion/include/gudhi/ usr/include/ diff --git a/debian/libgudhi-doc.doc-base b/debian/libgudhi-doc.doc-base new file mode 100644 index 00000000..45906e52 --- /dev/null +++ b/debian/libgudhi-doc.doc-base @@ -0,0 +1,8 @@ +Document: libgudhi-doc +Title: GUDHI C++ library manual +Abstract: This Doxygen manual describes the GUDHI C++ API +Section: Science/Mathematics + +Format: HTML +Index: /usr/share/doc/libgudhi-dev/html/index.html +Files: /usr/share/doc/libgudhi-dev/html/*.html diff --git a/debian/libgudhi-doc.install b/debian/libgudhi-doc.install new file mode 100644 index 00000000..01b42af4 --- /dev/null +++ b/debian/libgudhi-doc.install @@ -0,0 +1 @@ +build/userversion/html/* usr/share/doc/libgudhi-dev/html/ diff --git a/debian/libgudhi-examples.docs b/debian/libgudhi-examples.docs new file mode 100644 index 00000000..253d5377 --- /dev/null +++ b/debian/libgudhi-examples.docs @@ -0,0 +1 @@ +debian/tmp/usr/share/doc/libgudhi-examples/* diff --git a/debian/patches/0001-Disable-tests-that-use-DFSG-deleted-data-files.patch b/debian/patches/0001-Disable-tests-that-use-DFSG-deleted-data-files.patch new file mode 100644 index 00000000..82abd0ed --- /dev/null +++ b/debian/patches/0001-Disable-tests-that-use-DFSG-deleted-data-files.patch @@ -0,0 +1,88 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Wed, 25 Sep 2019 15:12:45 +0200 +Subject: Disable tests that use DFSG-deleted data files. + +--- + src/Nerve_GIC/example/CMakeLists.txt | 5 ----- + src/Nerve_GIC/utilities/CMakeLists.txt | 8 -------- + src/python/CMakeLists.txt | 29 ----------------------------- + 3 files changed, 42 deletions(-) + +diff --git a/src/Nerve_GIC/example/CMakeLists.txt b/src/Nerve_GIC/example/CMakeLists.txt +index 4b0f467..110212d 100644 +--- a/src/Nerve_GIC/example/CMakeLists.txt ++++ b/src/Nerve_GIC/example/CMakeLists.txt +@@ -12,14 +12,9 @@ if (NOT CGAL_VERSION VERSION_LESS 4.11.0) + + # Copy files for not to pollute sources when testing + file(COPY "${CMAKE_SOURCE_DIR}/data/points/tore3D_1307.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- file(COPY "${CMAKE_SOURCE_DIR}/data/points/COIL_database/lucky_cat.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- file(COPY "${CMAKE_SOURCE_DIR}/data/points/COIL_database/lucky_cat_PCA1" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) + + add_test(NAME Nerve_GIC_example_CoordGIC COMMAND $<TARGET_FILE:CoordGIC> + "${CMAKE_CURRENT_BINARY_DIR}/tore3D_1307.off" "0") + +- add_test(NAME Nerve_GIC_example_FuncGIC COMMAND $<TARGET_FILE:FuncGIC> +- "${CMAKE_CURRENT_BINARY_DIR}/lucky_cat.off" +- "${CMAKE_CURRENT_BINARY_DIR}/lucky_cat_PCA1") + + endif (NOT CGAL_VERSION VERSION_LESS 4.11.0) +diff --git a/src/Nerve_GIC/utilities/CMakeLists.txt b/src/Nerve_GIC/utilities/CMakeLists.txt +index 65a08d9..3f16db9 100644 +--- a/src/Nerve_GIC/utilities/CMakeLists.txt ++++ b/src/Nerve_GIC/utilities/CMakeLists.txt +@@ -11,14 +11,6 @@ if (NOT CGAL_VERSION VERSION_LESS 4.11.0) + endif() + + file(COPY KeplerMapperVisuFromTxtFile.py km.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- # Copy files for not to pollute sources when testing +- file(COPY "${CMAKE_SOURCE_DIR}/data/points/human.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- +- add_test(NAME Nerve_GIC_utilities_nerve COMMAND $<TARGET_FILE:Nerve> +- "human.off" "2" "10" "0.3") +- +- add_test(NAME Nerve_GIC_utilities_VoronoiGIC COMMAND $<TARGET_FILE:VoronoiGIC> +- "human.off" "100") + + install(TARGETS Nerve DESTINATION bin) + install(TARGETS VoronoiGIC DESTINATION bin) +diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt +index 1314b44..7edac67 100644 +--- a/src/python/CMakeLists.txt ++++ b/src/python/CMakeLists.txt +@@ -414,35 +414,6 @@ if(PYTHONINTERP_FOUND) + + add_gudhi_py_test(test_bottleneck_distance) + +- # Cover complex +- file(COPY ${CMAKE_SOURCE_DIR}/data/points/human.off DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- file(COPY ${CMAKE_SOURCE_DIR}/data/points/COIL_database/lucky_cat.off DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- file(COPY ${CMAKE_SOURCE_DIR}/data/points/COIL_database/lucky_cat_PCA1 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +- add_test(NAME cover_complex_nerve_example_py_test +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" +- ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/nerve_of_a_covering.py" +- -f human.off -c 2 -r 10 -g 0.3) +- +- add_test(NAME cover_complex_coordinate_gic_example_py_test +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" +- ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/coordinate_graph_induced_complex.py" +- -f human.off -c 0 -v) +- +- add_test(NAME cover_complex_functional_gic_example_py_test +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" +- ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/functional_graph_induced_complex.py" +- -o lucky_cat.off +- -f lucky_cat_PCA1 -v) +- +- add_test(NAME cover_complex_voronoi_gic_example_py_test +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" +- ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/voronoi_graph_induced_complex.py" +- -f human.off -n 700 -v) +- + add_gudhi_py_test(test_cover_complex) + endif (NOT CGAL_VERSION VERSION_LESS 4.11.0) + diff --git a/debian/patches/0002-Use-system-MathJax.patch b/debian/patches/0002-Use-system-MathJax.patch new file mode 100644 index 00000000..8123a42d --- /dev/null +++ b/debian/patches/0002-Use-system-MathJax.patch @@ -0,0 +1,21 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Wed, 25 Sep 2019 15:14:13 +0200 +Subject: Use system MathJax. + +--- + src/Doxyfile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Doxyfile.in b/src/Doxyfile.in +index ae8db1a..9f697a5 100644 +--- a/src/Doxyfile.in ++++ b/src/Doxyfile.in +@@ -1526,7 +1526,7 @@ MATHJAX_FORMAT = HTML-CSS + # The default value is: http://cdn.mathjax.org/mathjax/latest. + # This tag requires that the tag USE_MATHJAX is set to YES. + +-MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2 ++MATHJAX_RELPATH = /usr/share/javascript/mathjax + + # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax + # extension names that should be enabled during MathJax rendering. For example diff --git a/debian/patches/0003-Offline-header-for-docs.patch b/debian/patches/0003-Offline-header-for-docs.patch new file mode 100644 index 00000000..01b58c29 --- /dev/null +++ b/debian/patches/0003-Offline-header-for-docs.patch @@ -0,0 +1,21 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Wed, 25 Sep 2019 15:19:14 +0200 +Subject: Offline header for docs. + +--- + src/Doxyfile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Doxyfile.in b/src/Doxyfile.in +index 9f697a5..4b6d792 100644 +--- a/src/Doxyfile.in ++++ b/src/Doxyfile.in +@@ -1127,7 +1127,7 @@ HTML_FILE_EXTENSION = .html + # of the possible markers and block names see the documentation. + # This tag requires that the tag GENERATE_HTML is set to YES. + +-HTML_HEADER = @GUDHI_DOXYGEN_COMMON_DOC_PATH@/header.html ++HTML_HEADER = @GUDHI_DOXYGEN_COMMON_DOC_PATH@/offline_header.html + + # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each + # generated HTML page. If the tag is left blank doxygen will generate a standard diff --git a/debian/patches/0004-Disable-Sphinx.patch b/debian/patches/0004-Disable-Sphinx.patch new file mode 100644 index 00000000..de66bbfb --- /dev/null +++ b/debian/patches/0004-Disable-Sphinx.patch @@ -0,0 +1,20 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Tue, 21 Jan 2020 10:36:48 +0100 +Subject: Disable Sphinx. + +--- + src/cmake/modules/GUDHI_third_party_libraries.cmake | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/cmake/modules/GUDHI_third_party_libraries.cmake b/src/cmake/modules/GUDHI_third_party_libraries.cmake +index 21c9d47..d22697c 100644 +--- a/src/cmake/modules/GUDHI_third_party_libraries.cmake ++++ b/src/cmake/modules/GUDHI_third_party_libraries.cmake +@@ -148,7 +148,6 @@ if( PYTHONINTERP_FOUND ) + find_python_module("matplotlib") + find_python_module("numpy") + find_python_module("scipy") +- find_python_module("sphinx") + find_python_module("sklearn") + find_python_module("ot") + find_python_module("pybind11") diff --git a/debian/patches/0005-Don-t-process-the-entire-source-tree-with-Doxygen.patch b/debian/patches/0005-Don-t-process-the-entire-source-tree-with-Doxygen.patch new file mode 100644 index 00000000..bb9c622d --- /dev/null +++ b/debian/patches/0005-Don-t-process-the-entire-source-tree-with-Doxygen.patch @@ -0,0 +1,21 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Fri, 14 Jan 2022 19:28:15 +0100 +Subject: Don't process the entire source tree with Doxygen + +--- + src/Doxyfile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Doxyfile.in b/src/Doxyfile.in +index 4b6d792..8b38967 100644 +--- a/src/Doxyfile.in ++++ b/src/Doxyfile.in +@@ -783,7 +783,7 @@ WARN_LOGFILE = + # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING + # Note: If this tag is empty the current directory is searched. + +-INPUT = @CMAKE_SOURCE_DIR@ ++INPUT = + + # This tag can be used to specify the character encoding of the source files + # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/debian/patches/0006-CGAL-5.5-compatibility.patch b/debian/patches/0006-CGAL-5.5-compatibility.patch new file mode 100644 index 00000000..a5d28944 --- /dev/null +++ b/debian/patches/0006-CGAL-5.5-compatibility.patch @@ -0,0 +1,78 @@ +From: Vincent Rouvreau <vincent.rouvreau@inria.fr> +Date: Tue, 9 Aug 2022 16:06:06 +0200 +Subject: CGAL 5.5 compatibility + +Based on upstream commits + + dc7a0aed53d7b74580ed5625293e27cacd452c34 + 71cbf8f35814d247fe7421c079a6ea78da2282f4 + +with modifications from discussion in + + https://github.com/CGAL/cgal/issues/6799 +--- + .../include/gudhi/Skeleton_blocker_contractor.h | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + +diff --git a/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h b/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h +index a0d9f2b..d510043 100644 +--- a/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h ++++ b/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h +@@ -171,8 +171,13 @@ typename GeometricSimplifiableComplex::Vertex_handle> { + Self const* algorithm_; + }; + ++#if CGAL_VERSION_NR < 1050500000 + typedef CGAL::Modifiable_priority_queue<Edge_handle, Compare_cost, Undirected_edge_id> PQ; +- typedef typename PQ::handle pq_handle; ++#else ++ typedef CGAL::Modifiable_priority_queue<Edge_handle, Compare_cost, Undirected_edge_id, CGAL::CGAL_BOOST_PAIRING_HEAP> PQ; ++#endif ++ ++ typedef bool pq_handle; + + + // An Edge_data is associated with EVERY edge in the complex (collapsible or not). +@@ -196,7 +201,7 @@ typename GeometricSimplifiableComplex::Vertex_handle> { + } + + bool is_in_PQ() const { +- return PQHandle_ != PQ::null_handle(); ++ return PQHandle_ != false; + } + + void set_PQ_handle(pq_handle h) { +@@ -204,7 +209,7 @@ typename GeometricSimplifiableComplex::Vertex_handle> { + } + + void reset_PQ_handle() { +- PQHandle_ = PQ::null_handle(); ++ PQHandle_ = false; + } + + private: +@@ -238,16 +243,22 @@ typename GeometricSimplifiableComplex::Vertex_handle> { + } + + void insert_in_PQ(Edge_handle edge, Edge_data& data) { +- data.set_PQ_handle(heap_PQ_->push(edge)); ++ heap_PQ_->push(edge); ++ data.set_PQ_handle(true); + ++current_num_edges_heap_; + } + + void update_in_PQ(Edge_handle edge, Edge_data& data) { ++#if CGAL_VERSION_NR < 1050500000 + data.set_PQ_handle(heap_PQ_->update(edge, data.PQ_handle())); ++#else ++ heap_PQ_->update(edge); ++#endif + } + + void remove_from_PQ(Edge_handle edge, Edge_data& data) { +- data.set_PQ_handle(heap_PQ_->erase(edge, data.PQ_handle())); ++ heap_PQ_->erase(edge); ++ data.set_PQ_handle(false); + --current_num_edges_heap_; + } + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..5c95e702 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,6 @@ +0001-Disable-tests-that-use-DFSG-deleted-data-files.patch +0002-Use-system-MathJax.patch +0003-Offline-header-for-docs.patch +0004-Disable-Sphinx.patch +0005-Don-t-process-the-entire-source-tree-with-Doxygen.patch +0006-CGAL-5.5-compatibility.patch diff --git a/debian/python3-gudhi.install b/debian/python3-gudhi.install new file mode 100644 index 00000000..b6a91df9 --- /dev/null +++ b/debian/python3-gudhi.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/python3/ diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..ae189c06 --- /dev/null +++ b/debian/rules @@ -0,0 +1,139 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) +CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) +LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) + +TMPBIN:=debian/tmp/usr/bin + +HERA_FLAGS:=-DHERA_BOTTLENECK_INCLUDE_DIR=/usr/include/hera/bottleneck -DHERA_WASSERSTEIN_INCLUDE_DIR=/usr/include/hera/wasserstein + +PY3VERS:=$(shell py3versions -vs) + +DHFLAGS+=--buildsystem=cmake + +# To fix #945226, we turn off parallel builds everywhere, except if +# someone explicitly wants them enabled by setting the environment +# variable ALLOW_PARALLEL. +ifeq (, $(ALLOW_PARALLEL)) + DHFLAGS+=--no-parallel +endif + +# The buildds run out of memory on some architectures. On those, we +# tune the GCC garbage collector and force non-parallel building. +ifneq (, $(filter $(shell dpkg-architecture --query DEB_BUILD_ARCH),armhf arm64 i386 mips mipsel m68k powerpcspe x32)) + export DEB_CXXFLAGS_MAINT_APPEND = --param ggc-min-expand=5 +# We have disabled parallel builds in general now. Consider disabling +# for certain architectures if it's reenabled globally. +# DHFLAGS+=--no-parallel +endif + +# Disable tests on i386 due to rounding problem in some. See upstream GitHub issue #118. +ifneq (, $(filter $(shell dpkg-architecture --query DEB_BUILD_ARCH),i386 x32)) + export DEB_BUILD_MAINT_OPTIONS := $(DEB_BUILD_MAINT_OPTIONS) nocheck +endif + +%: + dh $@ $(DHFLAGS) --with=python3 + +execute_before_dh_auto_configure: + dh_auto_configure $(DHFLAGS) --builddirectory=build -- -DWITH_GUDHI_BENCHMARK=true -DWITH_GUDHI_EXAMPLE=true -DWITH_GUDHI_PYTHON=false -DWITH_GUDHI_TEST=true -DWITH_GUDHI_UTILITIES=true -DUSER_VERSION_DIR=userversion $(HERA_FLAGS) + make -C build user_version + for py3ver in $(PY3VERS) ; do \ + dh_auto_configure $(DHFLAGS) --builddirectory=build-py$$py3ver -- -DWITH_GUDHI_BENCHMARK=false -DWITH_GUDHI_EXAMPLE=false -DWITH_GUDHI_PYTHON=true -DWITH_GUDHI_TEST=true -DWITH_GUDHI_UTILITIES=false -DPython_ADDITIONAL_VERSIONS=$$py3ver -DUSER_VERSION_DIR=userversion -DWITH_GUDHI_PYTHON_RUNTIME_LIBRARY_DIRS=false $(HERA_FLAGS) ; \ + make -C build-py$$py3ver user_version ; \ + done + +override_dh_auto_configure: + dh_auto_configure $(DHFLAGS) --builddirectory=build/userversion -- -DWITH_GUDHI_BENCHMARK=true -DWITH_GUDHI_EXAMPLE=true -DWITH_GUDHI_PYTHON=false -DWITH_GUDHI_TEST=true -DWITH_GUDHI_UTILITIES=true $(HERA_FLAGS) + for py3ver in $(PY3VERS) ; do \ + dh_auto_configure $(DHFLAGS) --builddirectory=build-py$$py3ver/userversion -- -DWITH_GUDHI_BENCHMARK=false -DWITH_GUDHI_EXAMPLE=false -DWITH_GUDHI_PYTHON=true -DWITH_GUDHI_TEST=true -DWITH_GUDHI_UTILITIES=false -DPython_ADDITIONAL_VERSIONS=$$py3ver -DWITH_GUDHI_PYTHON_RUNTIME_LIBRARY_DIRS=false $(HERA_FLAGS) ; \ + done + +override_dh_auto_build-arch: + dh_auto_build $(DHFLAGS) --builddirectory=build/userversion + for py3ver in $(PY3VERS) ; do \ + cd build-py$$py3ver/userversion/src/python ; \ + /usr/bin/python$$py3ver setup.py build ; \ + done + +override_dh_auto_build-indep: + make -C build/userversion doxygen + +override_dh_auto_test-indep: + +override_dh_auto_test-arch: +# I believe this should be handled automatically by dh_auto_test, +# but see #901678. +ifeq (, $(filter nocheck,$(DEB_BUILD_MAINT_OPTIONS))) + dh_auto_test $(DHFLAGS) --no-parallel --builddirectory=build/userversion +else + @echo "Skipping tests due to nocheck flag." +endif + +override_dh_auto_install-arch: + dh_auto_install $(DHFLAGS) --builddirectory=build/userversion + for py3ver in $(PY3VERS) ; do \ + cd build-py$$py3ver/userversion/src/python ; \ + /usr/bin/python$$py3ver setup.py install --root=../../../../debian/tmp --single-version-externally-managed --install-layout=deb ; \ + done + + mv $(TMPBIN)/Nerve \ + $(TMPBIN)/gudhi-nerve + mv $(TMPBIN)/VoronoiGIC \ + $(TMPBIN)/gudhi-voronoi-gic + mv $(TMPBIN)/Witness_complex_strong_witness_persistence \ + $(TMPBIN)/gudhi-witness-complex-strong-witness-persistence + mv $(TMPBIN)/Witness_complex_weak_witness_persistence \ + $(TMPBIN)/gudhi-witness-complex-weak-witness-persistence + mv $(TMPBIN)/alpha_complex_3d_persistence \ + $(TMPBIN)/gudhi-alpha-complex-3d-persistence + mv $(TMPBIN)/alpha_complex_persistence \ + $(TMPBIN)/gudhi-alpha-complex-persistence + mv $(TMPBIN)/bottleneck_distance \ + $(TMPBIN)/gudhi-bottleneck-distance + mv $(TMPBIN)/cech_persistence \ + $(TMPBIN)/gudhi-cech-persistence + mv $(TMPBIN)/cubical_complex_persistence \ + $(TMPBIN)/gudhi-cubical-complex-persistence + mv $(TMPBIN)/off_file_from_shape_generator \ + $(TMPBIN)/gudhi-off-file-from-shape-generator + mv $(TMPBIN)/periodic_cubical_complex_persistence \ + $(TMPBIN)/gudhi-periodic-cubical-complex-persistence + mv $(TMPBIN)/rips_correlation_matrix_persistence \ + $(TMPBIN)/gudhi-rips-correlation-matrix-persistence + mv $(TMPBIN)/rips_distance_matrix_persistence \ + $(TMPBIN)/gudhi-rips-distance-matrix-persistence + mv $(TMPBIN)/rips_persistence \ + $(TMPBIN)/gudhi-rips-persistence + mv $(TMPBIN)/sparse_rips_persistence \ + $(TMPBIN)/gudhi-sparse-rips-persistence + mv $(TMPBIN)/distance_matrix_edge_collapse_rips_persistence \ + $(TMPBIN)/gudhi-distance-matrix-edge-collapse-rips-persistence + mv $(TMPBIN)/point_cloud_edge_collapse_rips_persistence \ + $(TMPBIN)/gudhi-point-cloud-edge-collapse-rips-persistence + + mv $(TMPBIN)/GudhUI $(TMPBIN)/gudhui + +override_dh_auto_install-indep: + find src -type f -path '*/example/*' \( -name '*.cpp' -o \( -name '*.txt' -a ! -iname 'cmake*' \) \) -exec sh -c 'name=$$(echo $$0 | sed s/src\\/// | sed s/example\\///); install -D -m 644 $$0 debian/tmp/usr/share/doc/libgudhi-examples/$$name' {} \; + + # Remove installed information about Miniball header. + rm build/userversion/include/gudhi/Miniball.COPYRIGHT + rm build/userversion/include/gudhi/Miniball.README + +override_dh_compress: + dh_compress -X.cpp + +override_dh_install: + dh_install -X__pycache__ -X.pyc -X.pyo + +override_dh_missing: + dh_missing --list-missing + +override_dh_python3: + for py3ver in $(PY3VERS) ; do \ + dh_python3 -O--builddirectory=build-py$$py3ver/userversion ; \ + done + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 00000000..d5970de3 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,3 @@ +Tests: python-upstream.sh +Depends: python3-all, python3-eagerpy, python3-gudhi, python3-matplotlib, python3-pot, python3-pytest, python3-scipy, python3-sklearn, python3-tk +Restrictions: allow-stderr
\ No newline at end of file diff --git a/debian/tests/python-upstream.sh b/debian/tests/python-upstream.sh new file mode 100755 index 00000000..36d5031c --- /dev/null +++ b/debian/tests/python-upstream.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -e +set -u + +helper=$PWD/debian/tests/upstream.py +testdir=$PWD/src/python/test +cp $helper $AUTOPKGTEST_TMP +cp -R $testdir $AUTOPKGTEST_TMP +cd $AUTOPKGTEST_TMP + +rm -f test/test_dtm.py # Imports torch too early. + +for py3ver in $(py3versions -vs) +do + echo "Running tests with Python ${py3ver}." + /usr/bin/python${py3ver} -B upstream.py test + rm -rf .pytest_cache + echo "**********" +done diff --git a/debian/tests/upstream.py b/debian/tests/upstream.py new file mode 100644 index 00000000..63a35e0b --- /dev/null +++ b/debian/tests/upstream.py @@ -0,0 +1,25 @@ +import sys +import itertools +import pytest + +blacklist = ["test_knn.py", # Requires pykeops + "test_representations.py", # Look into this + "test_wasserstein_distance.py::test_wasserstein_distance_grad" # Requires PyTorch. + ] + +print("Blacklist: %s" %(str(blacklist))) + +# These should be completely ignored, not even loaded (their imports fail). +ignorelist = ["test_dtm.py", # Requires hnswlib. + "test_wasserstein_with_tensors.py" # Requires PyTorch and TF + ] + +print("Ignorelist:", ignorelist) + +testdir = sys.argv[1] + +deselect_args = list(itertools.chain.from_iterable([["--deselect", "%s/%s" %(testdir, exclude)] for exclude in blacklist])) +ignore_args = list(itertools.chain.from_iterable([["--ignore-glob", "%s/%s" %(testdir, exclude)] for exclude in ignorelist])) + +exitcode = pytest.main([testdir] + deselect_args + ignore_args) +exit(exitcode) diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..3d56b494 --- /dev/null +++ b/debian/watch @@ -0,0 +1,6 @@ +version=4 +opts=filenamemangle=s/.+\/gudhi-release-?(\d\S+)\.tar\.gz/gudhi-$1\.tar\.gz/,\ + dversionmangle=s/\+dfsg(\.\d+)?$//,\ + uversionmangle=s/.?(RC|rc)/~rc/ \ + https://github.com/GUDHI/gudhi-devel/releases \ + (?:.*?/)gudhi-release-?(\d[\d.]*)\.tar\.gz debian |