On Thu, 14 Feb 2019 at 10:29:01 +0000, Simon McVittie wrote:
> If the SONAME is not increased upstream (which doesn't seem likely to
> happen soon), then the ABI break should be worked around in Debian by
> renaming libdmtx0a to libdmtx0b with Conflicts: libdmtx0a, similar to
> what was done for the transition from libdmtx0 to libdmtx0a. After doing
> this, the release team will need to trigger rebuilds for everything that
> depends on libdmtx0a.

After talking to a release team member I'm going to start this process
with an NMU to experimental soon, so that the new package name can get
through the NEW queue. Intended NMU diff attached.

Regards,
    smcv
    at the Cambridge BSP
diff --git a/debian/changelog b/debian/changelog
index e83df7e..f290618 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+libdmtx (0.7.5-2.1) experimental; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename shared library package to libdmtx0b, due to another ABI
+    break without a corresponding SONAME update (in 0.7.5-1).
+    Add Conflicts/Replaces on libdmtx0a, and add missing Replaces on
+    libdmtx0 while I'm there.
+  * Release to experimental for now, to wait for NEW processing and stage
+    the transition.
+
+ -- Simon McVittie <[email protected]>  Sun, 10 Mar 2019 15:27:16 +0000
+
 libdmtx (0.7.5-2) unstable; urgency=low
 
   * Proper fix for simple_test compiler warnings.
diff --git a/debian/control b/debian/control
index 913fc01..563257e 100644
--- a/debian/control
+++ b/debian/control
@@ -6,12 +6,13 @@ Build-Depends: debhelper (>= 11)
 Standards-Version: 4.2.1
 Homepage: http://libdmtx.sourceforge.net
 
-Package: libdmtx0a
+Package: libdmtx0b
 Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Conflicts: libdmtx0
+Conflicts: libdmtx0, libdmtx0a
+Replaces: libdmtx0, libdmtx0a
 Description: Data Matrix barcodes (runtime library)
  Libdmtx is a library for reading and writing Data Matrix 2D barcodes,
  two-dimensional symbols that hold a dense pattern of data with built-in error
@@ -24,7 +25,7 @@ Section: libdevel
 Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
-Depends: ${shlibs:Depends}, ${misc:Depends}, libdmtx0a (= ${binary:Version})
+Depends: ${shlibs:Depends}, ${misc:Depends}, libdmtx0b (= ${binary:Version})
 Description: Data Matrix barcodes (development files and static libraries)
  Libdmtx is a library for reading and writing Data Matrix 2D barcodes,
  two-dimensional symbols that hold a dense pattern of data with built-in error
