[petsc] 01/02: handle libpetsc_real.so and libpetsc_complex.so as alternatives

Drew Parsons dparsons at moszumanska.debian.org
Sat Mar 12 15:26:26 UTC 2016


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

dparsons pushed a commit to branch master
in repository petsc.

commit cd9a4ab77bc19b120ee2d84ae89a9bd7ac9f8252
Author: Drew Parsons <dparsons at debian.org>
Date:   Sat Mar 12 20:35:21 2016 +0800

    handle libpetsc_real.so and libpetsc_complex.so as alternatives
    
    libpetsc_real.so and libpetsc_complex.so were linked in the -dev
    packages to libpetsc_real.so.3.6.2 and libpetsc_complex.so.3.6.2 in
    v3.6.2.dfsg1-3, which of course clashes with the 3.6.3 dev packages.
    
    So handle these symlinks via alternatives instead of direct links.
    
    We could instead only provide libpetsc3.6-dev and
    libpetsc-complex-3.6-dev without the minor patch version in the
    package name. But upstream includes the patch version in the directory
    structure, enabling parallel installations of different patch versions
    for the same soname (3.6).  We therefore provide distinct dev packages
    for different patch versions to allow this upstream facility to be used.
---
 debian/changelog                              |  2 ++
 debian/libpetsc-complex-3.6.3-dev.postinst    | 16 ++++++++++++----
 debian/libpetsc-complex-3.6.lintian-overrides |  3 ++-
 debian/libpetsc3.6.3-dev.postinst             | 16 ++++++++++++----
 debian/libpetsc3.6.lintian-overrides          |  3 +++
 debian/rules                                  |  2 --
 6 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 607811b..8d4046c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ petsc (3.6.3.dfsg1-1) UNRELEASED; urgency=medium
     Closes: #817165.
   * Patch install_python_RDict_upstream_5a4fee... fixes installation
     during package build (patch from upstream git commit 5a4feee).
+  * libpetsc-real.so and libpetsc-complex.so (dev packages) handled by
+    alternatives. 
   * Standards-Version: 3.9.7
 
  -- Drew Parsons <dparsons at debian.org>  Fri, 11 Mar 2016 22:16:50 +0800
diff --git a/debian/libpetsc-complex-3.6.3-dev.postinst b/debian/libpetsc-complex-3.6.3-dev.postinst
index 4fb0b93..80285bf 100644
--- a/debian/libpetsc-complex-3.6.3-dev.postinst
+++ b/debian/libpetsc-complex-3.6.3-dev.postinst
@@ -7,14 +7,22 @@ PETSC_ARCH=${DEB_HOST_MULTIARCH}
 PETSC_COMPLEX_ARCH=${PETSC_ARCH}-complex
 PETSC_VERSION_NUMBER=$( echo ${PETSC_VERSION} | sed "s/\.//g" )
 
+PETSC_DIR_COMPLEX=/usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}
+
 # Make alternatives links
 if [ "$1" = "configure" ]; then
-update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH} ${PETSC_VERSION_NUMBER}73 \
+
+# alternative default petsc (e.g. real or complex)
+update-alternatives --install /usr/lib/petsc petsc ${PETSC_DIR_COMPLEX} ${PETSC_VERSION_NUMBER}73 \
   --slave /usr/lib/libpetsc.so libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_complex.so.${PETSC_VERSION} \
   --slave /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so libpetsc.so.multiarch /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_complex.so.${PETSC_VERSION} \
-  --slave /usr/include/petsc petscinclude /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_COMPLEX_ARCH}/include \
-  --slave /usr/lib/pkgconfig/PETSc.pc 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
+  --slave /usr/include/petsc petscinclude ${PETSC_DIR_COMPLEX}/include \
+  --slave /usr/lib/pkgconfig/PETSc.pc PETSc.pc ${PETSC_DIR_COMPLEX}/lib/pkgconfig/PETSc.pc \
+  --slave /usr/share/octave/site/m/petsc petsc-octave ${PETSC_DIR_COMPLEX}/share/petsc/matlab
+
+# alternative base version of petsc complex
+update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_complex.so libpetsc_complex.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_complex.so.${PETSC_VERSION} ${PETSC_VERSION_NUMBER}73
+
 fi
 
 
