From: Francesco Ballarin Date: Sun, 3 Nov 2024 14:45:53 +0000 (+0000) Subject: mshr (2019.2.0~git20230811.ff54a68+dfsg1-4) unstable; urgency=medium X-Git-Tag: archive/raspbian/2019.2.0_git20230811.ff54a68+dfsg1-4+rpi1^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e8d28e810cbceb1398596e348067e7befc2de219;p=mshr.git 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. [dgit import unpatched mshr 2019.2.0~git20230811.ff54a68+dfsg1-4] --- e8d28e810cbceb1398596e348067e7befc2de219 diff --cc debian/.gitlab-ci.yml index 0000000,0000000..9cca603 new file mode 100644 --- /dev/null +++ b/debian/.gitlab-ci.yml @@@ -1,0 -1,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 --cc debian/README.Debian index 0000000,0000000..b78682b new file mode 100644 --- /dev/null +++ b/debian/README.Debian @@@ -1,0 -1,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 --cc debian/changelog index 0000000,0000000..f054986 new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,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 Sun, 03 Nov 2024 14:45:53 +0000 ++ ++mshr (2019.2.0~git20230811.ff54a68+dfsg1-3) unstable; urgency=medium ++ ++ * Upload to unstable ++ ++ -- Francesco Ballarin 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 21 May 2019 14:11:59 +0800 ++ ++mshr (2019.1.0+dfsg1-1) experimental; urgency=medium ++ ++ * New upstream release (official). ++ ++ -- Drew Parsons 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Fri, 20 May 2016 08:23:26 +0800 diff --cc debian/control index 0000000,0000000..07506d5 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,165 @@@ ++Source: mshr ++Section: math ++Priority: optional ++Maintainer: Debian Science Team ++Uploaders: ++ Johannes Ring , ++ Drew Parsons , ++ Francesco Ballarin ++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 --cc debian/copyright index 0000000,0000000..cf462f5 new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,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 ++Contributors: ++ Anders Logg ++ Joachim B Haga ++ Johannes Ring ++ Lars Magnus Valnes ++ Garth N. Wells ++Files-Excluded: 3rdparty/CGAL 3rdparty/tetgen1.5.0 ++ ++Files: * ++Copyright: © 2012-2017 Benjamin Kehlet ++ 2012-2015 Anders Logg ++ 2012 Johannes Ring ++ 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 ++ 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 , ++ 2016 Drew Parsons ++License: GPL-2+ ++ /usr/share/common-licenses/GPL-2 diff --cc debian/docs index 0000000,0000000..a1320b1 new file mode 100644 --- /dev/null +++ b/debian/docs @@@ -1,0 -1,0 +1,1 @@@ ++README.rst diff --cc debian/libmshr-dev-common.install index 0000000,0000000..62f9b82 new file mode 100644 --- /dev/null +++ b/debian/libmshr-dev-common.install @@@ -1,0 -1,0 +1,3 @@@ ++usr/include/mshr ++usr/include/mshr.h ++usr/lib/*/cmake/mshr diff --cc debian/libmshr-dev.install index 0000000,0000000..1edef27 new file mode 100644 --- /dev/null +++ b/debian/libmshr-dev.install @@@ -1,0 -1,0 +1,2 @@@ ++usr/lib/**/*.so ++usr/bin/mshrable diff --cc debian/libmshr-dev.manpages index 0000000,0000000..60ad814 new file mode 100644 --- /dev/null +++ b/debian/libmshr-dev.manpages @@@ -1,0 -1,0 +1,1 @@@ ++debian/mshrable.1 diff --cc debian/libmshr2019.2.install index 0000000,0000000..8755c99 new file mode 100644 --- /dev/null +++ b/debian/libmshr2019.2.install @@@ -1,0 -1,0 +1,1 @@@ ++usr/lib/**/lib*.so.* diff --cc debian/libmshr64-2019.2.install index 0000000,0000000..4336ff4 new file mode 100755 --- /dev/null +++ b/debian/libmshr64-2019.2.install @@@ -1,0 -1,0 +1,2 @@@ ++#!/bin/sh ++echo "debian/tmp64/usr/lib/**/libmshr64*.so.* usr/lib/${DEB_HOST_MULTIARCH}" diff --cc debian/libmshr64-dev.docs index 0000000,0000000..e174728 new file mode 100644 --- /dev/null +++ b/debian/libmshr64-dev.docs @@@ -1,0 -1,0 +1,1 @@@ ++debian/README.Debian diff --cc debian/libmshr64-dev.install index 0000000,0000000..98292a9 new file mode 100755 --- /dev/null +++ b/debian/libmshr64-dev.install @@@ -1,0 -1,0 +1,2 @@@ ++#!/bin/sh ++echo "debian/tmp64/usr/lib/**/libmshr64*.so usr/lib/${DEB_HOST_MULTIARCH}" diff --cc debian/mshr.pth index 0000000,0000000..e8ba8bf new file mode 100644 --- /dev/null +++ b/debian/mshr.pth @@@ -1,0 -1,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 --cc debian/mshrable.1 index 0000000,0000000..336f2f8 new file mode 100644 --- /dev/null +++ b/debian/mshrable.1 @@@ -1,0 -1,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 --cc debian/mshrable.sgml index 0000000,0000000..a7c8f4a new file mode 100644 --- /dev/null +++ b/debian/mshrable.sgml @@@ -1,0 -1,0 +1,202 @@@ ++Drew"> ++ Parsons"> ++ ++ 19 May, 2016"> ++ 1"> ++ dparsons@debian.org"> ++ ++ MSHRABLE"> ++ ++ ++ Debian GNU/Linux"> ++ GNU"> ++]> ++ ++ ++ ++ ++ ++
++ &dhemail; ++
++ ++ &dhfirstname; ++ &dhsurname; ++ ++ ++ 2001 ++ &dhusername; ++ ++ &dhdate; ++
++ ++ &dhucpackage; ++ ++ &dhsection; ++ ++ ++ &dhpackage; ++ ++ Generate mesh from surface file ++ ++ ++ ++ &dhpackage; ++ -f FILE ++ ++ ++ ++ ++ DESCRIPTION ++ ++ &dhpackage; 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. ++ ++ ++ ++ ++ OPTIONS ++ ++ ++ ++ -o [--outfile] arg ++ ++ ++ Filename of generated Dolfin mesh. ++ ++ ++ ++ ++ ++ -r [--resolution] arg (=15) ++ ++ ++ Resolution of result mesh. ++ ++ ++ ++ ++ ++ -s [--stats] ++ ++ ++ Write some statistics of the mesh to stdout. ++ ++ ++ ++ ++ ++ --polyout arg ++ ++ ++ Write the polyhedron to .poly which Tetgen can read ++ (and do not create a mesh). ++ ++ ++ ++ ++ ++ --polystats ++ ++ ++ Write statistics of polyhedron (and do not create a ++ mesh). ++ ++ ++ ++ ++ ++ -b [--backend] arg (=cgal) ++ ++ ++ Use 3D mesh generation backend [tetgen|cgal]. ++ ++ ++ ++ ++ ++ --degenerate_tolerance arg (=9.9999999999999998e-13) ++ ++ ++ Tolerance for considering a facet as degenerate. Set ++ to 0 to not remove degenerate facets. ++ ++ ++ ++ ++ ++ --check-mesh ++ ++ ++ Check consistency of output mesh (most for debugging/testing. ++ ++ ++ ++ ++ ++ -v [--verbose] ++ ++ ++ Output more information about what is going on. ++ ++ ++ ++ ++ ++ -h [--help] ++ ++ ++ write help message. ++ ++ ++ ++ ++ ++ ++ ++ ++ SEE ALSO ++ ++ dolfin-convert (1), dolfin-order (1) ++ ++ ++ AUTHOR ++ &dhpackage; was written by Benjamin ++ Kehlet benjamik@simula.no. This man page was written by ++ &dhusername; &dhemail;. ++ ++ ++ ++ ++ ++ ++
++ ++ ++ diff --cc debian/patches/CGAL_6_compatibility.diff index 0000000,0000000..58fb78c new file mode 100644 --- /dev/null +++ b/debian/patches/CGAL_6_compatibility.diff @@@ -1,0 -1,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(&*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(&*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(&*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(&*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(&*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(&*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(&*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(&*result)) +++ Point_3 p; +++ Segment_3 s; +++ Triangle_3 t; +++ std::vector 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(&*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(&*result)) +++ else if (CGAL::assign(t, result)) ++ return true; ++- else if (const std::vector* v = boost::get >(&*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(&*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(&*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(&*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(&*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(&*result)) +++ else if (CGAL::assign(t, result)) ++ { ++- ss << "Triangle: " << *t << std::endl; +++ ss << "Triangle: " << t << std::endl; ++ } ++ else ++ { diff --cc debian/patches/lib_rename.patch index 0000000,0000000..5bc8165 new file mode 100644 --- /dev/null +++ b/debian/patches/lib_rename.patch @@@ -1,0 -1,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 --cc debian/patches/series index 0000000,0000000..16c4b6f new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,3 @@@ ++test_controls.diff ++lib_rename.patch ++CGAL_6_compatibility.diff diff --cc debian/patches/test_controls.diff index 0000000,0000000..063ef2f new file mode 100644 --- /dev/null +++ b/debian/patches/test_controls.diff @@@ -1,0 -1,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 --cc debian/python3-mshr-real.install index 0000000,0000000..7aadc9c new file mode 100644 --- /dev/null +++ b/debian/python3-mshr-real.install @@@ -1,0 -1,0 +1,1 @@@ ++usr/lib/python3*/*-packages/* diff --cc debian/python3-mshr.examples index 0000000,0000000..4b02f7b new file mode 100644 --- /dev/null +++ b/debian/python3-mshr.examples @@@ -1,0 -1,0 +1,1 @@@ ++demo/python/* diff --cc debian/python3-mshr.install index 0000000,0000000..a362828 new file mode 100644 --- /dev/null +++ b/debian/python3-mshr.install @@@ -1,0 -1,0 +1,1 @@@ ++debian/mshr.pth usr/lib/python3/dist-packages/ diff --cc debian/python3-mshr64-real.docs index 0000000,0000000..e174728 new file mode 100644 --- /dev/null +++ b/debian/python3-mshr64-real.docs @@@ -1,0 -1,0 +1,1 @@@ ++debian/README.Debian diff --cc debian/python3-mshr64-real.install index 0000000,0000000..7bdc526 new file mode 100755 --- /dev/null +++ b/debian/python3-mshr64-real.install @@@ -1,0 -1,0 +1,2 @@@ ++#!/bin/sh ++echo "debian/tmp64/usr/lib/python3*/dist-packages/* usr/lib/python3/dist-packages" diff --cc debian/rules index 0000000,0000000..d4888a2 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,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 --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/tests/control index 0000000,0000000..88d3984 new file mode 100644 --- /dev/null +++ b/debian/tests/control @@@ -1,0 -1,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 --cc debian/tests/test-mshr-python index 0000000,0000000..f2929b0 new file mode 100644 --- /dev/null +++ b/debian/tests/test-mshr-python @@@ -1,0 -1,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 --cc debian/tests/test-mshr64-python index 0000000,0000000..f241d6a new file mode 100644 --- /dev/null +++ b/debian/tests/test-mshr64-python @@@ -1,0 -1,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 --cc debian/watch index 0000000,0000000..0bfb33d new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,3 @@@ ++version=3 ++opts=dversionmangle=s/\+dfsg\d*$//,repacksuffix=+dfsg1 \ ++https://bitbucket.org/fenics-project/mshr/downloads/mshr-(.*)\.tar\.gz