Red Hat Bugzilla – Bug 475903
env.Append() seems to result in broken Unicode strings
Last modified: 2009-08-08 08:18:54 EDT
Description of problem:
I tried to do a local rawhide mock build of Mapnik to replicate the recent Koji failures, e.g. http://koji.fedoraproject.org/koji/buildinfo?buildID=73723
My local build failed too. It appears that with python-2.6 some of the environment strings for things like CXXFLAGS are broken.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
I did a local rawhide mock build on my F10 machine of the Mapnik src.rpm
I suspect the problem is python-2.6 related so is probably rawhide only.
The build hung at the point of checking for libicuuc. This is the failure point for the koji build.
Looking at the process list shows that the GCC build line is broken:
jburgess 20018 19642 0 23:52 pts/8 00:00:00 rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/mapnik.spec
jburgess 22859 20018 0 23:53 pts/8 00:00:00 /bin/sh -e /var/tmp/rpm-tmp.q9Yml4
jburgess 22865 22859 2 23:53 pts/8 00:00:01 /usr/bin/python /usr/bin/scons PREFIX=/usr THREADING=multi XMLPARSER=libxml2 GDAL_INCLUDES=/usr/include/gdal INTERNAL_LIBAGG=False
jburgess 22972 22865 0 23:53 pts/8 00:00:00 g++ -o .sconf_temp/conftest_8.o -c - D H A V E _ C A I R O - D H A V E _ L I B X M L 2 -Itinyxml-Iinclude -I. -I/usr/include/agg2 -I/usr/include/freetype2 -I/usr/include -I/usr/local/include -I/usr/include/gdal -I/usr/include/cairomm-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/libxml2 .sconf_temp/conftest_8.cpp
The '-' from the string "- D H A V E _ C A I R O" string gets seen by the compiler as a request to build from STDIN. This looks like some bad UTF-16 double byte string conversion.
The SConstruct line set added this flag into the enviroment like:
env = Environment(ENV=os.environ, options=opts)
env.Append(CXXFLAGS = '-DHAVE_CAIRO');
Could it be that the Environment handling of SCons is broken by the unicode string changes in python-2.6?
This looks pertinent:
[ From http://www.scons.org/CHANGES.txt ]
RELEASE 1.1.0.d20081207 - Sun, 07 Dec 2008 19:17:23 -0800
- Fix env.Append() and env.Prepend()'s ability to add a string to
list-like variables like $CCFLAGS under Python 2.6.
- Other Python2.6 portability: don't use "as" (a Python 2.6 keyword).
Don't use the deprecated Exception.message attribute.
Maybe an SCons upgrade is required for rawhide?
Ok, let's wait for 1.2.0 and update then.
(In reply to comment #2)
> Ok, let's wait for 1.2.0 and update then.
Since this was causing broken deps in other packages (such as mapnik) and 1.2.0 is now officially out, I took the liberty of rebuilding scons 1.2.0:
Leaving bug open until confirmed fixed.
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle.
Changing version to '11'.
More information and reason for this action is here:
mapnik is build.
Can someone close this bug? ;-)
Ping Alex, Jon