Re: release policy changes
Matthias Klose <firstname.lastname@example.org> writes:
> How can you tell, for which C++ ABI packages like mozilla-dev and
> festival-dev are built? IMO that is the technical reason you are
> asking for. It doesn't matter if an application or a library is linked
> to libstdc++. Remember that C++ ABI != libstdc++ API. AFAIK packages
> like php4 have such provides as well.
mrvn@frosties:~% apt-cache show mozilla-dev
Depends: mozilla-browser (= 2:1.7.8-1), libnspr-dev (= 2:1.7.8-1), libxt-dev, libc6 (>= 2.3.2.ds1-21), libgcc1 (>= 1:3.4.1-3), libglib2.0-0 (>= 2.6.0), libidl0, libstdc++6 (>= 3.4.3-1)
As you can see clearly from the Depends the package was build against
C ABI from 1:3.4.1-3 and C++ ABI from 3.4.3-1. All dynamic libraries
must have those Depends or they already violate policy. And that
version maps to an uniqe ABI.
Further doesn't the package name for libgcc1 and libstdc++ always
change with abi changes? E.g. libstdc++5 vs. libstdc++6.
Static libraries remain a problem there. But the package providing
mozilla-dev-abi102 or mozilla-dev-abi1002 wouldn't solve the problem
for two reasons:
1. The C++ ABI is determined by the compiler and not the package
unless the package uses gcc-version (which mozilla does actually). The
abi version should be extracted from g++ during build.
2. Build-Depends can't be on virtual packages. That just breaks all
over the place.
So if you want the c++ abi version reflected in the build package then
it must be in the package name itself: mozillac102-dev vs
mozillac1002-dev. But that rather belongs in the mozilla package
itself and not the dev.