Bug#791289: snappy: library transition may be needed when GCC 5 is the default
tags 791289 + patch
user release.debian.org@packages.debian.org
usertag 791289 + transition
block 791289 by 790756
reassign 791289 release.debian.org
thanks
On Fri, Jul 03, 2015 at 01:14:23PM +0000, Matthias Klose wrote:
> Package: src:snappy
> Version: 1.1.2-4
> Severity: important
> Tags: sid stretch
> User: debian-gcc@lists.debian.org
> Usertags: libstdc++-cxx11
>
> Background [1]: libstdc++6 introduces a new ABI to conform to the
> C++11 standard, but keeps the old ABI to not break existing binaries.
> Packages which are built with g++-5 from experimental (not the one
> from testing/unstable) are using the new ABI. Libraries built from
> this source package export some of the new __cxx11 or B5cxx11 symbols,
> and dropping other symbols. If these symbols are part of the API of
> the library, then this rebuild with g++-5 will trigger a transition
> for the library.
>
> What is needed:
>
> - Rebuild the library using g++/g++-5 from experimental. Note that
> most likely all C++ libraries within the build dependencies need
> a rebuild too. You can find the log for a rebuild in
> https://people.debian.org/~doko/logs/gcc5-20150701/
> Search for "BEGIN GCC CXX11" in the log.
>
> - Decide if the symbols matching __cxx11 or B5cxx11 are part of the
> library API, and are used by the reverse dependencies of the
> library.
>
> - If there are no symbols matching __cxx11 or B5cxx11 in the symbols
> forming the library API, you should close this issue with a short
> explanation.
>
> - If there are no reverse dependencies, it should be the package
> maintainers decision if a transition is needed. However this might
> break software which is not in the Debian archive, and built
> against these packages.
>
> - If a library transition is needed, please prepare for the change.
> Rename the library package, append "v5" to the name of the package
> (e.g. libfoo2 -> libfoo2v5). Such a change can be avoided, if you
> have a soversion bump and you upload this version instead of the
> renamed package. Prepare a patch and attach it to this issue (mark
> this issue with patch), so that it is possible to NMU such a
> package. We'll probably have more than hundred transitions
> triggered. Then reassign the issue to release.debian.org and
> properly tag it as a transition issue, by sending an email to
> control@bugs.debian.org:
>
> user release.debian.org@packages.debian.org
> usertag <this issue> + transition
> block <this issue> by 790756
> reassign <this issue> release.debian.org
>
> - If unsure if a transition is needed, please tag the issue with help
> to ask for feedback from other Debian developers.
>
> The libstdc++6 transition will be a large one, and it will come with a
> lot of pain. Please help it by preparing the follow-up transitions.
>
> [1] https://wiki.debian.org/GCC5#libstdc.2B-.2B-_ABI_transition
--
Homepage: http://www.sesse.net/
diff -u snappy-1.1.2/debian/changelog snappy-1.1.2/debian/changelog
--- snappy-1.1.2/debian/changelog
+++ snappy-1.1.2/debian/changelog
@@ -1,3 +1,10 @@
+snappy (1.1.2-5) unstable; urgency=medium
+
+ * Change package name to libsnappy1v5 for rebuild with g++-5.0 with the
+ C++11 ABI; conflict with libsnappy1. (Closes: #791289)
+
+ -- Steinar H. Gunderson <sesse@debian.org> Fri, 03 Jul 2015 23:58:01 +0200
+
snappy (1.1.2-4) unstable; urgency=low
* Make package multi-arch capable; patch from Mathieu Malaterre.
diff -u snappy-1.1.2/debian/control snappy-1.1.2/debian/control
--- snappy-1.1.2/debian/control
+++ snappy-1.1.2/debian/control
@@ -10,7 +10,7 @@
Section: libdevel
Architecture: any
Multi-Arch: same
-Depends: libsnappy1 (= ${binary:Version}), ${misc:Depends}
+Depends: libsnappy1v5 (= ${binary:Version}), ${misc:Depends}
Description: fast compression/decompression library (development files)
Snappy is a compression/decompression library. It does not aim for
maximum compression, or compatibility with any other compression
@@ -26,12 +26,13 @@
This package contains the development files required to build programs
against Snappy.
-Package: libsnappy1
+Package: libsnappy1v5
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: libsnappy1
Description: fast compression/decompression library
Snappy is a compression/decompression library. It does not aim for
maximum compression, or compatibility with any other compression
reverted:
--- snappy-1.1.2/debian/libsnappy1.dirs
+++ snappy-1.1.2.orig/debian/libsnappy1.dirs
@@ -1 +0,0 @@
-usr/lib
reverted:
--- snappy-1.1.2/debian/libsnappy1.install
+++ snappy-1.1.2.orig/debian/libsnappy1.install
@@ -1 +0,0 @@
-usr/lib/*/lib*.so.*
only in patch2:
unchanged:
--- snappy-1.1.2.orig/debian/libsnappy1v5.dirs
+++ snappy-1.1.2/debian/libsnappy1v5.dirs
@@ -0,0 +1 @@
+usr/lib
only in patch2:
unchanged:
--- snappy-1.1.2.orig/debian/libsnappy1v5.install
+++ snappy-1.1.2/debian/libsnappy1v5.install
@@ -0,0 +1 @@
+usr/lib/*/lib*.so.*
Reply to: