From 75b13585409c7f3e5f0b918982c6e30f72c2f84b Mon Sep 17 00:00:00 2001 From: Drew Parsons Date: Mon, 11 Feb 2019 08:14:25 +0000 Subject: [PATCH] Import dolfin_2018.1.0.post1-16.debian.tar.xz [dgit import tarball dolfin 2018.1.0.post1-16 dolfin_2018.1.0.post1-16.debian.tar.xz] --- README.Debian | 23 + changelog | 1115 +++++++++++++++++ compat | 1 + control | 196 +++ copyright | 296 +++++ docs | 2 + dolfin-bin.install | 10 + dolfin-bin.links | 1 + dolfin-bin.manpages | 5 + dolfin-convert.1.gz | Bin 0 -> 789 bytes dolfin-doc.install | 3 + dolfin-doc.links | 1 + dolfin-get-demos.1 | 14 + dolfin-order.1.gz | Bin 0 -> 305 bytes dolfin-plot.1.gz | Bin 0 -> 321 bytes dolfin-version.1.gz | Bin 0 -> 236 bytes libdolfin-dev.install | 5 + libdolfin2018.1.install | 1 + not-installed | 1 + patches/PETSc_3.10_SNESTEST_removed.patch | 43 + patches/conditional-parmetis-in-cholmod.patch | 15 + patches/extra_CXXFLAGS.patch | 15 + .../mpi_prefer_mumps_not_superlu_dist.patch | 104 ++ patches/pytest_fixtures_096217a.patch | 471 +++++++ patches/series | 8 + patches/skip_demo_hyperelasticity_mpi.patch | 12 + patches/test_mpi_oversubscribe.patch | 13 + patches/unittests_demos_include_dirs.patch | 24 + python-dolfin.lintian-overrides | 2 + python3-dolfin.install | 1 + rules | 250 ++++ source/format | 1 + source/include-binaries | 4 + tests/control | 6 + tests/test-dolfin-cpp | 45 + tests/test-dolfin-python | 15 + upstream/signing-key.asc | 30 + watch | 4 + 38 files changed, 2737 insertions(+) create mode 100644 README.Debian create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 docs create mode 100644 dolfin-bin.install create mode 100644 dolfin-bin.links create mode 100644 dolfin-bin.manpages create mode 100644 dolfin-convert.1.gz create mode 100644 dolfin-doc.install create mode 100644 dolfin-doc.links create mode 100644 dolfin-get-demos.1 create mode 100644 dolfin-order.1.gz create mode 100644 dolfin-plot.1.gz create mode 100644 dolfin-version.1.gz create mode 100644 libdolfin-dev.install create mode 100644 libdolfin2018.1.install create mode 100644 not-installed create mode 100644 patches/PETSc_3.10_SNESTEST_removed.patch create mode 100644 patches/conditional-parmetis-in-cholmod.patch create mode 100644 patches/extra_CXXFLAGS.patch create mode 100644 patches/mpi_prefer_mumps_not_superlu_dist.patch create mode 100644 patches/pytest_fixtures_096217a.patch create mode 100644 patches/series create mode 100644 patches/skip_demo_hyperelasticity_mpi.patch create mode 100644 patches/test_mpi_oversubscribe.patch create mode 100644 patches/unittests_demos_include_dirs.patch create mode 100644 python-dolfin.lintian-overrides create mode 100644 python3-dolfin.install create mode 100755 rules create mode 100644 source/format create mode 100644 source/include-binaries create mode 100644 tests/control create mode 100644 tests/test-dolfin-cpp create mode 100644 tests/test-dolfin-python create mode 100644 upstream/signing-key.asc create mode 100644 watch diff --git a/README.Debian b/README.Debian new file mode 100644 index 0000000..7e2d279 --- /dev/null +++ b/README.Debian @@ -0,0 +1,23 @@ +Conditional Support for SuperLU-Dist +------------------------------------ + +In principle dolfin supports SuperLU-Dist. However the superlu-dist +package distributed by Debian is mostly useless since mc64, one of its +core functions, cannot legally be redistributed and so has been +removed from the Debian package. For this reason, we have given +preference to mumps over superlu_dist. + +You may specify superlu_dist if desired (or if you have a local build +of superlu_dist that includes mc64), for instance with + solve(a == L, u, bc, solver_parameters={'linear_solver': 'superlu_dist'}) + +You may also successfully use superlu_dist without mc64 by specifying +C++: + PETScOptions::set("-mat_superlu_dist_rowperm", "NATURAL"); +Python: + PETScOptions.set('-mat_superlu_dist_rowperm', 'NATURAL') +Performance will likely be reduced. + +The same problem applies to superlu, from which mc64 has also been +removed. superlu still functions successfully however (mc64 is not +core for the serial version of SuperLU). diff --git a/changelog b/changelog new file mode 100644 index 0000000..69a76d6 --- /dev/null +++ b/changelog @@ -0,0 +1,1115 @@ +dolfin (2018.1.0.post1-16) unstable; urgency=medium + + * use ctest --output-on-failure not -output-on-failure + + -- Drew Parsons Mon, 11 Feb 2019 19:14:25 +1100 + +dolfin (2018.1.0.post1-15) unstable; urgency=medium + + * symlink man-page for fenics-version to manpage for dolfin-version + * run ctest with -output-on-failure to show details of test failures + + -- Drew Parsons Mon, 11 Feb 2019 13:58:33 +1100 + +dolfin (2018.1.0.post1-14) unstable; urgency=medium + + * add debian patch pytest_fixtures_096217a.patch + (upstream commit 096217a0a3cb710e869d7e82a3d3609c4d968b76) + to update tests for latest pytest API. + * debhelper compatibility level 12 + * dolfin-bin installs /usr/bin/fenics-version + * usr/share/dolfin/dolfin.conf is redundant on Debian, + list it in debian/not-installed + * debian/rules: + - skip C++ build-time tests of demo_elastodynamics_mpi + (unreliable, sometimes passes, but fails with pdebuild) + - override dh_dwz to ignore python module .so files (already + stripped by python's setuptools) + + -- Drew Parsons Sat, 09 Feb 2019 18:07:21 +1100 + +dolfin (2018.1.0.post1-13) unstable; urgency=medium + + * Standards-Version: 4.3.0 + * create patch PETSc_3.10_SNESTEST_removed.patch to work with + PETSc 3.10 (SNESTEST has been removed). Thanks Jed Brown. + + -- Drew Parsons Wed, 26 Dec 2018 09:14:38 +0100 + +dolfin (2018.1.0.post1-12) unstable; urgency=medium + + * apply strict versioned depends on pybind11, + python3-dolfin Depends: pybind11 (>= 2.2.4), pybind11 (<= 2.2.5) + Closes: #909407. + * Hardening: add dpkg-buildflags CXXFLAGS to CMAKE_CXX_FLAGS and + python module build + * use VERBOSE build of python modules + + -- Drew Parsons Mon, 24 Sep 2018 03:03:27 +0800 + +dolfin (2018.1.0.post1-11) unstable; urgency=medium + + * skip slow build-time tests (>500-1000 sec to complete) + * rebuild for pybind11 2.2.4 + + -- Drew Parsons Sun, 23 Sep 2018 04:58:48 +0800 + +dolfin (2018.1.0.post1-10) unstable; urgency=medium + + * skip build-time tests: + - demo_auto-adaptive-poisson_serial test on m68k + - demo_cahn-hilliard_mpi and other MPI tests on mips + - all tests on sh4 + + -- Drew Parsons Tue, 04 Sep 2018 03:53:23 +0800 + +dolfin (2018.1.0.post1-9) unstable; urgency=medium + + * autopkgtest: configure cpp tests with mpicc to ensure that the + cmake test for PetscInt passes + * Standards-Version: 4.2.1 + + -- Drew Parsons Mon, 03 Sep 2018 04:17:35 +0800 + +dolfin (2018.1.0.post1-8) unstable; urgency=medium + + * mark libdolfin2018.1 as Multi-Arch: same + * python3-dolfin Depends: python3-six + * Standards-Version: 4.2.0 + + -- Drew Parsons Fri, 17 Aug 2018 00:11:03 +0800 + +dolfin (2018.1.0.post1-7) unstable; urgency=medium + + * skip demo_stokes-taylor-hood_mpi test on mips64el + + -- Drew Parsons Wed, 01 Aug 2018 22:54:05 +0800 + +dolfin (2018.1.0.post1-6) unstable; urgency=medium + + * skip demo_cahn-hilliard_mpi, demo_ale_mpi, demo_poisson-disc_mpi + tests on mipsel + * skip demo_elasticity_serial test on m68k + * run build-time tests on mips, but skip demo_cahn-hilliard_serial, + demo_hyperelasticity_serial + + -- Drew Parsons Tue, 31 Jul 2018 15:16:58 +0800 + +dolfin (2018.1.0.post1-5) unstable; urgency=medium + + * update debian/test (autopkgtest) Depends + * skip demo_sym-dirichlet-bc_mpi test on ppc64el + * skip ALL build-time tests on mips, hurd-i386 + + -- Drew Parsons Sat, 28 Jul 2018 22:42:00 +0800 + +dolfin (2018.1.0.post1-4) unstable; urgency=medium + + * skip demo_bcs_mpi test on mips64el + * update debian/tests/control Depends: @, @builddeps@ + (to provide c++) + + -- Drew Parsons Fri, 27 Jul 2018 14:47:32 +0800 + +dolfin (2018.1.0.post1-3) unstable; urgency=medium + + * update skipped tests: + - skip demo_navier-stokes_mpi test on arm64 + - skip demo_contact-vi-tao_mpi on mips64el + - skip demo_stokes-iterative_mpi on mipsel + - skip all MPI tests on armhf, i386, hppa, powerpc + * don't download fresh source for tests + * do copy symlink contents for C++ tests (in particular, copy + pulley.xdmf for demo_elasticity) + * tests Depends: python3-pytest + + -- Drew Parsons Fri, 27 Jul 2018 02:42:56 +0800 + +dolfin (2018.1.0.post1-2) unstable; urgency=medium + + * new upstream version for unstable. + Some minor API changes: + - Rename `mpi_comm_world()` to `MPI.comm_world`. + - Rename `ERROR`, `CRITICAL` etc. to `LogLevel.ERROR`, + `LogLevel.CRITICAL`. + * skip demo_curl-curl_mpi test on mips64el + + -- Drew Parsons Thu, 26 Jul 2018 01:19:42 +0800 + +dolfin (2018.1.0.post1-1exp6) experimental; urgency=medium + + * skip all MPI tests on ppc64el + + -- Drew Parsons Wed, 11 Jul 2018 10:39:00 +0800 + +dolfin (2018.1.0.post1-1exp5) experimental; urgency=medium + + * updates to debian/rules: + - identify build dir using DEB_HOST_GNU_TYPE + - respect the parallel flag in DEB_BUILD_OPTIONS when running tests + - skip cahn-hilliard, elasticity, elastodynamics MPI build tests + which fail or time out for: armel mips64el ppc64el + - skip m68k MPI tests altogether (times out) + * debian patch unittests_demos_include_dirs.patch ensures include + directories are defined for tests without reconfiguring cmake + * link elasticity/pulley.xdmf from python demo to cpp demo + * allow parallel jobs (max 8) in CI test test-dolfin-cpp + + -- Drew Parsons Sun, 08 Jul 2018 13:14:48 +0800 + +dolfin (2018.1.0.post1-1exp4) experimental; urgency=medium + + * Enable installation CI testing with Testsuite: autopkgtest. + * run build-time tests including unittests and demos + - use --oversubscribe with openmpi tests + - skip demo_hyperelasticity_mpi (it diverges) + * enable MPI for mpich arches. LAM arches will have to manually + set ENABLE_MPI=OFF in debian/rules. + * configure default preference for mumps or petsc over superlu_dist, + since superlu_dist is crippled by mc64, which cannot be + redistributed. + * Standards-Version: 4.1.5 + + -- Drew Parsons Fri, 06 Jul 2018 23:49:43 +0800 + +dolfin (2018.1.0.post1-1exp3) experimental; urgency=medium + + * Build-Depends: python3-all-dev (build against all python3 versions) + + -- Drew Parsons Thu, 28 Jun 2018 11:21:07 +0800 + +dolfin (2018.1.0.post1-1exp2) experimental; urgency=medium + + * process python demo files only for doc (arch-indep) builds + + -- Drew Parsons Wed, 27 Jun 2018 23:45:13 +0800 + +dolfin (2018.1.0.post1-1exp1) experimental; urgency=medium + + * New corrected upstream release. + * install python demos with dolfin-doc + + -- Drew Parsons Wed, 27 Jun 2018 20:50:58 +0800 + +dolfin (2018.1.0.post0-1exp1) experimental; urgency=medium + + * Corrected upstream release. + - includes the fenics python module. + - petsc4py and other include dirs are no longer added to + DOLFIN_3RD_PARTY_INCLUDE_DIRS in DOLFINConfig.cmake. + Closes: #895419. + * Use override_dh_auto_test instead of DEB_BUILD_OPTIONS=nocheck + to skip build time tests without triggering a lintian warning. + + -- Drew Parsons Tue, 26 Jun 2018 01:38:04 +0800 + +dolfin (2018.1.0-1exp1) experimental; urgency=medium + + [ Nico Schlömer ] + * remove Python 2 package in preparation of 2018.1 + + [ Drew Parsons ] + * New upstream release. + - python-dolfin is now a dummy package that depends on python3-dolfin. + - remove debian patches applied upstream: + env.patch, gnuinstalldirs.patch, use-dolfin.patch + - no longer uses instant + - uses pybind11 instead of SWIG + * remove ancient-python-version-field X-Python3-Version: >= 3.4 + * Standards-Version: 4.1.4 + * Manpages for dolfin-bin scripts taken from old dolfin docs. + + -- Drew Parsons Fri, 15 Jun 2018 17:38:32 +0200 + +dolfin (2017.2.0.post0-3) unstable; urgency=medium + + * update petsc/slepc dependencies for PETSc/SLEPc 3.8 + (dev package now libpetsc-real3.8-dev not libpetsc3.8.3-dev) + + -- Drew Parsons Sun, 04 Mar 2018 10:46:39 +0800 + +dolfin (2017.2.0.post0-2) unstable; urgency=medium + + * debian/control: update VCS tags to salsa.debian.org + + -- Drew Parsons Thu, 22 Feb 2018 08:56:02 +0800 + +dolfin (2017.2.0.post0-1exp2) experimental; urgency=medium + + * reorganise debian/copyright: collect core DOLFIN files and + contributors in one entry. + * Remove -dbg packages from debian/control. + Debug packages (-dbgsym) are built automatically. + + -- Drew Parsons Fri, 16 Feb 2018 15:34:44 +0800 + +dolfin (2017.2.0.post0-1exp1) experimental; urgency=medium + + * New upstream release. + - updated debian/upstream/signing-key.asc for signature + from the FEniCS Project Steering Council (key BED06106DD22BAB3) + - drops VTK support (no plots, but VTK files can still be created) + - update versions of Build-Dependencies: + cmake (>= 3.5), swig3.0 (>= 3.0.5), + petsc-dev (>= 3.7), slepc-dev (>= 3.7), + libboost-dev (>= 1.56), libeigen3-dev (>= 3.2.90) + * Standards-Version: 4.1.3 + * Update debian.patches + - file encoding now included when reading files in python scripts + - VTK no longer supported + * debhelper compatibility level 11 + * debian/control: Priority: optional not extra + * FEniCS version dependencies are taken as >=2017.2 and <=2017.3~ + i.e. depend on major.minor version only + + -- Drew Parsons Sun, 21 Jan 2018 21:21:52 +0800 + +dolfin (2017.1.0-4) unstable; urgency=medium + + * Team upload. + * New upstream (new soname) version built against GCC7. + Closes: #871279. + * Builds against swig 3.0.12. Closes: #875395. + + -- Drew Parsons Tue, 12 Sep 2017 15:45:48 +0800 + +dolfin (2017.1.0-3) experimental; urgency=medium + + * Team upload. + * Add debian/patches/FindPETScSLEPc.patch to test for PETSc and + SLEPc at build time. The patch ensures tests link against -lmpi. + Thanks Johannes Ring. + + -- Drew Parsons Tue, 05 Sep 2017 01:20:24 +0800 + +dolfin (2017.1.0-2) experimental; urgency=medium + + * Team upload. + * Create debian patch conditional-parmetis-in-cholmod.patch to only + link cholmod support with parmetis if parmetis support is enabled. + Parmetis is non-free and therefore cannot routinely be supported + while dolfin is in Debian main. + * Standards-Version: 4.1.0 + * debhelper compatibility level 10. + + -- Drew Parsons Mon, 28 Aug 2017 23:26:11 +0800 + +dolfin (2017.1.0-1) experimental; urgency=medium + + * New upstream release. + * d/control: + - Update package names (libdolfin2016.2 -> libdolfin2017.1 + and libdolfin2016.2-dbg -> libdolfin2017.1-dbg). + - Bump minimum required version for python-dijitso and python-ffc to + 2017.1 in Build-Depends. + * Move d/libdolfin2016.2.install -> d/libdolfin2017.1.install. + * d/patches/python3-support.patch: removed (fixed upstream). + + -- Johannes Ring Fri, 07 Jul 2017 11:24:50 +0200 + +dolfin (2016.2.0-5) unstable; urgency=medium + + * libdolfin-dev depends on either the python2 or python3 version of + modules (enables python3-only installation). + + -- Drew Parsons Thu, 06 Jul 2017 15:21:57 +0800 + +dolfin (2016.2.0-4) unstable; urgency=medium + + [ Johannes Ring ] + * d/rules: + - Re-generate swig interface with correct Python version + before build and install. Closes: #863829. + - Build for Python 2 after Python 3 by switching the order in + PYVERS, since Python 2 is default. + * Add patch vtk-python2-only-cmake-usefile.patch that disables the + vtk section in UseDOLFIN.cmake for Python 3. Closes: #863828. + * d/control: Add python-ffc to Depends for binary package + libdolfin-dev (provides ufc.h). + + -- Drew Parsons Wed, 07 Jun 2017 12:14:40 +0800 + +dolfin (2016.2.0-3) unstable; urgency=medium + + [ Drew Parsons ] + * Enable petsc/slepc dependencies on kfreebsd. Note that PETSc + support in dolfin on kfreebsd is not in fact active due to linking + problems during configuration tests, but dolfin builds + successfully without it. Closes: #822971. + + [ Johannes Ring ] + * Support Python 3: new packages python3-dolfin and python3-dolfin-dbg. + + -- Drew Parsons Tue, 30 May 2017 16:17:28 +0800 + +dolfin (2016.2.0-2) unstable; urgency=medium + + * Dolfin depends on specific 3.7.X patch releases of PETSc and SLEPc + (see dolfin.pc, DOLFINConfig.cmake) + + -- Drew Parsons Tue, 24 Jan 2017 06:18:32 +0800 + +dolfin (2016.2.0-1) unstable; urgency=medium + + [ Drew Parsons ] + * Drop HDF5 Fortran configuration (it's not actually used). + * Tighten build and python-dolfin fenics dependencies to the + FENiCS minor version: (>= 2016.2.0), (<< 2016.3~) + + [ Johannes Ring ] + * New upstream release. + * d/watch: Check pgp signature. + * d/control: + - Update package names (libdolfin2016.1 -> libdolfin2016.2 + and libdolfin2016.1-dbg -> libdolfin2016.2-dbg). + - Bump minimum required version for python-instant, python-ufl and + python-ffc to 2016.2. + - Add python-dijitso to Build-Depends and Depends for binary package + python-dolfin. + + -- Drew Parsons Wed, 21 Dec 2016 16:47:36 +0800 + +dolfin (2016.1.0-5) unstable; urgency=medium + + * Reenable HDF5 support. + * patches/HDF5-configure.patch helps configure HDF5 parallel. + + -- Drew Parsons Fri, 16 Sep 2016 11:16:05 +0800 + +dolfin (2016.1.0-4) unstable; urgency=medium + + * Disable HDF5 support. + HDF5 was never actually enabled previously due to a discrepant + configuration between serial and parallel HDF5, but that now + causes dolfin to fail to build. + + -- Drew Parsons Wed, 14 Sep 2016 12:52:59 +0800 + +dolfin (2016.1.0-3) unstable; urgency=medium + + * Thanks Christophe Prud'homme for your uploads of the earlier + versions of dolfin. Removing from the Uploaders list now. + Closes: #835003. + * enable parallel build (dh $@ --parallel). Closes: #833602. + + -- Drew Parsons Mon, 12 Sep 2016 17:19:42 +0800 + +dolfin (2016.1.0-2) unstable; urgency=medium + + * Enable build against version of PETSc (and SLEPc) provided by + petsc-dev, e.g. PETSc 3.6 or 3.7. + * Include support for petsc4py and slepc4py. + * Update debian/watch (uscan). + + -- Drew Parsons Thu, 11 Aug 2016 23:08:05 +0800 + +dolfin (2016.1.0-1) unstable; urgency=medium + + [ Johannes Ring ] + * New upstream release. + * debian/control: + - Update package names for new SONAME 2016.1 (libdolfin1.6 -> + libdolfin2016.1 and libdolfin1.6-dbg -> libdolfin2016.1-dbg). + - Bump minimum required version for python-instant, python-ufl and + python-ffc to 2016.1. + * Move debian/libdolfin1.6.install -> debian/libdolfin2016.1.install. + * debian/rules: Add -fpermissive to CXX flags. + + -- Drew Parsons Tue, 05 Jul 2016 13:14:01 +0800 + +dolfin (1.6.0-5) unstable; urgency=medium + + * Depends: libpetsc3.6-dev rather than petsc-dev. + Likewise libslepc3.6-dev. + dolfin 1.6 is not compatible with petsc 3.7. + + -- Drew Parsons Tue, 07 Jun 2016 09:11:42 +0800 + +dolfin (1.6.0-4) unstable; urgency=medium + + [ Mattia Rizzolo ] + * debian/control: + + Update VCS fields after the move to Git. + + [ Drew Parsons ] + * Remove python-dolfin dependency on python-netcdf. Closes: #821215. + * Build against vtk6 not vtk5 (source and libdolfin-dev dependencies). + Requires Qt4 support to be switched off (vtk6 uses Qt5). + Qt support has been dropped upstream. Closes: #821875. + * Activate support for SCOTCH. + * Standards-Version: 3.9.8 + + -- Drew Parsons Tue, 26 Apr 2016 23:59:41 +0800 + +dolfin (1.6.0-3) unstable; urgency=medium + + * Team upload. + * Use OPENMPI_ARCHITECTURES from mpi-default-dev instead of hardcoding + architectures where not to use openmpi. + + -- Mattia Rizzolo Thu, 21 Apr 2016 15:33:43 +0000 + +dolfin (1.6.0-2) unstable; urgency=medium + + * Team upload. + * Run wrap-and-sort -s + * Switch to unversioned Build-Depends on petsc-dev and slepc-dev (also for + the libdolfin-dev dependencies). + + -- Mattia Rizzolo Thu, 21 Apr 2016 13:32:44 +0000 + +dolfin (1.6.0-1) unstable; urgency=medium + + * New upstream release. + * debian/control: + - Add gfortran to build dependencies. + - Update package names for new SONAME 1.6 (libdolfin1.5 -> + libdolfin1.6 and libdolfin1.5-dbg -> libdolfin1.6-dbg). + - Bump minimum required version for python-instant, python-ufl and + python-ffc to 1.6.0. + - Require swig3.0 (>= 3.0.3) in Build-Depends. + * Move debian/libdolfin1.5.install -> debian/libdolfin1.6.install. + * Remove patch for fixing problem with Python 2.7.10 (fixed upstream). + * debian/rules: + - Replace swig with swig3.0. + - Set PETSC_DIR to /usr/lib/petsc and SLEPC_DIR to /usr/lib/slepc. + - Explicitly disable petsc4py, slepc4py and sphinx. + - Help CMake find the parallel version of hdf5. + + -- Johannes Ring Sat, 31 Oct 2015 13:30:16 +0800 + +dolfin (1.5.0-4) unstable; urgency=medium + + * debian/control: Enable libpetsc3.2-dev and libslepc3.2-dev on + armel, arm64 and hurd-i386 (closes: #787494). + * debian/rules: Enable MPI on armel. + + -- Johannes Ring Tue, 02 Jun 2015 12:39:45 +0200 + +dolfin (1.5.0-3) unstable; urgency=medium + + * Add patch to fix issue with Python 2.7.10 (closes: #786857). + + -- Johannes Ring Mon, 01 Jun 2015 09:26:07 +0200 + +dolfin (1.5.0-2) unstable; urgency=medium + + * Upload to unstable (closes: #780359). + + -- Johannes Ring Wed, 13 May 2015 09:48:59 +0200 + +dolfin (1.5.0-1) experimental; urgency=medium + + * New upstream release (closes: #780359). + * debian/control: + - Bump Standards-Version to 3.9.6 (no changes needed). + - Bump X-Python-Version to >= 2.7. + - Update package names for new SONAME 1.5 (libdolfin1.4 -> + libdolfin1.5, libdolfin1.4-dbg -> libdolfin1.5-dbg and + libdolfin1.4-dev -> libdolfin1.5-dev). + - Bump minimum required version for python-instant, python-ufl and + python-ffc to 1.5.0. + - Add python-sympy and python-six to Depends for binary package + python-dolfin. + - Add dh-python to Build-Depends. + - Remove libcgal-dev from {Build-}Depends. + * Remove CSGCGALMeshGenerator3D-oom.patch since CGAL is no longer used + by DOLFIN. + * Move debian/libdolfin1.4.install -> debian/libdolfin1.5.install. + * debian/rules: No longer any non DFSG-free stuff to remove, so update + get-orig-source target (update debian/watch accordingly). + * Update debian/copyright and debian/copyright_hints. + + -- Johannes Ring Tue, 17 Mar 2015 07:57:11 +0100 + +dolfin (1.4.0+dfsg-4) unstable; urgency=medium + + * debian/control: Disable libcgal-dev on i386, mipsel and sparc. + * debian/rules: Remove bad directives in pkg-config file dolfin.pc + (closes: #760658). + * Remove debian/libdolfin-dev.lintian-overrides. + + -- Johannes Ring Mon, 22 Sep 2014 14:35:34 +0200 + +dolfin (1.4.0+dfsg-3) unstable; urgency=medium + + * debian/rules: Enable MPI on mips(el) and sparc (closes: #759182). + * debian/control: + - Disable libcgal-dev on {hurd, kfreebsd}-i386 since it requires + unreasonable amounts of memory (closes: #759183). + - Disable libpetsc3.4.2-dev and libslepc3.4.2-dev on amr64 since + they are not available on this architecture. + + -- Johannes Ring Fri, 29 Aug 2014 08:28:19 +0200 + +dolfin (1.4.0+dfsg-2) unstable; urgency=medium + + * Rename libdolfin1.4-dev to libdolfin-dev and remove dolfin-dev. + + -- Johannes Ring Mon, 18 Aug 2014 10:21:43 +0200 + +dolfin (1.4.0+dfsg-1) unstable; urgency=medium + + * New upstream release. + * debian/control: + - Update package names for new SONAME 1.3 (libdolfin1.3 -> + libdolfin1.4, libdolfin1.3-dbg -> libdolfin1.4-dbg and + libdolfin1.3-dev -> libdolfin1.4-dev). + - Bump minimum required version for python-instant, python-ufl and + python-ffc to 1.4.0. + - Add python-ffc (>= 1.4.0) to Build-Depends. + - Replace swig2.0 with swig in Build-Depends. + - Remove ufc and python-ufc from Build-Depends and from Depends for + binary package libdolfin1.4-dev and python-dolfin (closes: #755727). + - Add libdolfin1.3-dev in Conflicts and Replaces for binary package + libdolfin1.4-dev. + - Remove libarmadillo-dev from {Build-}Depends. + - Remove libptscotch-dev from {Build-}Depends (closes: #741165). + * Move debian/libdolfin1.3.install -> debian/libdolfin1.4.install + and debian/libdolfin1.3-dev.install -> debian/libdolfin1.4-dev.install. + * debian/rules: + - Enable CGAL again (accidentally disabled in last upload). + - No longer needed to remove .pyc files in get-orig-source target. + - Add "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to get-orig-source + target to help uscan download from Bitucket. + * Remove patch for bug in Boost (fixed). + * Add lintian override libdolfin1.4-dev: pkg-config-bad-directive. + + -- Johannes Ring Mon, 11 Aug 2014 09:57:36 +0200 + +dolfin (1.3.0+dfsg-2) unstable; urgency=medium + + * debian/control: + - Disable libcgal-dev on armhf and mips since it requires + unreasonable amounts of memory (closes: 739697). + - Disable libpetsc3.4.2-dev and libslepc3.4.2-dev on hurd-i386 since + they are not available on this architecture. + * Add patch to workaround bug in boost (thanks to Peter Green). + * Use DEB_BUILD_MULTIARCH when installing the DOLFIN library and + pkg-config file. + + -- Johannes Ring Wed, 26 Feb 2014 12:23:11 +0100 + +dolfin (1.3.0+dfsg-1) unstable; urgency=medium + + * New upstream release. + * Remove patches for PETSc/SLEPc 3.4 (no longer needed). + * debian/docs: README -> README.rst and remove TODO. + * debian/control: + - Bump Standards-Version to 3.9.5 (no changes needed). + - Add libeigen3-dev in Build-Depends and Depends for binary package + libdolfin1.3-dev. + - Add python-ply in Build-Depends. + - Update package names for new SONAME 1.3 (libdolfin1.2 -> + libdolfin1.3, libdolfin1.2-dbg -> libdolfin1.3-dbg and + libdolfin1.2-dev -> libdolfin1.3-dev). + - Bump minimum required version for ufc and python-ufc to 2.3.0, and + for python-instant, python-ufl and python-ffc to 1.3.0. + - Add libdolfin1.2-dev in Conflicts and Replaces for binary package + libdolfin1.3-dev. + - Add python-ply in Build-Depends. + * Move debian/libdolfin1.2.install -> debian/libdolfin1.3.install + and debian/libdolfin1.2-dev.install -> debian/libdolfin1.3-dev.install. + * debian/libdolfin1.3-dev.install: Remove pkg-config file dolfin.pc + (cmake files should be used instead). + * debian/rules: Remove .pyc files in get-orig-source target. + + -- Johannes Ring Fri, 14 Feb 2014 19:11:50 +0100 + +dolfin (1.2.0+dfsg-4) unstable; urgency=medium + + * Team upload. + * CSGCGALMeshGenerator3D-oom.patch: new patch, workaround for FTBFS on some + arches due to g++ eating all the RAM. + + -- Sébastien Villemot Sat, 14 Dec 2013 19:16:13 +0100 + +dolfin (1.2.0+dfsg-3) unstable; urgency=low + + * Team upload. + * Refactor patches for PETSc/SLEPc 3.4, to fix a missing symbol in the library + + petsc-slepc-3.4.2.patch: remove patch + + {slepc,petsc}-3.4.patch: new patches taken from upstream + + -- Sébastien Villemot Sun, 27 Oct 2013 15:48:52 +0100 + +dolfin (1.2.0+dfsg-2) unstable; urgency=low + + * Team upload. + * Update (build-)dependencies to libpetsc3.4.2-dev and + libslepc3.4.2-dev. + * petsc-slepc-3.4.2.patch: new patch to adapt for the new PETSC/SLEPC. + + -- Sébastien Villemot Sat, 26 Oct 2013 04:33:36 +0200 + +dolfin (1.2.0+dfsg-1) unstable; urgency=low + + * New upstream release (closes: #718636, #718153). + * debian/control: + - Replace libdolfin1.1 with libdolfin1.2 and libdolfin1.1-dev with + libdolfin1.2-dev to follow library soname. + - Bump required version for ufc, python-ufc, python-ffc, python-ufl, + and python-instant. + - Add libdolfin1.1-dev to Conflicts and Replaces for binary package + libdolfin1.2-dev. + - Bump Standards-Version to 3.9.4. + - Remove DM-Upload-Allowed field. + - Bump required debhelper version in Build-Depends. + - Replace python-all-dev with python-dev in Build-Depends. + - Remove cdbs from Build-Depends. + - Use canonical URIs for Vcs-* fields. + - Disable libcgal-dev on armel. + - Enable libpetsc3.2-dev and libslepc3.2-dev on armhf and s390x. + - Enable libptscotch-dev on all arches. + - Add new debug package python-dolfin-dbg. + * debian/compat: Bump to compatibility level 9. + * debian/rules: + - Rewrite for debhelper (drop cdbs). + - Avoid hardcoding the swig2.0 version (closes: #692852). + - Update get-orig-source target to remove non DFSG-free stuff, + update watch file accordingly. + * Update debian/copyright and debian/copyright_hints. + * Move debian/libdolfin1.1.install to debian/libdolfin1.2.install and + debian/libdolfin1.1-dev.install to debian/libdolfin1.2-dev.install + to follow library soname. + * Add dolfin-get-demos in dolfin-bin.install and add manual page for it. + * Add all CMake files in libdolfin1.2-dev.install. + + -- Johannes Ring Tue, 06 Aug 2013 16:49:23 +0200 + +dolfin (1.1.0-1) UNRELEASED; urgency=low + + * New upstream release. + * debian/control: + - Replace libdolfin1.0 with libdolfin1.1 and libdolfin1.0-dev with + libdolfin1.1-dev to follow library soname. + - Bump required version for ufc, python-ufc, python-ffc, python-ufl, + and python-instant. + - Add libdolfin1.0-dev to Conflicts and Depends for binary package + libdolfin1.1-dev. + - Add libvtk5-dev, libvtk5-qt4-dev, libqt4-dev, libhdf5-mpi-dev, + libboost-timer-dev and libboost-chrono-dev to Build-Depends and in + Depends field for binary package libdolfin1.1-dev. + - Add python-ply to Depends for binary package python-dolfin. + - Remove python-viper from Depends for binary package python-dolfin. + * debian/rules: Enable building with HDF5, VTK, and QT. + * Move debian/libdolfin1.0.install to debian/libdolfin1.1.install and + debian/libdolfin1.0-dev.install to debian/libdolfin1.1-dev.install + to follow library soname. + * debian/patches: Remove patches now fixed upstream. + * Determine swig2.0 version at build time (closes: #692852). Thanks to + Stefano Riviera for the patch. + + -- Johannes Ring Thu, 10 Jan 2013 11:28:21 +0100 + +dolfin (1.0.0-7) unstable; urgency=low + + * debian/control: + - Remove Conflicts and Replaces from binary package libdolfin1.0-dbg. + - Update long description for all packages. + - Add python-netcdf to Depends for binary package python-dolfin + (closes: #674014). + - Require SWIG upstream version 2.0.7 for binary package + python-dolfin (closes: #675207). + - Require UFC >= 2.0.5-3. + + -- Johannes Ring Fri, 29 Jun 2012 09:45:28 +0200 + +dolfin (1.0.0-6) unstable; urgency=low + + * debian/rules: Set default Python version to fix FTBFS when Python3 + is available (closes: #672952). + * debian/control: Remove Provides: libdolfin0-dev from + libdolfin1.0-dev (and same to -dbg package). + + -- Johannes Ring Mon, 21 May 2012 10:09:59 +0200 + +dolfin (1.0.0-5) unstable; urgency=low + + * Add patches to fix problems with SWIG 2.0.5 and GCC 4.7. + * debian/control: Require UFC >= 2.0.5-2. + + -- Johannes Ring Mon, 14 May 2012 11:25:47 +0200 + +dolfin (1.0.0-4) unstable; urgency=low + + * debian/watch: Replace http with https in URL. + * debian/control: + - Add libcgal-dev to Build-Depends and Depends for binary package + libdolfin1.0-dev. + - Bump Standards-Version to 3.9.3 (no changes needed). + * debian/rules: + - Enable CGAL support. + - Call dh_numpy in binary-install/python-dolfin target to fix + lintian error missing-dependency-on-numpy-abi. + + -- Johannes Ring Tue, 20 Mar 2012 14:47:27 +0100 + +dolfin (1.0.0-3) unstable; urgency=low + + * Disable building with PETSc, SLEPc and SCOTCH on some arches. + + -- Johannes Ring Tue, 14 Feb 2012 11:46:11 +0100 + +dolfin (1.0.0-2) unstable; urgency=low + + * debian/control: + - Replace libpetsc3.1-dev and libslepc3.1-dev with libpetsc3.2-dev + and libslepc3.2-dev, respectively. + - Require libptscotch-dev, libpetsc3.2-dev and libslepc3.2-dev on + all arches. + * debian/rules: Help CMake find version 3.2 of PETSc and SLEPc by + defining PETSC_DIR and SLEPC_DIR variables, respectively. + + -- Johannes Ring Mon, 30 Jan 2012 11:45:31 +0100 + +dolfin (1.0.0-1) unstable; urgency=low + + * New upstream release. + * debian/control: + - Bump version numbers for python-ufc, python-ffc, python-viper, + python-ufl and python-instant in Depends field for binary package + python-dolfin. + - Bump version numbers for ufc and python-ufc in Build-Depends and + in Depends field for binary package libdolfin1.0-dev. + + -- Johannes Ring Thu, 08 Dec 2011 08:47:31 +0100 + +dolfin (1.0-rc2-1) unstable; urgency=low + + * New upstream release. + * debian/control: Bump version for ufc and python-ufc to 2.0.4. + + -- Johannes Ring Tue, 29 Nov 2011 11:44:52 +0100 + +dolfin (1.0-rc1-1) unstable; urgency=low + + * New upstream release. + * debian/control: + - Update Homepage field. + - Add libboost-math-dev to Build-Depends and in Depends field for + binary package libdolfin1.0-dev. + * Disable Trilinos support (version >= 10.8.1 now required). + * Remove patch for building with Trilinos. + * Update debian/copyright and debian/copyright_hints. + + -- Johannes Ring Tue, 22 Nov 2011 12:10:02 +0100 + +dolfin (1.0-beta2-1) unstable; urgency=low + + * New upstream release. + * Add lintian override dolfin-dev: empty-binary-package. + * debian/control: + - Add libboost-mpi-dev in Build-Depends and in Depends field for + binary package libdolfin1.0-dev. + - Bump version numbers for dependencies ufc, python-ufc, python-ffc, + and python-ufl. + * debian/patches: Remove patch for importing PyTrilinos before DOLFIN + as this is now fixed upstream. + + -- Johannes Ring Thu, 27 Oct 2011 13:17:47 +0200 + +dolfin (1.0-beta-1) unstable; urgency=low + + * New upstream release. This release fixes a large number of bugs and + brings many improvements. The most notable changes are improved + support for parallel computing and a redesigned and simplified + interface for solving variational problems. + * debian/control: + - Add libboost-iostreams-dev to Build-Depends and to Depends in -dev + package. + - Replace libdolfin0 with libdolfin1.0 and libdolfin0-dev with + libdolfin1.0-dev to follow library soname. + - Bump required version for ufc, python-ufc, python-ffc, + python-viper, python-ufl, and python-instant. + - Add provide, replace and conflict on libdolfin0-dev for binary + package libdolfin1.0-dev. Similarly for libdolfin1.0-dbg. + * Add patch for importing PyTrilinos before dolfin (closes: #631589). + * Rename libdolfin0.install to libdolfin1.0.install and + libdolfin0-dev.install to libdolfin1.0-dev.install to follow library + soname. + + -- Johannes Ring Wed, 17 Aug 2011 12:01:58 +0200 + +dolfin (0.9.11-1) unstable; urgency=low + + * New upstream release. This release moves to SWIG 2.0 and it + incorporates a significant number of bug fixes. + * debian/control: + - Bump Standards-Version to 3.9.2 (no changes needed). + - Replace swig with swig2.0 in Build-Depends. + - Add swig2.0 to Depends for binary package python-dolfin. + - Bump required version for ufc and python-ufc in Build-Depends. + - Bump required version for ufc, python-ufc, python-ffc, python-ufl + and python-instant in Depends for binary packages libdolfin0-dev + and python-dolfin. + * debian/rules: + - Set SWIG_EXECUTABLE to /usr/bin/swig2.0. + - Use DEB_COMPRESS_EXCLUDE_ALL instead of deprecated + DEB_COMPRESS_EXCLUDE. + - Include cdbs utils.mk rule for automated copyright checks. + * debian/copyright: + - Update for upstream license change to LGPLv3. + - Switch to DEP-5 format. + * Remove custom cdbs rules and licensecheck script for copyright check. + * Disable MPI on lam architectures (closes: #627172). + * Add patch to fix FTBFS when Trilinos is enabled (closes: #624925). + + -- Johannes Ring Wed, 18 May 2011 13:30:21 +0200 + +dolfin (0.9.10-2) unstable; urgency=low + + * Move from python-central to dh_python2 (closes: #616793). + - Remove python-central from Build-Depends. + - Bump minimum required python-all-dev package version to 2.6.6-3~. + - Remove XB-Python-Version line. + - Bump minimum required cdbs version to 0.4.90~. + - Replace XS-Python-Version with X-Python-Version. + - Replace call to dh_pycentral with dh_python2 in debian/rules. + * Build for all supported Python versions. + * Remove some unnecessary packages in Depends for binary packages + libdolfin0 and libdolfin0-dev. + * Add ufc and python-ufc in Depends for binary package libdolfin0-dev. + * Add python-ufc, python-ffc, python-viper, python-ufl python-instant, + and python-numpy in Depends for binary package python-dolfin. + * Disable building with PETSc and SLEPc on some architectures. + * Remove old Provides field for binary package python-dolfin. + + -- Johannes Ring Fri, 15 Apr 2011 09:17:37 +0200 + +dolfin (0.9.10-1) unstable; urgency=low + + * New upstream release. This release fixes bug "FTBFS: error: + 'SCOTCH_Dgraph' was not declared in this scope" (closes: #612602). + * debian/control: + - Add libslepc3.1-dev and libboost-thread-dev to Build-Depends and + Depends field in binary package libdolfin0-dev. + - Bump build dependency on python-ufc to >= 2.0.0. + - Remove Build-Depends-Indep field as upstream no longer ships the + user manual. + - Remove old fields Conflicts, Provides, and Replaces from + libdolfin0-dev, libdolfin0, libdolfin0-dbg, and python-dolfin. + * Remove all patches as they are now incorporated upstream. + * Add dolfin-plot and dolfin-version to debian/dolfin-bin.install. + * Remove .doc-base file since the user manual is removed by upstream. + * Remove targets clean and install/dolfin-doc from debian/rules since + they are no longer needed. + + -- Johannes Ring Thu, 24 Feb 2011 10:34:44 +0100 + +dolfin (0.9.9-4) unstable; urgency=low + + * Update Homepage field in debian/control and Maintainer field in + debian/copyright. + * Add patch for generating correct pkg-config file dolfin.pc. + + -- Johannes Ring Tue, 11 Jan 2011 12:36:55 +0100 + +dolfin (0.9.9-3) unstable; urgency=low + + * Add patch from upstream to fix problem with the CMake config file + (dolfin-config.cmake) having the wrong path to the DOLFIN library. + + -- Johannes Ring Tue, 14 Sep 2010 18:45:39 +0200 + +dolfin (0.9.9-2) unstable; urgency=low + + * debian/rules: Make CMake skip adding runtime paths. + + -- Johannes Ring Tue, 14 Sep 2010 10:49:24 +0200 + +dolfin (0.9.9-1) unstable; urgency=low + + * New upstream release. + * Switch to CMake CDBS class: + - Replace scons with cmake in Build-Depends and in Suggests for + binary package dolfin-doc. + - Add cmake to Depends field for binary package libdolfin0-dev. + - Install CMake config file for DOLFIN with package libdolfin0-dev. + * debian/control: + - Update version for python-ufc in Build-Depends field. + - Update version for python-ufl in Depends field for binary package + libdolfin0-dev. + - Update version for ufc and python-ffc in Depends field for binary + package libdolfin0-dev. + - Bump Standards-Version to 3.9.1 (no changes needed). + * Add patches from upstream to help CMake find PETSc, SLEPc, and + Trilinos and for installing some missing utilities (dolfin-convert + and dolfin-order) and manual pages. + * Update debian/copyright and debian/copyright_hints. + + -- Johannes Ring Mon, 13 Sep 2010 11:45:17 +0200 + +dolfin (0.9.8-3) unstable; urgency=low + + * Disable Trilinos on non-supported platforms (closes: #590100). + + -- Johannes Ring Wed, 04 Aug 2010 16:47:38 +0200 + +dolfin (0.9.8-2) unstable; urgency=low + + * Fix generation of pkg-config file dolfin.pc. + + -- Johannes Ring Sun, 04 Jul 2010 20:41:45 +0200 + +dolfin (0.9.8-1) unstable; urgency=low + + * New upstream release. + * debian/control: + - Update version for python-ufc in Build-Depends field. + - Update version for python-ufl in Depends field for binary package + libdolfin0-dev. + - Update version for ufc, python-ffc, and python-viper in Depends + field for binary package libdolfin0-dev. + - Add libarmadillo-dev to Build-Depends and Depends for binary + package libdolfin0-dev. + * Allow building against either version 3.0.0 or 3.1 of PETSc. + * Remove patches (added upstream). + * Switch to dpkg-source 3.0 (quilt) format. + * Update debian/copyright and debian/copyright_hints. + * Enable Trilinos support. + + -- Johannes Ring Fri, 02 Jul 2010 13:24:21 +0200 + +dolfin (0.9.7-5) unstable; urgency=low + + * Add patch from upstream to detect and build with SCOTCH. + + -- Johannes Ring Mon, 14 Jun 2010 13:15:04 +0200 + +dolfin (0.9.7-4) unstable; urgency=low + + * Add support for PETSc 3.1 (closes: #583419). + * Minor fix in Vcs fields in debian/control. + + -- Johannes Ring Mon, 07 Jun 2010 09:25:13 +0200 + +dolfin (0.9.7-3) unstable; urgency=low + + * debian/rules: Remove bashism (closes: #581470). + + -- Johannes Ring Thu, 20 May 2010 10:27:06 +0200 + +dolfin (0.9.7-2) unstable; urgency=low + + * Package moved from pkg-scicomp to Debian Science. + * Enable building for multiple Python versions. + * debian/control: + - Replace python-dev with python-all-dev in Build-Depends. + - Update version dependencies for python-ufc, ufc, python-ffc, and + python-viper (closes: #571780). + - Replace libscotch-dev with libptscotch-dev in Build-Depends and in + Depends for binary package libdolfin0-dev. + * Add configure target to cdbs tweaks for scons. + * Rename binary package python-pydolfin0 to python-dolfin. + + -- Johannes Ring Tue, 27 Apr 2010 17:21:22 +0200 + +dolfin (0.9.7-1) unstable; urgency=low + + * New upstream release. + * debian/control: Add pkg-config to Build-Depends and Depends in + binary package libdolfin0-dev. + * Do not build with GTS (support was removed upstream). + * Keep debian/copyright and debian/copyright_hints up to date. + + -- Johannes Ring Thu, 18 Feb 2010 00:40:38 +0100 + +dolfin (0.9.6-2) unstable; urgency=low + + * Disable support for Trilinos for now. + + -- Johannes Ring Sat, 13 Feb 2010 09:55:48 +0100 + +dolfin (0.9.6-1) unstable; urgency=low + + * New upstream release. + * debian/control: + - Add libtrilinos-dev to Build-Depends and Depends for binary + package libdolfin0-dev. + - Add python-pytrilinos to Build-Depends and Depends for binary + package python-pydolfin0. + - Bump Standards-Version to 3.8.4 (no changes needed). + * debian/rules: + - Enable building with Trilinos. + - Remove some old lintian fixes. + - Fix problem when generating pkg-config dolfin.pc in + install/libdolfin0-dev target. + * debian/copyright: Keep up-to-date with new and removed files. + + -- Johannes Ring Fri, 12 Feb 2010 10:27:02 +0100 + +dolfin (0.9.5-1) unstable; urgency=low + + * New upstream release. This release simplifies the use of Constants + and Expressions in both the C++ and Python interfaces, with the + automatic selection of function spaces from Python. Support for + computing eigenvalues of symmetric matrices has been improved and a + number of small bugs have been fixed. + * debian/watch: Update download URL. + * debian/copyright: Update for new and removed files. + * debian/rules: + - Include new adaptivity demos in dolfin-doc package. + - Disable ParMETIS and MTL4 explicitly. + * Add debian/dolfin-doc.doc-base for DOLFIN user manual. + * debian/control: Slight modifications in package descriptions. + * debian/python-pydolfin0.install: Allow both site-packages and + dist-packages. + + -- Johannes Ring Thu, 10 Dec 2009 11:53:04 +0100 + +dolfin (0.9.4-1) unstable; urgency=low + + * New upstream release. This version cleans up the design of the + function class by adding a new abstraction for user-defined + functions called Expression. A number of minor bugfixes and + improvements have also been made. + * debian/watch: Update for new flat directory structure. + * Update debian/copyright. + * debian/rules: Use explicit paths to PETSc 3.0.0 and SLEPc 3.0.0. + + -- Johannes Ring Mon, 12 Oct 2009 14:13:18 +0200 + +dolfin (0.9.3-1) unstable; urgency=low + + * New upstream release. This version provides many new features, + improvements and bug fixes, including improved XML file handling, + improved Python support and compressed VTK file output. Experimental + parallel assembly and solve is now available, with fully distributed + meshes, parallel mesh partitioning and parallel IO. + * debian/control: + - Add DM-Upload-Allowed: yes. + - Bump debhelper version to 7. + - Bump Standards-Version to 3.8.3 (no changes needed). + - Add libboost-program-options-dev and libboost-filesystem-dev to + Build-Depends and to Depends for binary package libdolfin0-dev. + * debian/rules: + - Update for new 3 step build process. + - Build documentation. + * Update debian/copyright. + * Remove old patches (now included upstream). + * Remove (temporary) support for Trilinos because of #529807. + + -- Johannes Ring Mon, 28 Sep 2009 09:21:05 +0200 + +dolfin (0.9.2-2) unstable; urgency=low + + * debian/control: + - add build-dependency on libtrilinos-dev and + libboost-serialization-dev (closes: #540118). + - add libtrilinos-dev to Depends field for -dev package. + - add python-pytrilinos to Depends field for python- package. + - change -dbg package section to debug (removes lintian warning). + - update Standard-Version to 3.8.2. + * debian/rules: enable building against Trilinos. + * debian/patches: add patch for build system to find Trilinos (taken + from upstream development repository). + + -- Johannes Ring Mon, 10 Aug 2009 16:03:52 +0200 + +dolfin (0.9.2-1) unstable; urgency=low + + * Initial release (Closes: #503082) + + -- Johannes Ring Tue, 16 Sep 2008 08:41:20 +0200 + diff --git a/compat b/compat new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +12 diff --git a/control b/control new file mode 100644 index 0000000..f88e4b1 --- /dev/null +++ b/control @@ -0,0 +1,196 @@ +Source: dolfin +Section: math +Priority: optional +Maintainer: Debian Science Team +Uploaders: + Johannes Ring , + Drew Parsons +Build-Depends: + cmake (>= 3.5), + debhelper (>= 12), + dh-python, + gfortran, + chrpath, + libboost-chrono-dev, + libboost-dev (>= 1.56), + libboost-filesystem-dev, + libboost-iostreams-dev, + libboost-math-dev, + libboost-mpi-dev, + libboost-program-options-dev, + libboost-serialization-dev, + libboost-thread-dev, + libboost-timer-dev, + libeigen3-dev (>= 3.2.90), + libhdf5-mpi-dev, + libsuitesparse-dev, + libscotch-dev, + libxml2-dev, + mpi-default-dev, + petsc-dev (>= 3.7), + slepc-dev (>= 3.7), + pybind11-dev (>= 2.2.0), + python3-setuptools, + python3-petsc4py, + python3-slepc4py, + pkg-config, + python3-all-dev, + python3-pkg-resources, + python3-ffc (>= 2018.1), python3-ffc (<< 2018.2), + python3-dijitso (>= 2018.1), python3-dijitso (<< 2018.2), + python3-numpy, + python3-ply +Standards-Version: 4.3.0 +Homepage: http://fenicsproject.org +Vcs-Git: https://salsa.debian.org/science-team/fenics/dolfin.git +Vcs-Browser: https://salsa.debian.org/science-team/fenics/dolfin + +Package: libdolfin-dev +Section: libdevel +Architecture: any +Depends: + cmake (>= 2.8.0), + libboost-chrono-dev, + libboost-dev, + libboost-filesystem-dev, + libboost-iostreams-dev, + libboost-math-dev, + libboost-mpi-dev, + libboost-program-options-dev, + libboost-serialization-dev, + libboost-thread-dev, + libboost-timer-dev, + libdolfin2018.1 (= ${binary:Version}), + libeigen3-dev, + libhdf5-mpi-dev, + libsuitesparse-dev, + libscotch-dev, + libxml2-dev, + pkg-config, + python3-ffc (>= ${fenics:Upstream-Version}), python3-ffc (<< ${fenics:Next-Upstream-Version}), + ${petsc:Depends}, + ${misc:Depends} +Conflicts: + libdolfin0-dev, + libdolfin1.0-dev, + libdolfin1.1-dev, + libdolfin1.2-dev, + libdolfin1.3-dev, + libdolfin1.4-dev +Replaces: + libdolfin0-dev, + libdolfin1.0-dev, + libdolfin1.1-dev, + libdolfin1.2-dev, + libdolfin1.3-dev, + libdolfin1.4-dev +Description: Shared links and header files for DOLFIN + DOLFIN is the Python and C++ interface of the FEniCS project for the + automated solution of differential equations, providing a consistent + PSE (Problem Solving Environment) for solving ordinary and partial + differential equations. Key features include a simple, consistent and + intuitive object-oriented API; automatic and efficient evaluation of + variational forms; automatic and efficient assembly of linear + systems; and support for general families of finite elements. + . + This package contains the development files. + +Package: libdolfin2018.1 +Section: libs +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, ${shlibs:Depends} +Suggests: dolfin-doc, python3-dolfin +Description: Shared libraries for DOLFIN + DOLFIN is the Python and C++ interface of the FEniCS project for the + automated solution of differential equations, providing a consistent + PSE (Problem Solving Environment) for solving ordinary and partial + differential equations. Key features include a simple, consistent and + intuitive object-oriented API; automatic and efficient evaluation of + variational forms; automatic and efficient assembly of linear + systems; and support for general families of finite elements. + . + This package contains the shared libraries. + +Package: python3-dolfin +Section: python +Architecture: any +Depends: + libdolfin-dev (= ${binary:Version}), + libdolfin2018.1 (= ${binary:Version}), + python3-dijitso (>= ${fenics:Upstream-Version}), python3-dijitso (<< ${fenics:Next-Upstream-Version}), + python3-ffc (>= ${fenics:Upstream-Version}), python3-ffc (<< ${fenics:Next-Upstream-Version}), + python3-ufl (>= ${fenics:Upstream-Version}), python3-ufl (<< ${fenics:Next-Upstream-Version}), + python3-numpy, + python3-ply, + python3-pybind11 (>= ${pybind11:Upstream-Version}), python3-pybind11 (<< ${pybind11:Next-Upstream-Version}), + python3-six, + python3-sympy, + ${python3-petsc4py:Depends}, + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +Suggests: dolfin-doc +Description: Python interface for DOLFIN (Python 3) + DOLFIN is the Python and C++ interface of the FEniCS project for the + automated solution of differential equations, providing a consistent + PSE (Problem Solving Environment) for solving ordinary and partial + differential equations. Key features include a simple, consistent and + intuitive object-oriented API; automatic and efficient evaluation of + variational forms; automatic and efficient assembly of linear + systems; and support for general families of finite elements. + . + This package contains the Python interface for DOLFIN (Python 3). + +Package: python-dolfin +Section: python +Architecture: all +Depends: + python3-dolfin (>= ${fenics:Upstream-Version}), ${misc:Depends} +Description: Python interface for DOLFIN + DOLFIN is the Python and C++ interface of the FEniCS project for the + automated solution of differential equations, providing a consistent + PSE (Problem Solving Environment) for solving ordinary and partial + differential equations. Key features include a simple, consistent and + intuitive object-oriented API; automatic and efficient evaluation of + variational forms; automatic and efficient assembly of linear + systems; and support for general families of finite elements. + . + This is a dummy package that depends on python3-dolfin. + (DOLFIN no longer supports Python 2). + +Package: dolfin-doc +Architecture: all +Section: doc +Depends: + libdolfin-dev (>= ${source:Version}), + python3-dolfin (>= ${source:Version}), + ${misc:Depends} +Suggests: cmake (>= 2.8.0) +Description: Documentation and demo programs for DOLFIN + DOLFIN is the Python and C++ interface of the FEniCS project for the + automated solution of differential equations, providing a consistent + PSE (Problem Solving Environment) for solving ordinary and partial + differential equations. Key features include a simple, consistent and + intuitive object-oriented API; automatic and efficient evaluation of + variational forms; automatic and efficient assembly of linear + systems; and support for general families of finite elements. + . + This package contains documentation and demo programs for DOLFIN. + +Package: dolfin-bin +Architecture: all +Depends: + python3-dolfin (>= ${source:Version}), + ${misc:Depends}, + ${python3:Depends} +Description: Executable scripts for DOLFIN + DOLFIN is the Python and C++ interface of the FEniCS project for the + automated solution of differential equations, providing a consistent + PSE (Problem Solving Environment) for solving ordinary and partial + differential equations. Key features include a simple, consistent and + intuitive object-oriented API; automatic and efficient evaluation of + variational forms; automatic and efficient assembly of linear + systems; and support for general families of finite elements. + . + This package contains executable scripts for DOLFIN. diff --git a/copyright b/copyright new file mode 100644 index 0000000..59d2334 --- /dev/null +++ b/copyright @@ -0,0 +1,296 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: DOLFIN +Upstream-Contact: fenics@fenicsproject.org + https://fenicsproject.org/community/ +Source: https://bitbucket.org/fenics-project/dolfin + +Files: * +Copyright: 2001-2017, Johan Hake, + Anders Logg, + Garth N. Wells, + Johan Hoffman, + Jim Tilander, + Jan Blechta, + Johan Jansson, + Ola Skavhaug, + Magne Nordaas, + Kristian B. Oelgaard, + Martin Sandve Alnæs, + Magnus Vikstrøm, + Evan Lezar, + Ilmar Wilbers, + Kent-Andre Mardal, + Rolv Erlend Bredesen, + Solveig Bruvoll, + Niclas Jansson, + Dag Lindbo, + Ilmar Wilbers, + Joachim B. Haga, + Fredrik Valdmanis, + Andre Massing, + Bartosz Sawicki, + Mirko Maraldi, + Harish Narayanan, + Stefano Zampini, + Marie E. Rognes, + Chris Richardson, + Arve Knudsen, + Harish Narayanan, + Corrado Maurini, + David Ham, Imperial College London, + Mikael Mortensen, + Patrick E. Farrell, + August Johansson, + Aslak Wigdahl Bergersen, + Matthias Liertzer, + Tianyi Li, + Benjamin Kehlet, + Tormod Landet, + Ettie Unwin, + Jørgen Schartum Dokken, + Nathan Sime, + Peter Scott, + Quang T. Ha, + Simon Funke, + Michal Habera +License: LGPL-3+ + +Files: debian/* +Copyright: 2008-2017, Johannes Ring + 2017-2018 Drew Parsons +License: GPL-2+ + +Files: cmake/modules/FindAMD.cmake + cmake/modules/FindBLASHeader.cmake + cmake/modules/FindCHOLMOD.cmake + cmake/modules/FindNumPy.cmake + cmake/modules/FindPETSc.cmake + cmake/modules/FindParMETIS.cmake + cmake/modules/FindSCOTCH.cmake + cmake/modules/FindSLEPc.cmake + cmake/modules/FindSphinx.cmake +Copyright: 2010-2016, Garth N. Wells, + Anders Logg, + Johannes Ring, + Marie Rognes, + Lawrence Mitchell +License: BSD-2-clause + +Files: cmake/modules/FindPETSc4py.cmake + cmake/modules/FindSLEPc4py.cmake + python/cmake/FindPETSc4py.cmake +Copyright: 2013 Lawrence Mitchell +License: BSD-2-clause + +Files: cmake/modules/FindEigen3.cmake +Copyright: 2006-2009, Montel Laurent, + Gael Guennebaud, + Benoit Jacob + Garth N. Wells +License: BSD-2-clause + +Files: cmake/modules/FindEigen3.cmake + cmake/modules/FindMPFR.cmake +Copyright: 2006-2010, Montel Laurent, + Gael Guennebaud, + Jitse Niesen, +License: BSD-2-clause + +Files: cmake/modules/FindBLAS.cmake + cmake/modules/FindLAPACK.cmake +Copyright: 2007-2009 Kitware, Inc., +License: BSD-3-clause + +Files: cmake/modules/FindMPI.cmake +Copyright: 2001-2011 Kitware, Inc., + Todd Gamblin , + Dave Partyka +License: BSD-3-clause + +Files: dolfin/geometry/predicates.* +Copyright: 1996 Jonathan Richard Shewchuk +License: public-domain + Code is placed in the public domain. + +Files: dolfin/io/base64.cpp +Copyright: 2004-2008, Rene Nyffenegger +License: Zlib + +Files: dolfin/io/pugiconfig.hpp +Copyright: 2003, Kristen Wegner (kristen@tima.net) + 2006-2012, Arseny Kapoulkine (arseny.kapoulkine@gmail.com) +License: Expat + +Files: site-packages/dolfin_utils/cppparser/CppHeaderParser.py +Copyright: 2011, Jashua R. Cloutier +License: BSD-3-clause + +Files: site-packages/dolfin_utils/ordereddict.py +Copyright: 2009, Raymond Hettinger +License: Expat + +Files: test/unit/cpp/catch/catch.hpp +Copyright: 2012 Two Blue Cubes Ltd +License: Boost-1.0 + +Files: utils/pylit/* +Copyright: 2005, 2009 Günter Milde +License: GPL-2+ + +Files: utils/x3dom/* +Copyright: 2016 Peter Scott +License: LGPL-3+ + +License: LGPL-3+ + This software is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 3 of the + License, or (at your option) any later version. + . + This software is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public + License along with this software. If not, see + . + . + On Debian systems the full text of the GNU Lesser General Public + License, version 3 can be found in the file + '/usr/share/common-licenses/LGPL-3'. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: Zlib + This source code is provided 'as-is', without any express or implied + warranty. In no event will the author be held liable for any damages + arising from the use of this software. + . + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + . + 1. The origin of this source code must not be misrepresented; you must not + claim that you wrote the original source code. If you use this source code + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + . + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original source code. + . + 3. This notice may not be removed or altered from any source distribution. + +License: Expat + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +License: Boost-1.0 + Boost Software License - Version 1.0 - August 17th, 2003 + . + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + . + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +License: GPL-2+ + This software is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + . + This software is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + . + You should have received a copy of the GNU General Public + License along with this software. If not, see + . + . + On Debian systems the full text of the GNU General Public + License, version 2 can be found in the file + '/usr/share/common-licenses/GPL-2'. + diff --git a/docs b/docs new file mode 100644 index 0000000..24948f1 --- /dev/null +++ b/docs @@ -0,0 +1,2 @@ +AUTHORS +README.rst diff --git a/dolfin-bin.install b/dolfin-bin.install new file mode 100644 index 0000000..04b2252 --- /dev/null +++ b/dolfin-bin.install @@ -0,0 +1,10 @@ +usr/bin/dolfin-convert +usr/bin/dolfin-get-demos +usr/bin/dolfin-order +usr/bin/dolfin-plot +usr/bin/dolfin-version +usr/bin/fenics-version +# usr/share/man/man1/dolfin-convert.1.gz +# usr/share/man/man1/dolfin-order.1.gz +# usr/share/man/man1/dolfin-plot.1.gz +# usr/share/man/man1/dolfin-version.1.gz diff --git a/dolfin-bin.links b/dolfin-bin.links new file mode 100644 index 0000000..94123c0 --- /dev/null +++ b/dolfin-bin.links @@ -0,0 +1 @@ +usr/share/man/man1/dolfin-version.1.gz usr/share/man/man1/fenics-version.1.gz \ No newline at end of file diff --git a/dolfin-bin.manpages b/dolfin-bin.manpages new file mode 100644 index 0000000..ea81be8 --- /dev/null +++ b/dolfin-bin.manpages @@ -0,0 +1,5 @@ +debian/dolfin-get-demos.1 +debian/dolfin-convert.1.gz +debian/dolfin-order.1.gz +debian/dolfin-plot.1.gz +debian/dolfin-version.1.gz diff --git a/dolfin-convert.1.gz b/dolfin-convert.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..a0bb17f439977c654847b1bedf7549715b290ec3 GIT binary patch literal 789 zcmV+w1M2)AiwFo%-yll@17vS(W@&CMV{dMDWpZ>bF#wfS%Wm5+5WMRv7C96x5EE$* zJrqR|$Iin=VjGrIw5WTaMM`2zkqRG){r6o;vZ*9)gI)wKcXqg3jYed74M*eI&E;e| z7|o_%FBZ!qc%LLBy@u)V_99_g=0XiJtsb~>Fo03FavIt?_;z~(xi%GbZC(0(I-94H zG$H5kv^@E-$|tk=ax$Byt93E^IZsyk`D##N>KK|O z23*zwIu^E;bPFK{$2ShBV!$`Tkyt4Z*|oVRXwHrMNm}zvw<2dVf?Z+MWrjp?zt3iLJ6}M%FgtwVDhAa23Uop^_O!tT$+H57){sKjEyo|Vxx zz4yC*hE4EV$;C!9Zzq#oV>nnr;j){#;rCt`Zb4?tzldjjjptyll=GzzBA-ifcD&tpC+t`86_ zBKk6m7@T8-L`g*ekLkXAdVr074T3`GwHmb(5f8>iKoms;WL(Nah{kTu@2*;}O*vXc zrmG4q#~#DI=Qe!%xLo@J3=cMDfxC=^|3GWFk%lvPAc(sPafx(}FiW^&0u2OR5xpf(xOr Tm0wM0o^. diff --git a/dolfin-order.1.gz b/dolfin-order.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..0cee65f7a94283a6b50ce8d723afe27687996250 GIT binary patch literal 305 zcmV-10nYv(iwFpB-yll@17vS(W@&CMZ*pX1axO6dU68?U!Y~X#@A(R=hnxiG1=Y}l5G8~LFytzbdER2hC3p+IBG}9xLt)2UUXh_-Ot-6eoi0*=WB4l; zxPYj0-QlOvJ1oEVk=R{m|3c3L?|;+R8$^si?1O*2d1~F+TBO7UJO=M*lg;Dg`W7eY;8ZK`iQ(`CBW|IC zr7cSs==L2tWg0D!?E^wqDF;S!BeginlKyu;+e$K%gQPpz;QgG|R|@e1#B^gQsQ~~0 Dgw>Yi literal 0 HcmV?d00001 diff --git a/dolfin-plot.1.gz b/dolfin-plot.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..6dceec84e1f8c121105dd1f5037bc06487ddd19b GIT binary patch literal 321 zcmV-H0lxkpiwFp<2?k9917vS(W@&CMaBOdME-?UYkWFvGFbsz8`4tvtnvFZF0I>}u z)>gC}CdwftZi$p8UE&J(_Y3PL4Q&_8*5mi}2QOAITBe(qbrNNpv>3sJF`lm=nZG?V zX?3kk)M-l)fmdy(5stQPg^`g~2H}QCnPw2>?@5~F>zwfg{L->%i~dwAjWOeu`$KEd zDt(P%Ds3y2iD56Xafk=lJ4=G_Y4Y%R_)l6!WpqN_4dc_SSf@#tUSzDS7Xg*^b_`$X z&=+d9RKC;V3KB_#l_cB%5MBtvS%4QseDGWBUI()r1GwFdhWr>ldi12M32D_g;IOlf zJRlu8ko{h8rj;kpwdl?9)CtKA{`k&!#VXz2efKOpoSh;<1JxDgMxyhuu}uS09pWrJ Tzt@5r8*}yvavj%~wE+MCb-0zz literal 0 HcmV?d00001 diff --git a/dolfin-version.1.gz b/dolfin-version.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..d4fefb9fc665d1479d6851acc52f4d716f7ba347 GIT binary patch literal 236 zcmVV>WF#uhT!A`?45Jd0(idD~KCGH5d z6{QJ+q^i?O9Gzro49+^(8>;?2Mkxoljr3-o2J0La57qNyQD(=@UKdrlfLo&mBA0z@viy;20S~?pgqB9e>{b)L55}duOL!DRq|F_R3!Z}zG mVrVY#9@RHq!S4bY0RRAg;A + #include +-#include ++#include + #include + #include + #include "PETScObject.h" +Index: dolfin/dolfin/la/PETScVector.cpp +=================================================================== +--- dolfin.orig/dolfin/la/PETScVector.cpp ++++ dolfin/dolfin/la/PETScVector.cpp +@@ -749,7 +749,11 @@ void PETScVector::gather(GenericVector& + + // Perform scatter + VecScatter scatter; ++#if PETSC_VERSION_GE(3,11,0) ++ ierr = VecScatterCreateWithData(_x, from, _y.vec(), to, &scatter); ++#else + ierr = VecScatterCreate(_x, from, _y.vec(), to, &scatter); ++#endif + CHECK_ERROR("VecScatterCreate"); + ierr = VecScatterBegin(scatter, _x, _y.vec(), INSERT_VALUES, + SCATTER_FORWARD); +Index: dolfin/dolfin/nls/PETScSNESSolver.cpp +=================================================================== +--- dolfin.orig/dolfin/nls/PETScSNESSolver.cpp ++++ dolfin/dolfin/nls/PETScSNESSolver.cpp +@@ -48,7 +48,9 @@ PETScSNESSolver::_methods + = { {"default", {"default SNES method", ""}}, + {"newtonls", {"Line search method", SNESNEWTONLS}}, + {"newtontr", {"Trust region method", SNESNEWTONTR}}, ++#if PETSC_VERSION_LT(3,10,0) + {"test", {"Tool to verify Jacobian approximation", SNESTEST}}, ++#endif + {"ngmres", {"Nonlinear generalised minimum residual method", + SNESNGMRES}}, + {"nrichardson", {"Richardson nonlinear method (Picard iteration)", diff --git a/patches/conditional-parmetis-in-cholmod.patch b/patches/conditional-parmetis-in-cholmod.patch new file mode 100644 index 0000000..6abc668 --- /dev/null +++ b/patches/conditional-parmetis-in-cholmod.patch @@ -0,0 +1,15 @@ +Index: dolfin/cmake/modules/FindCHOLMOD.cmake +=================================================================== +--- dolfin.orig/cmake/modules/FindCHOLMOD.cmake ++++ dolfin/cmake/modules/FindCHOLMOD.cmake +@@ -42,7 +42,9 @@ set(CMAKE_LIBRARY_PATH ${LAPACK_DIR}/lib + find_package(AMD QUIET) + find_package(BLAS QUIET) + find_package(LAPACK QUIET) +-find_package(ParMETIS 4.0.2 QUIET) ++if (DOLFIN_ENABLE_PARMETIS) ++ find_package(ParMETIS 4.0.2 QUIET) ++endif() + + # FIXME: Should we have separate FindXX modules for CAMD, COLAMD, and CCOLAMD? + # FIXME: find_package(CAMD) diff --git a/patches/extra_CXXFLAGS.patch b/patches/extra_CXXFLAGS.patch new file mode 100644 index 0000000..4801f10 --- /dev/null +++ b/patches/extra_CXXFLAGS.patch @@ -0,0 +1,15 @@ +Index: dolfin/dolfin/CMakeLists.txt +=================================================================== +--- dolfin.orig/dolfin/CMakeLists.txt ++++ dolfin/dolfin/CMakeLists.txt +@@ -307,6 +307,10 @@ endforeach() + string(REPLACE ";" " " PKG_CXXFLAGS "${CMAKE_CXX_FLAGS}") + string(REPLACE ";" " " PKG_LINKFLAGS "${CMAKE_EXE_LINKER_FLAGS}") + ++# DOLFIN_EXTRA_CXX_FLAGS are used for the build (by adding to CMAKE_CXX_FLAGS) ++# but should not be included in the pkgconfig file (i.e. don't add to PKG_CXXFLAGS above) ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DOLFIN_EXTRA_CXX_FLAGS}") ++ + # Convert libraries to -L -l form + foreach(_lib ${PKGCONFIG_DOLFIN_LIBS}) + # Add -Wl,option directives diff --git a/patches/mpi_prefer_mumps_not_superlu_dist.patch b/patches/mpi_prefer_mumps_not_superlu_dist.patch new file mode 100644 index 0000000..e017eb4 --- /dev/null +++ b/patches/mpi_prefer_mumps_not_superlu_dist.patch @@ -0,0 +1,104 @@ +Index: dolfin/dolfin/nls/PETScSNESSolver.cpp +=================================================================== +--- dolfin.orig/dolfin/nls/PETScSNESSolver.cpp ++++ dolfin/dolfin/nls/PETScSNESSolver.cpp +@@ -560,16 +560,16 @@ void PETScSNESSolver::set_linear_solver_ + } + else + { +- #if PETSC_HAVE_SUPERLU_DIST +- lu_method = "superlu_dist"; +- #elif PETSC_HAVE_PASTIX ++ #if PETSC_HAVE_PASTIX + lu_method = "pastix"; + #elif PETSC_HAVE_MUMPS + lu_method = "mumps"; ++ #elif PETSC_HAVE_SUPERLU_DIST ++ lu_method = "superlu_dist"; + #else + dolfin_error("PETScSNESSolver.cpp", + "solve linear system using PETSc LU solver", +- "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS or SuperLU_dist"); ++ "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS (preferred) or SuperLU_dist"); + #endif + } + } +Index: dolfin/dolfin/nls/PETScTAOSolver.cpp +=================================================================== +--- dolfin.orig/dolfin/nls/PETScTAOSolver.cpp ++++ dolfin/dolfin/nls/PETScTAOSolver.cpp +@@ -519,16 +519,16 @@ void PETScTAOSolver::set_ksp_options() + } + else + { +- #if PETSC_HAVE_SUPERLU_DIST +- lu_method = "superlu_dist"; +- #elif PETSC_HAVE_PASTIX ++ #if PETSC_HAVE_PASTIX + lu_method = "pastix"; + #elif PETSC_HAVE_MUMPS + lu_method = "mumps"; ++ #elif PETSC_HAVE_SUPERLU_DIST ++ lu_method = "superlu_dist"; + #else + dolfin_error("PETScTAOSolver.cpp", + "solve linear system using PETSc LU solver", +- "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS or SuperLU_dist"); ++ "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS (preferred) or SuperLU_dist"); + #endif + } + } +Index: dolfin/dolfin/la/PETScLUSolver.cpp +=================================================================== +--- dolfin.orig/dolfin/la/PETScLUSolver.cpp ++++ dolfin/dolfin/la/PETScLUSolver.cpp +@@ -329,22 +329,17 @@ const MatSolverType PETScLUSolver::selec + { + #if PETSC_HAVE_UMFPACK || PETSC_HAVE_SUITESPARSE + method = "umfpack"; +- #elif PETSC_HAVE_SUPERLU_DIST +- method = "superlu_dist"; ++ // superlu_dist does not work efficiently since mc64 cannot be redistributed. So use PETSc in preference to superlu_dist + #else + method = "petsc"; +- warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. Umfpack, SuperLU_dist)."); ++ warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. Umfpack)."); + #endif + } + else + { +- #if PETSC_HAVE_SUPERLU_DIST +- method = "superlu_dist"; +- #else ++ // superlu_dist does not work efficiently since mc64 cannot be redistributed. So use PETSc in preference to superlu_dist + method = "petsc"; +- warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. SuperLU_dist)."); +- #endif +- ++ warning("Using PETSc native LU solver. Consider specifying a more efficient LU solver (e.g.umfpack) if available."); + } + #else + if (dolfin::MPI::size(comm) == 1) +@@ -357,8 +352,7 @@ const MatSolverType PETScLUSolver::selec + method = "pastix"; + #elif PETSC_HAVE_SUPERLU + method = "superlu"; +- #elif PETSC_HAVE_SUPERLU_DIST +- method = "superlu_dist"; ++ // superlu_dist does not work efficiently since mc64 cannot be redistributed. So use PETSc in preference to superlu_dist + #else + method = "petsc"; + warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. UMFPACK, MUMPS)."); +@@ -368,10 +362,10 @@ const MatSolverType PETScLUSolver::selec + { + #if PETSC_HAVE_MUMPS + method = "mumps"; +- #elif PETSC_HAVE_SUPERLU_DIST +- method = "superlu_dist"; + #elif PETSC_HAVE_PASTIX + method = "pastix"; ++ #elif PETSC_HAVE_SUPERLU_DIST ++ method = "superlu_dist"; + #else + dolfin_error("PETScLUSolver.cpp", + "solve linear system using PETSc LU solver", diff --git a/patches/pytest_fixtures_096217a.patch b/patches/pytest_fixtures_096217a.patch new file mode 100644 index 0000000..2221b83 --- /dev/null +++ b/patches/pytest_fixtures_096217a.patch @@ -0,0 +1,471 @@ +From 096217a0a3cb710e869d7e82a3d3609c4d968b76 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?C=C3=A9cile=20Daversin-Catty?= +Date: Tue, 20 Nov 2018 11:19:52 +0100 +Subject: [PATCH] Pytest fixes - update unit tests to fit with last pytest + version + +--- + python/dolfin_utils/test/fixtures.py | 5 +- + python/test/unit/fem/test_dofmap.py | 16 ++-- + python/test/unit/fem/test_finite_element.py | 2 +- + .../unit/fem/test_symbolic_geometry_assembly.py | 101 ++++++++++++--------- + python/test/unit/function/test_function_space.py | 4 +- + python/test/unit/la/test_lu_solver.py | 2 +- + python/test/unit/la/test_nullspace.py | 2 +- + python/test/unit/mesh/test_mesh.py | 14 +-- + .../unit/multimesh/test_multimesh_cell_types.py | 18 ++-- + python/test/unit/multimesh/test_multimesh_solve.py | 29 +++--- + 10 files changed, 109 insertions(+), 84 deletions(-) + +diff --git a/python/dolfin_utils/test/fixtures.py b/python/dolfin_utils/test/fixtures.py +index 790aa2f..a39b8aa 100644 +--- a/python/dolfin_utils/test/fixtures.py ++++ b/python/dolfin_utils/test/fixtures.py +@@ -82,8 +82,6 @@ def gc_barrier(): + if MPI.size(MPI.comm_world) > 1: + MPI.barrier(MPI.comm_world) + +- +-@pytest.fixture + def worker_id(request): + """Returns thread id when running with pytest-xdist in parallel.""" + if hasattr(request.config, 'slaveinput'): +@@ -91,6 +89,9 @@ def worker_id(request): + else: + return 'master' + ++@pytest.fixture ++def worker_id_fixture(request): ++ return worker_id(request) + + @pytest.yield_fixture(scope="function") + def gc_barrier_fixture(): +diff --git a/python/test/unit/fem/test_dofmap.py b/python/test/unit/fem/test_dofmap.py +index 2689ae5..7bf649d 100644 +--- a/python/test/unit/fem/test_dofmap.py ++++ b/python/test/unit/fem/test_dofmap.py +@@ -41,8 +41,8 @@ reorder_dofs = set_parameters_fixture("reorder_dofs_serial", [True, False]) + (UnitCubeMesh, (2, 2, 2)), + # cell.contains(Point) does not work correctly + # for quad/hex cells once it is fixed, this test will pass +- xfail((UnitSquareMesh.create, (4, 4, CellType.Type.quadrilateral))), +- xfail((UnitCubeMesh.create, (2, 2, 2, CellType.Type.hexahedron)))]) ++ pytest.param(((UnitSquareMesh.create, (4, 4, CellType.Type.quadrilateral))), marks=xfail), ++ pytest.param(((UnitCubeMesh.create, (2, 2, 2, CellType.Type.hexahedron))), marks=xfail)]) + def test_tabulate_all_coordinates(mesh_factory): + func, args = mesh_factory + mesh = func(*args) +@@ -516,16 +516,16 @@ xfail_ffc = pytest.mark.xfail(raises=Exception, strict=True) + "FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'DQ', 2)", + "FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.triangle), 'N1curl', 1)", + "FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.tetrahedron), 'N1curl', 1)", +- xfail_ffc("FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.quadrilateral), 'N1curl', 1)"), +- xfail_ffc("FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'N1curl', 1)"), ++ pytest.param(("FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.quadrilateral), 'N1curl', 1)"), marks=xfail_ffc), ++ pytest.param(("FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'N1curl', 1)"), marks=xfail_ffc), + "FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.triangle), 'N1curl', 2)", + "FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.tetrahedron), 'N1curl', 2)", +- xfail_ffc("FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.quadrilateral), 'N1curl', 2)"), +- xfail_ffc("FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'N1curl', 2)"), ++ pytest.param(("FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.quadrilateral), 'N1curl', 2)"), marks=xfail_ffc), ++ pytest.param(("FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'N1curl', 2)"), marks=xfail_ffc), + "FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.triangle), 'RT', 1)", + "FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.tetrahedron), 'RT', 1)", +- xfail_ffc("FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.quadrilateral), 'RT', 1)"), +- xfail_ffc("FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'RT', 1)"), ++ pytest.param(("FunctionSpace(UnitSquareMesh.create(6, 6, CellType.Type.quadrilateral), 'RT', 1)"), marks=xfail_ffc), ++ pytest.param(("FunctionSpace(UnitCubeMesh.create(2, 2, 2, CellType.Type.hexahedron), 'RT', 1)"), marks=xfail_ffc), + ]) + def test_dofs_dim(space): + """Test function GenericDofMap::dofs(mesh, dim)""" +diff --git a/python/test/unit/fem/test_finite_element.py b/python/test/unit/fem/test_finite_element.py +index 0693f26..dee876c 100644 +--- a/python/test/unit/fem/test_finite_element.py ++++ b/python/test/unit/fem/test_finite_element.py +@@ -34,7 +34,7 @@ xfail = pytest.mark.xfail(strict=True) + (UnitSquareMesh.create, (4, 4, CellType.Type.quadrilateral)), + # cell_normal has not been implemented for hex cell + # cell.orientation() does not work +- xfail((UnitCubeMesh.create, (2, 2, 2, CellType.Type.hexahedron)))]) ++ pytest.param(((UnitCubeMesh.create, (2, 2, 2, CellType.Type.hexahedron))), marks=xfail)]) + def test_evaluate_dofs(mesh_factory): + + func, args = mesh_factory +diff --git a/python/test/unit/fem/test_symbolic_geometry_assembly.py b/python/test/unit/fem/test_symbolic_geometry_assembly.py +index f0597f9..3f89f7b 100644 +--- a/python/test/unit/fem/test_symbolic_geometry_assembly.py ++++ b/python/test/unit/fem/test_symbolic_geometry_assembly.py +@@ -107,26 +107,20 @@ intervals. + + line_resolution = 8 + +- +-@fixture +-def line1d(request): ++def line1d_impl(request): + n = line_resolution + us = [i/float(n-1) for i in range(n)] + vertices = [(u**2,) for u in us] + return create_line_mesh(vertices) + +- +-@fixture +-def rline1d(request): ++def rline1d_impl(request): + n = line_resolution + us = [i/float(n-1) for i in range(n)] + vertices = [(u**2,) for u in us] + vertices = list(reversed(vertices)) # same as line1d, just reversed here + return create_line_mesh(vertices) + +- +-@fixture +-def line2d(request): ++def line2d_impl(request): + n = line_resolution + us = [i/float(n-1) for i in range(n)] + vertices = [(cos(DOLFIN_PI*u), sin(DOLFIN_PI*u)) for u in us] +@@ -134,9 +128,7 @@ def line2d(request): + mesh.init_cell_orientations(Expression(("0.0", "1.0"), degree=0)) + return mesh + +- +-@fixture +-def rline2d(request): ++def rline2d_impl(request): + n = line_resolution + us = [i/float(n-1) for i in range(n)] + vertices = [(cos(DOLFIN_PI*u), sin(DOLFIN_PI*u)) for u in us] +@@ -145,9 +137,7 @@ def rline2d(request): + mesh.init_cell_orientations(Expression(("0.0", "1.0"), degree=0)) + return mesh + +- +-@fixture +-def line3d(request): ++def line3d_impl(request): + n = line_resolution + us = [i/float(n-1) for i in range(n)] + vertices = [(cos(4.0*DOLFIN_PI*u), +@@ -156,9 +146,7 @@ def line3d(request): + mesh = create_line_mesh(vertices) + return mesh + +- +-@fixture +-def rline3d(request): ++def rline3d_impl(request): + n = line_resolution + us = [i/float(n-1) for i in range(n)] + vertices = [(cos(4.0*DOLFIN_PI*u), +@@ -168,9 +156,7 @@ def rline3d(request): + mesh = create_line_mesh(vertices) + return mesh + +- +-@fixture +-def square2d(request): ++def square2d_impl(request): + cellname = "triangle" + side = sqrt(sqrt(3.0)) + vertices = [ +@@ -186,9 +172,7 @@ def square2d(request): + mesh = create_mesh(vertices, cells) + return mesh + +- +-@fixture +-def square3d(request): ++def square3d_impl(request): + cellname = "triangle" + vertices = [ + (0.0, 0.0, 1.0), +@@ -205,6 +189,37 @@ def square3d(request): + + return mesh + ++@fixture ++def line1d(request): ++ return line1d_impl(request) ++ ++@fixture ++def rline1d(request): ++ return rline1d_impl(request) ++ ++@fixture ++def line2d(request): ++ return line2d_impl(request) ++ ++@fixture ++def rline2d(request): ++ return rline2d_impl(request) ++ ++@fixture ++def line3d(request): ++ return line3d_impl(request) ++ ++@fixture ++def rline3d(request): ++ return rline3d_impl(request) ++ ++@fixture ++def square2d(request): ++ return square2d_impl(request) ++ ++@fixture ++def square3d(request): ++ return square3d_impl(request) + + @skip_in_parallel + def test_line_meshes(line1d, line2d, line3d, rline1d, rline2d, rline3d): +@@ -238,14 +253,14 @@ def test_write_line_meshes_to_files(line1d, line2d, line3d, rline1d, rline2d, + "DG", 0)) + + +-@skip_in_parallel + @pytest.mark.parametrize("mesh", [ +- line1d(None), +- line2d(None), +- line3d(None), +- rline1d(None), +- rline2d(None), +- rline3d(None), ]) ++ line1d_impl(None), ++ line2d_impl(None), ++ line3d_impl(None), ++ rline1d_impl(None), ++ rline2d_impl(None), ++ rline3d_impl(None), ]) ++@skip_in_parallel + def test_manifold_line_geometry(mesh, uflacs_representation_only): + assert uflacs_representation_only == "uflacs" + assert parameters["form_compiler"]["representation"] == "uflacs" +@@ -907,21 +922,21 @@ xfail_jit = pytest.mark.xfail(raises=Exception, strict=True) + (UnitCubeMesh, (2, 2, 2)), + (UnitSquareMesh.create, (4, 4, CellType.Type.quadrilateral)), + (UnitCubeMesh.create, (2, 2, 2, CellType.Type.hexahedron)), +- (line1d, (None,)), +- (line2d, (None,)), +- (line3d, (None,)), +- (rline1d, (None,)), +- (rline2d, (None,)), +- (rline3d, (None,)), +- (square2d, (None,)), +- (square3d, (None,)), ++ (line1d_impl, (None,)), ++ (line2d_impl, (None,)), ++ (line3d_impl, (None,)), ++ (rline1d_impl, (None,)), ++ (rline2d_impl, (None,)), ++ (rline3d_impl, (None,)), ++ (square2d_impl, (None,)), ++ (square3d_impl, (None,)), + # Tested geometric quantities are not implemented for higher-order cells +- xfail_jit((UnitDiscMesh.create, (MPI.comm_world, 4, 2, 2))), +- xfail_jit((UnitDiscMesh.create, (MPI.comm_world, 4, 2, 3))), +- xfail_jit((SphericalShellMesh.create, (MPI.comm_world, 2,))), +-]) ++ pytest.param(((UnitDiscMesh.create, (MPI.comm_world, 4, 2, 2))), marks=xfail_jit), ++ pytest.param(((UnitDiscMesh.create, (MPI.comm_world, 4, 2, 3))), marks=xfail_jit), ++ pytest.param(((SphericalShellMesh.create, (MPI.comm_world, 2,))), marks=xfail_jit)]) + @skip_in_parallel + def test_geometric_quantities(uflacs_representation_only, mesh_factory): ++ + func, args = mesh_factory + mesh = func(*args) + +diff --git a/python/test/unit/function/test_function_space.py b/python/test/unit/function/test_function_space.py +index 3c97227..66cfe0e 100755 +--- a/python/test/unit/function/test_function_space.py ++++ b/python/test/unit/function/test_function_space.py +@@ -165,13 +165,13 @@ def test_sub_equality(W, Q): + assert Q.sub(0) == Q.extract_sub_space([0]) + + +-def test_in_operator(f, g, V, V2, W, W2): ++def test_in_operator(f, g, V, V2, W, W2, mesh): + assert f in V + assert f in V2 + assert g in W + assert g in W2 + with pytest.raises(RuntimeError): +- mesh() in V ++ mesh in V + + + def test_collapse(W, V): +diff --git a/python/test/unit/la/test_lu_solver.py b/python/test/unit/la/test_lu_solver.py +index aed2762..82790e9 100755 +--- a/python/test/unit/la/test_lu_solver.py ++++ b/python/test/unit/la/test_lu_solver.py +@@ -21,7 +21,7 @@ from dolfin import * + import pytest + from dolfin_utils.test import skip_if_not_PETSc, skip_in_parallel + +-backends = ["PETSc", skip_in_parallel("Eigen")] ++backends = ["PETSc", pytest.param(("Eigen"), marks=skip_in_parallel)] + + @pytest.mark.parametrize('backend', backends) + def test_lu_solver(backend): +diff --git a/python/test/unit/la/test_nullspace.py b/python/test/unit/la/test_nullspace.py +index e60680a..a406947 100755 +--- a/python/test/unit/la/test_nullspace.py ++++ b/python/test/unit/la/test_nullspace.py +@@ -21,7 +21,7 @@ from dolfin import * + import pytest + from dolfin_utils.test import * + +-backends = ["PETSc", skip_in_parallel("Eigen")] ++backends = ["PETSc", pytest.param(("Eigen"), marks=skip_in_parallel)] + + def build_elastic_nullspace(V, x): + """Function to build nullspace for 2D/3D elasticity""" +diff --git a/python/test/unit/mesh/test_mesh.py b/python/test/unit/mesh/test_mesh.py +index af7a3ad..d33673c 100644 +--- a/python/test/unit/mesh/test_mesh.py ++++ b/python/test/unit/mesh/test_mesh.py +@@ -557,16 +557,16 @@ mesh_factories_broken_shared_entities = [ + (UnitIntervalMesh, (8,)), + (UnitSquareMesh, (4, 4)), + # FIXME: Problem in test_shared_entities +- xfail_in_parallel((UnitDiscMesh.create, (MPI.comm_world, 10, 1, 2))), +- xfail_in_parallel((UnitDiscMesh.create, (MPI.comm_world, 10, 2, 2))), +- xfail_in_parallel((UnitDiscMesh.create, (MPI.comm_world, 10, 1, 3))), +- xfail_in_parallel((UnitDiscMesh.create, (MPI.comm_world, 10, 2, 3))), +- xfail_in_parallel((SphericalShellMesh.create, (MPI.comm_world, 1,))), +- xfail_in_parallel((SphericalShellMesh.create, (MPI.comm_world, 2,))), ++ pytest.param(((UnitDiscMesh.create, (MPI.comm_world, 10, 1, 2))), marks=xfail_in_parallel), ++ pytest.param(((UnitDiscMesh.create, (MPI.comm_world, 10, 2, 2))), marks=xfail_in_parallel), ++ pytest.param(((UnitDiscMesh.create, (MPI.comm_world, 10, 1, 3))), marks=xfail_in_parallel), ++ pytest.param(((UnitDiscMesh.create, (MPI.comm_world, 10, 2, 3))), marks=xfail_in_parallel), ++ pytest.param(((SphericalShellMesh.create, (MPI.comm_world, 1,))), marks=xfail_in_parallel), ++ pytest.param(((SphericalShellMesh.create, (MPI.comm_world, 2,))), marks=xfail_in_parallel), + (UnitCubeMesh, (2, 2, 2)), + (UnitSquareMesh.create, (4, 4, CellType.Type.quadrilateral)), + (UnitCubeMesh.create, (2, 2, 2, CellType.Type.hexahedron)), +- xfail_in_parallel((create_two_good_quads, ())), ++ pytest.param(((create_two_good_quads, ())), marks=xfail_in_parallel), + ] + + # FIXME: Fix this xfail +diff --git a/python/test/unit/multimesh/test_multimesh_cell_types.py b/python/test/unit/multimesh/test_multimesh_cell_types.py +index 76599f1..64ef136 100644 +--- a/python/test/unit/multimesh/test_multimesh_cell_types.py ++++ b/python/test/unit/multimesh/test_multimesh_cell_types.py +@@ -25,8 +25,7 @@ import pytest + from dolfin_utils.test import skip_in_parallel + + # test case with interface-edge overlap +-@pytest.fixture +-def test_case_1(M, N): ++def case_1_impl(M, N): + multimesh = MultiMesh() + mesh0 = UnitSquareMesh(M, M) + mesh1 = RectangleMesh(Point(0.25, 0.25), Point(0.75, 0.75), N, N) +@@ -36,8 +35,7 @@ def test_case_1(M, N): + return multimesh + + # test case with squares on the diagonal +-@pytest.fixture +-def test_case_2(width, offset, Nx): ++def case_2_impl(width, offset, Nx): + + # Mesh width (must be less than 1) + assert width < 1 +@@ -65,8 +63,16 @@ def test_case_2(width, offset, Nx): + multimesh.build() + return multimesh + +-test_cases = [test_case_1(4,3), +- test_case_2(DOLFIN_PI/5, 0.1111, 3)] ++@pytest.fixture ++def case_1(M, N): ++ return case_1_impl(M,N) ++ ++@pytest.fixture ++def case_2(width, offset, Nx): ++ return case_2_impl(width, offset, Nx) ++ ++test_cases = [case_1_impl(4,3), ++ case_2_impl(DOLFIN_PI/5, 0.1111, 3)] + + @skip_in_parallel + @pytest.mark.parametrize("multimesh", test_cases) +diff --git a/python/test/unit/multimesh/test_multimesh_solve.py b/python/test/unit/multimesh/test_multimesh_solve.py +index 4530505..5edad0f 100644 +--- a/python/test/unit/multimesh/test_multimesh_solve.py ++++ b/python/test/unit/multimesh/test_multimesh_solve.py +@@ -25,17 +25,13 @@ from dolfin import * + + from dolfin_utils.test import skip_in_parallel, fixture + +-@fixture +-def exactsolution_2d(): ++def exactsolution_2d_impl(): + return Expression("x[0] + x[1]", degree=1) + +-@fixture +-def exactsolution_3d(): ++def exactsolution_3d_impl(): + return Expression("x[0] + x[1] + x[2]", degree=1) + +-@fixture + def solve_multimesh_poisson(mesh_0, mesh_1, exactsolution): +- + # Build multimesh + multimesh = MultiMesh() + multimesh.add(mesh_0) +@@ -81,9 +77,17 @@ def solve_multimesh_poisson(mesh_0, mesh_1, exactsolution): + + return uh + ++@fixture ++def exactsolution_2d(): ++ return exactsolution_2d_impl() ++ ++@fixture ++def exactsolution_3d(): ++ return exactsolution_3d_impl() ++ + @pytest.mark.slow + @skip_in_parallel +-def test_multimesh_poisson_2d(): ++def test_multimesh_poisson_2d(exactsolution_2d): + # This tests solves a Poisson problem on two meshes in 2D with u = + # x+y as exact solution + +@@ -94,18 +98,17 @@ def test_multimesh_poisson_2d(): + mesh_1 = RectangleMesh(Point(0.1*DOLFIN_PI, 0.1*DOLFIN_PI), + Point(0.2*DOLFIN_PI, 0.2*DOLFIN_PI), + 2, 2) +- + # Solve multimesh Poisson +- uh = solve_multimesh_poisson(mesh_0, mesh_1, exactsolution_2d()) ++ uh = solve_multimesh_poisson(mesh_0, mesh_1, exactsolution_2d) + + # Check error +- assert errornorm(exactsolution_2d(), uh, 'L2', degree_rise=1) < DOLFIN_EPS_LARGE ++ assert errornorm(exactsolution_2d, uh, 'L2', degree_rise=1) < DOLFIN_EPS_LARGE + + @pytest.mark.slow + @pytest.mark.skip + @skip_in_parallel + @pytest.mark.skipif(True, reason="3D not fully implemented") +-def test_multimesh_poisson_3d(): ++def test_multimesh_poisson_3d(exactsolution_3d): + # This tests solves a Poisson problem on two meshes in 3D with u = + # x+y+z as exact solution + +@@ -118,7 +121,7 @@ def test_multimesh_poisson_3d(): + 2, 2, 2) + + # Solve multimesh Poisson +- uh = solve_multimesh_poisson(mesh_0, mesh_1, exactsolution_3d()) ++ uh = solve_multimesh_poisson(mesh_0, mesh_1, exactsolution_3d) + + # Check error +- assert errornorm(exactsolution_3d(), uh, 'L2', degree_rise=1) < DOLFIN_EPS_LARGE ++ assert errornorm(exactsolution_3d, uh, 'L2', degree_rise=1) < DOLFIN_EPS_LARGE +-- +2.10.5 + diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..b6bb853 --- /dev/null +++ b/patches/series @@ -0,0 +1,8 @@ +conditional-parmetis-in-cholmod.patch +test_mpi_oversubscribe.patch +mpi_prefer_mumps_not_superlu_dist.patch +skip_demo_hyperelasticity_mpi.patch +unittests_demos_include_dirs.patch +extra_CXXFLAGS.patch +PETSc_3.10_SNESTEST_removed.patch +pytest_fixtures_096217a.patch diff --git a/patches/skip_demo_hyperelasticity_mpi.patch b/patches/skip_demo_hyperelasticity_mpi.patch new file mode 100644 index 0000000..f04b6cc --- /dev/null +++ b/patches/skip_demo_hyperelasticity_mpi.patch @@ -0,0 +1,12 @@ +Index: dolfin/python/demo/test.py +=================================================================== +--- dolfin.orig/python/demo/test.py ++++ dolfin/python/demo/test.py +@@ -57,6 +57,7 @@ def test_demos(mpiexec, num_proc, path, + 'demo_time-series.py', + 'demo_poisson1D-in-2D.py', + 'demo_coordinates.py', ++ 'demo_hyperelasticity.py', + ] + if name in broken: + return diff --git a/patches/test_mpi_oversubscribe.patch b/patches/test_mpi_oversubscribe.patch new file mode 100644 index 0000000..34771be --- /dev/null +++ b/patches/test_mpi_oversubscribe.patch @@ -0,0 +1,13 @@ +Index: dolfin/cmake/scripts/generate-cmakefiles.py +=================================================================== +--- dolfin.orig/cmake/scripts/generate-cmakefiles.py ++++ dolfin/cmake/scripts/generate-cmakefiles.py +@@ -64,7 +64,7 @@ endif() + %(target_libraries)s + + # Test targets +-set(test_parameters -np 3 "./${PROJECT_NAME}") ++set(test_parameters -np 3 ${MPIEXEC_PARAMS} "./${PROJECT_NAME}") + add_test(NAME ${PROJECT_NAME}_mpi COMMAND "mpirun" ${test_parameters}) + add_test(NAME ${PROJECT_NAME}_serial COMMAND ${PROJECT_NAME}) + """ diff --git a/patches/unittests_demos_include_dirs.patch b/patches/unittests_demos_include_dirs.patch new file mode 100644 index 0000000..549ccb6 --- /dev/null +++ b/patches/unittests_demos_include_dirs.patch @@ -0,0 +1,24 @@ +Index: dolfin/test/unit/cpp/CMakeLists.txt +=================================================================== +--- dolfin.orig/test/unit/cpp/CMakeLists.txt ++++ dolfin/test/unit/cpp/CMakeLists.txt +@@ -31,6 +31,7 @@ set(TEST_SOURCES + + add_executable(unittests ${TEST_SOURCES}) + target_link_libraries(unittests PRIVATE Catch dolfin) ++target_include_directories(unittests PRIVATE ${DOLFIN_SOURCE_DIR} ${DOLFIN_SOURCE_DIR}/dolfin ${DOLFIN_BINARY_DIR}) + + # Test target + add_test(unittests unittests) +Index: dolfin/demo/CMakeLists.txt +=================================================================== +--- dolfin.orig/demo/CMakeLists.txt ++++ dolfin/demo/CMakeLists.txt +@@ -6,6 +6,7 @@ cmake_minimum_required(VERSION 3.5) + # Find DOLFIN config file (not used here, but check that the demo will + # be able to find it + #find_package(DOLFIN PATHS ${CMAKE_BINARY_DIR} REQUIRED) ++include_directories(${DOLFIN_SOURCE_DIR} ${DOLFIN_SOURCE_DIR}/dolfin ${DOLFIN_BINARY_DIR}) + + # Documented demos + add_subdirectory(documented/auto-adaptive-poisson/cpp) diff --git a/python-dolfin.lintian-overrides b/python-dolfin.lintian-overrides new file mode 100644 index 0000000..98f0dd9 --- /dev/null +++ b/python-dolfin.lintian-overrides @@ -0,0 +1,2 @@ +# python-dolfin is a dummy package, the dependency is intentional, to aid upgrades +python-dolfin: python-package-depends-on-package-from-other-python-variant Depends: python3-dolfin diff --git a/python3-dolfin.install b/python3-dolfin.install new file mode 100644 index 0000000..7aadc9c --- /dev/null +++ b/python3-dolfin.install @@ -0,0 +1 @@ +usr/lib/python3*/*-packages/* diff --git a/rules b/rules new file mode 100755 index 0000000..c2cdf35 --- /dev/null +++ b/rules @@ -0,0 +1,250 @@ +#!/usr/bin/make -f + +DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':')) +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 has a strict dependency on the pybind11 version it was built against, +# if pybind11.h will be used in C++ code fragments in python scripts. +# 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_Y_VERSION=$(shell echo $(PYBIND11_UPSTREAM_VERSION) | sed "s/^\(.*\)\.\([^.]*\)$$/\1/") +PYBIND11_Z_VERSION=$(shell echo $(PYBIND11_UPSTREAM_VERSION) | sed "s/^\(.*\)\.\([^.]*\)$$/\2/") +PYBIND11_NEXT_UPSTREAM_VERSION=$(PYBIND11_X_Y_VERSION).$(shell echo $$(( $(PYBIND11_Z_VERSION) + 1 )) ) + +# Allow test programs that uses OpenMPI to run +export OMPI_MCA_plm_rsh_agent=/bin/false + +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_BUILD_MULTIARCH ?= $(shell dpkg-architecture -qDEB_BUILD_MULTIARCH) + +include /usr/share/mpi-default-dev/debian_defaults +ENABLE_MPI=ON +ifeq ($(findstring $(DEB_BUILD_ARCH),$(OPENMPI_ARCHITECTURES)),) +MPIEXEC_PARAMS= +else +MPIEXEC_PARAMS=--oversubscribe +endif + +DOLFIN_HOME = $(CURDIR)/$(DEB_SRCDIR) +USCAN_DESTDIR := $(CURDIR) +PY3VERS := $(shell py3versions --requested debian/control | tac -s' ') +PYVERS = $(PY3VERS) + +BUILDDIR = obj-$(DEB_HOST_GNU_TYPE) +TESTDIR = build-tests + +NPROC := $(shell nproc) +PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +N_CPU = $(or $(PARALLEL),$(NPROC),1) +# MPI tests are set up to run on 3 processes. Spread them leanly over the available processors (don't have more than 2 tests using one processor). +# e.g. run 1 MPI test at a time over 1-3 processors, or 2 tests at a time over 4-6 processors, or 3 tests over 7-9 processors, etc. +N_MPI := 3 +N_MPI_TESTS = $(shell echo $$(( ($(N_CPU)+$(N_MPI)-1)/$(N_MPI) )) ) + +# hyperelasticity fails (diverges) on all arches (pivot factors too large, not enough memory assigned) +# elastodynamics passes with dpkg-buildpackage but fails with pdebuild (on amd64). Unreliable, so skip. +ARCH_ALL_SKIP_MPI_TEST = demo_hyperelasticity_mpi demo_elastodynamics_mpi + +# Some arches fail the same MPI tests +# e.g. cahn-hilliard, navier-stokes, elasticity, fails or exceeds allowed time +# So skip these tests on the failing arches +ARCH_SKIP_MPI_TEST_LIST = i386 mips64el ppc64el +ARCH_SKIP_MPI_TEST = demo_cahn-hilliard_mpi demo_navier-stokes_mpi demo_elasticity_mpi + +# skip more MPI tests for some specific arches +ifeq (arm64, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_MPI_TEST = demo_navier-stokes_mpi +else ifeq (mips, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_MPI_TEST = demo_cahn-hilliard_mpi demo_stokes-iterative_mpi demo_ale_mpi demo_poisson-disc_mpi +else ifeq (mips64el, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_MPI_TEST = demo_bcs_mpi demo_stokes-iterative_mpi demo_stokes-taylor-hood_mpi demo_curl-curl_mpi demo_contact-vi-tao_mpi +else ifeq (mipsel, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_MPI_TEST = demo_cahn-hilliard_mpi demo_stokes-iterative_mpi demo_ale_mpi demo_poisson-disc_mpi +else ifeq (ppc64el, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_MPI_TEST = demo_poisson_mpi demo_singular-poisson_mpi demo_sym-dirichlet-bc_mpi +else + ARCH_SPECIFIC_SKIP_MPI_TEST = +endif + +# m68k and mips need some help to pass serial tests +ifeq (m68k, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_SERIAL_TEST = demo_auto-adaptive-poisson_serial demo_elasticity_serial +else ifeq (mips, $(DEB_HOST_ARCH)) + ARCH_SPECIFIC_SKIP_SERIAL_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial +else + ARCH_SPECIFIC_SKIP_SERIAL_TEST = +endif + +# skip slow tests (> 500-1000 sec to complete) +ifeq (armel, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_stokes-iterative_serial demo_auto-adaptive-navier-stokes_serial demo_hyperelasticity_serial demo_cahn-hilliard_serial +else ifeq (mips, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_eigenvalue_serial demo_navier-stokes_serial demo_auto-adaptive-poisson_serial demo_stokes-taylor-hood_serial demo_auto-adaptive-navier-stokes_serial demo_curl-curl_serial demo_elasticity_serial demo_stokes-iterative_serial demo_eval_serial demo_sym-dirichlet-bc_serial demo_elastodynamics_serial demo_eigenvalue_mpi demo_navier-stokes_mpi demo_curl-curl_mpi demo_elasticity_mpi demo_elastodynamics_mpi demo_sym-dirichlet-bc_mpi +else ifeq (mips64el, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial +else ifeq (mipsel, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial +else ifeq (hppa, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial +else ifeq (m68k, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial +else ifeq (riscv64, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial demo_cahn-hilliard_mpi demo_elastodynamics_mpi +else ifeq (sparc64, $(DEB_HOST_ARCH)) + ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial demo_stokes-iterative_serial demo_cahn-hilliard_mpi demo_elastodynamics_mpi +else + ARCH_SKIP_SLOW_TEST = +endif + +# other arches fail or time out on too many tests, so skip all their MPI tests +ARCH_SKIP_ALL_MPI_TESTS_LIST=armel armhf i386 hppa m68k powerpc + +# some arches just aren't keeping up at all, and fail non-MPI tests +ARCH_SKIP_ALL_TESTS_LIST = hurd-i386 m68k sh4 + +# 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 + + +DEB_CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) + +CMAKE_OPTS := \ + -D CMAKE_BUILD_TYPE:STRING=RelWithDebInfo \ + -D BUILD_SHARED_LIBS:BOOL=ON \ + -D CMAKE_SKIP_RPATH:BOOL=ON \ + -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \ + -D PETSC_DIR:PATH=$(PETSC_DIR) \ + -D SLEPC_DIR:PATH=$(SLEPC_DIR) \ + -D DOLFIN_ENABLE_TRILINOS:BOOL=OFF \ + -D DOLFIN_ENABLE_HDF5:BOOL=ON \ + -D HDF5_C_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5pcc \ + -D DOLFIN_ENABLE_PARMETIS:BOOL=OFF \ + -D DOLFIN_ENABLE_SCOTCH:BOOL=ON \ + -D DOLFIN_ENABLE_DOCS:BOOL=OFF \ + -D DOLFIN_ENABLE_MPI:BOOL=$(ENABLE_MPI) \ + -D MPIEXEC_PARAMS:STRING="$(MPIEXEC_PARAMS)" \ + -D CMAKE_CXX_FLAGS:STRING="-fpermissive" \ + -D DOLFIN_EXTRA_CXX_FLAGS:STRING="$(DEB_CXXFLAGS)" \ + $(DOLFIN_HOME) + +%: + dh $@ --buildsystem=cmake --with python3 + +override_dh_compress: + dh_compress -X.py -X.cpp -X.h -X.pdf -X.ufl + +override_dh_auto_clean: + rm -rf $(INSTALLATION_BUILDDIR) $(TESTDIR) + dh_auto_clean + +override_dh_auto_configure: + dh_auto_configure -- $(CMAKE_OPTS) + +override_dh_auto_install: + dh_auto_install + dh_numpy3 + for v in $(PYVERS); do \ + cd python; \ + PATH=$(CURDIR)/debian/tmp/usr/bin:$$PATH \ + CXXFLAGS="$(DEB_CXXFLAGS) -isystem $(CURDIR)/debian/tmp/usr/include" \ + VERBOSE=1 \ + $$v setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \ + done; + chrpath -d $(CURDIR)/debian/tmp/usr/lib/python*/dist-packages/dolfin/*.so + sed -i "s/-D_FORTIFY_SOURCE=2//g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/pkgconfig/dolfin.pc + sed -i "s|-DNDEBUG||g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/pkgconfig/dolfin.pc + +# make a separate copy of the build directory while testing, or else local flags (-I$(DOLFIN_HOME)) get written into dolfin.pc +INSTALLATION_BUILDDIR = installation-build +override_dh_auto_test-arch: + case " $(ARCH_SKIP_ALL_TESTS_LIST) " in \ + *\ $(DEB_HOST_ARCH)\ *) echo "ALL tests have been disabled on $(DEB_HOST_ARCH)";; \ + *) set -e; \ + cp -ra $(BUILDDIR) $(INSTALLATION_BUILDDIR); \ + cd $(BUILDDIR); \ + make -j$(N_CPU) unittests; \ + make -j$(N_CPU) demos; \ + case " $(ARCH_SKIP_MPI_TEST_LIST) " in \ + *\ $(DEB_HOST_ARCH)\ *) IGNORE_MPI_TESTS="$(ARCH_ALL_SKIP_MPI_TEST) $(ARCH_SKIP_MPI_TEST) $(ARCH_SPECIFIC_SKIP_MPI_TEST)";; \ + *) IGNORE_MPI_TESTS="$(ARCH_ALL_SKIP_MPI_TEST) $(ARCH_SPECIFIC_SKIP_MPI_TEST)";; \ + esac; \ + echo "set(CTEST_CUSTOM_TESTS_IGNORE $${IGNORE_MPI_TESTS} $(ARCH_SPECIFIC_SKIP_SERIAL_TEST) $(ARCH_SKIP_SLOW_TEST) )" >> CTestCustom.cmake; \ + echo "Run C++ unit tests (serial)"; \ + LD_LIBRARY_PATH=$(DOLFIN_HOME)/$(BUILDDIR)/dolfin:$${LD_LIBRARY_PATH} ctest --output-on-failure -R unittests; \ + echo "Run C++ regressions tests (serial)"; \ + LD_LIBRARY_PATH=$(DOLFIN_HOME)/$(BUILDDIR)/dolfin:$${LD_LIBRARY_PATH} ctest --output-on-failure -j$(N_CPU) -R demo -R serial; \ + echo "Run C++ regression tests (MPI)"; \ + case " $(ARCH_SKIP_ALL_MPI_TESTS_LIST) " in \ + *\ $(DEB_HOST_ARCH)\ *) echo "MPI tests have been disabled on $(DEB_HOST_ARCH)";; \ + *) LD_LIBRARY_PATH=$(DOLFIN_HOME)/$(BUILDDIR)/dolfin:$${LD_LIBRARY_PATH} ctest --output-on-failure -j$(N_MPI_TESTS) -R demo -R mpi;; \ + esac; \ + cd ..; \ + mv $(BUILDDIR) $(TESTDIR); \ + mv $(INSTALLATION_BUILDDIR) $(BUILDDIR);; \ + esac + +override_dh_auto_test-indep: + +override_dh_install-indep: + cd python/demo; \ + python3 generate-demo-files.py + dh_install -X*.rst + +override_dh_fixperms-indep: + dh_fixperms + chmod a-x debian/dolfin-doc/usr/share/dolfin/demo-python/*/*/*.py + +# set petsc:Depends to something like "libpetsc-real3.8-dev, libslepc-real3.8-dev, python-petsc4py (>= 3.8), python-petsc4py (<< 3.9), python-slepc4py (>= 3.8), python-slepc4py (<< 3.9)" +PETSC_DEV_DEPENDS="libpetsc-real$(PETSC_VERSION)-dev | libpetsc$(PETSC_UPSTREAM_VERSION)-dev, libslepc-real$(SLEPC_VERSION)-dev | libslepc$(SLEPC_UPSTREAM_VERSION)-dev" +# slepc4py version must match petsc4py (using the PETSc minor version, not the patch release) +PETSC4PY_DEPENDS_PY3=python3-petsc4py (>= $(PETSC_VERSION)), python3-petsc4py (<< $(PETSC_VERSION_NEXT)), python3-slepc4py (>= $(SLEPC_VERSION)), python3-slepc4py (<< $(SLEPC_VERSION_NEXT)) +override_dh_gencontrol: + echo "python3-petsc4py:Depends=$(PETSC4PY_DEPENDS_PY3)" >> debian/python3-dolfin.substvars + echo "python-petsc4py-alt:Depends=$(PETSC4PY_DEPENDS_PY3)" >> debian/libdolfin-dev.substvars + dh_gencontrol -- -Vpetsc:Depends=$(PETSC_DEV_DEPENDS) -Vfenics:Upstream-Version=$(FENICS_VERSION) -Vfenics:Next-Upstream-Version=$(FENICS_NEXT_VERSION)~ \ + -Vpybind11:Upstream-Version=$(PYBIND11_UPSTREAM_VERSION) -Vpybind11:Next-Upstream-Version=$(PYBIND11_NEXT_UPSTREAM_VERSION) + +# dbgsym-migration was introduced for dolfin 2017.2 (don't update the version to a later version) +override_dh_strip: + dh_strip --package=libdolfin$(FENICS_VERSION) --dbgsym-migration='libdolfin2017.2-dbg (<< 2017.2.0.post0-1~)' -Xpython + dh_strip --package=python3-dolfin --dbgsym-migration='python3-dolfin-dbg (<< 2017.2.0.post0-1~)' -Xpython2 + +# python module so files are already stripped by setup.py (setuptools) +override_dh_dwz: + dh_dwz -Xcpp.cpython + +# https://stackoverflow.com/a/18793112/353337 +override_dh_shlibdeps: + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info + + +.PHONY: get-orig-source override_dh_strip +get-orig-source: + uscan --force-download --verbose --destdir $(USCAN_DESTDIR) diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 0000000..a203ce3 --- /dev/null +++ b/source/include-binaries @@ -0,0 +1,4 @@ +debian/dolfin-convert.1.gz +debian/dolfin-order.1.gz +debian/dolfin-plot.1.gz +debian/dolfin-version.1.gz diff --git a/tests/control b/tests/control new file mode 100644 index 0000000..6b042a8 --- /dev/null +++ b/tests/control @@ -0,0 +1,6 @@ +Tests: test-dolfin-cpp, test-dolfin-python +Depends: @, @builddeps@, + python3-pytest, + python3-decorator, + python3-matplotlib, + python3-scipy diff --git a/tests/test-dolfin-cpp b/tests/test-dolfin-cpp new file mode 100644 index 0000000..161eead --- /dev/null +++ b/tests/test-dolfin-cpp @@ -0,0 +1,45 @@ +# allow parallel jobs, but don't load up more than 8 +NPROC=$( nproc ) +MAX_CPU=8 +N_CPU=$(( NPROC > MAX_CPU ? MAX_CPU : NPROC )) + +# MPI tests are set up to run on 3 processes. Spread them leanly over the available processors (don't have more than 2 tests using one processor). +# e.g. run 1 MPI test at a time over 1-3 processors, or 2 tests at a time over 4-6 processors, or 3 tests over 7-9 processors, etc. +N_MPI=3 +N_MPI_TESTS=$(( (N_CPU+N_MPI-1)/N_MPI )) + +export OMPI_MCA_plm_rsh_agent=/bin/false +export OMPI_MCA_rmaps_base_oversubscribe=1 + +DEMO_DIR=./dolfin-demo + +rm -rf $DEMO_DIR +cp -rL /usr/share/dolfin/demo $DEMO_DIR + +cd $DEMO_DIR +cmake -DCMAKE_C_COMPILER=mpicc . +make -j${N_CPU} all + +DEMO_LIST=`find . -executable -name demo*[^.dir]` + +# construct ctest scripts +# (cf. add_test in source cmake/scripts/generate-cmakefiles.py) +CTESTFILE=CTestTestfile.cmake +for d in ${DEMO_LIST}; do + demo_bin=`basename $d` + dir=`dirname $d` + echo -e "subdirs(\"${dir}\")" >> $CTESTFILE + echo -e "add_test(${demo_bin}_mpi \"mpirun\" \"-np\" \"${N_MPI}\" \"./${demo_bin}\")" >> $dir/$CTESTFILE + echo "add_test(${demo_bin}_serial \"./${demo_bin}\")" >> $dir/$CTESTFILE +done + +# demo_hyperelasticity_mpi diverges, so skip +echo "set(CTEST_CUSTOM_TESTS_IGNORE demo_hyperelasticity_mpi)" > CTestCustom.cmake + +echo "running C++ demos (serial)" +ctest --output-on-failure -j${N_CPU} -R serial + +echo "running C++ demos (MPI)" +ctest --output-on-failure -j${N_MPI_TESTS} -R mpi + +cd .. diff --git a/tests/test-dolfin-python b/tests/test-dolfin-python new file mode 100644 index 0000000..941be85 --- /dev/null +++ b/tests/test-dolfin-python @@ -0,0 +1,15 @@ +# MPI tests are set up to run on 3 processes. +N_MPI=3 +export OMPI_MCA_plm_rsh_agent=/bin/false +export OMPI_MCA_rmaps_base_oversubscribe=1 + +echo "=== python unit test (serial) ===" +python3 -m pytest python/test/unit/ +echo "=== python unit test (MPI) ===" +mpirun -n ${N_MPI} python3 -m pytest python/test/unit/ + +python3 python/demo/generate-demo-files.py +echo "=== python demo test (serial) ===" +python3 -m pytest -v python/demo/test.py +echo "=== python demo test (MPI) ===" +python3 -m pytest -v python/demo/test.py --mpiexec=mpiexec --num-proc=${N_MPI} diff --git a/upstream/signing-key.asc b/upstream/signing-key.asc new file mode 100644 index 0000000..e0c8502 --- /dev/null +++ b/upstream/signing-key.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFm3qPYBCADLVRsKIH2xwxzrRyax3SXsd3pcV1K0fAXC8C1P32wh5o8NLX80 +QGNWKIln4kdrYtL5MHChZipNFmYCRT/vrFOaVftj/TM2QebOBwoGVIhQ2ueIQ9mO +GYTKKwNLPugUTf04l/+37B/WX/t8JsWfo1EVQ6FRjdY1P7iQpWDzhSMouKJE3+Xy +SH3Okh/OiumPSM/fNGLN6b/OE0K6BBH/RWWJVT/cbdSm3FrjYflTPPtP9yLWRj0o +TW81E7lYiKPL6pzi7kVtxicUu8MzOPpESBDty8M/xUmkdVzUU5E7NkRFnkCjhoJF +scLwdpdLRWaaLqAYp6W5puU/95X6Ddn9utLFABEBAAG0SkZFbmlDUyBQcm9qZWN0 +IFN0ZWVyaW5nIENvdW5jaWwgPGZlbmljcy1zdGVlcmluZy1jb3VuY2lsQGdvb2ds +ZWdyb3Vwcy5jb20+iQE+BBMBAgAoBQJZt6j2AhsDBQkDwmcABgsJCAcDAgYVCAIJ +CgsEFgIDAQIeAQIXgAAKCRC+0GEG3SK6szJ2B/9Zxea+l83Q9il/Z21VFZRWBETx +y189cqlOeVsMPJm/KpSDtjAC1iJWi9ogN2zyZej/m8Su+eAJ7QUHgz8StJUXOO6J +Y7OZ/v/SlJbf6ADcT9p981H9gFzufzU6NqjynFQRLjaApToZtSiAM4lsL21zk8Z+ +B7SMSouKGGn/ODWuZeVA1QT6pJTAX31lT1oFbdPRHc4j41qU+ogyjcwPh2dYFOBc +ZEp5XyU+7ZCGK1A2p/0i6orXBUVKw/1zm9jCSwxgd5FpEvnB6BXvHV3lXdiqxJuN +Xr+3OBoq0k5vQPkBKTDhvCf3UFEODJ98mFAKD1zezLTex+3yzOSmXpoLXTEcuQEN +BFm3qPYBCACqGoAPALpcUGwMgullThXVEEUJ2WY7wXoNvX6qAZ0gyf/vkJnuNyQH +Qd6ZJJVLzP28vHGLkftqcyjVLlu6Ok7dTrFobXTEeR9GO2cqxccfVTUUbURQ65kl +QhL6g+w/MeLtvMdAomClODvz7jRGAZUsezQcWrFnT8R25S94O4kPfky7fP+gNcwM +YT4SyScFvFTFGy6PSjnGIzGQUchBQRam56K8tP2FrCOMIWryeXjTcyixJPFfzmc3 +N3ifnTQPtu7VQtUkmq6L6dBtf8cCvi42Cnscq6HmcgGqkZTm81af/FPOI5SoY+gZ +8Oiur4KnOhkHJDg0+MzM8sKYVHmUf84hABEBAAGJASUEGAECAA8FAlm3qPYCGwwF +CQPCZwAACgkQvtBhBt0iurPTYwgAyIKm3ySpEcJlIVquiq9Xx52yCtdaNfIkwLOo +GwoTF4uIxGLWHNZn7nMn3HNMLxohNpuVmbDW++bK1ui0eqzeAFkvjCULwFU5RRsW +lVgN5xxtmjuSsVZBuE4KZMQevv6HcUUe6nEMERHUnujJdJKydXPOrWC3/+B/NYUR +8KoUFPL1+4si2wIdFOQZ8194Ic/JA4/FBhwMKG/rNNvRU2MNAzWzZCP7V0FeRLUs +fIsWs/CSG7SnPKs3o45D9tSiKVcBUilTbJYwmUnmTCwYD71OWa3q8t1ZmvHY/XMk +BSGJR5XcHeZKG/tjm5aSVp8yLsP4xEiRZcAFapBcMnaSDOTWOA== +=vY8l +-----END PGP PUBLIC KEY BLOCK----- diff --git a/watch b/watch new file mode 100644 index 0000000..76c5420 --- /dev/null +++ b/watch @@ -0,0 +1,4 @@ +version=4 +opts=downloadurlmangle=s{downloads/.*dolfin-}{downloads/dolfin-},\ +pgpsigurlmangle=s/$/.asc/ \ +https://bitbucket.org/fenics-project/dolfin/downloads/ .*/dolfin-(.*)\.tar\.gz -- 2.30.2