[petsc] 07/07: use alternatives to manage real and complex versions

Drew Parsons dparsons at moszumanska.debian.org
Mon Oct 5 02:31:50 UTC 2015


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

dparsons pushed a commit to branch master
in repository petsc.

commit aff0f19afdae660b31faab98c649ec7e0bdf66a6
Author: Drew Parsons <dparsons at debian.org>
Date:   Mon Oct 5 03:38:38 2015 +0800

    use alternatives to manage real and complex versions
    
    The soname of libpetsc.so.3.6.2 is the same (petsc3.6) whether build
    with complex numbers (-complex) or without (-real).
    
    So use alternatives to choose whether libpetsc.so.3.6.2 refers to
    libpetsc-real.so.3.6.2 or libpetsc-complex.so.3.6.2.
---
 debian/libpetsc-complex-3.6.2-dev.postinst |  9 +++++----
 debian/libpetsc-complex-3.6.postinst       | 16 ++++++++++++++++
 debian/libpetsc3.6.2-dev.postinst          | 10 ++++++----
 debian/libpetsc3.6.postinst                | 16 ++++++++++++++++
 debian/rules                               | 17 +++++++++--------
 5 files changed, 52 insertions(+), 16 deletions(-)

diff --git a/debian/libpetsc-complex-3.6.2-dev.postinst b/debian/libpetsc-complex-3.6.2-dev.postinst
index cdc4a6f..f92433e 100644
--- a/debian/libpetsc-complex-3.6.2-dev.postinst
+++ b/debian/libpetsc-complex-3.6.2-dev.postinst
@@ -8,10 +8,11 @@ PETSC_COMPLEX_ARCH=${PETSC_ARCH}-complex
 
 # Make alternatives links
 if [ "$1" = "configure" ]; then
-update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH} 3610 \
-  --slave /usr/include/petsc petscinclude /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}/include \
-  --slave /usr/lib/libpetsc.so libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc-complex.so.${PETSC_VERSION} \
-  --slave /usr/lib/pkgconfig/PETSc.pc PETSc.pc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}/lib/pkgconfig/PETSc.pc
+update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH} 3620 \
+  --slave /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so petsc-libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc-complex.so.${PETSC_VERSION} \
+  --slave /usr/include/petsc petsc-include /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}/include \
+  --slave /usr/lib/pkgconfig/PETSc.pc petsc-PETSc.pc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}/lib/pkgconfig/PETSc.pc \
+  --slave /usr/share/octave/site/m/petsc petsc-octave /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}/share/petsc/matlab
 fi
 
 
diff --git a/debian/libpetsc-complex-3.6.postinst b/debian/libpetsc-complex-3.6.postinst
new file mode 100644
index 0000000..8c9112c
--- /dev/null
+++ b/debian/libpetsc-complex-3.6.postinst
@@ -0,0 +1,16 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+PETSC_VERSION=__PETSC_VERSION__
+
+# use only major.minor as general soname (rather than major.minor.patch.build)
+SONAME=$( echo ${PETSC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+  update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so.${SONAME} petsc-libpetsc.soname /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc-complex.so.${PETSC_VERSION} 3620
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libpetsc3.6.2-dev.postinst b/debian/libpetsc3.6.2-dev.postinst
index bcd57a2..fcde748 100644
--- a/debian/libpetsc3.6.2-dev.postinst
+++ b/debian/libpetsc3.6.2-dev.postinst
@@ -4,13 +4,15 @@ DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
 
 PETSC_VERSION=__PETSC_VERSION__
 PETSC_ARCH=${DEB_HOST_MULTIARCH}
+PETSC_REAL_ARCH=${PETSC_ARCH}-real
 
 # Make alternatives links
 if [ "$1" = "configure" ]; then
-update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_ARCH} 3612 \
-  --slave /usr/include/petsc petscinclude /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_ARCH}/include \
-  --slave /usr/lib/libpetsc.so libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so.${PETSC_VERSION} \
-  --slave /usr/lib/pkgconfig/PETSc.pc PETSc.pc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_ARCH}/lib/pkgconfig/PETSc.pc
+update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH} 3622 \
+  --slave /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so petsc-libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc-real.so.${PETSC_VERSION} \
+  --slave /usr/include/petsc petsc-include /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH}/include \
+  --slave /usr/lib/pkgconfig/PETSc.pc petsc-PETSc.pc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH}/lib/pkgconfig/PETSc.pc \
+  --slave /usr/share/octave/site/m/petsc petsc-octave /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH}/share/petsc/matlab
 fi
 
 
diff --git a/debian/libpetsc3.6.postinst b/debian/libpetsc3.6.postinst
new file mode 100644
index 0000000..29c0dd9
--- /dev/null
+++ b/debian/libpetsc3.6.postinst
@@ -0,0 +1,16 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+PETSC_VERSION=__PETSC_VERSION__
+
+# use only major.minor as general soname (rather than major.minor.patch.build)
+SONAME=$( echo ${PETSC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+  update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so.${SONAME} petsc-libpetsc.soname /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc-real.so.${PETSC_VERSION} 3622
+fi
+
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
index c02d52d..b585a18 100755
--- a/debian/rules
+++ b/debian/rules
@@ -66,7 +66,7 @@ PETSC_COMPLEX_VERSIONED_PACKAGE=lib$(PETSC_COMPLEX_SONAME)
 
 # install into /usr/lib/petscdir rather than /usr/lib/petsc 
 # to allow /usr/lib/petsc to be configured by alternatives
-PETSC_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)
+PETSC_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-real
 PETSC_DIR_DEBUG_PREFIX=/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-debug
 PETSC_COMPLEX_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-complex
 
@@ -176,17 +176,18 @@ override_dh_auto_install:
 
 
 override_dh_install:
-	dh_install -p$(PETSC_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --exclude=*html  $(PETSC_DIR_PREFIX)/lib/libpetsc.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
-	dh_install -p$(PETSC_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libpetsc.so.$(PETSC_VERSION)  usr
-	dh_link -p$(PETSC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc.so.$(PETSC_VERSION)  $(PETSC_DIR_PREFIX)/lib/libpetsc.so.$(PETSC_VERSION)
-	dh_link -p$(PETSC_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc.so.$(PETSC_SONAME_VERSION)
-	dh_link -p$(PETSC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc.so
-	dh_link -p$(PETSC_VERSIONED_DEV_PACKAGE)  usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)/share/petsc/matlab usr/share/octave/site/m/petsc
+	mv $(PACKAGE_INSTALL_BASEDIR)/$(PETSC_DIR_PREFIX)/lib/libpetsc.so.$(PETSC_VERSION) $(PACKAGE_INSTALL_BASEDIR)/$(PETSC_DIR_PREFIX)/lib/libpetsc-real.so.$(PETSC_VERSION)
+	dh_install -p$(PETSC_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --exclude=*html  $(PETSC_DIR_PREFIX)/lib/libpetsc-real.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(PETSC_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libpetsc-real.so.$(PETSC_VERSION)  usr
+	dh_link -p$(PETSC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-real.so.$(PETSC_VERSION)  $(PETSC_DIR_PREFIX)/lib/libpetsc.so.$(PETSC_VERSION)
+	dh_link -p$(PETSC_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-real.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-real.so.$(PETSC_SONAME_VERSION)
+	dh_link -p$(PETSC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-real.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-real.so
 	dh_install -p$(PETSC_DEBUG_PACKAGE) --sourcedir $(PACKAGE_DEBUG_INSTALL_BASEDIR) --autodest --exclude=*html  usr
 	
+	mv $(PACKAGE_COMPLEX_INSTALL_BASEDIR)/$(PETSC_COMPLEX_DIR_PREFIX)/lib/libpetsc.so.$(PETSC_VERSION) $(PACKAGE_COMPLEX_INSTALL_BASEDIR)/$(PETSC_COMPLEX_DIR_PREFIX)/lib/libpetsc-complex.so.$(PETSC_VERSION)
 	dh_install -p$(PETSC_COMPLEX_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_BASEDIR) --exclude=*html  $(PETSC_COMPLEX_DIR_PREFIX)/lib/libpetsc-complex.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
 	dh_install -p$(PETSC_COMPLEX_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libpetsc-complex.so.$(PETSC_VERSION)  usr
-	dh_link -p$(PETSC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-complex.so.$(PETSC_VERSION)  $(PETSC_COMPLEX_DIR_PREFIX)/lib/libpetsc-complex.so.$(PETSC_VERSION)
+	dh_link -p$(PETSC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-complex.so.$(PETSC_VERSION)  $(PETSC_COMPLEX_DIR_PREFIX)/lib/libpetsc.so.$(PETSC_VERSION)
 	dh_link -p$(PETSC_COMPLEX_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-complex.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-complex.so.$(PETSC_SONAME_VERSION)
 	dh_link -p$(PETSC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-complex.so.$(PETSC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libpetsc-complex.so
 

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



More information about the debian-science-commits mailing list