[Debichem-devel] Bug#797743: gromacs: ABI transition needed for libstdc++ v5

Simon McVittie smcv at debian.org
Wed Sep 2 08:09:25 UTC 2015


Source: gromacs
Version: 5.0.6-1
Severity: serious
Justification: breaks ABI without a package rename
Tags: sid stretch
User: debian-gcc at 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,
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.

In the case of gromacs, std::string appears in installed headers,
so it seems very likely that a transition is needed.

The transition normally consists of renaming the affected library packages,
adding a v5 suffix (.4v5, etc.). The SONAME should not be changed.
However, gromacs already does not package its shared library according to
Policy §8.1, so it will likely also need a versioned Breaks on
versions of votca-csg that do not depend on a separated shared library.

These follow-up transitions for libstdc++ are not going through exactly
the normal transition procedure, because many entangled transitions are
going on at the same time, and the usual ordered transition procedure
does not scale that far. When all the C++ libraries on which this library
depends have started their transitions in unstable if required, this
library should do the same, closing this bug; the release team will deal
with binNMUs as needed.

Looking at the build-dependencies of gromacs:

* boost started its transition with 1.58
* everything else looks like a C ABI

so I think this is ready to go.

The package is likely to be NMU'd if there is no maintainer response. The
release team have declared a 2 day NMU delay[2] for packages involved
in the libstdc++ transition, in order to get unstable back to a usable
state in a finite time.

Regards,
    S

[1] https://wiki.debian.org/GCC5#libstdc.2B-.2B-_ABI_transition
[2] https://lists.debian.org/debian-devel-announce/2015/08/msg00000.html



More information about the Debichem-devel mailing list