[slepc] 01/06: provide dummy package libslepc3.6-dev for soname

Drew Parsons dparsons at moszumanska.debian.org
Mon Apr 4 13:36:07 UTC 2016


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

dparsons pushed a commit to tag debian/3.6.3.dfsg1-1
in repository slepc.

commit 442e743bed70201f43fcb29d32a05ae419d1adbe
Author: Drew Parsons <dparsons at debian.org>
Date:   Mon Apr 4 13:59:08 2016 +0800

    provide dummy package libslepc3.6-dev for soname
    
    The SLEPc version includes the patch version (3.6.x), but the patch
    version is not included in the soname.
    
    Therefore provide a "soname" version of the development packages,
    libslepc3.6-dev and libslepc-complex-3.6-dev, which depend on the
    specific patch versions.
    
    This facilitates parallel installation of different patch versions
    (the preferred version for the given soname is managed by
    alternatives).
    
    This reflects the same package structure used for petsc 3.6.3.
---
 debian/control                                     | 46 ++++++++++++++++++----
 debian/libslepc-complex-3.6.3-dev.postinst         |  6 +++
 debian/libslepc-complex-3.6.3.lintian-overrides    |  9 +++++
 ....6.postinst => libslepc-complex-3.6.3.postinst} |  4 ++
 ...plex-3.6.prerm => libslepc-complex-3.6.3.prerm} |  0
 debian/libslepc3.6.3-dev.postinst                  |  6 +++
 debian/libslepc3.6.3.lintian-overrides             |  9 +++++
 ...libslepc3.6.postinst => libslepc3.6.3.postinst} |  5 +++
 debian/{libslepc3.6.prerm => libslepc3.6.3.prerm}  |  0
 debian/rules                                       |  8 +---
 10 files changed, 80 insertions(+), 13 deletions(-)

diff --git a/debian/control b/debian/control
index f00837b..3d8f667 100644
--- a/debian/control
+++ b/debian/control
@@ -17,7 +17,7 @@ Vcs-Browser: http://anonscm.debian.org/cgit/debian-science/packages/slepc.git/
 Package: slepc-dev
 Section: libdevel
 Architecture: any
-Depends: libslepc3.6.3-dev, ${misc:Depends}
+Depends: libslepc3.6-dev, ${misc:Depends}
 Description: Scalable Library for Eigenvalue Problem Computations
  SLEPc is a software library for the solution of large scale sparse eigenvalue
  problems on parallel computers. It is an extension of PETSc and can be used
@@ -27,10 +27,25 @@ Description: Scalable Library for Eigenvalue Problem Computations
  .
  This is a virtual package which depends on the latest version of SLEPc.
 
+Package: libslepc3.6-dev
+Section: libdevel
+Architecture: any
+Depends: libslepc3.6.3-dev, ${misc:Depends}, ${python:Depends}
+Description: Scalable Library for Eigenvalue Problem Computations
+ SLEPc is a software library for the solution of large scale sparse eigenvalue
+ problems on parallel computers. It is an extension of PETSc and can be used
+ for either standard or generalized eigenproblems, with real or complex
+ arithmetic. It can also be used for computing a partial SVD of a large,
+ sparse, rectangular matrix.
+ .
+ This is a dummy package that depends on the latest version of SLEPc 3.6 
+ which provides the static libraries, shared links, and header files
+ for SLEPC with real numbers.
+
 Package: libslepc3.6.3-dev
 Section: libdevel
 Architecture: any
-Depends: libslepc3.6 (= ${binary:Version}), libpetsc3.6.3-dev, libarpack2-dev, libhdf5-mpi-dev, 
+Depends: libslepc3.6.3 (= ${binary:Version}), libpetsc3.6.3-dev, libarpack2-dev, libhdf5-mpi-dev, 
  ${misc:Depends}, ${python:Depends}
 Suggests: libslepc3.6.3-dbg (= ${binary:Version}), slepc3.6.3-doc (= ${binary:Version})
 Conflicts: libslepc2.3.2-dev
