On 08/06/2021 08.27, Andreas Beckmann wrote:
Or, wait, easier: we can reintroduce metapackages libhdf5*-103 depending on libhdf5*-103-1 and all the other packages containing libraries that were in the merged package in buster.

I actually like that solution and will try to come up with a patch ;-)

Here it is. Now testing upgrades ...
There were some new symbols ... but they appeared independently of my changes (I built in bullseye, not sid, in case it does matter).

Andreas
diff -Nru hdf5-1.10.6+repack/debian/changelog hdf5-1.10.6+repack/debian/changelog
--- hdf5-1.10.6+repack/debian/changelog	2020-04-24 20:00:42.000000000 +0200
+++ hdf5-1.10.6+repack/debian/changelog	2021-06-08 08:57:04.000000000 +0200
@@ -1,3 +1,18 @@
+hdf5 (1.10.6+repack-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Reintroduce libhdf5-103, libhdf5-cpp-103, libhdf5-openmpi-103,
+    libhdf5-mpich-103 as metapackages depending on the individual library
+    packages that were bundled under these names in buster. This is a
+    workaround for upgrade issues caused by libhdf5-103 (in buster) and
+    libhdf5-103-1 (in bullseye) not being co-installable.  (Closes: #988722)
+    The metapackages cannot depend on libhdf5{,-openmpi,-mpich}-fortran100
+    because these had the SOVERSION bumped from 100 to 102, but luckily there
+    are no known users of these libraries in buster.
+  * Add a new symbol to libhdf5*-cpp-103-1.symbols.
+
+ -- Andreas Beckmann <a...@debian.org>  Tue, 08 Jun 2021 08:57:04 +0200
+
 hdf5 (1.10.6+repack-2) unstable; urgency=medium
 
   * Default plugindir per flavor
diff -Nru hdf5-1.10.6+repack/debian/control hdf5-1.10.6+repack/debian/control
--- hdf5-1.10.6+repack/debian/control	2020-04-24 20:00:42.000000000 +0200
+++ hdf5-1.10.6+repack/debian/control	2021-06-08 08:57:04.000000000 +0200
@@ -28,8 +28,8 @@
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
-Breaks: libhdf5-103
-Replaces: libhdf5-103
+Breaks: libhdf5-103 (<< 1.10.5)
+Replaces: libhdf5-103 (<< 1.10.5)
 Description: HDF5 C runtime files - serial version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -88,14 +88,35 @@
  This package contains the high level Fortran API runtime files for serial
  platforms.
 
+Package: libhdf5-103
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-103-1 (= ${binary:Version}),
+#        libhdf5-fortran-102 (= ${binary:Version}),
+         libhdf5-hl-100 (= ${binary:Version}),
+         libhdf5-hl-fortran-100 (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 C runtime files - serial version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C runtime files for serial platforms.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-cpp-103-1
 Architecture: any
 Multi-Arch: same
 Section: libs
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Breaks: libhdf5-cpp-103
-Replaces: libhdf5-cpp-103
+Breaks: libhdf5-cpp-103 (<< 1.10.5)
+Replaces: libhdf5-cpp-103 (<< 1.10.5)
 Description: HDF5 - C++ runtime files - serial version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -122,6 +143,25 @@
  This package contains the high level C++ API runtime files for serial
  platforms.
 
+Package: libhdf5-cpp-103
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-cpp-103-1 (= ${binary:Version}),
+         libhdf5-hl-cpp-100 (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 - C++ runtime files - serial version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C++ runtime files for serial platforms.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-dev
 Architecture: any
 Section: libdevel
@@ -155,8 +195,8 @@
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
-Breaks: libhdf5-openmpi-103
-Replaces: libhdf5-openmpi-103
+Breaks: libhdf5-openmpi-103 (<< 1.10.5)
+Replaces: libhdf5-openmpi-103 (<< 1.10.5)
 Description: HDF5 - C runtime files - OpenMPI version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -215,14 +255,35 @@
  This package contains the high level Fortran API runtime files for openmpi
  platforms.
 
+Package: libhdf5-openmpi-103
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-openmpi-103-1 (= ${binary:Version}),
+#        libhdf5-openmpi-fortran-102 (= ${binary:Version}),
+         libhdf5-openmpi-hl-100 (= ${binary:Version}),
+         libhdf5-openmpi-hl-fortran-100 (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 - C runtime files - OpenMPI version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C runtime files for use with OpenMPI.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-openmpi-cpp-103-1
 Architecture: any
 Multi-Arch: same
 Section: libs
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Breaks: libhdf5-openmpi-cpp-103
-Replaces: libhdf5-openmpi-cpp-103
+Breaks: libhdf5-openmpi-cpp-103 (<< 1.10.5)
+Replaces: libhdf5-openmpi-cpp-103 (<< 1.10.5)
 Description: HDF5 - C++ runtime files - OpenMPI version - unsupported
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -286,8 +347,8 @@
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
-Breaks: libhdf5-mpich-103
-Replaces: libhdf5-mpich-103
+Breaks: libhdf5-mpich-103 (<< 1.10.5)
+Replaces: libhdf5-mpich-103 (<< 1.10.5)
 Description: HDF5 - C runtime files - MPICH2 version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -346,14 +407,35 @@
  This package contains the high level Fortran API runtime files for mpich
  platforms.
 
+Package: libhdf5-mpich-103
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-mpich-103-1 (= ${binary:Version}),
+#        libhdf5-mpich-fortran-102 (= ${binary:Version}),
+         libhdf5-mpich-hl-100 (= ${binary:Version}),
+         libhdf5-mpich-hl-fortran-100 (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 - C runtime files - MPICH2 version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C runtime files for use with MPICH2.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-mpich-cpp-103-1
 Architecture: any
 Multi-Arch: same
 Section: libs
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Breaks: libhdf5-mpich-cpp-103
-Replaces: libhdf5-mpich-cpp-103
+Breaks: libhdf5-mpich-cpp-103 (<< 1.10.5)
+Replaces: libhdf5-mpich-cpp-103 (<< 1.10.5)
 Description: HDF5 - C++ runtime files - MPICH2 version - unsupported
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
diff -Nru hdf5-1.10.6+repack/debian/control.in hdf5-1.10.6+repack/debian/control.in
--- hdf5-1.10.6+repack/debian/control.in	2020-04-24 19:10:36.000000000 +0200
+++ hdf5-1.10.6+repack/debian/control.in	2021-06-08 08:57:04.000000000 +0200
@@ -28,8 +28,8 @@
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
-Breaks: libhdf5-@SONAME@
-Replaces: libhdf5-@SONAME@
+Breaks: libhdf5-@SONAME@ (<< 1.10.5)
+Replaces: libhdf5-@SONAME@ (<< 1.10.5)
 Description: HDF5 C runtime files - serial version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -88,14 +88,35 @@
  This package contains the high level Fortran API runtime files for serial
  platforms.
 
+Package: libhdf5-@SONAME@
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-@SONAME@@EXT@ (= ${binary:Version}),
+#        libhdf5-fortran-@SONAME_F@ (= ${binary:Version}),
+         libhdf5-hl-@SONAME_HL@ (= ${binary:Version}),
+         libhdf5-hl-fortran-@SONAME_HL_F@ (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 C runtime files - serial version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C runtime files for serial platforms.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-cpp-@SONAME_CXX@@EXT@
 Architecture: any
 Multi-Arch: same
 Section: libs
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Breaks: libhdf5-cpp-@SONAME_CXX@
-Replaces: libhdf5-cpp-@SONAME_CXX@
+Breaks: libhdf5-cpp-@SONAME_CXX@ (<< 1.10.5)
+Replaces: libhdf5-cpp-@SONAME_CXX@ (<< 1.10.5)
 Description: HDF5 - C++ runtime files - serial version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -122,6 +143,25 @@
  This package contains the high level C++ API runtime files for serial
  platforms.
 
+Package: libhdf5-cpp-@SONAME_CXX@
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-cpp-@SONAME_CXX@@EXT@ (= ${binary:Version}),
+         libhdf5-hl-cpp-@SONAME_HL_CXX@ (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 - C++ runtime files - serial version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C++ runtime files for serial platforms.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-dev
 Architecture: any
 Section: libdevel
@@ -155,8 +195,8 @@
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
-Breaks: libhdf5-openmpi-@SONAME@
-Replaces: libhdf5-openmpi-@SONAME@
+Breaks: libhdf5-openmpi-@SONAME@ (<< 1.10.5)
+Replaces: libhdf5-openmpi-@SONAME@ (<< 1.10.5)
 Description: HDF5 - C runtime files - OpenMPI version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -215,14 +255,35 @@
  This package contains the high level Fortran API runtime files for openmpi
  platforms.
 
+Package: libhdf5-openmpi-@SONAME@
+Architecture: @OMPIARCHS@
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-openmpi-@SONAME@@EXT@ (= ${binary:Version}),
+#        libhdf5-openmpi-fortran-@SONAME_F@ (= ${binary:Version}),
+         libhdf5-openmpi-hl-@SONAME_HL@ (= ${binary:Version}),
+         libhdf5-openmpi-hl-fortran-@SONAME_HL_F@ (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 - C runtime files - OpenMPI version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C runtime files for use with OpenMPI.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-openmpi-cpp-@SONAME_CXX@@EXT@
 Architecture: any
 Multi-Arch: same
 Section: libs
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Breaks: libhdf5-openmpi-cpp-@SONAME_CXX@
-Replaces: libhdf5-openmpi-cpp-@SONAME_CXX@
+Breaks: libhdf5-openmpi-cpp-@SONAME_CXX@ (<< 1.10.5)
+Replaces: libhdf5-openmpi-cpp-@SONAME_CXX@ (<< 1.10.5)
 Description: HDF5 - C++ runtime files - OpenMPI version - unsupported
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -286,8 +347,8 @@
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
-Breaks: libhdf5-mpich-@SONAME@
-Replaces: libhdf5-mpich-@SONAME@
+Breaks: libhdf5-mpich-@SONAME@ (<< 1.10.5)
+Replaces: libhdf5-mpich-@SONAME@ (<< 1.10.5)
 Description: HDF5 - C runtime files - MPICH2 version
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
@@ -346,14 +407,35 @@
  This package contains the high level Fortran API runtime files for mpich
  platforms.
 
+Package: libhdf5-mpich-@SONAME@
+Architecture: @MPICHARCHS@
+Multi-Arch: same
+Section: libs
+Depends: libhdf5-mpich-@SONAME@@EXT@ (= ${binary:Version}),
+#        libhdf5-mpich-fortran-@SONAME_F@ (= ${binary:Version}),
+         libhdf5-mpich-hl-@SONAME_HL@ (= ${binary:Version}),
+         libhdf5-mpich-hl-fortran-@SONAME_HL_F@ (= ${binary:Version}),
+         ${misc:Depends}
+Description: HDF5 - C runtime files - MPICH2 version (metapackage)
+ Hierarchical Data Format 5 (HDF5) is a file format and library for
+ storing scientific data.  HDF5 was designed and implemented to address
+ the deficiencies of HDF4.x. It has a more powerful and flexible data
+ model, supports files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains the C runtime files for use with MPICH2.
+ .
+ This metapackage helps upgrading from the single package bundling
+ multiple libraries in buster to the individiual library packages in
+ bullseye. It can be safely removed.
+
 Package: libhdf5-mpich-cpp-@SONAME_CXX@@EXT@
 Architecture: any
 Multi-Arch: same
 Section: libs
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Breaks: libhdf5-mpich-cpp-@SONAME_CXX@
-Replaces: libhdf5-mpich-cpp-@SONAME_CXX@
+Breaks: libhdf5-mpich-cpp-@SONAME_CXX@ (<< 1.10.5)
+Replaces: libhdf5-mpich-cpp-@SONAME_CXX@ (<< 1.10.5)
 Description: HDF5 - C++ runtime files - MPICH2 version - unsupported
  Hierarchical Data Format 5 (HDF5) is a file format and library for
  storing scientific data.  HDF5 was designed and implemented to address
diff -Nru hdf5-1.10.6+repack/debian/libhdf5-cpp-103-1.symbols hdf5-1.10.6+repack/debian/libhdf5-cpp-103-1.symbols
--- hdf5-1.10.6+repack/debian/libhdf5-cpp-103-1.symbols	2020-04-24 19:10:36.000000000 +0200
+++ hdf5-1.10.6+repack/debian/libhdf5-cpp-103-1.symbols	2021-06-08 08:57:04.000000000 +0200
@@ -1055,6 +1055,7 @@
  HDF5_SERIAL_1.8.7@HDF5_SERIAL_1.8.7 1.10.5
  HDF5_SERIAL_1.8.8@HDF5_SERIAL_1.8.8 1.10.5
  HDF5_SERIAL_1.8.9@HDF5_SERIAL_1.8.9 1.10.5
+ _ZNKSt5ctypeIcE8do_widenEc@Base 1.10.6
  (optional|c++)"non-virtual thunk to H5::Attribute::close()@HDF5_CPP_1.8.11" 1.10.5
  (optional|c++)"non-virtual thunk to H5::Attribute::fromClass[abi:cxx11]() const@HDF5_CPP_1.10.1" 1.10.5
  (optional|c++)"non-virtual thunk to H5::Attribute::getId() const@HDF5_CPP_1.8.9" 1.10.5
diff -Nru hdf5-1.10.6+repack/debian/libhdf5-mpich-cpp-103-1.symbols hdf5-1.10.6+repack/debian/libhdf5-mpich-cpp-103-1.symbols
--- hdf5-1.10.6+repack/debian/libhdf5-mpich-cpp-103-1.symbols	2020-04-24 19:10:36.000000000 +0200
+++ hdf5-1.10.6+repack/debian/libhdf5-mpich-cpp-103-1.symbols	2021-06-08 08:57:04.000000000 +0200
@@ -1055,6 +1055,7 @@
  HDF5_MPI_1.8.7@HDF5_MPI_1.8.7 1.10.5
  HDF5_MPI_1.8.8@HDF5_MPI_1.8.8 1.10.5
  HDF5_MPI_1.8.9@HDF5_MPI_1.8.9 1.10.5
+ _ZNKSt5ctypeIcE8do_widenEc@Base 1.10.6
  (optional|c++)"non-virtual thunk to H5::Attribute::close()@HDF5_CPP_MPI_1.8.11" 1.10.5
  (optional|c++)"non-virtual thunk to H5::Attribute::fromClass[abi:cxx11]() const@HDF5_CPP_MPI_1.10.1" 1.10.5
  (optional|c++)"non-virtual thunk to H5::Attribute::getId() const@HDF5_CPP_MPI_1.8.9" 1.10.5
diff -Nru hdf5-1.10.6+repack/debian/libhdf5-openmpi-cpp-103-1.symbols hdf5-1.10.6+repack/debian/libhdf5-openmpi-cpp-103-1.symbols
--- hdf5-1.10.6+repack/debian/libhdf5-openmpi-cpp-103-1.symbols	2020-04-24 19:10:36.000000000 +0200
+++ hdf5-1.10.6+repack/debian/libhdf5-openmpi-cpp-103-1.symbols	2021-06-08 08:57:04.000000000 +0200
@@ -1243,6 +1243,7 @@
 #MISSING: 1.10.6# (optional|c++)"MPI::Win::Unlock(int) const@HDF5_CPP_MPI_1.10.5" 1.10.5
 #MISSING: 1.10.6# (optional|c++)"MPI::Win::Wait() const@HDF5_CPP_MPI_1.10.5" 1.10.5
 #MISSING: 1.10.6# (optional|c++)"MPI::Win::~Win()@HDF5_CPP_MPI_1.10.5" 1.10.5
+ _ZNKSt5ctypeIcE8do_widenEc@Base 1.10.6
  (optional|c++)"non-virtual thunk to H5::Attribute::close()@HDF5_CPP_MPI_1.8.11" 1.10.5
  (optional|c++)"non-virtual thunk to H5::Attribute::fromClass[abi:cxx11]() const@HDF5_CPP_MPI_1.10.1" 1.10.5
  (optional|c++)"non-virtual thunk to H5::Attribute::getId() const@HDF5_CPP_MPI_1.8.9" 1.10.5

Reply via email to