diff --git a/debian/libpetsc-complex-3.6.lintian-overrides b/debian/libpetsc-complex-3.6.lintian-overrides
index 83e281f..80257fe 100644
--- a/debian/libpetsc-complex-3.6.lintian-overrides
+++ b/debian/libpetsc-complex-3.6.lintian-overrides
@@ -7,4 +7,5 @@ libpetsc-complex-3.6: ldconfig-symlink-missing-for-shlib usr/lib/x86_64-linux-gn
 # the libpetsc.so link is managed by alternatives in libpetsc-complex-3.6.3-dev (alternative petsc)
 libpetsc-complex-3.6: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libpetsc-complex.so.3.6.3 usr/lib/x86_64-linux-gnu/libpetsc.so
 
-
+# libpetsc_complex.so is handled by alternatives in libpetsc-complex-3.6.3-dev
+libpetsc-complex-3.6: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libpetsc_complex.so.3.6.3 usr/lib/x86_64-linux-gnu/libpetsc_complex.so
diff --git a/debian/libpetsc3.6.3-dev.postinst b/debian/libpetsc3.6.3-dev.postinst
index cf303e2..0a0372a 100644
--- a/debian/libpetsc3.6.3-dev.postinst
+++ b/debian/libpetsc3.6.3-dev.postinst
@@ -7,14 +7,22 @@ PETSC_ARCH=${DEB_HOST_MULTIARCH}
 PETSC_REAL_ARCH=${PETSC_ARCH}-real
 PETSC_VERSION_NUMBER=$( echo ${PETSC_VERSION} | sed "s/\.//g" )
 
+PETSC_DIR_REAL=/usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH}
+
 # Make alternatives links
 if [ "$1" = "configure" ]; then
-update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH} ${PETSC_VERSION_NUMBER}77 \
+
+# alternative default petsc (e.g. real or complex)
+update-alternatives --install /usr/lib/petsc petsc ${PETSC_DIR_REAL} ${PETSC_VERSION_NUMBER}77 \
   --slave /usr/lib/libpetsc.so libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so.${PETSC_VERSION} \
   --slave /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so libpetsc.so.multiarch /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so.${PETSC_VERSION} \
-  --slave /usr/include/petsc petscinclude /usr/lib/petscdir/${PETSC_VERSION}/${PETSC_REAL_ARCH}/include \
-  --slave /usr/lib/pkgconfig/PETSc.pc 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
+  --slave /usr/include/petsc petscinclude ${PETSC_DIR_REAL}/include \
+  --slave /usr/lib/pkgconfig/PETSc.pc PETSc.pc ${PETSC_DIR_REAL}/lib/pkgconfig/PETSc.pc \
+  --slave /usr/share/octave/site/m/petsc petsc-octave ${PETSC_DIR_REAL}/share/petsc/matlab
+
+# alternative base version of petsc real
+update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so libpetsc_real.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so.${PETSC_VERSION} ${PETSC_VERSION_NUMBER}77
+
 fi
 
 
diff --git a/debian/libpetsc3.6.lintian-overrides b/debian/libpetsc3.6.lintian-overrides
index 080a567..9804ff4 100644
--- a/debian/libpetsc3.6.lintian-overrides
+++ b/debian/libpetsc3.6.lintian-overrides
@@ -3,3 +3,6 @@ libpetsc3.6: ldconfig-symlink-missing-for-shlib usr/lib/x86_64-linux-gnu/libpets
 
 # the libpetsc.so link is managed by alternatives in libpetsc3.6.3-dev (alternative petsc)
 libpetsc3.6: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libpetsc-real.so.3.6.3 usr/lib/x86_64-linux-gnu/libpetsc.so
+
+# libpetsc_real.so is handled by alternatives in libpetsc3.6.3-dev
+libpetsc3.6: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libpetsc_real.so.3.6.3 usr/lib/x86_64-linux-gnu/libpetsc_real.so
diff --git a/debian/rules b/debian/rules
index 80eb6ae..9c50c29 100755
--- a/debian/rules
+++ b/debian/rules
@@ -236,7 +236,6 @@ override_dh_install:
 	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_real.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
 	
@@ -244,7 +243,6 @@ override_dh_install:
 	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_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
 	
 	dh_install -p$(PETSC_COMPLEX_DEBUG_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_DEBUG_INSTALL_BASEDIR) --autodest --exclude=*html  usr
 

-- 
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