summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog208
-rw-r--r--debian/clean2
-rw-r--r--debian/control142
-rw-r--r--debian/copyright104
-rw-r--r--debian/gudhi-utils.118
-rw-r--r--debian/gudhi-utils.install1
-rw-r--r--debian/gudhui.112
-rw-r--r--debian/gudhui.install1
-rw-r--r--debian/gudhui.manpages1
-rw-r--r--debian/libgudhi-dev.docs1
-rw-r--r--debian/libgudhi-dev.install1
-rw-r--r--debian/libgudhi-doc.doc-base8
-rw-r--r--debian/libgudhi-doc.install1
-rw-r--r--debian/libgudhi-examples.docs1
-rw-r--r--debian/patches/0001-Disable-tests-that-use-DFSG-deleted-data-files.patch121
-rw-r--r--debian/patches/0002-Use-system-MathJax.patch21
-rw-r--r--debian/patches/0003-Force-linking-against-libatomic-for-parts-that-use-T.patch21
-rw-r--r--debian/patches/0004-Offline-header-for-docs.patch21
-rw-r--r--debian/patches/0005-Disable-Sphinx.patch20
-rw-r--r--debian/patches/0006-Install-Python-module-in-correct-location.patch21
-rw-r--r--debian/patches/0007-Move-towards-reproducible-builds.patch23
-rw-r--r--debian/patches/series7
-rw-r--r--debian/python3-gudhi.install1
-rwxr-xr-xdebian/rules140
-rw-r--r--debian/source/format1
-rw-r--r--debian/tests/control3
-rwxr-xr-xdebian/tests/python-upstream.sh20
-rw-r--r--debian/tests/upstream.py19
-rw-r--r--debian/watch6
29 files changed, 946 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 00000000..e0ef580f
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,208 @@
+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..a73ed746
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,142 @@
+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-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,
+ 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..5d8dffaa
--- /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-2020 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-2020 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..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..10c33133
--- /dev/null
+++ b/debian/libgudhi-doc.install
@@ -0,0 +1 @@
+build/userversion/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..4b4f24f3
--- /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 4c08cd6..a7a7bcd 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 a0aabee..5c572f8 100644
+--- a/src/Simplex_tree/example/CMakeLists.txt
++++ b/src/Simplex_tree/example/CMakeLists.txt
+@@ -28,8 +28,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 4f26481..99b648b 100644
+--- a/src/python/CMakeLists.txt
++++ b/src/python/CMakeLists.txt
+@@ -381,36 +381,7 @@ if(PYTHONINTERP_FOUND)
+ add_gudhi_py_test(test_bottleneck_distance)
+ endif()
+
+- # 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..2985548e
--- /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 49e781b..52b8cbe 100644
+--- a/src/Doxyfile.in
++++ b/src/Doxyfile.in
+@@ -1441,7 +1441,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..b6dba1ab
--- /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 52b8cbe..f516ef7 100644
+--- a/src/Doxyfile.in
++++ b/src/Doxyfile.in
+@@ -1046,7 +1046,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..0df79e58
--- /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 a56a275..11b5b20 100644
+--- a/src/cmake/modules/GUDHI_third_party_libraries.cmake
++++ b/src/cmake/modules/GUDHI_third_party_libraries.cmake
+@@ -178,7 +178,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/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..0b4a8f64
--- /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 99b648b..162bd27 100644
+--- a/src/python/CMakeLists.txt
++++ b/src/python/CMakeLists.txt
+@@ -267,7 +267,7 @@ if(PYTHONINTERP_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})")
+
+ # Documentation generation is available through sphinx - requires all modules
+ # Make it first as sphinx test is by far the longest test which is nice when testing in parallel
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..7e1c8813
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,140 @@
+#!/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 \
+ dh_auto_build $(DHFLAGS) --builddirectory=build-py$$py3ver/userversion ; \
+ done
+
+override_dh_auto_build-indep:
+ make -C build 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
+ for py3ver in $(PY3VERS) ; do \
+ dh_auto_test $(DHFLAGS) --no-parallel --builddirectory=build-py$$py3ver/userversion ; \
+ done
+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 \
+ dh_auto_install $(DHFLAGS) --builddirectory=build-py$$py3ver/userversion ; \
+ 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..1b4caffe
--- /dev/null
+++ b/debian/tests/upstream.py
@@ -0,0 +1,19 @@
+import sys
+import itertools
+import pytest
+
+blacklist = ["test_dtm.py", # Requires hnswlib
+ "test_knn.py", # Requires pykeops
+ "test_representations.py", # Look into this
+ "test_tomato.py", # Wants to use X.
+ "test_wasserstein_distance.py::test_wasserstein_distance_grad" # Requires PyTorch.
+ ]
+
+print("Blacklist: %s" %(str(blacklist)))
+
+testdir = sys.argv[1]
+
+deselect_args = list(itertools.chain.from_iterable([["--deselect", "%s/%s" %(testdir, exclude)] for exclude in blacklist]))
+
+exitcode = pytest.main([testdir] + deselect_args)
+exit(exitcode)
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
+