[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: release policy changes

Matthias Klose <doko@cs.tu-berlin.de> 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
Package: mozilla-dev
Architecture: amd64
Source: mozilla
Version: 2:1.7.8-1
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.


Reply to: