[hdf5] 06/08: Soname bump for c++ libs.

Gilles Filippini pini at debian.org
Tue Nov 17 07:00:32 UTC 2015


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

pini pushed a commit to branch master
in repository hdf5.

commit 418b702a9b9bd2846977146e0c1d41dc504fa49d
Author: Gilles Filippini <pini at debian.org>
Date:   Mon Nov 16 18:03:14 2015 +0100

    Soname bump for c++ libs.
---
 debian/changelog                                   |  2 ++
 debian/control                                     |  8 ++---
 debian/control.in                                  |  8 ++---
 debian/libhdf5-cpp-10.lintian-overrides            |  3 --
 debian/libhdf5-cpp-11.lintian-overrides            |  3 ++
 ...bhdf5-cpp-10.symbols => libhdf5-cpp-11.symbols} |  4 +--
 ...in => libhdf5-flavor-cpp-soname_cxx.install.in} |  0
 debian/make-version-scripts                        |  7 +++--
 debian/process-symbols-files                       |  9 +++---
 debian/rules                                       | 34 +++++++++++++++-------
 10 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 6a35bc5..01b4e0c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 hdf5 (1.8.16+docs-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * Starting with this release, each library has its own soname. Only
+    the cpp libs' soname was bumped this time.
 
  -- Gilles Filippini <pini at debian.org>  Mon, 16 Nov 2015 11:03:02 +0100
 
diff --git a/debian/control b/debian/control
index 89ae9f6..d8a55bc 100644
--- a/debian/control
+++ b/debian/control
@@ -41,7 +41,7 @@ Description: Hierarchical Data Format 5 (HDF5) - Debug package
  .
  This package contains debug libraries.
 
-Package: libhdf5-cpp-10
+Package: libhdf5-cpp-11
 Section: libs
 Architecture: any
 Depends:
@@ -57,14 +57,14 @@ Description: Hierarchical Data Format 5 (HDF5) - C++ libraries
  .
  This package contains C++ libraries.
 
-Package: libhdf5-cpp-10-dbg
+Package: libhdf5-cpp-11-dbg
 Section: debug
 Priority: extra
 Architecture: any
 Depends:
  ${shlibs:Depends},
  ${misc:Depends},
- libhdf5-cpp-10 (= ${binary:Version}), libhdf5-10-dbg (= ${binary:Version})
+ libhdf5-cpp-11 (= ${binary:Version}), libhdf5-10-dbg (= ${binary:Version})
 Multi-Arch: same
 Description: Hierarchical Data Format 5 (HDF5) - C++ Debug package
  HDF5 is a file format and library for storing scientific data.
@@ -78,7 +78,7 @@ Package: libhdf5-dev
 Section: libdevel
 Architecture: any
 Depends: libhdf5-10 (= ${binary:Version}), zlib1g-dev, libjpeg-dev,
- ${misc:Depends}, hdf5-helpers, libhdf5-cpp-10 (= ${binary:Version})
+ ${misc:Depends}, hdf5-helpers, libhdf5-cpp-11 (= ${binary:Version})
 Suggests: libhdf5-doc
 Provides: libhdf5-serial-dev
 Replaces: libhdf5-serial-dev (<< 1.8.12-9~)
diff --git a/debian/control.in b/debian/control.in
index e1510bb..20f6fc1 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -41,7 +41,7 @@ Description: Hierarchical Data Format 5 (HDF5) - Debug package
  .
  This package contains debug libraries.
 
-Package: libhdf5-cpp- at SONAME@
+Package: libhdf5-cpp- at SONAME_CXX@
 Section: libs
 Architecture: any
 Depends:
@@ -57,14 +57,14 @@ Description: Hierarchical Data Format 5 (HDF5) - C++ libraries
  .
  This package contains C++ libraries.
 
-Package: libhdf5-cpp- at SONAME@-dbg
+Package: libhdf5-cpp- at SONAME_CXX@-dbg
 Section: debug
 Priority: extra
 Architecture: any
 Depends:
  ${shlibs:Depends},
  ${misc:Depends},
- libhdf5-cpp- at SONAME@ (= ${binary:Version}), libhdf5- at SONAME@-dbg (= ${binary:Version})
+ libhdf5-cpp- at SONAME_CXX@ (= ${binary:Version}), libhdf5- at SONAME@-dbg (= ${binary:Version})
 Multi-Arch: same
 Description: Hierarchical Data Format 5 (HDF5) - C++ Debug package
  HDF5 is a file format and library for storing scientific data.
@@ -78,7 +78,7 @@ Package: libhdf5-dev
 Section: libdevel
 Architecture: any
 Depends: libhdf5- at SONAME@ (= ${binary:Version}), zlib1g-dev, libjpeg-dev,
- ${misc:Depends}, hdf5-helpers, libhdf5-cpp- at SONAME@ (= ${binary:Version})
+ ${misc:Depends}, hdf5-helpers, libhdf5-cpp- at SONAME_CXX@ (= ${binary:Version})
 Suggests: libhdf5-doc
 Provides: libhdf5-serial-dev
 Replaces: libhdf5-serial-dev (<< 1.8.12-9~)
diff --git a/debian/libhdf5-cpp-10.lintian-overrides b/debian/libhdf5-cpp-10.lintian-overrides
deleted file mode 100644
index 3d1e9e4..0000000
--- a/debian/libhdf5-cpp-10.lintian-overrides
+++ /dev/null
@@ -1,3 +0,0 @@
-libhdf5-cpp-10: package-name-doesnt-match-sonames libhdf5-cpp10 libhdf5-hl-cpp10
-# false positive because upstream release is 1.8.15-patch1
-libhdf5-cpp-10: symbols-file-contains-debian-revision on symbol HDF5_CPP_1.8.15.1 at HDF5_CPP_1.8.15.1 and 153 others
diff --git a/debian/libhdf5-cpp-11.lintian-overrides b/debian/libhdf5-cpp-11.lintian-overrides
new file mode 100644
index 0000000..56620a9
--- /dev/null
+++ b/debian/libhdf5-cpp-11.lintian-overrides
@@ -0,0 +1,3 @@
+libhdf5-cpp-11: package-name-doesnt-match-sonames libhdf5-cpp11 libhdf5-hl-cpp11
+# false positive because upstream release is 1.8.15-patch1
+libhdf5-cpp-11: symbols-file-contains-debian-revision on symbol HDF5_CPP_1.8.15.1 at HDF5_CPP_1.8.15.1 and 153 others
diff --git a/debian/libhdf5-cpp-10.symbols b/debian/libhdf5-cpp-11.symbols
similarity index 99%
rename from debian/libhdf5-cpp-10.symbols
rename to debian/libhdf5-cpp-11.symbols
index d5b6c9f..aa76ab6 100644
--- a/debian/libhdf5-cpp-10.symbols
+++ b/debian/libhdf5-cpp-11.symbols
@@ -1,4 +1,4 @@
-libhdf5_cpp.so.10 libhdf5-cpp-10 #MINVER#
+libhdf5_cpp.so.11 libhdf5-cpp-11 #MINVER#
  (optional|c++)"H5::AbstractDs::AbstractDs()@HDF5_CPP_1.8.9" 1.8.13
  (optional|c++)"H5::AbstractDs::AbstractDs(int)@HDF5_CPP_1.8.9" 1.8.13
  (optional|c++)"H5::AbstractDs::getArrayType() const at HDF5_CPP_1.8.9" 1.8.13
@@ -1044,7 +1044,7 @@ libhdf5_cpp.so.10 libhdf5-cpp-10 #MINVER#
  (optional|c++)"vtable for H5::ReferenceException at HDF5_CPP_1.8.9" 1.8.13
  (optional|c++)"vtable for H5::StrType at HDF5_CPP_1.8.9" 1.8.13
  (optional|c++)"vtable for H5::VarLenType at HDF5_CPP_1.8.9" 1.8.13
-libhdf5_hl_cpp.so.10 libhdf5-cpp-10 #MINVER#
+libhdf5_hl_cpp.so.11 libhdf5-cpp-11 #MINVER#
  (optional|c++)"FL_PacketTable::AppendPacket(void*)@HDF5_CPP_1.8.9" 1.8.13
  (optional|c++)"FL_PacketTable::AppendPackets(unsigned long, void*)@HDF5_CPP_1.8.13" 1.8.13
  (optional|c++)"FL_PacketTable::FL_PacketTable(int, char*)@HDF5_CPP_1.8.9" 1.8.13
diff --git a/debian/libhdf5-flavor-cpp-soname.install.in b/debian/libhdf5-flavor-cpp-soname_cxx.install.in
similarity index 100%
rename from debian/libhdf5-flavor-cpp-soname.install.in
rename to debian/libhdf5-flavor-cpp-soname_cxx.install.in
diff --git a/debian/make-version-scripts b/debian/make-version-scripts
index e0becbe..c9d2e72 100755
--- a/debian/make-version-scripts
+++ b/debian/make-version-scripts
@@ -7,8 +7,9 @@ set -e
 debian_dir="$(dirname "$(readlink -f "$0")")"
 cd "$debian_dir"
 
-# 2- Get soname
-soname=$(./rules soname)
+# 2- Get sonames
+soname=$(./rules SONAME)
+soname_cxx=$(./rules SONAME_CXX)
 
 # 3- Read mangled C++ symbols table and declare tne new table
 declare -A mangled
@@ -83,7 +84,7 @@ function map_symbols_file {
 
 rm -f mangled-symbols-table.new
 map_symbols_file "libhdf5-$soname.symbols" | sed 's/@MAP@/SERIAL/' >map_serial.ver
-map_symbols_file "libhdf5-cpp-$soname.symbols" | sed 's/@MAP@/CPP/' >>map_serial.ver
+map_symbols_file "libhdf5-cpp-$soname_cxx.symbols" | sed 's/@MAP@/CPP/' >>map_serial.ver
 map_symbols_file "libhdf5-openmpi-$soname.symbols" | sed 's/@MAP@/MPI/' >map_mpi.ver
 
 # 5- Replace the mangled C++ symbols table with the updated one
diff --git a/debian/process-symbols-files b/debian/process-symbols-files
index 57c8494..bbb689c 100755
--- a/debian/process-symbols-files
+++ b/debian/process-symbols-files
@@ -6,9 +6,10 @@ set -e
 debian_dir="$(dirname "$(readlink -f "$0")")"
 cd "$debian_dir"
 
-# 2- Get version an soname
+# 2- Get version and sonames
 version="$(grep 'HDF5 config.lt' ../configure | awk '{print $3}' | sed 's/-patch/./')"
-soname=$(./rules soname)
+soname=$(./rules SONAME)
+soname_cxx=$(./rules SONAME_CXX)
 
 # 3- Unmangle c++ symbols in symbols file
 #    While doing this we keep trac of the mangled symbol in the file
@@ -39,7 +40,7 @@ if [ -f mangled-symbols-table ]; then
   cp mangled-symbols-table mangled-symbols-table.new
 fi
 unmangle_symbols_file "libhdf5-$soname.symbols" | sed 's/#MAP#/SERIAL/' >"libhdf5-$soname.symbols.new"
-unmangle_symbols_file "libhdf5-cpp-$soname.symbols" | sed 's/#MAP#/CPP/' >"libhdf5-cpp-$soname.symbols.new"
+unmangle_symbols_file "libhdf5-cpp-$soname_cxx.symbols" | sed 's/#MAP#/CPP/' >"libhdf5-cpp-$soname_cxx.symbols.new"
 unmangle_symbols_file "libhdf5-openmpi-$soname.symbols" | sed 's/#MAP#/MPI/' >"libhdf5-openmpi-$soname.symbols.new"
 unmangle_symbols_file "libhdf5-mpich-$soname.symbols" | sed 's/#MAP#/MPI/' >"libhdf5-mpich-$soname.symbols.new"
 if [ -f mangled-symbols-table.new ]; then
@@ -48,7 +49,7 @@ fi
 
 # 4- Sort symbols in symbols file to workaround bug #773718
 ./sort-symbols "libhdf5-$soname.symbols.new" >"libhdf5-$soname.symbols"
-./sort-symbols "libhdf5-cpp-$soname.symbols.new" >"libhdf5-cpp-$soname.symbols"
+./sort-symbols "libhdf5-cpp-$soname_cxx.symbols.new" >"libhdf5-cpp-$soname_cxx.symbols"
 ./sort-symbols "libhdf5-openmpi-$soname.symbols.new" >"libhdf5-openmpi-$soname.symbols"
 ./sort-symbols "libhdf5-mpich-$soname.symbols.new" >"libhdf5-mpich-$soname.symbols"
 
diff --git a/debian/rules b/debian/rules
index b320a68..bff4ebc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -15,17 +15,28 @@ include /usr/share/dpkg/buildflags.mk
 package = libhdf5
 pkgversion ?= $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}')
 version ?= $(shell echo $(pkgversion) | sed 's/\([0-9\.]\)\(+docs[0-9]*\)\?-[^-]*$$/\1/')
-soname =  10
 
-# Target used by helper script make-version-scripts
-soname:
-	@echo $(soname)
+# Get sonames from config/lt_vers.am
+include config/lt_vers.am
+INTERFACES := @ _CXX _F _HL _HL_CXX _F _TOOLS
+istr = $(subst @,,$(interface))
+$(foreach interface,$(INTERFACES),$(eval \
+  SONAME$(istr) := $(shell echo $$(($(LT$(istr)_VERS_INTERFACE) - $(LT$(istr)_VERS_AGE))))))
+
+# Informative target
+sonames:
+	@$(foreach interface,$(INTERFACES),echo "SONAME$(istr) = $(SONAME$(istr))" &&) true
+
+# Targets used by helper script make-version-scripts
+SONAM%: interface = $(subst SONAME,,$@)
+SONAM%:
+	@echo $(SONAME$(istr))
 
 major_version = $(shell echo $(version) | cut -d. -f1,2)
-serpack = $(package)-$(soname)
-sercpppack = $(package)-cpp-$(soname)
-openmpipack = $(package)-openmpi-$(soname)
-mpichpack = $(package)-mpich-$(soname)
+serpack = $(package)-$(SONAME)
+sercpppack = $(package)-cpp-$(SONAME_CXX)
+openmpipack = $(package)-openmpi-$(SONAME)
+mpichpack = $(package)-mpich-$(SONAME)
 virtpack = $(package)-$(major_version)
 
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
@@ -112,7 +123,7 @@ configure-stamp-debian: debian/control.in
 	# This loop generates helper files from debian/*.*.in templates
 	cd debian && for file in *.*.in; do \
 	  for flavor in serial openmpi mpich; do \
-	    helper=`basename $$file .in | sed 's/soname/$(soname)/g'` ; \
+	    helper=`basename $$file .in | sed 's/soname_cxx/$(SONAME_CXX)/g;s/soname/$(SONAME)/g'` ; \
 	    flavorpkgstr="" ; \
 	    flavorlibstr="" ; \
 	    ifmpi="#"; \
@@ -133,7 +144,8 @@ configure-stamp-debian: debian/control.in
                 -e 's/@IFMPI@/'$$ifmpi'/g' \
                 -e 's/@IFSERIAL@/'$$ifserial'/g' \
                 -e 's/@MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \
-                -e 's/@SONAME@/$(soname)/g' \
+                -e 's/@SONAME_CXX@/$(SONAME_CXX)/g' \
+                -e 's/@SONAME@/$(SONAME)/g' \
 	      $$file >$$helper ; \
 	    done ; \
 	  done
@@ -223,7 +235,7 @@ clean:
 	-rm -rf debian/build
 	-rm -rf debian/build-openmpi
 	-rm -rf debian/build-mpich
-	grep -v ^\% debian/control.in | sed -e "s/@SONAME@/$(soname)/g" -e "s/@OMPIARCHS@/$(OMPIARCHS)/" -e "s/@MPICHARCHS@/$(MPICHARCHS)/" -e "s/@MAJOR_VERSION@/$(major_version)/" > debian/control
+	grep -v ^\% debian/control.in | sed -e "s/@SONAME@/$(SONAME)/g" -e "s/@SONAME_CXX@/$(SONAME_CXX)/g" -e "s/@OMPIARCHS@/$(OMPIARCHS)/" -e "s/@MPICHARCHS@/$(MPICHARCHS)/" -e "s/@MAJOR_VERSION@/$(major_version)/" > debian/control
 	dh_autoreconf_clean
 	rm -f m4/l*
 	-cd debian && rm -f `ls libhdf5-*.install libhdf5-*.shlibs libhdf5-*.doc | grep -v 'libhdf5-doc'`

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/hdf5.git



More information about the Pkg-grass-devel mailing list