@@ -44,11 +59,12 @@ Description: Scalable Library for Eigenvalue Problem Computations
  This package contains the static libraries, shared links, and header files
  for SLEPC with real numbers.
 
-Package: libslepc3.6
+Package: libslepc3.6.3
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Conflicts: libslepc2.3.2
+Conflicts: libslepc2.3.2, libslepc3.6 (<= 3.6.1.dfsg1-2)
+Replaces: libslepc3.6 (<= 3.6.1.dfsg1-2)
 Description: Scalable Library for Eigenvalue Problem Computations
  SLEPc is a software library for the solution of large scale sparse eigenvalue
  problems on parallel computers. It is an extension of PETSc and can be used
@@ -86,10 +102,25 @@ Description: Scalable Library for Eigenvalue Problem Computations
  .
  This package contains the documentation and examples for SLEPc.
 
+Package: libslepc-complex-3.6-dev
+Section: libdevel
+Architecture: any
+Depends: libslepc-complex-3.6.3-dev, ${misc:Depends}, ${python:Depends}
+Description: Scalable Library for Eigenvalue Problem Computations
+ SLEPc is a software library for the solution of large scale sparse eigenvalue
+ problems on parallel computers. It is an extension of PETSc and can be used
+ for either standard or generalized eigenproblems, with real or complex
+ arithmetic. It can also be used for computing a partial SVD of a large,
+ sparse, rectangular matrix.
+ .
+ This is a dummy package that depends on the latest version of SLEPc 3.6 
+ which provides the static libraries, shared links, and header files
+ for SLEPC with complex numbers.
+
 Package: libslepc-complex-3.6.3-dev
 Section: libdevel
 Architecture: any
-Depends: libslepc-complex-3.6 (= ${binary:Version}), libpetsc-complex-3.6.3-dev, libarpack2-dev, libhdf5-mpi-dev, 
+Depends: libslepc-complex-3.6.3 (= ${binary:Version}), libpetsc-complex-3.6.3-dev, libarpack2-dev, libhdf5-mpi-dev, 
  ${misc:Depends}, ${python:Depends}
 Suggests: libslepc-complex-3.6.3-dbg (= ${binary:Version}), slepc3.6.3-doc (= ${binary:Version})
 Conflicts: libslepc2.3.2-dev
@@ -103,11 +134,12 @@ Description: Scalable Library for Eigenvalue Problem Computations
  This package contains the static libraries, shared links, and header files
  for SLEPC with complex numbers.
 
-Package: libslepc-complex-3.6
+Package: libslepc-complex-3.6.3
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Conflicts: libslepc2.3.2
+Conflicts: libslepc2.3.2, libslepc-complex-3.6 (<= 3.6.1.dfsg1-2)
+Replaces: libslepc-complex-3.6 (<= 3.6.1.dfsg1-2)
 Description: Scalable Library for Eigenvalue Problem Computations
  SLEPc is a software library for the solution of large scale sparse eigenvalue
  problems on parallel computers. It is an extension of PETSc and can be used
diff --git a/debian/libslepc-complex-3.6.3-dev.postinst b/debian/libslepc-complex-3.6.3-dev.postinst
index 0ff1f2d..75a1e53 100644
--- a/debian/libslepc-complex-3.6.3-dev.postinst
+++ b/debian/libslepc-complex-3.6.3-dev.postinst
@@ -9,11 +9,17 @@ SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
 
 # Make alternatives links
 if [ "$1" = "configure" ]; then
+
+# alternative default slepc (e.g. real or complex)
 update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH} ${SLEPC_VERSION_NUMBER}73 \
   --slave /usr/lib/libslepc.so libslepc.so /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} \
   --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so libslepc.so.multiarch /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} \
   --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH}/include \
   --slave /usr/lib/pkgconfig/SLEPc.pc SLEPc.pc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH}/lib/pkgconfig/SLEPc.pc
+
+# alternative base version of slepc complex
+update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so libslepc_complex.so /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}77
+
 fi
 
 
diff --git a/debian/libslepc-complex-3.6.3.lintian-overrides b/debian/libslepc-complex-3.6.3.lintian-overrides
new file mode 100644
index 0000000..d2b2839
--- /dev/null
+++ b/debian/libslepc-complex-3.6.3.lintian-overrides
@@ -0,0 +1,9 @@
+# libslepc_complex.so.3.6 soname links are managed by alternatives (libslepc_complex.so.3.6)
+libslepc-complex-3.6.3: ldconfig-symlink-missing-for-shlib usr/lib/x86_64-linux-gnu/libslepc_complex.so.3.6 usr/lib/x86_64-linux-gnu/libslepc_complex.so.3.6.3 libslepc_complex.so.3.6
+
+# the libslepc_complex.so link is managed by alternatives in libslepc-complex-3.6.3-dev (alternative slepc)
+libslepc-complex-3.6.3: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libslepc_complex.so.3.6.3 usr/lib/x86_64-linux-gnu/libslepc_complex.so
+
+# libslepc-complex-3.6.3 provides soname libslepc-complex3.6
+libslepc-complex-3.6.3: package-name-doesnt-match-sonames libslepc-complex3.6
+
diff --git a/debian/libslepc-complex-3.6.postinst b/debian/libslepc-complex-3.6.3.postinst
similarity index 69%
rename from debian/libslepc-complex-3.6.postinst
rename to debian/libslepc-complex-3.6.3.postinst
index d35901b..ca7219b 100644
--- a/debian/libslepc-complex-3.6.postinst
+++ b/debian/libslepc-complex-3.6.3.postinst
@@ -10,8 +10,12 @@ SONAME=$( echo ${SLEPC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
 
 # Make alternatives links
 if [ "$1" = "configure" ]; then
+  # alternative slepc version (for given soname), real or complex
   update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SONAME} libslepc.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}73 \
     --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SLEPC_VERSION} libslepc.so.${SLEPC_VERSION} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION}
+
+  # alternative complex version (for given soname)
+  update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SONAME} libslepc_complex.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}77
 fi
 
 
diff --git a/debian/libslepc-complex-3.6.prerm b/debian/libslepc-complex-3.6.3.prerm
similarity index 100%
rename from debian/libslepc-complex-3.6.prerm
rename to debian/libslepc-complex-3.6.3.prerm
diff --git a/debian/libslepc3.6.3-dev.postinst b/debian/libslepc3.6.3-dev.postinst
index 41d658c..966c057 100644
--- a/debian/libslepc3.6.3-dev.postinst
+++ b/debian/libslepc3.6.3-dev.postinst
@@ -9,11 +9,17 @@ SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
 
 # Make alternatives links
 if [ "$1" = "configure" ]; then
+
+# alternative default slepc (e.g. real or complex)
 update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH} ${SLEPC_VERSION_NUMBER}77 \
   --slave /usr/lib/libslepc.so libslepc.so /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} \
   --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so libslepc.so.multiarch /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} \
   --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH}/include \
   --slave /usr/lib/pkgconfig/SLEPc.pc SLEPc.pc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH}/lib/pkgconfig/SLEPc.pc
+
+# alternative base version of slepc real
+update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so libslepc_real.so /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}77
+
 fi
 
 
diff --git a/debian/libslepc3.6.3.lintian-overrides b/debian/libslepc3.6.3.lintian-overrides
new file mode 100644
index 0000000..7f3f064
--- /dev/null
+++ b/debian/libslepc3.6.3.lintian-overrides
@@ -0,0 +1,9 @@
+# libslepc.so.3.6 soname links are managed by alternatives (libslepc.so.3.6)
+libslepc3.6.3: ldconfig-symlink-missing-for-shlib usr/lib/x86_64-linux-gnu/libslepc_real.so.3.6 usr/lib/x86_64-linux-gnu/libslepc_real.so.3.6.3 libslepc_real.so.3.6
+
+# the libslepc.so link is managed by alternatives in libslepc3.6.3-dev (alternative slepc)
+libslepc3.6.3: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libslepc_real.so.3.6.3 usr/lib/x86_64-linux-gnu/libslepc_real.so
+
+# libslepc3.6.3 provides soname libslepc-real3.6
+libslepc3.6.3: package-name-doesnt-match-sonames libslepc-real3.6
+
diff --git a/debian/libslepc3.6.postinst b/debian/libslepc3.6.3.postinst
similarity index 69%
rename from debian/libslepc3.6.postinst
rename to debian/libslepc3.6.3.postinst
index f80a77b..fb01ff8 100644
--- a/debian/libslepc3.6.postinst
+++ b/debian/libslepc3.6.3.postinst
@@ -10,8 +10,13 @@ SONAME=$( echo ${SLEPC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
 
 # Make alternatives links
 if [ "$1" = "configure" ]; then
+  # alternative slepc version (for given soname), real or complex
   update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SONAME} libslepc.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}77 \
     --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SLEPC_VERSION} libslepc.so.${SLEPC_VERSION} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION}
