diff options
29 files changed, 848 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..8eaf8e47 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,138 @@ +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/compat b/debian/compat new file mode 100644 index 00000000..48082f72 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +12 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..f4f57328 --- /dev/null +++ b/debian/control @@ -0,0 +1,151 @@ +Source: gudhi +Maintainer: Gard Spreemann <gspr@nonempty.org> +Section: math +Priority: optional +Standards-Version: 4.5.0.0 +Build-Depends: cmake (>= 3.1), + cython3, + debhelper (>= 12), + dh-python, + libboost-chrono-dev (>= 1.56), + libboost-filesystem-dev (>= 1.56), + libboost-program-options-dev (>= 1.56), + libboost-system-dev (>= 1.56), + libboost-test-dev (>= 1.56), + libboost-timer-dev (>= 1.56), + libcgal-dev (>= 5.0), + libcgal-qt5-dev (>> 4.11.0), + libeigen3-dev, + libgmp-dev, + libqglviewer-dev-qt5, + libtbb-dev, + python3-all-dev, + python3-matplotlib, + python3-pytest, + python3-setuptools, + python3-tk, + qtbase5-dev +Build-Depends-Indep: doxygen, + graphviz +Rules-Requires-Root: no +Homepage: https://gudhi.inria.fr/ +Vcs-Browser: https://git.nonempty.org/debian-gudhi +Vcs-Git: https://git.nonempty.org/debian-gudhi -b debian/sid + +Package: libgudhi-dev +Section: libdevel +Architecture: all +Multi-Arch: foreign +Depends: libboost-chrono-dev (>= 1.56), + libboost-filesystem-dev (>= 1.56), + libboost-program-options-dev (>= 1.56), + libboost-system-dev (>= 1.56), + libboost-test-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 +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. + . + The GUDHI library is developed as part of the GUDHI project supported + by the European Research Council. + . + 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. + . + The GUDHI library is developed as part of the GUDHI project supported + by the European Research Council. + . + 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. + . + The GUDHI library is developed as part of the GUDHI project supported + by the European Research Council. + . + This package contains documentation. + +Package: python3-gudhi +Section: python +Architecture: amd64 arm64 i386 mips64el ppc64el s390x ia64 ppc64 riscv64 sparc64 x32 +Depends: python3-matplotlib, + python3-tk, + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +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. + . + The GUDHI library is developed as part of the GUDHI project supported + by the European Research Council. + . + 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. + . + The GUDHI library is developed as part of the GUDHI project supported + by the European Research Council. + . + 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. + . + The GUDHI library is developed as part of the GUDHI project supported + by the European Research Council. + . + This package contains some utilities built with the GUDHI library. +
\ No newline at end of file diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..db2bedf4 --- /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/filtered_simplicial_complex/bunny_5000_complex.fsc data/points/COIL_database data/points/SO3* data/points/bunny* 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-2019 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-2019 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..47779640 --- /dev/null +++ b/debian/libgudhi-dev.install @@ -0,0 +1 @@ +build/gudhi/include/gudhi/ usr/include/ diff --git a/debian/libgudhi-doc.doc-base b/debian/libgudhi-doc.doc-base new file mode 100644 index 00000000..f8175ee1 --- /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/html/index.html +Files: /usr/share/doc/libgudhi/html/*.html diff --git a/debian/libgudhi-doc.install b/debian/libgudhi-doc.install new file mode 100644 index 00000000..c541aae4 --- /dev/null +++ b/debian/libgudhi-doc.install @@ -0,0 +1 @@ +build/gudhi/doc/html/* usr/share/doc/libgudhi/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..4c6e8d5d --- /dev/null +++ b/debian/patches/0001-Disable-tests-that-use-DFSG-deleted-data-files.patch @@ -0,0 +1,121 @@ +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/Persistent_cohomology/example/CMakeLists.txt | 4 --- + src/Simplex_tree/example/CMakeLists.txt | 2 -- + src/python/CMakeLists.txt | 31 +----------------------- + 5 files changed, 1 insertion(+), 49 deletions(-) + +diff --git a/src/Nerve_GIC/example/CMakeLists.txt b/src/Nerve_GIC/example/CMakeLists.txt +index 1667472..37c4759 100644 +--- a/src/Nerve_GIC/example/CMakeLists.txt ++++ b/src/Nerve_GIC/example/CMakeLists.txt +@@ -12,15 +12,10 @@ 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") + + install(TARGETS CoordGIC DESTINATION bin) + install(TARGETS FuncGIC DESTINATION bin) +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/Persistent_cohomology/example/CMakeLists.txt b/src/Persistent_cohomology/example/CMakeLists.txt +index 94ec13c..4a48d21 100644 +--- a/src/Persistent_cohomology/example/CMakeLists.txt ++++ b/src/Persistent_cohomology/example/CMakeLists.txt +@@ -28,10 +28,6 @@ add_test(NAME Persistent_cohomology_example_from_rips_step_by_step_on_tore_3D CO + "${CMAKE_SOURCE_DIR}/data/points/tore3D_1307.off" "-r" "0.25" "-m" "0.5" "-d" "3" "-p" "3") + add_test(NAME Persistent_cohomology_example_via_boundary_matrix COMMAND $<TARGET_FILE:rips_persistence_via_boundary_matrix> + "${CMAKE_SOURCE_DIR}/data/points/Kl.off" "-r" "0.16" "-d" "3" "-p" "3" "-m" "100") +-add_test(NAME Persistent_cohomology_example_from_file_3_2_0 COMMAND $<TARGET_FILE:persistence_from_file> +- "${CMAKE_SOURCE_DIR}/data/filtered_simplicial_complex/bunny_5000_complex.fsc" "-p" "2" "-m" "0") +-add_test(NAME Persistent_cohomology_example_from_file_3_3_100 COMMAND $<TARGET_FILE:persistence_from_file> +- "${CMAKE_SOURCE_DIR}/data/filtered_simplicial_complex/bunny_5000_complex.fsc" "-p" "3" "-m" "100") + + install(TARGETS plain_homology DESTINATION bin) + install(TARGETS persistence_from_simple_simplex_tree DESTINATION bin) +diff --git a/src/Simplex_tree/example/CMakeLists.txt b/src/Simplex_tree/example/CMakeLists.txt +index f99b164..ae302dc 100644 +--- a/src/Simplex_tree/example/CMakeLists.txt ++++ b/src/Simplex_tree/example/CMakeLists.txt +@@ -25,8 +25,6 @@ if(GMP_FOUND AND NOT CGAL_VERSION VERSION_LESS 4.11.0) + if (TBB_FOUND) + target_link_libraries(Simplex_tree_example_alpha_shapes_3_from_off ${TBB_LIBRARIES}) + endif() +- add_test(NAME Simplex_tree_example_alpha_shapes_3_from_off COMMAND $<TARGET_FILE:Simplex_tree_example_alpha_shapes_3_from_off> +- "${CMAKE_SOURCE_DIR}/data/points/bunny_5000.off") + + endif() + +diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt +index b558d4c..472993b 100644 +--- a/src/python/CMakeLists.txt ++++ b/src/python/CMakeLists.txt +@@ -277,36 +277,7 @@ endif(CGAL_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 "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}" +- ${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 "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}" +- ${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 "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}" +- ${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 "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}" +- ${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) + + if (NOT CGAL_WITH_EIGEN3_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..b327c3cf --- /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 ec55188..e90d2fe 100644 +--- a/src/Doxyfile.in ++++ b/src/Doxyfile.in +@@ -1440,7 +1440,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-Force-linking-against-libatomic-for-parts-that-use-T.patch b/debian/patches/0003-Force-linking-against-libatomic-for-parts-that-use-T.patch new file mode 100644 index 00000000..0a20ce1e --- /dev/null +++ b/debian/patches/0003-Force-linking-against-libatomic-for-parts-that-use-T.patch @@ -0,0 +1,21 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Wed, 25 Sep 2019 15:18:08 +0200 +Subject: Force linking against libatomic for parts that use TBB. + +--- + src/cmake/modules/FindTBB.cmake | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/cmake/modules/FindTBB.cmake b/src/cmake/modules/FindTBB.cmake +index 13f4d92..6baa8d7 100644 +--- a/src/cmake/modules/FindTBB.cmake ++++ b/src/cmake/modules/FindTBB.cmake +@@ -375,6 +375,8 @@ if (TBB_INCLUDE_DIR) + endif(NOT TBB_without_pthread) + endif(UNIX AND NOT APPLE) + ++ list(APPEND ALL_TBB_LIBRARIES atomic) ++ + set (TBB_LIBRARIES ${ALL_TBB_LIBRARIES} + CACHE PATH "TBB libraries" FORCE) + diff --git a/debian/patches/0004-Offline-header-for-docs.patch b/debian/patches/0004-Offline-header-for-docs.patch new file mode 100644 index 00000000..70678963 --- /dev/null +++ b/debian/patches/0004-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 e90d2fe..f82baba 100644 +--- a/src/Doxyfile.in ++++ b/src/Doxyfile.in +@@ -1045,7 +1045,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 = doc/common/header.html ++HTML_HEADER = doc/common/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/0005-Disable-Sphinx.patch b/debian/patches/0005-Disable-Sphinx.patch new file mode 100644 index 00000000..69b76bc8 --- /dev/null +++ b/debian/patches/0005-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 24a3415..38484ba 100644 +--- a/src/cmake/modules/GUDHI_third_party_libraries.cmake ++++ b/src/cmake/modules/GUDHI_third_party_libraries.cmake +@@ -124,7 +124,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") + endif() diff --git a/debian/patches/0006-Install-Python-module-in-correct-location.patch b/debian/patches/0006-Install-Python-module-in-correct-location.patch new file mode 100644 index 00000000..1e4310ee --- /dev/null +++ b/debian/patches/0006-Install-Python-module-in-correct-location.patch @@ -0,0 +1,21 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Thu, 26 Sep 2019 13:26:22 +0200 +Subject: Install Python module in correct location. + +--- + src/python/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt +index 472993b..1dd3721 100644 +--- a/src/python/CMakeLists.txt ++++ b/src/python/CMakeLists.txt +@@ -230,7 +230,7 @@ endif(CGAL_FOUND) + add_custom_target(python ALL DEPENDS gudhi.so + COMMENT "Do not forget to add ${CMAKE_CURRENT_BINARY_DIR}/ to your PYTHONPATH before using examples or tests") + +- install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/setup.py install)") ++ install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install --root=${CMAKE_SOURCE_DIR}/debian/tmp --single-version-externally-managed --install-layout=deb WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") + + # Test examples + if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0) diff --git a/debian/patches/0007-Move-towards-reproducible-builds.patch b/debian/patches/0007-Move-towards-reproducible-builds.patch new file mode 100644 index 00000000..7e2f01db --- /dev/null +++ b/debian/patches/0007-Move-towards-reproducible-builds.patch @@ -0,0 +1,23 @@ +From: Gard Spreemann <gspr@nonempty.org> +Date: Tue, 21 Jan 2020 10:39:23 +0100 +Subject: Move towards reproducible builds. + +This does not take us all the way there, and probably breaks doctest, +but since we're not doing Sphinx stuff yet anyway, that is ok for now. +--- + src/python/gudhi/__init__.py.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/python/gudhi/__init__.py.in b/src/python/gudhi/__init__.py.in +index 79e12fb..991745a 100644 +--- a/src/python/gudhi/__init__.py.in ++++ b/src/python/gudhi/__init__.py.in +@@ -15,7 +15,7 @@ __copyright__ = "Copyright (C) 2016 Inria" + __license__ = "https://gudhi.inria.fr/licensing/" + __version__ = "@GUDHI_VERSION@" + # This variable is used by doctest to find files +-__root_source_dir__ = "@CMAKE_SOURCE_DIR@" ++__root_source_dir__ = "." + __debug_info__ = @GUDHI_PYTHON_DEBUG_INFO@ + + __all__ = [@GUDHI_PYTHON_MODULES@ @GUDHI_PYTHON_MODULES_EXTRA@] diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..adeb35f7 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,7 @@ +0001-Disable-tests-that-use-DFSG-deleted-data-files.patch +0002-Use-system-MathJax.patch +0003-Force-linking-against-libatomic-for-parts-that-use-T.patch +0004-Offline-header-for-docs.patch +0005-Disable-Sphinx.patch +0006-Install-Python-module-in-correct-location.patch +0007-Move-towards-reproducible-builds.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..6fe6c956 --- /dev/null +++ b/debian/rules @@ -0,0 +1,125 @@ +#!/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 + +PY3VERS:=$(shell py3versions -vs) +DEFAULT_PY3VER=$(shell py3versions -vd) +REMAINING_PY3VERS:=$(filter-out $(DEFAULT_PY3VER), $(PY3VERS)) + +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 +# force non-parallel building. +ifneq (, $(filter $(shell dpkg-architecture --query DEB_BUILD_ARCH),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. +# Disable tests on s390x, as a few are broken. See #943384. +ifneq (, $(filter $(shell dpkg-architecture --query DEB_BUILD_ARCH),i386 s390x x32)) + export DEB_BUILD_MAINT_OPTIONS := $(DEB_BUILD_MAINT_OPTIONS) nocheck +endif + +%: +# The --buildirectory=build is there so that we can easily get a hold +# of documentation and examples, which are not installed by upstream. + dh $@ $(DHFLAGS) --with=python3 --builddirectory=build + for py3ver in $(REMAINING_PY3VERS) ; do \ + dh $@ $(DHFLAGS) --with=python3 --builddirectory=build$$py3ver ; \ + done + +override_dh_auto_configure: + dh_auto_configure $(DHFLAGS) -- -DWITH_GUDHI_BENCHMARK=true -DWITH_GUDHI_EXAMPLE=true -DWITH_GUDHI_PYTHON=true -DWITH_GUDHI_TEST=true -DWITH_GUDHI_UTILITIES=true -DPython_ADDITIONAL_VERSIONS=$(DEFAULT_PY3VER) -DUSER_VERSION_DIR=gudhi -DWITH_GUDHI_PYTHON_RUNTIME_LIBRARY_DIRS=false + for py3ver in $(REMAINING_PY3VERS) ; do \ + dh_auto_configure $(DHFLAGS) --builddirectory=build$$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 -DWITH_GUDHI_PYTHON_RUNTIME_LIBRARY_DIRS=false ; \ + done + +override_dh_auto_build-arch: + dh_auto_build $(DHFLAGS) --builddirectory=build + for py3ver in $(REMAINING_PY3VERS) ; do \ + dh_auto_build $(DHFLAGS) --builddirectory=build$$py3ver ; \ + done + +override_dh_auto_build-indep: + make -C build doxygen + dh_auto_build $(DHFLAGS) --builddirectory=build + +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 + for py3ver in $(REMAINING_PY3VERS) ; do \ + dh_auto_test $(DHFLAGS) --no-parallel --builddirectory=build$$py3ver ; \ + done +else + @echo "Skipping tests due to nocheck flag." +endif + +override_dh_auto_install: + 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' {} \; + + dh_auto_install $(DHFLAGS) --builddirectory=build + for py3ver in $(REMAINING_PY3VERS) ; do \ + dh_auto_install $(DHFLAGS) --builddirectory=build$$py3ver ; \ + done + + # Remove installed information about Miniball header. + rm -f build/gudhi/include/gudhi/Miniball.COPYRIGHT + rm -f build/gudhi/include/gudhi/Miniball.README + + 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)/GudhUI $(TMPBIN)/gudhui + +override_dh_compress: + dh_compress -X.cpp + +override_dh_install: + dh_install -X__pycache__ -X.pyc -X.pyo 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..7ba89613 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,2 @@ +Tests: python-upstream.sh +Depends: python3-all, python3-gudhi, python3-pytest, python3-scipy diff --git a/debian/tests/python-upstream.sh b/debian/tests/python-upstream.sh new file mode 100755 index 00000000..a83dfdcc --- /dev/null +++ b/debian/tests/python-upstream.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e +set -u + +testdir=$PWD/src/python/test +cd $AUTOPKGTEST_TMP + +for py3ver in $(py3versions -vs) +do + echo "Running tests with Python ${py3ver}." + for t in $(find $testdir -type f -name 'test_*.py') + do + echo "Running test ${t}." + /usr/bin/python${py3ver} -B $t + done +done diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..2948a0c6 --- /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 .*/archive/tags/gudhi-release-(\d\S+)\.tar\.gz + |