[dolfin] 01/04: enable build against PETSc/SLEPc 3.6 or 3.7

Drew Parsons dparsons at moszumanska.debian.org
Thu Aug 11 14:50:16 UTC 2016


This is an automated email from the git hooks/post-receive script.

dparsons pushed a commit to branch master
in repository dolfin.

commit afc94c600e539ad4a93929cf91b9907710559984
Author: Drew Parsons <dparsons at debian.org>
Date:   Thu Aug 11 12:32:23 2016 +0800

    enable build against PETSc/SLEPc 3.6 or 3.7
    
    or later versions
---
 debian/changelog |  7 +++++++
 debian/control   |  7 +++----
 debian/rules     | 15 +++++++++++++--
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index d7e13ea..13c06e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+dolfin (2016.1.0-2) UNRELEASED; urgency=medium
+
+  * Enable build against version of PETSc (and SLEPc) provided by
+    petsc-dev, e.g. PETSc 3.6 or 3.7.
+
+ -- Drew Parsons <dparsons at debian.org>  Thu, 11 Aug 2016 12:43:56 +0800
+
 dolfin (2016.1.0-1) unstable; urgency=medium
 
   [ Johannes Ring ]
diff --git a/debian/control b/debian/control
index 5d4502f..e43b762 100644
--- a/debian/control
+++ b/debian/control
@@ -28,8 +28,8 @@ Build-Depends:
  libvtk6-dev,
  libxml2-dev,
  mpi-default-dev,
- libpetsc3.6-dev (>= 3.6.4.dfsg1-2) [!kfreebsd-amd64 !kfreebsd-i386],
- libslepc3.6-dev (>= 3.6.3.dfsg1-6) [!kfreebsd-amd64 !kfreebsd-i386],
+ petsc-dev (>= 3.6.4.dfsg1-2) [!kfreebsd-amd64 !kfreebsd-i386],
+ slepc-dev (>= 3.6.3.dfsg1-6) [!kfreebsd-amd64 !kfreebsd-i386],
  pkg-config,
  python-dev,
  python-ffc (>= 2016.1.0),
@@ -64,9 +64,8 @@ Depends:
  libscotch-dev,
  libvtk6-dev,
  libxml2-dev,
- libpetsc3.6-dev [!kfreebsd-amd64 !kfreebsd-i386],
- libslepc3.6-dev [!kfreebsd-amd64 !kfreebsd-i386],
  pkg-config,
+ ${petsc:Depends},
  ${misc:Depends}
 Conflicts:
  libdolfin0-dev,
diff --git a/debian/rules b/debian/rules
index 95cfc2f..e6a702f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -20,7 +20,16 @@ USCAN_DESTDIR := $(CURDIR)
 PYVERS := $(shell pyversions --requested debian/control | tac -s' ')
 DEFAULT_PYVER := $(shell pyversions -d)
 
-PETSC_VERSION=3.6
+# extract PETSc version from petsc-dev
+PETSC_DEB_VERSION=$(shell dpkg -s petsc-dev | awk '/Version:/ {print $2}')
+# extract the current PETSc version (drop epoch and debian package version)
+PETSC_UPSTREAM_VERSION=$(shell echo $(PETSC_DEB_VERSION) | sed "s/^.[^:]*://; s/-[^-]*$$//")
+# "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_DIR=/usr/lib/petscdir/$(PETSC_VERSION)-real
 # SLEPc version must match PETSc
 SLEPSC_DIR=/usr/lib/slepcdir/$(PETSC_VERSION)-real
@@ -112,13 +121,15 @@ override_dh_auto_install:
 	sed -i "s|-DNDEBUG||g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/pkgconfig/dolfin.pc
 	sed -i "s/-Wdate-time//g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/pkgconfig/dolfin.pc
 
+# set petsc:Depends to something like "libpetsc3.7-dev, libslepc3.7-dev"
+PETSC_DEV_DEPENDS="libpetsc$(PETSC_VERSION)-dev [!kfreebsd-amd64 !kfreebsd-i386], libslepc$(PETSC_VERSION)-dev [!kfreebsd-amd64 !kfreebsd-i386]"
 override_dh_gencontrol:
 	# We have a tight dependency on swig - #675207
 	set -e; \
 	swig_version=$$(dpkg-query -W swig3.0 | cut -f 2 | cut -d- -f 1); \
 	next_swig_version="$${swig_version%.*}.$$(($${swig_version##*.} + 1))"; \
 	echo "swig:Depends=swig3.0 (>= $$swig_version), swig3.0 (<< $$next_swig_version~)" >> debian/python-dolfin.substvars
-	dh_gencontrol
+	dh_gencontrol -- -Vpetsc:Depends="$(PETSC_DEV_DEPENDS)"
 
 override_dh_strip:
 	dh_strip -a --package=libdolfin2016.1 --dbg-package=libdolfin2016.1-dbg -Xpython

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/fenics/dolfin.git



More information about the debian-science-commits mailing list