Import mshr_2019.2.0~git20230811.ff54a68+dfsg1-4.debian.tar.xz
authorFrancesco Ballarin <francesco.ballarin@unicatt.it>
Sun, 3 Nov 2024 14:45:53 +0000 (14:45 +0000)
committerFrancesco Ballarin <francesco.ballarin@unicatt.it>
Sun, 3 Nov 2024 14:45:53 +0000 (14:45 +0000)
[dgit import tarball mshr 2019.2.0~git20230811.ff54a68+dfsg1-4 mshr_2019.2.0~git20230811.ff54a68+dfsg1-4.debian.tar.xz]

31 files changed:
.gitlab-ci.yml [new file with mode: 0644]
README.Debian [new file with mode: 0644]
changelog [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
docs [new file with mode: 0644]
libmshr-dev-common.install [new file with mode: 0644]
libmshr-dev.install [new file with mode: 0644]
libmshr-dev.manpages [new file with mode: 0644]
libmshr2019.2.install [new file with mode: 0644]
libmshr64-2019.2.install [new file with mode: 0755]
libmshr64-dev.docs [new file with mode: 0644]
libmshr64-dev.install [new file with mode: 0755]
mshr.pth [new file with mode: 0644]
mshrable.1 [new file with mode: 0644]
mshrable.sgml [new file with mode: 0644]
patches/CGAL_6_compatibility.diff [new file with mode: 0644]
patches/lib_rename.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
patches/test_controls.diff [new file with mode: 0644]
python3-mshr-real.install [new file with mode: 0644]
python3-mshr.examples [new file with mode: 0644]
python3-mshr.install [new file with mode: 0644]
python3-mshr64-real.docs [new file with mode: 0644]
python3-mshr64-real.install [new file with mode: 0755]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/test-mshr-python [new file with mode: 0644]
tests/test-mshr64-python [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..9cca603
--- /dev/null
@@ -0,0 +1,12 @@
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+reprotest:
+  allow_failure: true
+
+blhc:
+  allow_failure: true
+
+piuparts:
+  allow_failure: true
diff --git a/README.Debian b/README.Debian
new file mode 100644 (file)
index 0000000..b78682b
--- /dev/null
@@ -0,0 +1,33 @@
+64-bit Mshr/Dolfin
+-------------
+
+64-bit support is provided by python3-mshr64-real and libmshr64-dev.
+
+64-bit here refers to 64-bit indexing provided by a 64-bit build of
+PETSc, allowing handling of larger systems (larger meshes) with more
+than 2 billion degress of freedom. It is provided in Dolfin by the
+python3-dolfin64-real and libdolfin64-dev packages (libdolfin64.so).
+
+This is activated by setting PETSC_DIR and SLEPC_DIR to appropriate paths,
+e.g.
+  PETSC_DIR=/usr/lib/petsc64
+  SLEPC_DIR=/usr/lib/slepc64
+
+Depending on usage you may also need to specific the dolfin libname
+extension ("64") to link to libdolfin64.so rather than libdolfin.so.
+This is controlled via DOLFIN_LIB_NAME_EXT. Likewise, linking with
+libmshr64.so is facilitated via MSHR_LIB_NAME_EXT.
+For cmake (C++ applications), set the cmake variable
+  cmake -DMSHR_LIB_NAME_EXT=64 -DDOLFIN_LIB_NAME_EXT=64
+For python, set it as an environment variable
+  MSHR_LIB_NAME_EXT=64 DOLFIN_LIB_NAME_EXT=64 python3
+
+Each of PETSC_DIR (SLEPC_DIR), MSHR_LIB_NAME_EXT and
+DOLFIN_LIB_NAME_EXT need to be set to ensure the program links to
+libpetsc64_*.so, libmshr64.so and libdolfin64.so, and not their 32-bit
+counterparts.
+
+python3-mshr is now a base package providing a mshr.pth pointing by
+default at the preferred PETSc installation provided by
+python3-mshr-real (for PETSC_DIR=/usr/lib/petsc
+SLEPC_DIR=/usr/lib/slepc).
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..f054986
--- /dev/null
+++ b/changelog
@@ -0,0 +1,416 @@
+mshr (2019.2.0~git20230811.ff54a68+dfsg1-4) unstable; urgency=medium
+
+  * Bump Standards-Version to 4.7.0
+  * Force rebuild against OpenMPI 5. Closes: #1086299.
+
+ -- Francesco Ballarin <francesco.ballarin@unicatt.it>  Sun, 03 Nov 2024 14:45:53 +0000
+
+mshr (2019.2.0~git20230811.ff54a68+dfsg1-3) unstable; urgency=medium
+
+  * Upload to unstable
+
+ -- Francesco Ballarin <francesco.ballarin@unicatt.it>  Sun, 06 Oct 2024 13:52:13 +0000
+
+mshr (2019.2.0~git20230811.ff54a68+dfsg1-2exp1) experimental; urgency=medium
+
+  * Add Francesco Ballarin to uploaders
+  * Add patch CGAL_6_compatibility.diff for compatibility with CGAL 6:
+    - bump minum required CGAL version to 6 in cmake
+    - require C++17 standard in cmake
+    - replace boost::get and assignment to a local variable with CGAL::assign
+    Closes: #1074116
+  * Build-Depends on libcgal-dev >= 6.0~
+
+ -- Francesco Ballarin <francesco.ballarin@unicatt.it>  Tue, 25 Jun 2024 12:40:24 +0000
+
+mshr (2019.2.0~git20230811.ff54a68+dfsg1-1) unstable; urgency=medium
+
+  [ Bas Couwenberg ]
+  * Drop unused libproj-dev (build) dependency.
+
+  [ Drew Parsons ]
+  * New upstream snapshot.
+    - applies debian patches:
+      fix_mesh3_internal.patch
+      enable_CGAL5_CXX14.patch
+      build_CGAL5.patch
+      build_CGAL5.6.patch
+
+ -- Drew Parsons <dparsons@debian.org>  Mon, 05 Feb 2024 20:10:04 +0100
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-10) unstable; urgency=medium
+
+  * update debian patch build_CGAL5.6.patch for backwards compatibility
+    - apply named parameters one-by-one
+    - check CGAL version when calling has_Has_features
+
+ -- Drew Parsons <dparsons@debian.org>  Thu, 10 Aug 2023 16:23:24 +0200
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-9) unstable; urgency=medium
+
+  * make mshr.pth more robust with respect to PETSc installation.
+    Use default path if petscconf.h can't be found. Closes: #1000950.
+  * debian patch build_CGAL5.6.patch fixes build for CGAL 5.6.
+    Named parameters can only be set in CGAL functions.
+    Closes: #1043307
+  * Standards-Version: 4.6.2
+
+ -- Drew Parsons <dparsons@debian.org>  Thu, 10 Aug 2023 03:47:17 +0200
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-8) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Remove constraints unnecessary since buster (oldstable):
+    + Build-Depends: Drop versioned constraint on cmake, libcgal-dev and
+      python3-pybind11.
+    + libmshr-dev-common: Drop versioned constraint on cmake in Depends.
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 22 Jul 2023 15:18:42 +0200
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-7) unstable; urgency=medium
+
+  * drop PETSC_ARCH from mshr.pth. It is only used for local build
+    dirs, not in full installation, and interferes with python
+    initialization when PETSc is in the middle of an ABI upgrade.
+
+ -- Drew Parsons <dparsons@debian.org>  Fri, 12 Nov 2021 22:37:14 +0100
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-6) unstable; urgency=medium
+
+  * Standards-Version: 4.6.0
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 23 Oct 2021 21:09:15 +0200
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-5) unstable; urgency=medium
+
+  * include PETSC_ARCH in mshr.pth to prevent mshr from interfering
+    with new PETSc builds. mshr.pth checks
+    $PETSC_DIR/$PETSC_ARCH/include/petscconf.h
+  * fix parenthesis in python3-mshr description. Closes: #976011.
+  * Standards-Version: 4.5.1
+
+ -- Drew Parsons <dparsons@debian.org>  Wed, 13 Jan 2021 10:55:53 +1100
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-4) unstable; urgency=medium
+
+  * fix quotes in i386 test condition.
+
+ -- Drew Parsons <dparsons@debian.org>  Wed, 18 Nov 2020 03:46:38 +0800
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-3) unstable; urgency=medium
+
+  * skip python unit test test-meshes on i386.
+    mshr.UnitSphereMesh() hangs on i386. Use mshr.Sphere() instead
+    (cf. deathstar demo).  Closes: #974561.
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 17 Nov 2020 17:37:30 +0800
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-2) unstable; urgency=medium
+
+  * install python modules in /usr/lib/mshr or /usr/lib/mshr64, not
+    under PETSC_DIR. mshr does not use PETSc directly, but mshr.pth
+    uses $PETSC_DIR/include/petscconf.h to select standard or 64-bit
+    build.
+
+ -- Drew Parsons <dparsons@debian.org>  Sun, 15 Nov 2020 13:37:22 +0800
+
+mshr (2019.2.0~git20200924.c27eb18+dfsg1-1) unstable; urgency=medium
+
+  * New upstream snapshot.
+  * mark libmshr-dev-common and libmshr64-dev as Multi-Arch: same
+
+ -- Drew Parsons <dparsons@debian.org>  Mon, 05 Oct 2020 00:15:24 +0800
+
+mshr (2019.2.0~git20200213.8895485+dfsg1-4) unstable; urgency=medium
+
+  * build against latest dolfin in unstable. Closes: #969635.
+  * libmshr-dev-common Replaces, Breaks: libmshr-dev (<< ...-3).
+    Closes: #970141.
+
+ -- Drew Parsons <dparsons@debian.org>  Sun, 13 Sep 2020 02:10:27 +0800
+
+mshr (2019.2.0~git20200213.8895485+dfsg1-3) experimental; urgency=medium
+
+  * build 64 bit packages (supporting 64-bit dolfin)
+    python3-mshr64, libmshr64-dev, libmshr64-2019.2
+    - debian patch lib_rename.patch enables setting of soname to
+      mshr64 rather than mshr (setting LIB_NAME_EXT in cmake,
+      and MSHR_LIB_NAME_EXT in mshrConfig.cmake for client programs,
+      cmake -DMSHR_LIB_NAME_EXT=64 to invoke libmshr64)
+      Also uses DOLFIN_LIB_NAME_EXT=64 to link libdolfin64.so
+    - place common header files in libmshr-dev-common
+    - Build-Depends: libdolfin64-dev (>= 2019.2.0~git20200218.027d9cc-15)
+      (to ensure DOLFIN_LIB_NAME_EXT is available)
+    - activate 64-bit build with environment variables (see README.Debian)
+       PETSC_DIR=/usr/lib/petsc64 SLEPC_DIR=/usr/lib/slepc64
+       MSHR_LIB_NAME_EXT=64 DOLFIN_LIB_NAME_EXT=64 
+
+ -- Drew Parsons <dparsons@debian.org>  Sun, 30 Aug 2020 07:44:11 +0800
+
+mshr (2019.2.0~git20200213.8895485+dfsg1-2) unstable; urgency=medium
+
+  * python3-mshr Depends: python3-dolfin-real
+    (rather than common python3-dolfin)
+  * debhelper compatibility level 13
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 04 Aug 2020 01:21:17 +0800
+
+mshr (2019.2.0~git20200213.8895485+dfsg1-1) unstable; urgency=medium
+
+  * New upstream snapshot.
+  - applies debian patches:
+     build_CGAL_4.14.patch
+     build_python.patch
+     cmake_config_in_lib.patch
+     demos_update.patch
+     depython_main_build.patch
+     pybind11_register.patch
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 21 Apr 2020 14:41:30 +0800
+
+mshr (2019.2.0~git20190418.010d802+dfsg1-1) experimental; urgency=medium
+
+  * new upstream snapshot (2019.2)
+  * Standards-Version: 4.5.0
+  * add debian patches:
+    - enable_CGAL5_CXX14.patch enables build with CGAL 5
+      and builds with C++14 since std::enable_if is required by CGAL 5
+    - build_CGAL5.patch updates to CGAL 5 API
+    - pybind11_register.patch registers CSGCGALDomain3D::num_holes for
+      python module, enabling test-fuzzypointmap.py to pass
+      (update test_controls.patch)
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 01 Feb 2020 16:44:38 +0800
+
+mshr (2019.1.0+dfsg1-7) unstable; urgency=medium
+
+  * Standards-Version: 4.5.0
+  * add debian patches:
+    - enable_CGAL5_CXX14.patch enables build with CGAL 5
+      and builds with C++14 since std::enable_if is required by CGAL 5
+    - build_CGAL5.patch updates to CGAL 5 API
+    - pybind11_register.patch registers CSGCGALDomain3D::num_holes for
+      python module, enabling test-fuzzypointmap.py to pass
+      (update test_controls.patch)
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 01 Feb 2020 17:14:19 +0800
+
+mshr (2019.1.0+dfsg1-6) unstable; urgency=medium
+
+  * stop building mips64el, mipsel with debug symbols.
+    They are too fragile, often failing to build from source.
+
+ -- Drew Parsons <dparsons@debian.org>  Mon, 21 Oct 2019 18:46:59 +0800
+
+mshr (2019.1.0+dfsg1-5) unstable; urgency=medium
+
+  * Standards-Version: 4.4.1
+  * relax pybind11 dependency. pybind11 follows semantic versioning,
+    so should be backwards compatible with minor and patch version
+    updates.
+
+ -- Drew Parsons <dparsons@debian.org>  Sun, 20 Oct 2019 19:23:41 +0800
+
+mshr (2019.1.0+dfsg1-4) unstable; urgency=medium
+
+  * build with dh --no-parallel to reduce memory requirements
+    (to aid builds on mips,mipsel,ubuntu). Closes: #934244.
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 10 Aug 2019 11:14:22 +0800
+
+mshr (2019.1.0+dfsg1-3) unstable; urgency=medium
+
+  * Standards-Version: 4.4.0
+  * debian patch build_CGAL_4.14.patch enables build against CGAL 4.14
+  * debian/control: remove ancient-python-version-field 3.5
+
+ -- Drew Parsons <dparsons@debian.org>  Mon, 05 Aug 2019 17:50:52 +0800
+
+mshr (2019.1.0+dfsg1-2) experimental; urgency=medium
+
+  * update debian/copyright
+    - Benjamin Kehlet's dates are 2012-2017
+    - acknowledge Joachim B Haga and Lars Magnus Valnes
+    - list contributing authors under Files: *
+    - mark files licensed under LGPL-3+
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 21 May 2019 14:11:59 +0800
+
+mshr (2019.1.0+dfsg1-1) experimental; urgency=medium
+
+  * New upstream release (official).
+
+ -- Drew Parsons <dparsons@debian.org>  Thu, 25 Apr 2019 23:33:14 +0800
+
+mshr (2019.1.0+dfsg1~2018.1.0-1) experimental; urgency=medium
+
+  * Dummy upstream release using 2018.1.0 code to build against
+    dolfin 2019.1.
+  * Standards-Version: 4.3.0
+  * debhelper compatibility level 12
+    - skip dh_dwz since debug symbols have been switched off
+      (since 2018.1.0+dfsg1-5)
+  * Include debug symbols if build will be successful, only omit -g for
+    arches blacklisted in ARCH_NO_DEBUG_SYMBOLS
+
+ -- Drew Parsons <dparsons@debian.org>  Thu, 28 Mar 2019 18:25:51 +0800
+
+mshr (2018.1.0+dfsg1-7) unstable; urgency=medium
+
+  * Debian patch fix_mesh3_internal.patch updates namespace for
+    Mesh_3::internal::C3t3_initializer (CGAL 4.13). Closes: #911814.
+
+ -- Drew Parsons <dparsons@debian.org>  Fri, 26 Oct 2018 11:45:58 +0800
+
+mshr (2018.1.0+dfsg1-6) unstable; urgency=medium
+
+  * apply strict versioned depends on pybind11,
+    python3-mshr Depends: pybind11 (>= 2.2.4), pybind11 (<= 2.2.5)
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 25 Sep 2018 04:04:24 +0800
+
+mshr (2018.1.0+dfsg1-5) unstable; urgency=medium
+
+  * strip -g from dpkg-buildflags to reduce memory requirements of the
+    build (needed to build on Debian 32 bit and on ubuntu)
+  * Standards-Version: 4.2.1
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 04 Sep 2018 21:25:48 +0800
+
+mshr (2018.1.0+dfsg1-4) unstable; urgency=medium
+
+  * fix debian/tests: demos are now provided by python3-mshr
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 11 Aug 2018 22:42:56 +0800
+
+mshr (2018.1.0+dfsg1-3) unstable; urgency=medium
+
+  * run autopkgtest on demos from mshr-demos package
+    - install demos in /usr/share/doc/mshr-demos/examples
+  * mark libmshr2018.1 as Multi-Arch: same
+  * drop mshr-demos (FTBFS on i386 interferes with package migration)
+    and install demos with python3-mshr.
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 11 Aug 2018 02:47:12 +0800
+
+mshr (2018.1.0+dfsg1-2) unstable; urgency=medium
+
+  * Upload to unstable. Closes: #905369.
+  * Standards-Version: 4.2.0
+  * Build-Depends: python3-setuptools
+  * Add debian/tests (autopkgtest)
+    - debian patch test_controls.diff provides test.py scripts
+
+ -- Drew Parsons <dparsons@debian.org>  Sat, 04 Aug 2018 13:31:48 +0800
+
+mshr (2018.1.0+dfsg1-1exp1) experimental; urgency=medium
+
+  * New upstream release.
+    - debian patches applied upstream:
+      cgal_4.12.patch
+      tetgen_define_TETLIBRARY.patch
+      use_system_cgal_tetgen.patch
+    - removes python2 support (python-mshr is dropped)
+    - uses pybind11 instead of swig
+  * debian patch cmake_config_in_lib.patch places cmake config files
+    in lib not share, since MSHR_LIBRARIES_DIRS is arch-specific.
+  * apply dpkg-buildflags CXXFLAGS to cmake build (for hardening and
+    debug symbols)
+  * remove CGAL and tetgen licences from debian/copyright (these
+    3rdParty sources have been removed from the source tarball)
+  * Standards-Version: 4.1.5
+  * Build-Depends: python3-all-dev (i.e. add python3.7 support)
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 10 Jul 2018 13:07:08 +0800
+
+mshr (2017.2.0+dfsg1-1) unstable; urgency=medium
+
+  * Upload mshr without embedded CGAL and tetgen code. Closes: #824716.
+  * debian/copyright Files-Excluded: 3rdparty/CGAL 3rdparty/tetgen1.5.0
+    CGAL and tetgen are provided by their own packages, so exclude
+    them from mshr to save space.
+  * Debian patch cgal_4.12.patch builds against CGAL 4.12.
+  * Build against system CGAL and tetgen.
+    Thanks Johannes Ring (upstream branch
+    johannr/optional-use-system-packages, applied as Debian patch
+    use_system_cgal_tetgen.patch)
+    - Build-Depends: libcgal-dev (>= 4.12), libtet1.5-dev.
+    - debian patch tetgen_define_TETLIBRARY.patch ensures tetgen
+      library API is used (defines TETLIBRARY)
+  * Build-Depends: cmake (>= 3.5)
+  * Standards-Version: 4.1.4
+  * Debian patch demos_update.patch keeps extrude demo running
+
+ -- Drew Parsons <dparsons@debian.org>  Wed, 23 May 2018 03:10:08 +0800
+
+mshr (2017.2.0-1) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * New upstream version.
+  * Standards-Version: 4.1.3
+  * debhelper compatibility level 11
+
+ -- Drew Parsons <dparsons@debian.org>  Thu, 25 Jan 2018 16:59:08 +0800
+
+mshr (2017.1.0-2) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * Standards-Version: 4.1.2
+  * Provide python3 support in python3-mshr
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 12 Dec 2017 14:56:09 +0800
+
+mshr (2017.1.0-1) UNRELEASED; urgency=medium
+
+  * Team upload.
+
+  [ Johannes Ring ]
+  * New upstream release.
+    - Move debian/libmshr2016.2.install > debian/libmshr2017.1.install.
+    - Update package name for new SONAME 2017.1 (libmshr2016.2 ->
+      libmshr2017.1).
+    - Bump minimum required version of libdolfin-dev, python-ffc,
+      python-dolfin and dolfin-bin from 2016.2.0 to 2017.1.0.
+
+  [ Drew Parsons ]
+  * Standards-Version: 4.1.0
+  * debhelper compatibility level 10
+
+ -- Johannes Ring <johannr@simula.no>  Thu, 11 May 2017 13:04:50 +0200
+
+mshr (2016.2.0-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+    - Move debian/libmshr2016.1.install > debian/libmshr2016.2.install.
+    - Update package name for new SONAME 2016.2 (libmshr2016.1 ->
+      libmshr2016.2).
+    - Bump minimum required version of libdolfin-dev, python-ffc,
+      python-dolfin and dolfin-bin from 2016.1.0 to 2016.2.0.
+
+ -- Johannes Ring <johannr@simula.no>  Fri, 02 Dec 2016 15:22:32 +0100
+
+mshr (2016.1.0-2) UNRELEASED; urgency=medium
+
+  * New upstream release.
+  * debian/control:
+    - Update package name for new SONAME 2016.1 (libmshr1.6 ->
+      libmshr2016.1).
+    - Bump minimum required version of libdolfin-dev, python-ffc,
+      python-dolfin and dolfin-bin from 1.6.0 to 2016.1.0.
+    - Add libproj-dev to Build-Depends and to Depends for binary package
+      libmshr-dev.
+  * Move debian/libmshr1.6.install -> debian/libmshr2016.1.install.
+  * Remove patch (fixed upstream).
+  * debian/rules: Add -fpermissive to CXX flags.
+
+ -- Johannes Ring <johannr@simula.no>  Fri, 02 Dec 2016 15:20:19 +0100
+
+mshr (1.6.0-1) unstable; urgency=low
+
+  [ Johannes Ring ]
+  * Initial release (Closes: #824716)
+
+  [ Drew Parsons ]
+  * Team upload.
+
+ -- Drew Parsons <dparsons@debian.org>  Fri, 20 May 2016 08:23:26 +0800
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..07506d5
--- /dev/null
+++ b/control
@@ -0,0 +1,165 @@
+Source: mshr
+Section: math
+Priority: optional
+Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
+Uploaders:
+ Johannes Ring <johannr@simula.no>,
+ Drew Parsons <dparsons@debian.org>,
+ Francesco Ballarin <francesco.ballarin@unicatt.it>
+Build-Depends: debhelper-compat (= 13),
+ python3-all-dev,
+ dh-python,
+ python3-setuptools,
+ cmake,
+ python3-pybind11,
+ libmpfr-dev,
+ libgmp-dev,
+ libcgal-dev (>= 6.0~),
+ libtet1.5-dev,
+ libdolfin-dev (>= 2019.2),
+ libdolfin64-dev (>= 2019.2.0~git20200218.027d9cc-16),
+ python3-ffc (>= 2019.2),
+ python3-numpy,
+ python3-petsc4py,
+ python3-slepc4py,
+ python3-petsc4py-real,
+ python3-slepc4py-real,
+ python3-petsc4py-64-real,
+ python3-slepc4py-64-real
+Standards-Version: 4.7.0
+Homepage: http://fenicsproject.org
+Vcs-Git: https://salsa.debian.org/science-team/fenics/mshr.git
+Vcs-Browser: https://salsa.debian.org/science-team/fenics/mshr
+
+Package: libmshr2019.2
+Section: libs
+Architecture: any
+Multi-Arch: same
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Shared libraries for mshr
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the shared libraries.
+
+Package: libmshr-dev
+Section: libdevel
+Architecture: any
+Depends: libmshr2019.2 (= ${binary:Version}),
+ libmshr-dev-common (= ${binary:Version}),
+ libdolfin-dev (>= ${fenics:Upstream-Version}),
+ ${shlibs:Depends},
+ ${misc:Depends}
+Description: Shared links and header files for mshr
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the development files, and also the
+ utility program mshrable.
+
+Package: libmshr-dev-common
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: python3-ffc (>= ${fenics:Upstream-Version}),
+ cmake,
+ ${misc:Depends}
+Recommends: libmshr-dev (= ${binary:Version}) | libmshr64-dev (= ${binary:Version})
+Replaces: libmshr-dev (<< 2019.2.0~git20200213.8895485+dfsg1-3)
+Breaks: libmshr-dev (<< 2019.2.0~git20200213.8895485+dfsg1-3)
+Description: Shared links and header files for mshr
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the common headers and development files.
+
+Package: python3-mshr
+Section: python
+Architecture: all
+Depends: libmshr-dev (>= ${source:Version}),
+ python3-mshr-real | python3-mshr64-real,
+ python3-dolfin (>= ${fenics:Upstream-Version}),
+ dolfin-bin (>= ${fenics:Upstream-Version}),
+ python3,
+ ${python3:Depends},
+ ${misc:Depends}
+Description: Python 3 interface for mshr
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the common Python 3 interface for mshr, and examples
+ and demo programs.
+ .
+ This is the base package depending on specific mshr builds. By
+ default mshr is built against dolfin using the preferred version of PETSc in
+ /usr/lib/petsc (with 32-bit indexing), but the alternative version
+ (64-bit PETSc) can be selected by setting the environment variable PETSC_DIR.
+
+Package: python3-mshr-real
+Section: python
+Architecture: any
+Depends: libmshr2019.2 (= ${binary:Version}),
+ python3-dolfin-real (>= ${fenics:Upstream-Version}),
+ python3-pybind11 (>= ${pybind11:Upstream-Version}), python3-pybind11 (<< ${pybind11:Next-Upstream-Version}),
+ ${python3:Depends},
+ ${shlibs:Depends},
+ ${misc:Depends}
+Recommends: python3-mshr
+Description: Python 3 interface for mshr
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the Python 3 interface for mshr.
+
+Package: libmshr64-2019.2
+Section: libs
+Architecture: any
+Multi-Arch: same
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Shared libraries for mshr with 64-bit indexing
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the shared libraries with support for
+ 64-bit indexing (libdolfin64 and PETSc-64).
+
+Package: libmshr64-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: libmshr64-2019.2 (= ${binary:Version}),
+ libmshr-dev-common (= ${binary:Version}),
+ libdolfin64-dev (>= ${fenics:Upstream-Version}),
+ ${shlibs:Depends},
+ ${misc:Depends}
+Description: Shared links and header files for mshr with 64-bit indexing
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the development files with support for
+ 64-bit indexing (libdolfin64 and PETSc-64).
+
+Package: python3-mshr64-real
+Section: python
+Architecture: any
+Depends: libmshr64-2019.2 (= ${binary:Version}),
+ python3-dolfin64-real (>= ${fenics:Upstream-Version}),
+ python3-pybind11 (>= ${pybind11:Upstream-Version}), python3-pybind11 (<< ${pybind11:Next-Upstream-Version}),
+ ${python3:Depends},
+ ${shlibs:Depends},
+ ${misc:Depends}
+Recommends: python3-mshr
+Description: Python 3 interface for mshr with 64-bit indexing
+ mshr generates simplicial DOLFIN meshes in 2D and 3D from geometries
+ described by Constructive Solid Geometry (CSG) or from surface files,
+ utilizing CGAL and Tetgen as mesh generation backends.
+ .
+ This package contains the Python 3 interface for mshr with support for
+ 64-bit indexing (libdolfin64 and PETSc-64).
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..cf462f5
--- /dev/null
+++ b/copyright
@@ -0,0 +1,37 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: mshr
+Source: https://bitbucket.org/fenics-project/mshr
+Comment: Lead Author: Benjamin Kehlet <benjamik@simula.no>
+Contributors:
+  Anders Logg <logg@chalmers.se>
+  Joachim B Haga
+  Johannes Ring <johannr@simula.no>
+  Lars Magnus Valnes
+  Garth N. Wells <gnw20@cam.ac.uk>
+Files-Excluded: 3rdparty/CGAL 3rdparty/tetgen1.5.0
+
+Files: *
+Copyright: Â© 2012-2017 Benjamin Kehlet <benjamik@simula.no>
+ 2012-2015 Anders Logg <logg@chalmers.se>
+ 2012 Johannes Ring <johannr@simula.no>
+ 2012 Joachim B Haga
+ 2016 Lars Magnus Valnes
+License: GPL-3+
+
+Files: test/test.cpp test/test2.cpp test/test-csggeometries.cpp
+ demo/python/icecream.py
+Copyright: 2012-2017 Benjamin Kehlet <benjamik@simula.no>
+ 2012 Anders Logg, Johannes Ring, Joachim B Haga
+License: LGPL-3+
+
+License: GPL-3+
+ /usr/share/common-licenses/GPL-3
+
+License: LGPL-3+
+ /usr/share/common-licenses/LGPL-3
+
+Files: debian/*
+Copyright: Â© 2015 Johannes Ring <johannr@simula.no>,
+             2016 Drew Parsons <dparsons@debian.org>
+License: GPL-2+
+ /usr/share/common-licenses/GPL-2
diff --git a/docs b/docs
new file mode 100644 (file)
index 0000000..a1320b1
--- /dev/null
+++ b/docs
@@ -0,0 +1 @@
+README.rst
diff --git a/libmshr-dev-common.install b/libmshr-dev-common.install
new file mode 100644 (file)
index 0000000..62f9b82
--- /dev/null
@@ -0,0 +1,3 @@
+usr/include/mshr
+usr/include/mshr.h
+usr/lib/*/cmake/mshr
diff --git a/libmshr-dev.install b/libmshr-dev.install
new file mode 100644 (file)
index 0000000..1edef27
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/**/*.so
+usr/bin/mshrable
diff --git a/libmshr-dev.manpages b/libmshr-dev.manpages
new file mode 100644 (file)
index 0000000..60ad814
--- /dev/null
@@ -0,0 +1 @@
+debian/mshrable.1
diff --git a/libmshr2019.2.install b/libmshr2019.2.install
new file mode 100644 (file)
index 0000000..8755c99
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/**/lib*.so.*
diff --git a/libmshr64-2019.2.install b/libmshr64-2019.2.install
new file mode 100755 (executable)
index 0000000..4336ff4
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo "debian/tmp64/usr/lib/**/libmshr64*.so.* usr/lib/${DEB_HOST_MULTIARCH}"
diff --git a/libmshr64-dev.docs b/libmshr64-dev.docs
new file mode 100644 (file)
index 0000000..e174728
--- /dev/null
@@ -0,0 +1 @@
+debian/README.Debian
diff --git a/libmshr64-dev.install b/libmshr64-dev.install
new file mode 100755 (executable)
index 0000000..98292a9
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo "debian/tmp64/usr/lib/**/libmshr64*.so usr/lib/${DEB_HOST_MULTIARCH}"
diff --git a/mshr.pth b/mshr.pth
new file mode 100644 (file)
index 0000000..e8ba8bf
--- /dev/null
+++ b/mshr.pth
@@ -0,0 +1,3 @@
+# access mshr module from either /usr/lib/mshr or /usr/lib/mshr64 depending on whether petsc or petsc64 is used (controlled by PETSC_DIR).
+# petsc64 build identified by "#define PETSC_USE_64BIT_INDICES 1" in $PETSC_DIR/include/petscconf.h
+import sys, os, pathlib; petsc_dir = '/usr/lib/petsc'; petsc_dir = os.getenv('PETSC_DIR') or petsc_dir; petsc_conf=os.path.join(petsc_dir,'include/petscconf.h'); bit64='64' if os.path.isfile(petsc_conf) and '#define PETSC_USE_64BIT_INDICES 1' in open(petsc_conf).read() else ''; mshr_dir='/usr/lib/mshr{}/python3/dist-packages'.format(bit64); mshr_dir in sys.path or sys.path.append(mshr_dir);
diff --git a/mshrable.1 b/mshrable.1
new file mode 100644 (file)
index 0000000..336f2f8
--- /dev/null
@@ -0,0 +1,61 @@
+.TH "MSHRABLE" "1" 
+.SH "NAME" 
+mshrable \(em Generate mesh from surface file 
+.SH "SYNOPSIS" 
+.PP 
+\fBmshrable\fR [\-f \fIFILE\fR]  
+.SH "DESCRIPTION" 
+.PP 
+\fBmshrable\fR generates a mesh from a 
+surface file.  It uses mshr, which is the mesh generation 
+component of FEniCS. It generates simplicial DOLFIN meshes in 2D 
+and 3D from geometries described by Constructive Solid Geometry 
+(CSG) or from surface files, utilizing CGAL and Tetgen as mesh 
+generation backends. 
+.SH "OPTIONS" 
+.PP 
+.IP "\-o [\-\-outfile] \fIarg\fR" 10 
+Filename of generated Dolfin mesh. 
+.IP "\-r [\-\-resolution] \fIarg (=15)\fR" 10 
+Resolution of result mesh. 
+.IP "\-s [\-\-stats]" 10 
+Write some statistics of the mesh to stdout. 
+.IP "\-\-polyout \fIarg\fR" 10 
+Write the polyhedron to .poly which Tetgen can read 
+(and do not create a mesh). 
+.IP "\-\-polystats" 10 
+Write statistics of polyhedron (and do not create a 
+mesh). 
+.IP "\-b [\-\-backend] \fIarg (=cgal)\fR" 10 
+Use 3D mesh generation backend [tetgen|cgal]. 
+.IP "\-\-degenerate_tolerance \fIarg (=9.9999999999999998e-13)\fR" 10 
+Tolerance for considering a facet as degenerate. Set 
+to 0 to not remove degenerate facets. 
+.IP "\-\-check-mesh" 10 
+Check consistency of output mesh (most for debugging/testing. 
+.IP "\-v [\-\-verbose]" 10 
+Output more information about what is going on. 
+.IP "\-h [\-\-help]" 10 
+write help message. 
+.SH "SEE ALSO" 
+.PP 
+dolfin-convert (1), dolfin-order (1) 
+.SH "AUTHOR" 
+.PP 
+\fBmshrable\fR was written by Benjamin 
+Kehlet benjamik@simula.no. This man page was written by 
+Drew Parsons dparsons@debian.org. 
+.\" created by instant / docbook-to-man 
diff --git a/mshrable.sgml b/mshrable.sgml
new file mode 100644 (file)
index 0000000..a7c8f4a
--- /dev/null
@@ -0,0 +1,202 @@
+<!doctype refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+  <!ENTITY dhfirstname "<firstname>Drew</firstname>">
+  <!ENTITY dhsurname   "<surname>Parsons</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>19 May, 2016</date>">
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>dparsons@debian.org</email>">
+  <!ENTITY dhusername  "Drew Parsons">
+  <!ENTITY dhucpackage "<refentrytitle>MSHRABLE</refentrytitle>">
+  <!ENTITY dhpackage   "mshrable">
+
+  <!ENTITY debian      "<productname>Debian GNU/Linux</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+]>
+
+<!--  generate the man page with "docbook-to-man mshrable.sgml > mshrable.1"  -->
+
+<refentry>
+  <docinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2001</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </docinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>Generate mesh from surface file</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+      <arg>-f <replaceable>FILE</replaceable></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> generates a mesh from a
+      surface file.  It uses mshr, which is the mesh generation
+      component of FEniCS. It generates simplicial DOLFIN meshes in 2D
+      and 3D from geometries described by Constructive Solid Geometry
+      (CSG) or from surface files, utilizing CGAL and Tetgen as mesh
+      generation backends.
+     </para>
+</refsect1>
+
+<refsect1>
+    <title>OPTIONS</title>
+<para>
+   <variablelist>
+     <varlistentry>
+          <term>-o [--outfile] <replaceable>arg</replaceable></term>
+          <listitem>
+         <para>
+               Filename of generated Dolfin mesh.
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>-r [--resolution] <replaceable>arg (=15)</replaceable></term>
+          <listitem>
+         <para>
+               Resolution of result mesh.
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>-s [--stats]</term>
+          <listitem>
+         <para>
+               Write some statistics of the mesh to stdout.
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>--polyout <replaceable>arg</replaceable></term>
+          <listitem>
+         <para>
+               Write the polyhedron to .poly which Tetgen can read
+               (and do not create a mesh).
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>--polystats</term>
+          <listitem>
+         <para>
+               Write statistics of polyhedron (and do not create a
+               mesh).
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>-b [--backend] <replaceable>arg (=cgal)</replaceable></term>
+          <listitem>
+         <para>
+               Use 3D mesh generation backend [tetgen|cgal].
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>--degenerate_tolerance <replaceable>arg (=9.9999999999999998e-13)</replaceable></term>
+          <listitem>
+         <para>
+               Tolerance for considering a facet as degenerate. Set
+               to 0 to not remove degenerate facets.
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>--check-mesh</term>
+          <listitem>
+         <para>
+               Check consistency of output mesh (most for debugging/testing.
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>-v [--verbose]</term>
+          <listitem>
+         <para>
+               Output more information about what is going on.
+         </para>
+         </listitem>
+     </varlistentry>
+         
+     <varlistentry>
+          <term>-h [--help]</term>
+          <listitem>
+         <para>
+               write help message.
+         </para>
+         </listitem>             
+     </varlistentry>
+   </variablelist>
+</para>
+</refsect1>
+
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>dolfin-convert (1), dolfin-order (1)</para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+         <para><command>&dhpackage;</command> was written by Benjamin
+        Kehlet <email>benjamik@simula.no</email>. This man page was written by
+        &dhusername; &dhemail;.
+      </para>
+
+
+    <!-- <para>Permission is granted to copy, distribute and/or modify
+      this document under the terms of the <acronym>GNU</acronym> Free
+      Documentation License, Version 1.1 or any later version
+      published by the Free Software Foundation; with no Invariant
+      Sections, no Front-Cover Texts and no Back-Cover Texts.  A copy
+      of the license can be found under
+      <filename>/usr/share/common-licenses/FDL</filename>.</para> -->
+
+  </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
diff --git a/patches/CGAL_6_compatibility.diff b/patches/CGAL_6_compatibility.diff
new file mode 100644 (file)
index 0000000..58fb78c
--- /dev/null
@@ -0,0 +1,236 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,7 +14,7 @@
+ # CGAL setup
+ option(USE_SYSTEM_CGAL "Do not build CGAL, but use an existing build instead." OFF)
+ if (USE_SYSTEM_CGAL)
+-  find_package(CGAL 5 CONFIG REQUIRED)
++  find_package(CGAL 6 CONFIG REQUIRED)
+ endif()
+ # Borrow some cmake modules from cgal
+@@ -43,8 +43,8 @@
+   ENDFOREACH (value2)
+ ENDMACRO(LIST_CONTAINS)
+-# Use C++14 to support std:enable_if used by CGAL 5
+-set(CMAKE_CXX_STANDARD 14)
++# Use C++17 as required by CGAL 6
++set(CMAKE_CXX_STANDARD 17)
+ # Boost
+ # This is workaround to avoid that find_package(Boost)
+@@ -161,7 +161,7 @@
+   )
+ # CMAKE_CXX_STANDARD is ignored ;( Need to set standard manually here.
+-set_property(TARGET mshr PROPERTY CXX_STANDARD 14)
++set_property(TARGET mshr PROPERTY CXX_STANDARD 17)
+ # install library
+ install(TARGETS mshr
+@@ -181,7 +181,7 @@
+     )
+ # CMAKE_CXX_STANDARD is ignored ;( Need to set standard manually here.
+-set_property(TARGET mshrable PROPERTY CXX_STANDARD 14)
++set_property(TARGET mshrable PROPERTY CXX_STANDARD 17)
+   # install app
+   install(TARGETS mshrable
+--- a/python/setup.py
++++ b/python/setup.py
+@@ -36,8 +36,8 @@
+                      include_dirs=include_dirs,
+                      library_dirs=config['mshr']['lib_dirs'].split(";"),
+                      libraries=config['mshr']['libs'].split(";"),
+-                     extra_compile_args=['-std=c++14'],
+-                     language='c++14')
++                     extra_compile_args=['-std=c++17'],
++                     language='c++17')
+ setup(name             = 'mshr',
+--- a/src/CSGCGALDomain2D.cpp
++++ b/src/CSGCGALDomain2D.cpp
+@@ -109,35 +109,37 @@
+     auto ii = CGAL::intersection(r, *eit);
+     if (ii)
+     {
+-      if (const Point_2* pt = boost::get<Point_2>(&*ii))
++      Point_2 pt;
++      Segment_2 s;
++      if (CGAL::assign(pt, ii))
+       {
+-        const FT squared_distance = CGAL::squared_distance(source, *pt);
++        const FT squared_distance = CGAL::squared_distance(source, pt);
+         if (squared_distance < min_squared_distance)
+         {
+-          closest = *pt;
++          closest = pt;
+           min_squared_distance = squared_distance;
+         }
+       }
+-      else if (const Segment_2* s = boost::get<Segment_2>(&*ii))
++      else if (CGAL::assign(s, ii))
+       {
+         // If the intersection is a segment, an edge in the polygon is paralell
+         // to the ray. Simply check both the source and the target point of the
+         // segment.
+         {
+-          const FT squared_distance = CGAL::squared_distance(source, s->source());
++          const FT squared_distance = CGAL::squared_distance(source, s.source());
+           if (squared_distance < min_squared_distance)
+           {
+-            closest = s->source();
++            closest = s.source();
+             min_squared_distance = squared_distance;
+           }
+         }
+         {
+-          const FT squared_distance = CGAL::squared_distance(source, s->target());
++          const FT squared_distance = CGAL::squared_distance(source, s.target());
+           if (squared_distance < min_squared_distance)
+           {
+-            closest = s->target();
++            closest = s.target();
+             min_squared_distance = squared_distance;
+           }
+         }
+--- a/src/CSGCGALDomain3D.cpp
++++ b/src/CSGCGALDomain3D.cpp
+@@ -1727,9 +1727,10 @@
+         auto result = intersection(t, ray);
+         if(result)
+         {
+-          if (const Exact_Point_3* p = boost::get<Exact_Point_3>(&*result))
++          Exact_Point_3 p;
++          if (CGAL::assign(p, result))
+           {
+-            points.insert(*p);
++            points.insert(p);
+           }
+         }
+       }
+--- a/src/Polyhedron_utils.h
++++ b/src/Polyhedron_utils.h
+@@ -1057,7 +1057,9 @@
+           if (intersection)
+           {
+-            if (boost::get<InexactPoint_2>(&*intersection))
++            InexactPoint_2 pt;
++            InexactSegment_2 s;
++            if (CGAL::assign(pt, intersection))
+             {
+               if (j != i+1 && i != (j+1)%vertices.size())
+               {
+@@ -1067,7 +1069,7 @@
+                 return false;
+               }
+             }
+-            else if (boost::get<InexactSegment_2>(&*intersection))
++            else if (CGAL::assign(s, intersection))
+             {
+               std::cout << "Intersects in segment" << std::endl;
+               return false;
+@@ -1730,14 +1732,16 @@
+     if (!result)
+       return false;
+-    if (const Point_3* p = boost::get<Point_3>(&*result))
++    Point_3 p;
++    Segment_3 s_;
++    if (CGAL::assign(p, result))
+     {
+-      if (*p == t[0] || *p == t[1] || *p == t[2])
++      if (p == t[0] || p == t[1] || p == t[2])
+         return false;
+       else
+         return true;
+     }
+-    else if (const Segment_3* s_ = boost::get<Segment_3>(&*result))
++    else if (CGAL::assign(s_, result))
+     {
+       if ( (s.source() == t[0] || s.source() == t[1] || s.source() == t[2]) &&
+            (s.target() == t[0] || s.target() == t[1] || s.target() == t[2]) )
+@@ -1769,7 +1773,11 @@
+     if (!result)
+       return false;
+-    if (const Point_3* p = boost::get<Point_3>(&*result))
++    Point_3 p;
++    Segment_3 s;
++    Triangle_3 t;
++    std::vector<Point_3> v;
++    if (CGAL::assign(p, result))
+     {
+       if (t1[0] == t2[0] || t1[0] == t2[1] || t1[0] == t2[2] ||
+           t1[1] == t2[0] || t1[1] == t2[1] || t1[1] == t2[2] ||
+@@ -1778,7 +1786,7 @@
+       else
+         return true;
+     }
+-    else if (const Segment_3* s = boost::get<Segment_3>(&*result))
++    else if (CGAL::assign(s, result))
+     {
+       std::size_t common_vertices = 0;
+       if (t1[0] == t2[0] || t1[0] == t2[1] || t1[0] == t2[2])
+@@ -1795,9 +1803,9 @@
+       else
+         return true;
+     }
+-    else if (const Triangle_3* t = boost::get<Triangle_3>(&*result))
++    else if (CGAL::assign(t, result))
+       return true;
+-    else if (const std::vector<Point_3>* v = boost::get<std::vector<Point_3> >(&*result))
++    else if (CGAL::assign(v, result))
+       return true;
+     dolfin_assert(false);
+@@ -2382,11 +2390,13 @@
+         auto result = CGAL::intersection(t, s);
+         dolfin_assert(result);
+-        if (const Point_3* p = boost::get<Point_3>(&*result))
++      Point_3 p;
++      Segment_3 s;
++        if (CGAL::assign(p, result))
+         {
+-          dolfin_assert(*p == s.source() || *p == s.target());
++          dolfin_assert(p == s.source() || p == s.target());
+         }
+-        else if (const Segment_3* s = boost::get<Segment_3>(&*result))
++        else if (CGAL::assign(s, result))
+         {
+           return true;
+         }
+@@ -2438,17 +2448,20 @@
+       const auto result = CGAL::intersection(t1, t2);
+       dolfin_assert(result);
+-      if (const Segment_3* s = boost::get<Segment_3>(&*result))
++      Segment_3 s;
++      Point_3 p;
++      Triangle_3 t;
++      if (CGAL::assign(s, result))
+       {
+-        ss << "Segment: " << *s << std::endl;
++        ss << "Segment: " << s << std::endl;
+       }
+-      else if (const Point_3* p = boost::get<Point_3>(&*result))
++      else if (CGAL::assign(p, result))
+       {
+-        ss << "Point: " << *p << std::endl;
++        ss << "Point: " << p << std::endl;
+       }
+-      else if (const Triangle_3* t = boost::get<Triangle_3>(&*result))
++      else if (CGAL::assign(t, result))
+       {
+-        ss << "Triangle: " << *t << std::endl;
++        ss << "Triangle: " << t << std::endl;
+       }
+       else
+       {
diff --git a/patches/lib_rename.patch b/patches/lib_rename.patch
new file mode 100644 (file)
index 0000000..5bc8165
--- /dev/null
@@ -0,0 +1,99 @@
+Index: mshr/CMakeLists.txt
+===================================================================
+--- mshr.orig/CMakeLists.txt   2020-10-05 00:07:03.341164950 +0800
++++ mshr/CMakeLists.txt        2020-10-05 00:09:55.459354628 +0800
+@@ -90,6 +90,7 @@
+ include_directories(BEFORE ${EXTERNAL_INCLUDE_DIRS})
+ add_definitions("${EXTERNAL_DEFINITIONS}")
++set(DOLFIN_LIB_NAME_EXT ${LIB_NAME_EXT})
+ find_package(DOLFIN REQUIRED)
+ include(${DOLFIN_USE_FILE})
+@@ -127,6 +128,7 @@
+   set(MSHR_LIBRARY_PROPERTIES ${MSHR_LIBRARY_PROPERTIES}
+     VERSION ${MSHR_LIBRARY_VERSION}
+     SOVERSION ${MSHR_VERSION_MAJOR}.${MSHR_VERSION_MINOR}
++    OUTPUT_NAME "mshr${LIB_NAME_EXT}"
+   )
+ endif()
+ set_target_properties(mshr PROPERTIES ${MSHR_LIBRARY_PROPERTIES})
+Index: mshr/mshrConfig.cmake.in
+===================================================================
+--- mshr.orig/mshrConfig.cmake.in      2020-10-05 00:07:03.341164950 +0800
++++ mshr/mshrConfig.cmake.in   2020-10-05 00:07:03.337164993 +0800
+@@ -12,4 +12,4 @@
+ set(mshr_EXTERNAL_LIBRARIES "@CONF_EXTERNAL_LIBRARIES@")
+ set(mshr_CXX_DEFINITIONS "@CONF_CXX_DEFINITIONS@")
+ set(mshr_CXX_FLAGS "@CONF_CXX_FLAGS@")
+-set(mshr_LIBRARIES mshr)
++set(mshr_LIBRARIES mshr${MSHR_LIB_NAME_EXT})
+Index: mshr/python/setup.py
+===================================================================
+--- mshr.orig/python/setup.py  2020-10-05 00:07:03.341164950 +0800
++++ mshr/python/setup.py       2020-10-05 00:07:03.337164993 +0800
+@@ -6,15 +6,24 @@
+ # Call cmake to generate json file with include and link information about dolfin and pybind11
+-if not os.path.isfile(os.path.join("build", "config.json")) :
+-    if not os.path.exists("build") :
+-        os.mkdir("build")
++MSHR_LIB_NAME_EXT = os.environ.get('MSHR_LIB_NAME_EXT') or ''
++DOLFIN_LIB_NAME_EXT = os.environ.get('DOLFIN_LIB_NAME_EXT') or ''
++config_dir="build" + MSHR_LIB_NAME_EXT
++if not os.path.isfile(os.path.join(config_dir, "config.json")) :
++    if not os.path.exists(config_dir) :
++        os.mkdir(config_dir)
+     cmake_command=["cmake", os.getcwd()]
+     if os.environ.get('CMAKE_PREFIX_PATH'):
+         cmake_command.extend(['-DCMAKE_PREFIX_PATH={}'.format(os.environ['CMAKE_PREFIX_PATH'])])
+-    subprocess.check_call(cmake_command, cwd=os.path.abspath("build"))
++    if MSHR_LIB_NAME_EXT:
++        cmake_command.extend(['-DMSHR_LIB_NAME_EXT={}'.format(MSHR_LIB_NAME_EXT)])
++    if DOLFIN_LIB_NAME_EXT:
++        cmake_command.extend(['-DDOLFIN_LIB_NAME_EXT={}'.format(DOLFIN_LIB_NAME_EXT)])
++    elif MSHR_LIB_NAME_EXT:
++        cmake_command.extend(['-DDOLFIN_LIB_NAME_EXT={}'.format(MSHR_LIB_NAME_EXT)])
++    subprocess.check_call(cmake_command, cwd=os.path.abspath(config_dir))
+-with open(os.path.join("build", "config.json"), 'r') as infile :
++with open(os.path.join(config_dir, "config.json"), 'r') as infile :
+     config = json.load(infile)
+ include_dirs = config["pybind11"]["include_dirs"].split(";") + \
+Index: mshr/python/cmake/Findmshr.cmake
+===================================================================
+--- mshr.orig/python/cmake/Findmshr.cmake      2020-10-05 00:07:03.341164950 +0800
++++ mshr/python/cmake/Findmshr.cmake   2020-10-05 00:07:03.337164993 +0800
+@@ -20,7 +20,7 @@
+ find_path(mshr_INCLUDE_DIR mshr.h
+           DOC "The mshr include directory")
+-set(mshr_NAMES ${mshr_NAMES} libmshr mshr)
++set(mshr_NAMES ${mshr_NAMES} libmshr${MSHR_LIB_NAME_EXT} mshr${MSHR_LIB_NAME_EXT})
+ find_library(mshr_LIBRARY NAMES ${mshr_NAMES}
+             DOC "The mshr library")
+@@ -39,7 +39,7 @@
+   set( mshr_FOUND 1 )
+   # use by setuptools.Extension, mshr_LIBRARIES must be in a form that appends to -l
+   # i.e. mshr not libmshr.so
+-  set( mshr_LIBRARIES "mshr" )
++  set( mshr_LIBRARIES "mshr${MSHR_LIB_NAME_EXT}" )
+   get_filename_component( mshr_LIBRARIES_DIRS ${mshr_LIBRARY} DIRECTORY )
+   set( mshr_INCLUDE_DIRS ${mshr_INCLUDE_DIR} )
+ else()
+Index: mshr/mshr-config.cmake.in
+===================================================================
+--- mshr.orig/mshr-config.cmake.in     2020-10-05 00:07:03.341164950 +0800
++++ mshr/mshr-config.cmake.in  2020-10-05 00:07:03.337164993 +0800
+@@ -12,6 +12,6 @@
+ set(MSHR_EXTERNAL_LIBRARIES "@CONF_EXTERNAL_LIBRARIES@")
+ set(MSHR_CXX_DEFINITIONS "@CONF_CXX_DEFINITIONS@")
+ set(MSHR_CXX_FLAGS "@CONF_CXX_FLAGS@")
+-set(MSHR_LIBRARIES mshr)
++set(MSHR_LIBRARIES mshr${MSHR_LIB_NAME_EXT})
+ set(MSHR_USE_FILE "${MSHR_CMAKE_DIR}/use-mshr.cmake")
+\ No newline at end of file
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..16c4b6f
--- /dev/null
@@ -0,0 +1,3 @@
+test_controls.diff
+lib_rename.patch
+CGAL_6_compatibility.diff
diff --git a/patches/test_controls.diff b/patches/test_controls.diff
new file mode 100644 (file)
index 0000000..063ef2f
--- /dev/null
@@ -0,0 +1,63 @@
+--- /dev/null
++++ b/demo/python/test.py
+@@ -0,0 +1,27 @@
++import os
++import pathlib
++import subprocess
++import sys
++import pytest
++
++
++# Get directory of this file
++dir_path = pathlib.Path(__file__).resolve().parent
++
++# Build list of demo programs
++demos = []
++for subdir in ['.']:
++    p = pathlib.Path(dir_path, subdir)
++    demo_files = list(p.glob('*.py'))
++    for f in demo_files:
++        demos.append((f.parent, f.name))
++
++
++@pytest.mark.parametrize("path,name", demos)
++def test_demos(path, name):
++
++    # Run in serial
++    ret = subprocess.run([sys.executable, name],
++                         cwd=str(path),
++                         env={**os.environ, 'MPLBACKEND': 'agg'},
++                         check=True)
+--- /dev/null
++++ b/test/test.py
+@@ -0,0 +1,30 @@
++import os
++import pathlib
++import subprocess
++import sys
++import pytest
++
++
++# Get directory of this file
++dir_path = pathlib.Path(__file__).resolve().parent
++
++# Build list of demo programs
++tests = []
++for subdir in ['.']:
++    p = pathlib.Path(dir_path, subdir)
++    test_files = list(p.glob('**/*.py'))
++    for f in test_files:
++        tests.append((f.parent, f.name))
++
++
++# remove tests that are known to break
++tests = [d for d in tests if d[1] not in '']
++
++
++@pytest.mark.parametrize("path,name", tests)
++def test_demos(path, name):
++
++    ret = subprocess.run([sys.executable, name],
++                         cwd=str(path),
++                         env={**os.environ, 'MPLBACKEND': 'agg'},
++                         check=True)
diff --git a/python3-mshr-real.install b/python3-mshr-real.install
new file mode 100644 (file)
index 0000000..7aadc9c
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/python3*/*-packages/*
diff --git a/python3-mshr.examples b/python3-mshr.examples
new file mode 100644 (file)
index 0000000..4b02f7b
--- /dev/null
@@ -0,0 +1 @@
+demo/python/*
diff --git a/python3-mshr.install b/python3-mshr.install
new file mode 100644 (file)
index 0000000..a362828
--- /dev/null
@@ -0,0 +1 @@
+debian/mshr.pth usr/lib/python3/dist-packages/
diff --git a/python3-mshr64-real.docs b/python3-mshr64-real.docs
new file mode 100644 (file)
index 0000000..e174728
--- /dev/null
@@ -0,0 +1 @@
+debian/README.Debian
diff --git a/python3-mshr64-real.install b/python3-mshr64-real.install
new file mode 100755 (executable)
index 0000000..7bdc526
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo "debian/tmp64/usr/lib/python3*/dist-packages/* usr/lib/python3/dist-packages"
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..d4888a2
--- /dev/null
+++ b/rules
@@ -0,0 +1,157 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/architecture.mk
+
+MSHR_HOME = $(CURDIR)/$(DEB_SRCDIR)
+USCAN_DESTDIR := $(CURDIR)
+PY3VERS := $(shell py3versions --requested debian/control | tac -s' ')
+PYVERS = $(PY3VERS)
+
+DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
+DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-)
+DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
+DEB_STRIPPED_UPSTREAM_VERSION = $(shell echo $(DEB_UPSTREAM_VERSION) | sed -e 's/\+dfsg.*$$//p')
+
+FENICS_RELEASE_VERSION=$(DEB_STRIPPED_UPSTREAM_VERSION)
+FENICS_MAJOR_VERSION=$(shell echo $(FENICS_RELEASE_VERSION) | sed "s/^\([^.]*\)\..*$$/\1/")
+FENICS_MINOR_VERSION=$(shell echo $(FENICS_RELEASE_VERSION) | sed "s/^\([^.]*\)\.\([^.]*\)\..*$$/\2/")
+FENICS_VERSION=$(FENICS_MAJOR_VERSION).$(FENICS_MINOR_VERSION)
+FENICS_NEXT_VERSION=$(FENICS_MAJOR_VERSION).$(shell echo $$(( $(FENICS_MINOR_VERSION) + 1 )) )
+
+# dolfin depends on the pybind11 version it was built against,
+# if pybind11.h will be used in C++ code fragments in python scripts.
+# But pybind11 follows semantic versioning, so should have backwards compatibility
+# with minor and patch version updates.
+# Extract pybind11 version from pybind11-dev
+PYBIND11_DEB_VERSION=$(shell dpkg -s pybind11-dev | awk '/Version:/ {print $$2}')
+# extract the current pybind11 version X.Y.Z (drop epoch and debian package version)
+PYBIND11_UPSTREAM_VERSION=$(shell echo $(PYBIND11_DEB_VERSION) | sed "s/^.[^:]*://; s/-[^-]*$$//")
+PYBIND11_X_VERSION=$(shell echo $(PYBIND11_UPSTREAM_VERSION) | sed "s/^\([^.]*\).*/\1/")
+PYBIND11_X_Y_VERSION=$(shell echo $(PYBIND11_UPSTREAM_VERSION) | sed "s/^\(.*\)\.\([^.]*\)$$/\1/")
+PYBIND11_VERSION=$(PYBIND11_X_Y_VERSION)
+PYBIND11_NEXT_VERSION=$(shell echo $$(( $(PYBIND11_X_VERSION) + 1 )) )
+
+# extract PETSc version from petsc-dev
+PETSC_DEB_VERSION=$(shell dpkg -s petsc-dev | awk '/Version:/ {print $2}')
+# extract the current PETSc version
+PETSC_UPSTREAM_VERSION=$(shell pkg-config --modversion PETSc)
+# "Major" version is the first number in the upstream version (major.minor.release)
+PETSC_MAJOR_VERSION=$(shell echo $(PETSC_UPSTREAM_VERSION) | sed "s/^\([^.]*\)\..*$$/\1/")
+# "Minor" version is the second number in the upstream version (major.minor.release)
+PETSC_MINOR_VERSION=$(shell echo $(PETSC_UPSTREAM_VERSION) | sed "s/^\([^.]*\)\.\([^.]*\)\..*$$/\2/")
+PETSC_VERSION=$(PETSC_MAJOR_VERSION).$(PETSC_MINOR_VERSION)
+PETSC_VERSION_NEXT=$(shell echo $(PETSC_MAJOR_VERSION).$$(($(PETSC_MINOR_VERSION)+1)))
+
+SLEPC_UPSTREAM_VERSION=$(shell pkg-config --modversion SLEPc)
+# SLEPc version must match PETSc
+SLEPC_VERSION=$(PETSC_VERSION)
+SLEPC_VERSION_NEXT=$(PETSC_VERSION_NEXT)
+
+PETSC_DIR=/usr/lib/petscdir/petsc$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-real
+SLEPC_DIR=/usr/lib/slepcdir/slepc$(SLEPC_VERSION)/$(DEB_HOST_MULTIARCH)-real
+
+PETSC64_DIR=/usr/lib/petscdir/petsc64-$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-real
+SLEPC64_DIR=/usr/lib/slepcdir/slepc64-$(SLEPC_VERSION)/$(DEB_HOST_MULTIARCH)-real
+
+BUILDDIR = obj-$(DEB_HOST_GNU_TYPE)
+BUILDDIR_64 = obj-$(DEB_HOST_GNU_TYPE)-64
+
+MSHR_LIBDIR = /usr/lib/mshr
+MSHR64_LIBDIR = /usr/lib/mshr64
+
+# some arches (mostly 32 bit) don't provide enough memory to build with debug symbols
+ARCH_NO_DEBUG_SYMBOLS := armhf i386 mips64el mipsel hppa m68k powerpc x32
+ifeq ($(findstring $(DEB_BUILD_ARCH),$(ARCH_NO_DEBUG_SYMBOLS)),)
+  MSHR_BUILDFLAGS := $(shell dpkg-buildflags --get CXXFLAGS )
+else
+# remove -g from build flags on weak arches
+  MSHR_BUILDFLAGS := $(shell dpkg-buildflags --get CXXFLAGS | sed 's/-g //' )
+endif
+
+CMAKE_OPTS := \
+       -D CMAKE_BUILD_TYPE:STRING=Release \
+       -D BUILD_SHARED_LIBS:BOOL=ON \
+       -D USE_SYSTEM_CGAL:BOOL=ON \
+       -D USE_SYSTEM_TETGEN:BOOL=ON \
+       -D ENABLE_MSHRABLE:BOOL=ON \
+       -D CMAKE_SKIP_RPATH:BOOL=ON \
+       -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \
+       -D INSTALL_LIB_DIR:PATH=lib/$(DEB_BUILD_MULTIARCH) \
+       -D CMAKE_CXX_FLAGS:STRING="-fpermissive $(MSHR_BUILDFLAGS)" \
+       $(MSHR_HOME)
+
+ifeq (,$(DISTRIBUTION))
+       DISTRIBUTION := $(shell dpkg-parsechangelog --format rfc822 | sed -ne "s/^Distribution: //p")
+endif
+
+ifneq ($(DISTRIBUTION),$(findstring $(DISTRIBUTION),"squeeze wheezy lucid maverick natty oneiric precise quantal raring saucy trusty"))
+       DISTRIBUTION := sid
+endif
+
+%:
+       dh $@ --buildsystem=cmake \
+             --with python3 \
+             --no-parallel
+
+override_dh_auto_clean:
+       dh_auto_clean
+       rm -rf python/build*
+       rm -rf python/mshr.egg-info
+       rm -rf debian/tmp64
+       rm -rf $(BUILDDIR) $(BUILDDIR_64)
+
+override_dh_auto_configure:
+       PETSC_DIR=$(PETSC_DIR) SLEPC_DIR=$(SLEPC_DIR) dh_auto_configure --builddir=$(BUILDDIR) -- $(CMAKE_OPTS)
+       PETSC_DIR=$(PETSC64_DIR) SLEPC_DIR=$(SLEPC64_DIR) dh_auto_configure --builddir=$(BUILDDIR_64) -- $(CMAKE_OPTS) -DLIB_NAME_EXT="64" -DDOLFIN_LIB_NAME_EXT="64"
+
+override_dh_auto_build:
+       PETSC_DIR=$(PETSC_DIR) SLEPC_DIR=$(SLEPC_DIR) dh_auto_build --builddir=$(BUILDDIR)
+       PETSC_DIR=$(PETSC64_DIR) SLEPC_DIR=$(SLEPC64_DIR) dh_auto_build --builddir=$(BUILDDIR_64)
+
+override_dh_auto_install:
+       dh_auto_install --builddir=$(BUILDDIR) --destdir=debian/tmp
+       dh_auto_install --builddir=$(BUILDDIR_64) --destdir=debian/tmp64
+       set -e; \
+       for v in $(PYVERS); do \
+          cd python; \
+          PETSC_DIR=$(PETSC_DIR) SLEPC_DIR=$(SLEPC_DIR) \
+          CMAKE_PREFIX_PATH=$(CURDIR)/debian/tmp/usr \
+          $$v setup.py build --build-base=$(CURDIR)/python/build-$$v install --root=$(CURDIR)/debian/tmp --install-layout=deb; \
+          PETSC_DIR=$(PETSC64_DIR) SLEPC_DIR=$(SLEPC64_DIR) \
+          CMAKE_PREFIX_PATH=$(CURDIR)/debian/tmp64/usr MSHR_LIB_NAME_EXT="64" DOLFIN_LIB_NAME_EXT="64" \
+          $$v setup.py build --build-base=$(CURDIR)/python/build64-$$v install --root=$(CURDIR)/debian/tmp64 --install-layout=deb; \
+          cd ..; \
+       done
+       dh_numpy3
+
+override_dh_python3-arch:
+       dh_python3 -a
+       dh_numpy3 -a
+       mkdir -p debian/python3-mshr-real/$(MSHR_LIBDIR)
+       mv debian/python3-mshr-real/usr/lib/python3  debian/python3-mshr-real/$(MSHR_LIBDIR)
+       mkdir -p debian/python3-mshr64-real/$(MSHR64_LIBDIR)
+       mv debian/python3-mshr64-real/usr/lib/python3  debian/python3-mshr64-real/$(MSHR64_LIBDIR)
+
+override_dh_gencontrol:
+       dh_gencontrol -- -Vfenics:Upstream-Version=$(FENICS_VERSION) \
+               -Vpybind11:Upstream-Version=$(PYBIND11_VERSION) -Vpybind11:Next-Upstream-Version=$(PYBIND11_NEXT_VERSION)
+
+# debug symbols (-g) have been switched off in CMAKE_OPTS for some arches, so no point building dbgsym packages
+override_dh_strip:
+       case " $(ARCH_NO_DEBUG_SYMBOLS) " in \
+           *\ $(DEB_HOST_ARCH)\ *) dh_strip --no-automatic-dbgsym;; \
+           *) dh_strip;; \
+       esac
+
+override_dh_dwz:
+       case " $(ARCH_NO_DEBUG_SYMBOLS) " in \
+           *\ $(DEB_HOST_ARCH)\ *) echo "skipping dh_dwz since debug symbols (-g) have been switched off for $(DEB_HOST_ARCH)";; \
+           *) dh_dwz;; \
+       esac
+
+#override_dh_shlibdeps:
+#      dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
+
+.PHONY: get-orig-source
+get-orig-source:
+       uscan --force-download --verbose --destdir $(USCAN_DESTDIR)
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..88d3984
--- /dev/null
@@ -0,0 +1,8 @@
+Tests: test-mshr-python
+Depends: python3-mshr,
+         python3-pytest
+
+Tests: test-mshr64-python,
+Depends: python3-mshr64-real,
+         python3-mshr,
+         python3-pytest
diff --git a/tests/test-mshr-python b/tests/test-mshr-python
new file mode 100644 (file)
index 0000000..f2929b0
--- /dev/null
@@ -0,0 +1,13 @@
+DEB_HOST_ARCH=$( dpkg-architecture  --query DEB_HOST_ARCH )
+if [ "${DEB_HOST_ARCH}" = "i386" ]; then
+  # skip test-meshes, which hangs on i386
+  PYTEST_KEY="-k 'not test-meshes'"
+fi
+
+echo "=== python unit tests ==="
+eval python3 -m pytest -v "${PYTEST_KEY}" test/test.py
+
+echo "=== python demo tests ==="
+DEMO_TEST_DIR=$AUTOPKGTEST_TMP
+cp -r /usr/share/doc/python3-mshr/examples ${DEMO_TEST_DIR}
+python3 -m pytest -v ${DEMO_TEST_DIR}/examples/test.py
diff --git a/tests/test-mshr64-python b/tests/test-mshr64-python
new file mode 100644 (file)
index 0000000..f241d6a
--- /dev/null
@@ -0,0 +1,19 @@
+export PETSC_DIR=/usr/lib/petsc64
+export SLEPC_DIR=/usr/lib/slepc64
+
+export MSHR_LIB_NAME_EXT=64
+export DOLFIN_LIB_NAME_EXT=64
+
+DEB_HOST_ARCH=$( dpkg-architecture  --query DEB_HOST_ARCH )
+if [ "${DEB_HOST_ARCH}" = "i386" ]; then
+  # skip test-meshes, which hangs on i386
+  PYTEST_KEY="-k 'not test-meshes'"
+fi
+
+echo "=== python unit tests for 64-bit build ==="
+eval python3 -m pytest -v "${PYTEST_KEY}" test/test.py
+
+echo "=== python demo tests for 64-bit build ==="
+DEMO_TEST_DIR=$AUTOPKGTEST_TMP
+cp -r /usr/share/doc/python3-mshr/examples ${DEMO_TEST_DIR}
+python3 -m pytest -v ${DEMO_TEST_DIR}/examples/test.py
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..0bfb33d
--- /dev/null
+++ b/watch
@@ -0,0 +1,3 @@
+version=3
+opts=dversionmangle=s/\+dfsg\d*$//,repacksuffix=+dfsg1 \
+https://bitbucket.org/fenics-project/mshr/downloads/mshr-(.*)\.tar\.gz