diff --git a/debian/libdmtx-dev.maintscript b/debian/libdmtx-dev.maintscript
index caf94f8..d59992b 100644
--- a/debian/libdmtx-dev.maintscript
+++ b/debian/libdmtx-dev.maintscript
@@ -1 +1 @@
-dir_to_symlink    /usr/share/doc/libdmtx-dev    libdmtx0a    0.7.5-2~
+dir_to_symlink    /usr/share/doc/libdmtx-dev    libdmtx0b    0.7.5-2.1~
diff --git a/debian/libdmtx0a.docs b/debian/libdmtx0a.docs
deleted file mode 100644
index 0ae67e8..0000000
--- a/debian/libdmtx0a.docs
+++ /dev/null
@@ -1,6 +0,0 @@
-AUTHORS
-KNOWNBUG
-NEWS
-README
-README.linux
-TODO
diff --git a/debian/libdmtx0a.install b/debian/libdmtx0a.install
deleted file mode 100644
index ce43bc9..0000000
--- a/debian/libdmtx0a.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/libdmtx.so.*
diff --git a/debian/libdmtx0a.symbols b/debian/libdmtx0a.symbols
deleted file mode 100644
index 17a8cac..0000000
--- a/debian/libdmtx0a.symbols
+++ /dev/null
@@ -1,81 +0,0 @@
-libdmtx.so.0 libdmtx0a #MINVER#
-*Build-Depends-Package: libdmtx-dev
- dmtxByteListBuild@Base 0.7.4
- dmtxByteListClear@Base 0.7.4
- dmtxByteListCopy@Base 0.7.4
- dmtxByteListHasCapacity@Base 0.7.4
- dmtxByteListInit@Base 0.7.4
- dmtxByteListPop@Base 0.7.4
- dmtxByteListPrint@Base 0.7.4
- dmtxByteListPush@Base 0.7.4
- dmtxDecodeCreate@Base 0.7.0
- dmtxDecodeCreateDiagnostic@Base 0.7.0
- dmtxDecodeDestroy@Base 0.7.0
- dmtxDecodeGetCache@Base 0.7.0
- dmtxDecodeGetPixelValue@Base 0.7.0
- dmtxDecodeGetProp@Base 0.7.0
- dmtxDecodeMatrixRegion@Base 0.5.1
- dmtxDecodeMosaicRegion@Base 0.5.1
- dmtxDecodePopulatedArray@Base 0.7.5
- dmtxDecodeSetProp@Base 0.5.2
- dmtxDistanceAlongRay2@Base 0.5.1
- dmtxDistanceFromRay2@Base 0.5.1
- dmtxEncodeCreate@Base 0.7.0
- dmtxEncodeDataMatrix@Base 0.5.1
- dmtxEncodeDataMosaic@Base 0.5.1
- dmtxEncodeDestroy@Base 0.7.0
- dmtxEncodeGetProp@Base 0.7.0
- dmtxEncodeSetProp@Base 0.7.0
- dmtxGetBlockDataSize@Base 0.5.2
- dmtxGetSymbolAttribute@Base 0.5.1
- dmtxImageContainsFloat@Base 0.5.2
- dmtxImageContainsInt@Base 0.5.2
- dmtxImageCreate@Base 0.7.0
- dmtxImageDestroy@Base 0.7.0
- dmtxImageGetByteOffset@Base 0.7.0
- dmtxImageGetPixelValue@Base 0.7.0
- dmtxImageGetProp@Base 0.5.2
- dmtxImageSetChannel@Base 0.7.0
- dmtxImageSetPixelValue@Base 0.7.0
- dmtxImageSetProp@Base 0.5.2
- dmtxMatrix3Copy@Base 0.5.1
- dmtxMatrix3Identity@Base 0.5.1
- dmtxMatrix3LineSkewSide@Base 0.5.1
- dmtxMatrix3LineSkewSideInv@Base 0.5.1
- dmtxMatrix3LineSkewTop@Base 0.5.1
- dmtxMatrix3LineSkewTopInv@Base 0.5.1
- dmtxMatrix3Multiply@Base 0.5.1
- dmtxMatrix3MultiplyBy@Base 0.5.1
- dmtxMatrix3Print@Base 0.5.1
- dmtxMatrix3Rotate@Base 0.5.1
- dmtxMatrix3Scale@Base 0.5.1
- dmtxMatrix3Shear@Base 0.5.1
- dmtxMatrix3Translate@Base 0.5.1
- dmtxMatrix3VMultiply@Base 0.5.1
- dmtxMatrix3VMultiplyBy@Base 0.5.1
- dmtxMessageCreate@Base 0.7.0
- dmtxMessageDestroy@Base 0.7.0
- dmtxPointAlongRay2@Base 0.5.1
- dmtxRay2Intersect@Base 0.5.1
- dmtxRegionCreate@Base 0.7.0
- dmtxRegionDestroy@Base 0.7.0
- dmtxRegionFindNext@Base 0.7.0
- dmtxRegionScanPixel@Base 0.6.0
- dmtxRegionUpdateCorners@Base 0.6.0
- dmtxRegionUpdateXfrms@Base 0.6.0
- dmtxSymbolModuleStatus@Base 0.5.1
- dmtxTimeAdd@Base 0.5.1
- dmtxTimeExceeded@Base 0.5.1
- dmtxTimeNow@Base 0.5.1
- dmtxVector2Add@Base 0.5.1
- dmtxVector2AddTo@Base 0.5.1
- dmtxVector2Cross@Base 0.5.1
- dmtxVector2Dot@Base 0.5.1
- dmtxVector2Mag@Base 0.5.1
- dmtxVector2Norm@Base 0.5.1
- dmtxVector2Scale@Base 0.5.1
- dmtxVector2ScaleBy@Base 0.5.1
- dmtxVector2Sub@Base 0.5.1
- dmtxVector2SubFrom@Base 0.5.1
- dmtxVersion@Base 0.5.1
- getSizeIdxFromSymbolDimension@Base 0.7.5
diff --git a/debian/libdmtx0b.docs b/debian/libdmtx0b.docs
new file mode 100644
index 0000000..0ae67e8
--- /dev/null
+++ b/debian/libdmtx0b.docs
@@ -0,0 +1,6 @@
+AUTHORS
+KNOWNBUG
+NEWS
+README
+README.linux
+TODO
diff --git a/debian/libdmtx0b.install b/debian/libdmtx0b.install
new file mode 100644
index 0000000..ce43bc9
--- /dev/null
+++ b/debian/libdmtx0b.install
@@ -0,0 +1 @@
+usr/lib/*/libdmtx.so.*
diff --git a/debian/libdmtx0b.symbols b/debian/libdmtx0b.symbols
new file mode 100644
index 0000000..9e9a129
--- /dev/null
+++ b/debian/libdmtx0b.symbols
@@ -0,0 +1,81 @@
+libdmtx.so.0 libdmtx0b #MINVER#
+*Build-Depends-Package: libdmtx-dev
+ dmtxByteListBuild@Base 0.7.4
+ dmtxByteListClear@Base 0.7.4
+ dmtxByteListCopy@Base 0.7.4
+ dmtxByteListHasCapacity@Base 0.7.4
+ dmtxByteListInit@Base 0.7.4
+ dmtxByteListPop@Base 0.7.4
+ dmtxByteListPrint@Base 0.7.4
+ dmtxByteListPush@Base 0.7.4
+ dmtxDecodeCreate@Base 0.7.0
+ dmtxDecodeCreateDiagnostic@Base 0.7.0
+ dmtxDecodeDestroy@Base 0.7.0
+ dmtxDecodeGetCache@Base 0.7.0
+ dmtxDecodeGetPixelValue@Base 0.7.0
+ dmtxDecodeGetProp@Base 0.7.0
+ dmtxDecodeMatrixRegion@Base 0.5.1
+ dmtxDecodeMosaicRegion@Base 0.5.1
+ dmtxDecodePopulatedArray@Base 0.7.5
+ dmtxDecodeSetProp@Base 0.5.2
+ dmtxDistanceAlongRay2@Base 0.5.1
+ dmtxDistanceFromRay2@Base 0.5.1
+ dmtxEncodeCreate@Base 0.7.0
+ dmtxEncodeDataMatrix@Base 0.5.1
+ dmtxEncodeDataMosaic@Base 0.5.1
+ dmtxEncodeDestroy@Base 0.7.0
+ dmtxEncodeGetProp@Base 0.7.0
+ dmtxEncodeSetProp@Base 0.7.0
+ dmtxGetBlockDataSize@Base 0.5.2
+ dmtxGetSymbolAttribute@Base 0.5.1
+ dmtxImageContainsFloat@Base 0.5.2
+ dmtxImageContainsInt@Base 0.5.2
+ dmtxImageCreate@Base 0.7.0
+ dmtxImageDestroy@Base 0.7.0
+ dmtxImageGetByteOffset@Base 0.7.0
+ dmtxImageGetPixelValue@Base 0.7.0
+ dmtxImageGetProp@Base 0.5.2
+ dmtxImageSetChannel@Base 0.7.0
+ dmtxImageSetPixelValue@Base 0.7.0
+ dmtxImageSetProp@Base 0.5.2
+ dmtxMatrix3Copy@Base 0.5.1
+ dmtxMatrix3Identity@Base 0.5.1
+ dmtxMatrix3LineSkewSide@Base 0.5.1
+ dmtxMatrix3LineSkewSideInv@Base 0.5.1
+ dmtxMatrix3LineSkewTop@Base 0.5.1
+ dmtxMatrix3LineSkewTopInv@Base 0.5.1
+ dmtxMatrix3Multiply@Base 0.5.1
+ dmtxMatrix3MultiplyBy@Base 0.5.1
+ dmtxMatrix3Print@Base 0.5.1
+ dmtxMatrix3Rotate@Base 0.5.1
+ dmtxMatrix3Scale@Base 0.5.1
+ dmtxMatrix3Shear@Base 0.5.1
+ dmtxMatrix3Translate@Base 0.5.1
+ dmtxMatrix3VMultiply@Base 0.5.1
+ dmtxMatrix3VMultiplyBy@Base 0.5.1
+ dmtxMessageCreate@Base 0.7.0
+ dmtxMessageDestroy@Base 0.7.0
+ dmtxPointAlongRay2@Base 0.5.1
+ dmtxRay2Intersect@Base 0.5.1
+ dmtxRegionCreate@Base 0.7.0
+ dmtxRegionDestroy@Base 0.7.0
+ dmtxRegionFindNext@Base 0.7.0
+ dmtxRegionScanPixel@Base 0.6.0
+ dmtxRegionUpdateCorners@Base 0.6.0
+ dmtxRegionUpdateXfrms@Base 0.6.0
+ dmtxSymbolModuleStatus@Base 0.5.1
+ dmtxTimeAdd@Base 0.5.1
+ dmtxTimeExceeded@Base 0.5.1
+ dmtxTimeNow@Base 0.5.1
+ dmtxVector2Add@Base 0.5.1
+ dmtxVector2AddTo@Base 0.5.1
+ dmtxVector2Cross@Base 0.5.1
+ dmtxVector2Dot@Base 0.5.1
+ dmtxVector2Mag@Base 0.5.1
+ dmtxVector2Norm@Base 0.5.1
+ dmtxVector2Scale@Base 0.5.1
+ dmtxVector2ScaleBy@Base 0.5.1
+ dmtxVector2Sub@Base 0.5.1
+ dmtxVector2SubFrom@Base 0.5.1
+ dmtxVersion@Base 0.5.1
+ getSizeIdxFromSymbolDimension@Base 0.7.5
diff --git a/debian/rules b/debian/rules
index 2d63ba3..011a898 100755
--- a/debian/rules
+++ b/debian/rules
@@ -3,6 +3,6 @@
 export DH_OPTIONS
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 override_dh_installdocs:
-	dh_installdocs --link-doc=libdmtx0a
+	dh_installdocs --link-doc=libdmtx0b
 %:
 	dh $@

Reply via email to