+
+  # alternative real version (for given soname)
+  update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SONAME} libslepc_real.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}77
+
 fi
 
 
diff --git a/debian/libslepc3.6.prerm b/debian/libslepc3.6.3.prerm
similarity index 100%
rename from debian/libslepc3.6.prerm
rename to debian/libslepc3.6.3.prerm
diff --git a/debian/rules b/debian/rules
index f0b13a7..5f0f04c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -63,11 +63,11 @@ SLEPC_COMPLEX_NAME=slepc-complex-$(SLEPC_VERSION)
 # debian binary package names
 SLEPC_DEV_PACKAGE=$(SLEPC_NAME)-dev
 SLEPC_VERSIONED_DEV_PACKAGE=lib$(SLEPC_NAME)-dev
-SLEPC_VERSIONED_PACKAGE=lib$(SLEPC_SONAME)
+SLEPC_VERSIONED_PACKAGE=lib$(SLEPC_NAME)
 SLEPC_DEBUG_PACKAGE=lib$(SLEPC_NAME)-dbg
 SLEPC_DOC_PACKAGE=$(SLEPC_NAME)-doc
 SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE=lib$(SLEPC_COMPLEX_NAME)-dev
-SLEPC_COMPLEX_VERSIONED_PACKAGE=lib$(SLEPC_COMPLEX_SONAME)
+SLEPC_COMPLEX_VERSIONED_PACKAGE=lib$(SLEPC_COMPLEX_NAME)
 SLEPC_COMPLEX_DEBUG_PACKAGE=lib$(SLEPC_COMPLEX_NAME)-dbg
 
 # install into /usr/lib/slepcdir rather than /usr/lib/slepc 
@@ -200,16 +200,12 @@ override_dh_install:
 	dh_install -p$(SLEPC_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --exclude=*html  $(SLEPC_DIR_PREFIX)/lib/libslepc_real.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
 	dh_install -p$(SLEPC_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libslepc_real.so.$(SLEPC_VERSION)  usr
 	dh_link -p$(SLEPC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_VERSION)  $(SLEPC_DIR_PREFIX)/lib/libslepc_real.so.$(SLEPC_VERSION)
-	dh_link -p$(SLEPC_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_SONAME_VERSION)
-	dh_link -p$(SLEPC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so
 	
 	dh_install -p$(SLEPC_DEBUG_PACKAGE) --sourcedir $(PACKAGE_DEBUG_INSTALL_BASEDIR) --autodest --exclude=*html  usr
 	
 	dh_install -p$(SLEPC_COMPLEX_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_BASEDIR) --exclude=*html  $(SLEPC_COMPLEX_DIR_PREFIX)/lib/libslepc_complex.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
 	dh_install -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libslepc_complex.so.$(SLEPC_VERSION)  usr
 	dh_link -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_VERSION)  $(SLEPC_COMPLEX_DIR_PREFIX)/lib/libslepc_complex.so.$(SLEPC_VERSION)
-	dh_link -p$(SLEPC_COMPLEX_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_SONAME_VERSION)
-	dh_link -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so
 	
 	dh_install -p$(SLEPC_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/slepc.git



More information about the debian-science-commits mailing list