dolfin (2018.1.0.post1-16) unstable; urgency=medium
authorDrew Parsons <dparsons@debian.org>
Mon, 11 Feb 2019 08:14:25 +0000 (08:14 +0000)
committerDrew Parsons <dparsons@debian.org>
Mon, 11 Feb 2019 08:14:25 +0000 (08:14 +0000)
  * use ctest --output-on-failure not -output-on-failure

[dgit import unpatched dolfin 2018.1.0.post1-16]

38 files changed:
1  2 
debian/README.Debian
debian/changelog
debian/compat
debian/control
debian/copyright
debian/docs
debian/dolfin-bin.install
debian/dolfin-bin.links
debian/dolfin-bin.manpages
debian/dolfin-convert.1.gz
debian/dolfin-doc.install
debian/dolfin-doc.links
debian/dolfin-get-demos.1
debian/dolfin-order.1.gz
debian/dolfin-plot.1.gz
debian/dolfin-version.1.gz
debian/libdolfin-dev.install
debian/libdolfin2018.1.install
debian/not-installed
debian/patches/PETSc_3.10_SNESTEST_removed.patch
debian/patches/conditional-parmetis-in-cholmod.patch
debian/patches/extra_CXXFLAGS.patch
debian/patches/mpi_prefer_mumps_not_superlu_dist.patch
debian/patches/pytest_fixtures_096217a.patch
debian/patches/series
debian/patches/skip_demo_hyperelasticity_mpi.patch
debian/patches/test_mpi_oversubscribe.patch
debian/patches/unittests_demos_include_dirs.patch
debian/python-dolfin.lintian-overrides
debian/python3-dolfin.install
debian/rules
debian/source/format
debian/source/include-binaries
debian/tests/control
debian/tests/test-dolfin-cpp
debian/tests/test-dolfin-python
debian/upstream/signing-key.asc
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7e2d279a1a69004ecf9a227535fda2c75f0ef6b8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++Conditional Support for SuperLU-Dist
++------------------------------------
++
++In principle dolfin supports SuperLU-Dist. However the superlu-dist
++package distributed by Debian is mostly useless since mc64, one of its
++core functions, cannot legally be redistributed and so has been
++removed from the Debian package. For this reason, we have given
++preference to mumps over superlu_dist.
++
++You may specify superlu_dist if desired (or if you have a local build
++of superlu_dist that includes mc64), for instance with 
++  solve(a == L, u, bc, solver_parameters={'linear_solver': 'superlu_dist'})
++
++You may also successfully use superlu_dist without mc64 by specifying
++C++:
++  PETScOptions::set("-mat_superlu_dist_rowperm", "NATURAL");
++Python:
++  PETScOptions.set('-mat_superlu_dist_rowperm', 'NATURAL')
++Performance will likely be reduced.
++
++The same problem applies to superlu, from which mc64 has also been
++removed. superlu still functions successfully however (mc64 is not
++core for the serial version of SuperLU).
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..69a76d61da21908f40443e6701311e538552a89b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1115 @@@
++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
++
diff --cc debian/compat
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..48082f72f087ce7e6fa75b9c41d7387daecd447b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++12
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f88e4b1cd97fb4f63d1e9c2769644cf601e99a0f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,196 @@@
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..59d2334d2be44931428372c2edfbc0c0fd866982
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,296 @@@
++Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: DOLFIN
++Upstream-Contact: fenics@fenicsproject.org
++ https://fenicsproject.org/community/
++Source: https://bitbucket.org/fenics-project/dolfin
++
++Files: *
++Copyright: 2001-2017, Johan Hake,
++                    Anders Logg,
++                    Garth N. Wells,
++                    Johan Hoffman,
++                    Jim Tilander,
++                    Jan Blechta,
++                    Johan Jansson,
++                    Ola Skavhaug,
++                    Magne Nordaas,
++                    Kristian B. Oelgaard,
++                    Martin Sandve Alnæs,
++                    Magnus Vikstrøm,
++                    Evan Lezar,
++                    Ilmar Wilbers,
++                    Kent-Andre Mardal,
++                    Rolv Erlend Bredesen,
++                    Solveig Bruvoll,
++                    Niclas Jansson,
++                    Dag Lindbo,
++                    Ilmar Wilbers,
++                    Joachim B. Haga,
++                    Fredrik Valdmanis,
++                    Andre Massing,
++                    Bartosz Sawicki,
++                    Mirko Maraldi,
++                    Harish Narayanan,
++                    Stefano Zampini,
++                    Marie E. Rognes,
++                    Chris Richardson,
++                    Arve Knudsen,
++                    Harish Narayanan,
++                    Corrado Maurini,
++                    David Ham, Imperial College London,
++                    Mikael Mortensen,
++                    Patrick E. Farrell,
++                    August Johansson,
++                    Aslak Wigdahl Bergersen,
++                    Matthias Liertzer,
++                    Tianyi Li,
++                    Benjamin Kehlet,
++                    Tormod Landet,
++                    Ettie Unwin,
++                    Jørgen Schartum Dokken,
++                    Nathan Sime,
++                    Peter Scott,
++                    Quang T. Ha,
++                    Simon Funke,
++                    Michal Habera
++License: LGPL-3+
++
++Files: debian/*
++Copyright: 2008-2017, Johannes Ring <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'.
++
diff --cc debian/docs
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..24948f1ebb225a1753ed2240599e5c22d1a69247
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++AUTHORS
++README.rst
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..04b22525ffa16d9cf76eb499e510a034a8967220
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,10 @@@
++usr/bin/dolfin-convert
++usr/bin/dolfin-get-demos
++usr/bin/dolfin-order
++usr/bin/dolfin-plot
++usr/bin/dolfin-version
++usr/bin/fenics-version
++# usr/share/man/man1/dolfin-convert.1.gz
++# usr/share/man/man1/dolfin-order.1.gz
++# usr/share/man/man1/dolfin-plot.1.gz
++# usr/share/man/man1/dolfin-version.1.gz
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..94123c0aceedceb3eda79760c9150cb6e380eecf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/share/man/man1/dolfin-version.1.gz usr/share/man/man1/fenics-version.1.gz
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ea81be8b07d454216e2ebe8f92ae3df23a5b6fc0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++debian/dolfin-get-demos.1
++debian/dolfin-convert.1.gz
++debian/dolfin-order.1.gz
++debian/dolfin-plot.1.gz
++debian/dolfin-version.1.gz
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a0bb17f439977c654847b1bedf7549715b290ec3
new file mode 100644 (file)
Binary files differ
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..358abde99cb4b02a77f2c2c097a8759132f8be35
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++usr/share/dolfin/data
++usr/share/dolfin/demo
++python/demo/*documented usr/share/dolfin/demo-python
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e4bae0f00de7e3a4ff0f945937b20c2820adac46
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/share/dolfin/demo-python/undocumented/pulley.xdmf usr/share/dolfin/demo/undocumented/elasticity/pulley.xdmf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..abc23d0ff44e991a5cd6665efd6659e2d5c077c3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++.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>.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0cee65f7a94283a6b50ce8d723afe27687996250
new file mode 100644 (file)
Binary files differ
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6dceec84e1f8c121105dd1f5037bc06487ddd19b
new file mode 100644 (file)
Binary files differ
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d4fefb9fc665d1479d6851acc52f4d716f7ba347
new file mode 100644 (file)
Binary files differ
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2cc7c04e80714e198b80bf99f7d97eedb6326b5a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++usr/include/dolfin
++usr/include/dolfin.h
++usr/lib/**/*.so
++usr/lib/**/pkgconfig/dolfin.pc
++usr/share/dolfin/cmake
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8755c9980917fb21304c1ea4d169cc2078f79d88
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/**/lib*.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..819167e5472c6b9865d6aa7c9eec6b98f72e41e4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/share/dolfin/dolfin.conf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f4e64d6ad93c42cd5a981da2a8b638d3b816345b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,43 @@@
++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)",
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6abc668626ba01636b9490056e64c475da4f4223
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++Index: dolfin/cmake/modules/FindCHOLMOD.cmake
++===================================================================
++--- dolfin.orig/cmake/modules/FindCHOLMOD.cmake
+++++ dolfin/cmake/modules/FindCHOLMOD.cmake
++@@ -42,7 +42,9 @@ set(CMAKE_LIBRARY_PATH ${LAPACK_DIR}/lib
++ find_package(AMD QUIET)
++ find_package(BLAS QUIET)
++ find_package(LAPACK QUIET)
++-find_package(ParMETIS 4.0.2 QUIET)
+++if (DOLFIN_ENABLE_PARMETIS)
+++  find_package(ParMETIS 4.0.2 QUIET)
+++endif()
++ 
++ # FIXME: Should we have separate FindXX modules for CAMD, COLAMD, and CCOLAMD?
++ # FIXME: find_package(CAMD)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4801f10ad461e371afd656aaf268f252b64881b0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++Index: dolfin/dolfin/CMakeLists.txt
++===================================================================
++--- dolfin.orig/dolfin/CMakeLists.txt
+++++ dolfin/dolfin/CMakeLists.txt
++@@ -307,6 +307,10 @@ endforeach()
++ string(REPLACE ";" " " PKG_CXXFLAGS "${CMAKE_CXX_FLAGS}")
++ string(REPLACE ";" " " PKG_LINKFLAGS "${CMAKE_EXE_LINKER_FLAGS}")
++ 
+++# DOLFIN_EXTRA_CXX_FLAGS are used for the build (by adding to CMAKE_CXX_FLAGS)
+++# but should not be included in the pkgconfig file (i.e. don't add to PKG_CXXFLAGS above)
+++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DOLFIN_EXTRA_CXX_FLAGS}")
+++
++ # Convert libraries to -L<libdir> -l<lib> form
++ foreach(_lib ${PKGCONFIG_DOLFIN_LIBS})
++   # Add -Wl,option directives
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e017eb48ce77728c0c6448575ebb6dacae36f297
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,104 @@@
++Index: dolfin/dolfin/nls/PETScSNESSolver.cpp
++===================================================================
++--- dolfin.orig/dolfin/nls/PETScSNESSolver.cpp
+++++ dolfin/dolfin/nls/PETScSNESSolver.cpp
++@@ -560,16 +560,16 @@ void PETScSNESSolver::set_linear_solver_
++       }
++       else
++       {
++-        #if PETSC_HAVE_SUPERLU_DIST
++-        lu_method = "superlu_dist";
++-        #elif PETSC_HAVE_PASTIX
+++        #if PETSC_HAVE_PASTIX
++         lu_method = "pastix";
++         #elif PETSC_HAVE_MUMPS
++         lu_method = "mumps";
+++        #elif PETSC_HAVE_SUPERLU_DIST
+++        lu_method = "superlu_dist";
++         #else
++         dolfin_error("PETScSNESSolver.cpp",
++                      "solve linear system using PETSc LU solver",
++-                     "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS or SuperLU_dist");
+++                     "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS (preferred) or SuperLU_dist");
++         #endif
++       }
++     }
++Index: dolfin/dolfin/nls/PETScTAOSolver.cpp
++===================================================================
++--- dolfin.orig/dolfin/nls/PETScTAOSolver.cpp
+++++ dolfin/dolfin/nls/PETScTAOSolver.cpp
++@@ -519,16 +519,16 @@ void PETScTAOSolver::set_ksp_options()
++         }
++         else
++         {
++-          #if PETSC_HAVE_SUPERLU_DIST
++-          lu_method = "superlu_dist";
++-          #elif PETSC_HAVE_PASTIX
+++          #if PETSC_HAVE_PASTIX
++           lu_method = "pastix";
++           #elif PETSC_HAVE_MUMPS
++           lu_method = "mumps";
+++          #elif PETSC_HAVE_SUPERLU_DIST
+++          lu_method = "superlu_dist";
++           #else
++           dolfin_error("PETScTAOSolver.cpp",
++                        "solve linear system using PETSc LU solver",
++-                       "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS or SuperLU_dist");
+++                       "No suitable solver for parallel LU found. Consider configuring PETSc with MUMPS (preferred) or SuperLU_dist");
++           #endif
++         }
++       }
++Index: dolfin/dolfin/la/PETScLUSolver.cpp
++===================================================================
++--- dolfin.orig/dolfin/la/PETScLUSolver.cpp
+++++ dolfin/dolfin/la/PETScLUSolver.cpp
++@@ -329,22 +329,17 @@ const MatSolverType PETScLUSolver::selec
++     {
++       #if PETSC_HAVE_UMFPACK || PETSC_HAVE_SUITESPARSE
++       method = "umfpack";
++-      #elif PETSC_HAVE_SUPERLU_DIST
++-      method = "superlu_dist";
+++      // superlu_dist does not work efficiently since mc64 cannot be redistributed.  So use PETSc in preference to superlu_dist
++       #else
++       method = "petsc";
++-      warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. Umfpack, SuperLU_dist).");
+++      warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. Umfpack).");
++       #endif
++     }
++     else
++     {
++-      #if PETSC_HAVE_SUPERLU_DIST
++-      method = "superlu_dist";
++-      #else
+++      // superlu_dist does not work efficiently since mc64 cannot be redistributed.  So use PETSc in preference to superlu_dist
++       method = "petsc";
++-      warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. SuperLU_dist).");
++-      #endif
++-
+++      warning("Using PETSc native LU solver. Consider specifying a more efficient LU solver (e.g.umfpack) if available.");
++     }
++     #else
++     if (dolfin::MPI::size(comm) == 1)
++@@ -357,8 +352,7 @@ const MatSolverType PETScLUSolver::selec
++       method = "pastix";
++       #elif PETSC_HAVE_SUPERLU
++       method = "superlu";
++-      #elif PETSC_HAVE_SUPERLU_DIST
++-      method = "superlu_dist";
+++      // superlu_dist does not work efficiently since mc64 cannot be redistributed.  So use PETSc in preference to superlu_dist
++       #else
++       method = "petsc";
++       warning("Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. UMFPACK, MUMPS).");
++@@ -368,10 +362,10 @@ const MatSolverType PETScLUSolver::selec
++     {
++       #if PETSC_HAVE_MUMPS
++       method = "mumps";
++-      #elif PETSC_HAVE_SUPERLU_DIST
++-      method = "superlu_dist";
++       #elif PETSC_HAVE_PASTIX
++       method = "pastix";
+++      #elif PETSC_HAVE_SUPERLU_DIST
+++      method = "superlu_dist";
++       #else
++       dolfin_error("PETScLUSolver.cpp",
++                    "solve linear system using PETSc LU solver",
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2221b83f0ccbe753133b4ba5c4a647a731261e4e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,471 @@@
++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
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b6bb8538dc112efb09d28d31f1cb899fdc89bc6c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++conditional-parmetis-in-cholmod.patch
++test_mpi_oversubscribe.patch
++mpi_prefer_mumps_not_superlu_dist.patch
++skip_demo_hyperelasticity_mpi.patch
++unittests_demos_include_dirs.patch
++extra_CXXFLAGS.patch
++PETSc_3.10_SNESTEST_removed.patch
++pytest_fixtures_096217a.patch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f04b6cc905dda20bf6f3c744697fbc6b9d4220c4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,12 @@@
++Index: dolfin/python/demo/test.py
++===================================================================
++--- dolfin.orig/python/demo/test.py
+++++ dolfin/python/demo/test.py
++@@ -57,6 +57,7 @@ def test_demos(mpiexec, num_proc, path,
++                   'demo_time-series.py',
++                   'demo_poisson1D-in-2D.py',
++                   'demo_coordinates.py',
+++                  'demo_hyperelasticity.py',
++         ]
++         if name in broken:
++             return
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..34771be23673700deaa500c41f049db83b0f27b6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++Index: dolfin/cmake/scripts/generate-cmakefiles.py
++===================================================================
++--- dolfin.orig/cmake/scripts/generate-cmakefiles.py
+++++ dolfin/cmake/scripts/generate-cmakefiles.py
++@@ -64,7 +64,7 @@ endif()
++ %(target_libraries)s
++ 
++ # Test targets
++-set(test_parameters -np 3 "./${PROJECT_NAME}")
+++set(test_parameters -np 3 ${MPIEXEC_PARAMS} "./${PROJECT_NAME}")
++ add_test(NAME ${PROJECT_NAME}_mpi COMMAND "mpirun" ${test_parameters})
++ add_test(NAME ${PROJECT_NAME}_serial COMMAND ${PROJECT_NAME})
++ """
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..549ccb665447f699faafa46d7802d4ae0a738718
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++Index: dolfin/test/unit/cpp/CMakeLists.txt
++===================================================================
++--- dolfin.orig/test/unit/cpp/CMakeLists.txt
+++++ dolfin/test/unit/cpp/CMakeLists.txt
++@@ -31,6 +31,7 @@ set(TEST_SOURCES
++ 
++ add_executable(unittests ${TEST_SOURCES})
++ target_link_libraries(unittests PRIVATE Catch dolfin)
+++target_include_directories(unittests PRIVATE ${DOLFIN_SOURCE_DIR} ${DOLFIN_SOURCE_DIR}/dolfin ${DOLFIN_BINARY_DIR})
++ 
++ # Test target
++ add_test(unittests unittests)
++Index: dolfin/demo/CMakeLists.txt
++===================================================================
++--- dolfin.orig/demo/CMakeLists.txt
+++++ dolfin/demo/CMakeLists.txt
++@@ -6,6 +6,7 @@ cmake_minimum_required(VERSION 3.5)
++ # Find DOLFIN config file (not used here, but check that the demo will
++ # be able to find it
++ #find_package(DOLFIN PATHS ${CMAKE_BINARY_DIR} REQUIRED)
+++include_directories(${DOLFIN_SOURCE_DIR} ${DOLFIN_SOURCE_DIR}/dolfin ${DOLFIN_BINARY_DIR})
++ 
++ # Documented demos
++ add_subdirectory(documented/auto-adaptive-poisson/cpp)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..98f0dd99556921efa0469586357763b3391aeb67
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# python-dolfin is a dummy package, the dependency is intentional, to aid upgrades
++python-dolfin: python-package-depends-on-package-from-other-python-variant Depends: python3-dolfin
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7aadc9c844e447890c927810c8dfddbd333ea008
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/python3*/*-packages/*
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c2cdf35b6646484020e1b3d0e1a13ace4228c466
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,250 @@@
++#!/usr/bin/make -f
++
++DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':'))
++DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
++DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-)
++DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
++DEB_STRIPPED_UPSTREAM_VERSION = $(shell echo $(DEB_UPSTREAM_VERSION) | sed -e 's/\+dfsg.*$$//p')
++
++FENICS_RELEASE_VERSION=$(DEB_STRIPPED_UPSTREAM_VERSION)
++FENICS_MAJOR_VERSION=$(shell echo $(FENICS_RELEASE_VERSION) | sed "s/^\([^.]*\)\..*$$/\1/")
++FENICS_MINOR_VERSION=$(shell echo $(FENICS_RELEASE_VERSION) | sed "s/^\([^.]*\)\.\([^.]*\)\..*$$/\2/")
++FENICS_VERSION=$(FENICS_MAJOR_VERSION).$(FENICS_MINOR_VERSION)
++FENICS_NEXT_VERSION=$(FENICS_MAJOR_VERSION).$(shell echo $$(( $(FENICS_MINOR_VERSION) + 1 )) )
++
++# dolfin has a strict dependency on the pybind11 version it was built against,
++# if pybind11.h will be used in C++ code fragments in python scripts.
++# Extract pybind11 version from pybind11-dev
++PYBIND11_DEB_VERSION=$(shell dpkg -s pybind11-dev | awk '/Version:/ {print $$2}')
++# extract the current pybind11 version X.Y.Z (drop epoch and debian package version)
++PYBIND11_UPSTREAM_VERSION=$(shell echo $(PYBIND11_DEB_VERSION) | sed "s/^.[^:]*://; s/-[^-]*$$//")
++PYBIND11_X_Y_VERSION=$(shell echo $(PYBIND11_UPSTREAM_VERSION) | sed "s/^\(.*\)\.\([^.]*\)$$/\1/")
++PYBIND11_Z_VERSION=$(shell echo $(PYBIND11_UPSTREAM_VERSION) | sed "s/^\(.*\)\.\([^.]*\)$$/\2/")
++PYBIND11_NEXT_UPSTREAM_VERSION=$(PYBIND11_X_Y_VERSION).$(shell echo $$(( $(PYBIND11_Z_VERSION) + 1 )) )
++
++# Allow test programs that uses OpenMPI to run
++export OMPI_MCA_plm_rsh_agent=/bin/false
++
++DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
++DEB_BUILD_MULTIARCH ?= $(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)
++
++include /usr/share/mpi-default-dev/debian_defaults
++ENABLE_MPI=ON
++ifeq ($(findstring $(DEB_BUILD_ARCH),$(OPENMPI_ARCHITECTURES)),)
++MPIEXEC_PARAMS=
++else
++MPIEXEC_PARAMS=--oversubscribe
++endif
++
++DOLFIN_HOME = $(CURDIR)/$(DEB_SRCDIR)
++USCAN_DESTDIR := $(CURDIR)
++PY3VERS := $(shell py3versions --requested debian/control | tac -s' ')
++PYVERS = $(PY3VERS)
++
++BUILDDIR = obj-$(DEB_HOST_GNU_TYPE)
++TESTDIR = build-tests
++
++NPROC := $(shell nproc)
++PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
++N_CPU    = $(or $(PARALLEL),$(NPROC),1)
++# MPI tests are set up to run on 3 processes. Spread them leanly over the available processors (don't have more than 2 tests using one processor).
++# e.g. run 1 MPI test at a time over 1-3 processors, or 2 tests at a time over 4-6 processors, or 3 tests over 7-9 processors, etc.
++N_MPI := 3
++N_MPI_TESTS = $(shell echo $$(( ($(N_CPU)+$(N_MPI)-1)/$(N_MPI) )) )
++
++# hyperelasticity fails (diverges) on all arches (pivot factors too large, not enough memory assigned)
++# elastodynamics passes with dpkg-buildpackage but fails with pdebuild (on amd64). Unreliable, so skip.
++ARCH_ALL_SKIP_MPI_TEST = demo_hyperelasticity_mpi demo_elastodynamics_mpi
++
++# Some arches fail the same MPI tests
++# e.g. cahn-hilliard, navier-stokes, elasticity, fails or exceeds allowed time
++# So skip these tests on the failing arches
++ARCH_SKIP_MPI_TEST_LIST = i386 mips64el ppc64el
++ARCH_SKIP_MPI_TEST = demo_cahn-hilliard_mpi demo_navier-stokes_mpi demo_elasticity_mpi
++
++# skip more MPI tests for some specific arches
++ifeq (arm64, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_MPI_TEST = demo_navier-stokes_mpi
++else ifeq (mips, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_MPI_TEST = demo_cahn-hilliard_mpi demo_stokes-iterative_mpi demo_ale_mpi demo_poisson-disc_mpi
++else ifeq (mips64el, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_MPI_TEST = demo_bcs_mpi demo_stokes-iterative_mpi demo_stokes-taylor-hood_mpi demo_curl-curl_mpi demo_contact-vi-tao_mpi
++else ifeq (mipsel, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_MPI_TEST = demo_cahn-hilliard_mpi demo_stokes-iterative_mpi demo_ale_mpi demo_poisson-disc_mpi
++else ifeq (ppc64el, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_MPI_TEST = demo_poisson_mpi demo_singular-poisson_mpi demo_sym-dirichlet-bc_mpi
++else
++  ARCH_SPECIFIC_SKIP_MPI_TEST =
++endif
++
++# m68k and mips need some help to pass serial tests
++ifeq (m68k, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_SERIAL_TEST = demo_auto-adaptive-poisson_serial demo_elasticity_serial
++else ifeq (mips, $(DEB_HOST_ARCH))
++  ARCH_SPECIFIC_SKIP_SERIAL_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial
++else
++  ARCH_SPECIFIC_SKIP_SERIAL_TEST =
++endif
++
++# skip slow tests (> 500-1000 sec to complete)
++ifeq (armel, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_stokes-iterative_serial demo_auto-adaptive-navier-stokes_serial demo_hyperelasticity_serial demo_cahn-hilliard_serial
++else ifeq (mips, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_eigenvalue_serial demo_navier-stokes_serial demo_auto-adaptive-poisson_serial demo_stokes-taylor-hood_serial demo_auto-adaptive-navier-stokes_serial demo_curl-curl_serial demo_elasticity_serial demo_stokes-iterative_serial demo_eval_serial demo_sym-dirichlet-bc_serial demo_elastodynamics_serial demo_eigenvalue_mpi demo_navier-stokes_mpi demo_curl-curl_mpi demo_elasticity_mpi demo_elastodynamics_mpi demo_sym-dirichlet-bc_mpi
++else ifeq (mips64el, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial
++else ifeq (mipsel, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial
++else ifeq (hppa, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial
++else ifeq (m68k, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial
++else ifeq (riscv64, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial demo_cahn-hilliard_mpi demo_elastodynamics_mpi
++else ifeq (sparc64, $(DEB_HOST_ARCH))
++  ARCH_SKIP_SLOW_TEST = demo_cahn-hilliard_serial demo_hyperelasticity_serial demo_stokes-iterative_serial demo_cahn-hilliard_mpi demo_elastodynamics_mpi
++else
++  ARCH_SKIP_SLOW_TEST =
++endif
++
++# other arches fail or time out on too many tests, so skip all their MPI tests
++ARCH_SKIP_ALL_MPI_TESTS_LIST=armel armhf i386 hppa m68k powerpc
++
++# some arches just aren't keeping up at all, and fail non-MPI tests
++ARCH_SKIP_ALL_TESTS_LIST = hurd-i386 m68k sh4
++
++# extract PETSc version from petsc-dev
++PETSC_DEB_VERSION=$(shell dpkg -s petsc-dev | awk '/Version:/ {print $2}')
++# extract the current PETSc version
++PETSC_UPSTREAM_VERSION=$(shell pkg-config --modversion PETSc)
++# "Major" version is the first number in the upstream version (major.minor.release)
++PETSC_MAJOR_VERSION=$(shell echo $(PETSC_UPSTREAM_VERSION) | sed "s/^\([^.]*\)\..*$$/\1/")
++# "Minor" version is the second number in the upstream version (major.minor.release)
++PETSC_MINOR_VERSION=$(shell echo $(PETSC_UPSTREAM_VERSION) | sed "s/^\([^.]*\)\.\([^.]*\)\..*$$/\2/")
++PETSC_VERSION=$(PETSC_MAJOR_VERSION).$(PETSC_MINOR_VERSION)
++PETSC_VERSION_NEXT=$(shell echo $(PETSC_MAJOR_VERSION).$$(($(PETSC_MINOR_VERSION)+1)))
++
++SLEPC_UPSTREAM_VERSION=$(shell pkg-config --modversion SLEPc)
++# SLEPc version must match PETSc
++SLEPC_VERSION=$(PETSC_VERSION)
++SLEPC_VERSION_NEXT=$(PETSC_VERSION_NEXT)
++
++PETSC_DIR=/usr/lib/petscdir/petsc$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-real
++SLEPC_DIR=/usr/lib/slepcdir/slepc$(SLEPC_VERSION)/$(DEB_HOST_MULTIARCH)-real
++
++
++DEB_CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
++
++CMAKE_OPTS := \
++      -D CMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
++      -D BUILD_SHARED_LIBS:BOOL=ON \
++      -D CMAKE_SKIP_RPATH:BOOL=ON \
++      -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \
++      -D PETSC_DIR:PATH=$(PETSC_DIR) \
++      -D SLEPC_DIR:PATH=$(SLEPC_DIR) \
++      -D DOLFIN_ENABLE_TRILINOS:BOOL=OFF \
++      -D DOLFIN_ENABLE_HDF5:BOOL=ON \
++      -D HDF5_C_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5pcc \
++      -D DOLFIN_ENABLE_PARMETIS:BOOL=OFF \
++      -D DOLFIN_ENABLE_SCOTCH:BOOL=ON \
++      -D DOLFIN_ENABLE_DOCS:BOOL=OFF \
++      -D DOLFIN_ENABLE_MPI:BOOL=$(ENABLE_MPI) \
++      -D MPIEXEC_PARAMS:STRING="$(MPIEXEC_PARAMS)" \
++      -D CMAKE_CXX_FLAGS:STRING="-fpermissive" \
++      -D DOLFIN_EXTRA_CXX_FLAGS:STRING="$(DEB_CXXFLAGS)" \
++      $(DOLFIN_HOME)
++
++%:
++      dh $@ --buildsystem=cmake --with python3
++
++override_dh_compress:
++      dh_compress -X.py -X.cpp -X.h -X.pdf -X.ufl
++
++override_dh_auto_clean:
++      rm -rf $(INSTALLATION_BUILDDIR) $(TESTDIR)
++      dh_auto_clean
++
++override_dh_auto_configure:
++      dh_auto_configure -- $(CMAKE_OPTS)
++
++override_dh_auto_install:
++      dh_auto_install
++      dh_numpy3
++      for v in $(PYVERS); do \
++          cd python; \
++          PATH=$(CURDIR)/debian/tmp/usr/bin:$$PATH \
++          CXXFLAGS="$(DEB_CXXFLAGS) -isystem $(CURDIR)/debian/tmp/usr/include" \
++          VERBOSE=1 \
++          $$v setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \
++      done;
++      chrpath -d $(CURDIR)/debian/tmp/usr/lib/python*/dist-packages/dolfin/*.so
++      sed -i "s/-D_FORTIFY_SOURCE=2//g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/pkgconfig/dolfin.pc
++      sed -i "s|-DNDEBUG||g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/pkgconfig/dolfin.pc
++
++# make a separate copy of the build directory while testing, or else local flags (-I$(DOLFIN_HOME)) get written into dolfin.pc
++INSTALLATION_BUILDDIR = installation-build
++override_dh_auto_test-arch:
++      case " $(ARCH_SKIP_ALL_TESTS_LIST) " in \
++        *\ $(DEB_HOST_ARCH)\ *) echo "ALL tests have been disabled on $(DEB_HOST_ARCH)";; \
++        *) set -e; \
++           cp -ra $(BUILDDIR) $(INSTALLATION_BUILDDIR); \
++           cd $(BUILDDIR); \
++           make -j$(N_CPU) unittests; \
++           make -j$(N_CPU) demos; \
++           case " $(ARCH_SKIP_MPI_TEST_LIST) " in \
++             *\ $(DEB_HOST_ARCH)\ *) IGNORE_MPI_TESTS="$(ARCH_ALL_SKIP_MPI_TEST) $(ARCH_SKIP_MPI_TEST) $(ARCH_SPECIFIC_SKIP_MPI_TEST)";; \
++             *) IGNORE_MPI_TESTS="$(ARCH_ALL_SKIP_MPI_TEST) $(ARCH_SPECIFIC_SKIP_MPI_TEST)";; \
++           esac; \
++           echo "set(CTEST_CUSTOM_TESTS_IGNORE $${IGNORE_MPI_TESTS} $(ARCH_SPECIFIC_SKIP_SERIAL_TEST) $(ARCH_SKIP_SLOW_TEST) )" >> CTestCustom.cmake; \
++           echo "Run C++ unit tests (serial)"; \
++           LD_LIBRARY_PATH=$(DOLFIN_HOME)/$(BUILDDIR)/dolfin:$${LD_LIBRARY_PATH} ctest --output-on-failure -R unittests; \
++           echo "Run C++ regressions tests (serial)"; \
++           LD_LIBRARY_PATH=$(DOLFIN_HOME)/$(BUILDDIR)/dolfin:$${LD_LIBRARY_PATH} ctest --output-on-failure -j$(N_CPU) -R demo -R serial; \
++           echo "Run C++ regression tests (MPI)"; \
++           case " $(ARCH_SKIP_ALL_MPI_TESTS_LIST) " in \
++             *\ $(DEB_HOST_ARCH)\ *) echo "MPI tests have been disabled on $(DEB_HOST_ARCH)";; \
++             *)  LD_LIBRARY_PATH=$(DOLFIN_HOME)/$(BUILDDIR)/dolfin:$${LD_LIBRARY_PATH} ctest --output-on-failure -j$(N_MPI_TESTS) -R demo -R mpi;; \
++           esac; \
++           cd ..; \
++           mv $(BUILDDIR) $(TESTDIR); \
++           mv $(INSTALLATION_BUILDDIR) $(BUILDDIR);; \
++      esac
++
++override_dh_auto_test-indep:
++
++override_dh_install-indep:
++      cd python/demo; \
++      python3 generate-demo-files.py
++      dh_install -X*.rst
++
++override_dh_fixperms-indep:
++      dh_fixperms
++      chmod a-x debian/dolfin-doc/usr/share/dolfin/demo-python/*/*/*.py
++
++# set petsc:Depends to something like "libpetsc-real3.8-dev, libslepc-real3.8-dev, python-petsc4py (>= 3.8), python-petsc4py (<< 3.9), python-slepc4py (>= 3.8), python-slepc4py (<< 3.9)"
++PETSC_DEV_DEPENDS="libpetsc-real$(PETSC_VERSION)-dev | libpetsc$(PETSC_UPSTREAM_VERSION)-dev, libslepc-real$(SLEPC_VERSION)-dev | libslepc$(SLEPC_UPSTREAM_VERSION)-dev"
++# slepc4py version must match petsc4py (using the PETSc minor version, not the patch release)
++PETSC4PY_DEPENDS_PY3=python3-petsc4py (>= $(PETSC_VERSION)), python3-petsc4py (<< $(PETSC_VERSION_NEXT)), python3-slepc4py (>= $(SLEPC_VERSION)), python3-slepc4py (<< $(SLEPC_VERSION_NEXT))
++override_dh_gencontrol:
++      echo "python3-petsc4py:Depends=$(PETSC4PY_DEPENDS_PY3)" >> debian/python3-dolfin.substvars
++      echo "python-petsc4py-alt:Depends=$(PETSC4PY_DEPENDS_PY3)" >> debian/libdolfin-dev.substvars
++      dh_gencontrol -- -Vpetsc:Depends=$(PETSC_DEV_DEPENDS) -Vfenics:Upstream-Version=$(FENICS_VERSION) -Vfenics:Next-Upstream-Version=$(FENICS_NEXT_VERSION)~ \
++          -Vpybind11:Upstream-Version=$(PYBIND11_UPSTREAM_VERSION) -Vpybind11:Next-Upstream-Version=$(PYBIND11_NEXT_UPSTREAM_VERSION)
++
++# dbgsym-migration was introduced for dolfin 2017.2 (don't update the version to a later version)
++override_dh_strip:
++      dh_strip --package=libdolfin$(FENICS_VERSION) --dbgsym-migration='libdolfin2017.2-dbg (<< 2017.2.0.post0-1~)' -Xpython
++      dh_strip --package=python3-dolfin --dbgsym-migration='python3-dolfin-dbg (<< 2017.2.0.post0-1~)' -Xpython2
++
++# python module so files are already stripped by setup.py (setuptools)
++override_dh_dwz:
++      dh_dwz -Xcpp.cpython
++
++# https://stackoverflow.com/a/18793112/353337
++override_dh_shlibdeps:
++      dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
++
++
++.PHONY: get-orig-source override_dh_strip
++get-orig-source:
++      uscan --force-download --verbose --destdir $(USCAN_DESTDIR)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a203ce34042163f550366ca832431ef2528acc6d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++debian/dolfin-convert.1.gz
++debian/dolfin-order.1.gz
++debian/dolfin-plot.1.gz
++debian/dolfin-version.1.gz
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6b042a8dd71fa83d4f7f5354dae83260f0a90979
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++Tests: test-dolfin-cpp, test-dolfin-python
++Depends: @, @builddeps@,
++        python3-pytest,
++        python3-decorator,
++        python3-matplotlib,
++        python3-scipy
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..161eead1f6a7fcdd1ccb19ae5ebfe9dcbca5c6bc
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,45 @@@
++# allow parallel jobs, but don't load up more than 8
++NPROC=$( nproc )
++MAX_CPU=8
++N_CPU=$(( NPROC > MAX_CPU ? MAX_CPU : NPROC ))
++
++# MPI tests are set up to run on 3 processes. Spread them leanly over the available processors (don't have more than 2 tests using one processor).
++# e.g. run 1 MPI test at a time over 1-3 processors, or 2 tests at a time over 4-6 processors, or 3 tests over 7-9 processors, etc.
++N_MPI=3
++N_MPI_TESTS=$(( (N_CPU+N_MPI-1)/N_MPI ))
++
++export OMPI_MCA_plm_rsh_agent=/bin/false
++export OMPI_MCA_rmaps_base_oversubscribe=1
++
++DEMO_DIR=./dolfin-demo
++
++rm -rf $DEMO_DIR
++cp -rL /usr/share/dolfin/demo $DEMO_DIR
++
++cd $DEMO_DIR
++cmake -DCMAKE_C_COMPILER=mpicc .
++make -j${N_CPU} all
++
++DEMO_LIST=`find . -executable -name demo*[^.dir]`
++
++# construct ctest scripts
++# (cf. add_test in source cmake/scripts/generate-cmakefiles.py)
++CTESTFILE=CTestTestfile.cmake
++for d in ${DEMO_LIST}; do
++    demo_bin=`basename $d`
++    dir=`dirname $d`
++    echo -e "subdirs(\"${dir}\")" >> $CTESTFILE
++    echo -e "add_test(${demo_bin}_mpi \"mpirun\" \"-np\" \"${N_MPI}\" \"./${demo_bin}\")" >> $dir/$CTESTFILE
++    echo "add_test(${demo_bin}_serial \"./${demo_bin}\")" >> $dir/$CTESTFILE
++done
++
++# demo_hyperelasticity_mpi diverges, so skip
++echo "set(CTEST_CUSTOM_TESTS_IGNORE demo_hyperelasticity_mpi)" > CTestCustom.cmake
++
++echo "running C++ demos (serial)"
++ctest --output-on-failure -j${N_CPU} -R serial
++
++echo "running C++ demos (MPI)"
++ctest --output-on-failure -j${N_MPI_TESTS} -R mpi
++
++cd ..
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..941be850fcb4780f4b8618fa5fd8c8b59cda45b5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++# MPI tests are set up to run on 3 processes.
++N_MPI=3
++export OMPI_MCA_plm_rsh_agent=/bin/false
++export OMPI_MCA_rmaps_base_oversubscribe=1
++
++echo "=== python unit test (serial) ==="
++python3 -m pytest python/test/unit/
++echo "=== python unit test (MPI) ==="
++mpirun -n ${N_MPI} python3 -m pytest python/test/unit/
++
++python3 python/demo/generate-demo-files.py
++echo "=== python demo test (serial) ==="
++python3 -m pytest -v python/demo/test.py
++echo "=== python demo test (MPI) ==="
++python3 -m pytest -v python/demo/test.py --mpiexec=mpiexec --num-proc=${N_MPI}
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e0c8502bb35d9065f6713a7e1053f3e550e9f065
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,30 @@@
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++
++mQENBFm3qPYBCADLVRsKIH2xwxzrRyax3SXsd3pcV1K0fAXC8C1P32wh5o8NLX80
++QGNWKIln4kdrYtL5MHChZipNFmYCRT/vrFOaVftj/TM2QebOBwoGVIhQ2ueIQ9mO
++GYTKKwNLPugUTf04l/+37B/WX/t8JsWfo1EVQ6FRjdY1P7iQpWDzhSMouKJE3+Xy
++SH3Okh/OiumPSM/fNGLN6b/OE0K6BBH/RWWJVT/cbdSm3FrjYflTPPtP9yLWRj0o
++TW81E7lYiKPL6pzi7kVtxicUu8MzOPpESBDty8M/xUmkdVzUU5E7NkRFnkCjhoJF
++scLwdpdLRWaaLqAYp6W5puU/95X6Ddn9utLFABEBAAG0SkZFbmlDUyBQcm9qZWN0
++IFN0ZWVyaW5nIENvdW5jaWwgPGZlbmljcy1zdGVlcmluZy1jb3VuY2lsQGdvb2ds
++ZWdyb3Vwcy5jb20+iQE+BBMBAgAoBQJZt6j2AhsDBQkDwmcABgsJCAcDAgYVCAIJ
++CgsEFgIDAQIeAQIXgAAKCRC+0GEG3SK6szJ2B/9Zxea+l83Q9il/Z21VFZRWBETx
++y189cqlOeVsMPJm/KpSDtjAC1iJWi9ogN2zyZej/m8Su+eAJ7QUHgz8StJUXOO6J
++Y7OZ/v/SlJbf6ADcT9p981H9gFzufzU6NqjynFQRLjaApToZtSiAM4lsL21zk8Z+
++B7SMSouKGGn/ODWuZeVA1QT6pJTAX31lT1oFbdPRHc4j41qU+ogyjcwPh2dYFOBc
++ZEp5XyU+7ZCGK1A2p/0i6orXBUVKw/1zm9jCSwxgd5FpEvnB6BXvHV3lXdiqxJuN
++Xr+3OBoq0k5vQPkBKTDhvCf3UFEODJ98mFAKD1zezLTex+3yzOSmXpoLXTEcuQEN
++BFm3qPYBCACqGoAPALpcUGwMgullThXVEEUJ2WY7wXoNvX6qAZ0gyf/vkJnuNyQH
++Qd6ZJJVLzP28vHGLkftqcyjVLlu6Ok7dTrFobXTEeR9GO2cqxccfVTUUbURQ65kl
++QhL6g+w/MeLtvMdAomClODvz7jRGAZUsezQcWrFnT8R25S94O4kPfky7fP+gNcwM
++YT4SyScFvFTFGy6PSjnGIzGQUchBQRam56K8tP2FrCOMIWryeXjTcyixJPFfzmc3
++N3ifnTQPtu7VQtUkmq6L6dBtf8cCvi42Cnscq6HmcgGqkZTm81af/FPOI5SoY+gZ
++8Oiur4KnOhkHJDg0+MzM8sKYVHmUf84hABEBAAGJASUEGAECAA8FAlm3qPYCGwwF
++CQPCZwAACgkQvtBhBt0iurPTYwgAyIKm3ySpEcJlIVquiq9Xx52yCtdaNfIkwLOo
++GwoTF4uIxGLWHNZn7nMn3HNMLxohNpuVmbDW++bK1ui0eqzeAFkvjCULwFU5RRsW
++lVgN5xxtmjuSsVZBuE4KZMQevv6HcUUe6nEMERHUnujJdJKydXPOrWC3/+B/NYUR
++8KoUFPL1+4si2wIdFOQZ8194Ic/JA4/FBhwMKG/rNNvRU2MNAzWzZCP7V0FeRLUs
++fIsWs/CSG7SnPKs3o45D9tSiKVcBUilTbJYwmUnmTCwYD71OWa3q8t1ZmvHY/XMk
++BSGJR5XcHeZKG/tjm5aSVp8yLsP4xEiRZcAFapBcMnaSDOTWOA==
++=vY8l
++-----END PGP PUBLIC KEY BLOCK-----
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..76c5420bc8ff1446c3c6ca78333ae251efa1a3f5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++version=4
++opts=downloadurlmangle=s{downloads/.*dolfin-}{downloads/dolfin-},\
++pgpsigurlmangle=s/$/.asc/ \
++https://bitbucket.org/fenics-project/dolfin/downloads/ .*/dolfin-(.*)\.tar\.gz