--- /dev/null
--- /dev/null
++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).
--- /dev/null
--- /dev/null
++dolfin (2018.1.0.post1-16) unstable; urgency=medium
++
++ * use ctest --output-on-failure not -output-on-failure
++
++ -- Drew Parsons <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <johannr@simula.no> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <dparsons@debian.org> 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 <mattia@debian.org> 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 <mattia@debian.org> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> Mon, 01 Jun 2015 09:26:07 +0200
++
++dolfin (1.5.0-2) unstable; urgency=medium
++
++ * Upload to unstable (closes: #780359).
++
++ -- Johannes Ring <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <sebastien@debian.org> 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 <sebastien@debian.org> 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 <sebastien@debian.org> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> Mon, 07 Jun 2010 09:25:13 +0200
++
++dolfin (0.9.7-3) unstable; urgency=low
++
++ * debian/rules: Remove bashism (closes: #581470).
++
++ -- Johannes Ring <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> Thu, 18 Feb 2010 00:40:38 +0100
++
++dolfin (0.9.6-2) unstable; urgency=low
++
++ * Disable support for Trilinos for now.
++
++ -- Johannes Ring <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> 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 <johannr@simula.no> Mon, 10 Aug 2009 16:03:52 +0200
++
++dolfin (0.9.2-1) unstable; urgency=low
++
++ * Initial release (Closes: #503082)
++
++ -- Johannes Ring <johannr@simula.no> Tue, 16 Sep 2008 08:41:20 +0200
++
--- /dev/null
--- /dev/null
++12
--- /dev/null
--- /dev/null
++Source: dolfin
++Section: math
++Priority: optional
++Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
++Uploaders:
++ Johannes Ring <johannr@simula.no>,
++ Drew Parsons <dparsons@debian.org>
++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.
--- /dev/null
--- /dev/null
++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 <johannr@simula.no>
++ 2017-2018 Drew Parsons <dparsons@debian.org>
++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, <montel@kde.org>
++ Gael Guennebaud, <g.gael@free.fr>
++ Benoit Jacob <jacob.benoit.1@gmail.com>
++ Garth N. Wells <gnw20@cam.ac.uk>
++License: BSD-2-clause
++
++Files: cmake/modules/FindEigen3.cmake
++ cmake/modules/FindMPFR.cmake
++Copyright: 2006-2010, Montel Laurent, <montel@kde.org>
++ Gael Guennebaud, <g.gael@free.fr>
++ Jitse Niesen, <jitse@maths.leeds.ac.uk>
++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 <tgamblin@llnl.gov>,
++ Dave Partyka
++License: BSD-3-clause
++
++Files: dolfin/geometry/predicates.*
++Copyright: 1996 Jonathan Richard Shewchuk <jrs@cs.cmu.edu>
++License: public-domain
++ Code is placed in the public domain.
++
++Files: dolfin/io/base64.cpp
++Copyright: 2004-2008, Rene Nyffenegger <rene.nyffenegger@adp-gmbh.ch>
++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
++ <http://www.gnu.org/licenses/>.
++ .
++ 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
++ <http://www.gnu.org/licenses/>.
++ .
++ 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'.
++
--- /dev/null
--- /dev/null
++AUTHORS
++README.rst
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++usr/share/man/man1/dolfin-version.1.gz usr/share/man/man1/fenics-version.1.gz
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++usr/share/dolfin/data
++usr/share/dolfin/demo
++python/demo/*documented usr/share/dolfin/demo-python
--- /dev/null
--- /dev/null
++usr/share/dolfin/demo-python/undocumented/pulley.xdmf usr/share/dolfin/demo/undocumented/elasticity/pulley.xdmf
--- /dev/null
--- /dev/null
++.TH "DOLFIN-GET-DEMOS" 1
++
++.SH NAME
++dolfin-get-demos - install DOLFIN demos in user's home direcotry
++
++.SH SYNOPSIS
++.B dolfin-get-demos
++
++.SH BUGS
++.TP
++For comments, questions, bug reports etc. see http://fenicsproject.org/support.
++
++.SH AUTHOR
++dolfin-get-demos was written by Anders Logg <logg@chalmers.se>.
--- /dev/null
--- /dev/null
++usr/include/dolfin
++usr/include/dolfin.h
++usr/lib/**/*.so
++usr/lib/**/pkgconfig/dolfin.pc
++usr/share/dolfin/cmake
--- /dev/null
--- /dev/null
++usr/lib/**/lib*.so.*
--- /dev/null
--- /dev/null
++usr/share/dolfin/dolfin.conf
--- /dev/null
--- /dev/null
++Index: dolfin/dolfin/la/PETScOptions.h
++===================================================================
++--- dolfin.orig/dolfin/la/PETScOptions.h
+++++ dolfin/dolfin/la/PETScOptions.h
++@@ -22,7 +22,7 @@
++
++ #include <string>
++ #include <boost/lexical_cast.hpp>
++-#include <petscoptions.h>
+++#include <petscsys.h>
++ #include <dolfin/common/SubSystemsManager.h>
++ #include <dolfin/log/log.h>
++ #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)",
--- /dev/null
--- /dev/null
++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)
--- /dev/null
--- /dev/null
++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<libdir> -l<lib> form
++ foreach(_lib ${PKGCONFIG_DOLFIN_LIBS})
++ # Add -Wl,option directives
--- /dev/null
--- /dev/null
++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",
--- /dev/null
--- /dev/null
++From 096217a0a3cb710e869d7e82a3d3609c4d968b76 Mon Sep 17 00:00:00 2001
++From: =?UTF-8?q?C=C3=A9cile=20Daversin-Catty?= <cecile@simula.no>
++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
++
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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})
++ """
--- /dev/null
--- /dev/null
++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)
--- /dev/null
--- /dev/null
++# 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
--- /dev/null
--- /dev/null
++usr/lib/python3*/*-packages/*
--- /dev/null
--- /dev/null
++#!/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)
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++debian/dolfin-convert.1.gz
++debian/dolfin-order.1.gz
++debian/dolfin-plot.1.gz
++debian/dolfin-version.1.gz
--- /dev/null
--- /dev/null
++Tests: test-dolfin-cpp, test-dolfin-python
++Depends: @, @builddeps@,
++ python3-pytest,
++ python3-decorator,
++ python3-matplotlib,
++ python3-scipy
--- /dev/null
--- /dev/null
++# 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 ..
--- /dev/null
--- /dev/null
++# 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}
--- /dev/null
--- /dev/null
++-----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-----
--- /dev/null
--- /dev/null
++version=4
++opts=downloadurlmangle=s{downloads/.*dolfin-}{downloads/dolfin-},\
++pgpsigurlmangle=s/$/.asc/ \
++https://bitbucket.org/fenics-project/dolfin/downloads/ .*/dolfin-(.*)\.tar\.gz