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

Re: Two questions related to C++ ABI transition


On Fri, Dec 02, 2005 at 01:22:55AM -0600, Ming Hua wrote:

> One package I maintain (libscim8 from scim) is going through the c2->c2a
> C++ ABI transition.  I have two questions about the dependency handling
> in such a transition:

> 1. Raised by my sponsor - Should I add g++ (>= 4.0.2-4) to the
> Build-Depends? I did not do so, and my sponsor asked why not.  The only
> reason I could find was from the previous c102->c2 transition plan [1]:
> "Please don't add build dependencies on g++ (>= 4.0) or build-essential
> (>= 11)", there is no such instruction this time.

> One thing I can think of is that adding g++ (>= 4.0) or (>= 4.0.2-4)
> actually prevent building the package with g++-3.4, although they have
> the same ABI as the g++-4.0.  But that doesn't explain when I shouldn't
> build-depend build-essential (>= 11).  And I agree with my sponsor that
> such dependency avoids accidently building them with wrong ABI.  So can
> somebody explain why such dependency is not desired?

It's not desired because it's unnecessary: all of the buildds have been
updated to use the new toolchain version, and adding this build-dependency
would just make it harder for people to backport your package to a previous
ABI version (hopefully changing the package name, of course).  So to keep
packaging simple, maintainers are encouraged not to add such

> 2. Once the library package is built with the new ABI, should I tighten
> the build-dependency of the application packages that depend on the
> transitioned library?  Tightening the build-dependency will again ensure
> that the package is built with the correct ABI, but it also makes the
> package unbuildable in an old pre-transition environment even with the
> old libraries.  As the plan is to binNMU these application packages, it
> seems a tightened build-dependecy is not urgent after all, but are they
> preferred eventually?

Not preferred at all; again, this complicates backporting of packages for
those who have a reason to do so.  Since your application does not *need*
the new version of the library in order to be built, it helps certain use
cases if you don't use the Build-Depends: field to specify the libraries
that you *want* the package to build with.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon@debian.org                                   http://www.debian.org/

Attachment: signature.asc
Description: Digital signature

Reply to: