On Saturday, Jun 14, 2003, at 18:45 US/Eastern, Matt Zimmerman wrote:
My two questions were:
1) Why did dpkg-buildpackage wind up compiling with the wrong
compiler? Isn't there a C++ transition plan that should
prevent that.
python-apt will, by default, use the default compiler on your system.
Why
would it do anything else?
In a perfect world, somehow the correct gcc would be used (to make sure
C++ ABI problems don't happen). Not sure if we can have that perfect
world or not; see below.
2) Is there are better way to tell Python's building stuff
which compiler to use?
I do not know of a straightforward way.
Guess I should file a wishlist bug.
As far as (1), I ensured that all the build-time dependencies, as
well as
build-essential, were satisfied. According to Policy 2.4.2, it should
work. It didn't.
According to 2.4.2, the package should build correctly. It did.
However,
it didn't run because you had an incompatible version of apt installed.
"If build-time dependencies are specified, it must be possible to build
the package AND PRODUCE WORKING BINARIES.... In particular, this means
that version clauses should be used rigorously in build-time
relationships so that one CANNOT PRODUCE BAD OR INCONSISTENTLY
CONFIGURE PAKAGES when the relationships are properly satisfied."
(Policy 2.4.2, Emphasis added)
2.4.2 says the package has to work, too.
The
dependency system does not have a facility to handle this situation.
That could be. Somehow, the C++ ABI would have to be added to the
Build-Dependency information. Either that, or C++ packages would have
to use a specific C++ ABI compiler, e.g.,
(control)
Build-Depends: c102, ...
(rules)
CXX=g++-c102
I think that might work, but it's far, far too late to fix woody.
However, since there is another ABI change coming up (I think I've
heard there is), maybe it's time to consider it?
[Haven't given this much thought. It should probably only be required
for packages that either contain or link against a C++ library other
than libstdc++.]
It explains that python-apt in testing is broken, and no new version of
python-apt will get into testing until the new apt does, and that won't
happen until its RC bugs are fixed.
Sure. The binaries are broken. The source happens to work just fine
(with some manual hacking to make it build right).