Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 447856 - dev-python/pycairo-1.10.0-r3 fails to build for pypy
Summary: dev-python/pycairo-1.10.0-r3 fails to build for pypy
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-19 17:19 UTC by Alexander E. Patrakov
Modified: 2013-01-05 06:57 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander E. Patrakov 2012-12-19 17:19:49 UTC
I have pypy-1.9 installed. With this, an attempt to emerge pycairo fails.

Reproducible: Always

Steps to Reproduce:
1. PYTHON_TARGETS="python2_7 python3_2 pypy1_9"
2. USE_PYTHON="2.7 3.2 2.7-pypy-1.9" 
3. emerge dev-python/pycairo
Actual Results:  
>>> Emerging (1 of 4) dev-python/pycairo-1.10.0-r3
 * py2cairo-1.10.0.tar.bz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                              [ ok ]
 * pycairo-1.10.0.tar.bz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                               [ ok ]
>>> Unpacking source...
>>> Unpacking py2cairo-1.10.0.tar.bz2 to /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work
>>> Unpacking pycairo-1.10.0.tar.bz2 to /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work
>>> Source unpacked in /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work
>>> Preparing source in /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0 ...
 * Applying pycairo-1.10.0-svg_check.patch ...                                                                               [ ok ]
 * Applying pycairo-1.10.0-xpyb.patch ...                                                                                    [ ok ]
 * Applying py2cairo-1.10.0-ppc-darwin.patch ...                                                                             [ ok ]
 * Applying py2cairo-1.10.0-svg_check.patch ...                                                                              [ ok ]
 * Applying py2cairo-1.10.0-xpyb.patch ...                                                                                   [ ok ]
 * Applying py2cairo-1.10.0-ppc-darwin.patch ...                                                                             [ ok ]
 * Preparation of dev-python/pycairo-1.10.0-r3 with CPython 2.7...
 * Preparation of dev-python/pycairo-1.10.0-r3 with CPython 3.2...
 * Preparation of dev-python/pycairo-1.10.0-r3 with PyPy 1.9 (Python 2.7)...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0 ...
 * Configuration of dev-python/pycairo-1.10.0-r3 with CPython 2.7...
CCFLAGS="-O2 -pipe -fno-strict-aliasing" LINKFLAGS="-Wl,-O1 -Wl,--as-needed" "./waf" --prefix=/usr --libdir=/usr/lib64 --nopyc --nopyo configure
  ./options()
Setting top to                           : /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7 
Setting out to                           : /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7/build_directory 
  ./configure()
Checking for 'gcc' (c compiler)          : ok 
Checking for program python              : /usr/bin/python 
python executable '/usr/bin/python' different from sys.executable '/usr/bin/python2.7'
Checking for python version              : (2, 7, 3, 'final', 0) 
Checking for library python2.7           : yes 
Checking for program python2.7-config    : /usr/bin/python2.7-config 
Checking for header Python.h             : yes 
Checking for program pkg-config          : /usr/bin/pkg-config 
Checking for 'cairo' >= 1.10.0           : yes 
Checking for 'xpyb' >= 1.3               : yes 
Configuration:
PREFIX                                   : /usr
LIBDIR                                   : /usr/lib64
'configure' finished successfully (0.613s)
 * Configuration of dev-python/pycairo-1.10.0-r3 with CPython 3.2...
CCFLAGS="-O2 -pipe" LINKFLAGS="-Wl,-O1 -Wl,--as-needed" "./waf" --prefix=/usr --libdir=/usr/lib64 --nopyc --nopyo configure
  ./options()
Setting top to                           : /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-3.2 
Setting out to                           : /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-3.2/build_directory 
  ./configure()
Checking for 'gcc' (c compiler)          : ok 
Checking for program python              : /usr/bin/python 
python executable '/usr/bin/python' different from sys.executable '/usr/bin/python3.2'
Checking for python version              : (3, 2, 3, 'final', 0) 
Checking for library python3.2 in LIBDIR : yes 
Checking for program python3.2-config    : /usr/bin/python3.2-config 
Checking for header Python.h             : yes 
Checking for program pkg-config          : /usr/bin/pkg-config 
Checking for 'cairo' >= 1.10.0           : yes 
Configuration:
PREFIX                                   : /usr
LIBDIR                                   : /usr/lib64
'configure' finished successfully (0.781s)
 * Configuration of dev-python/pycairo-1.10.0-r3 with PyPy 1.9 (Python 2.7)...
CCFLAGS="-O2 -pipe -fno-strict-aliasing" LINKFLAGS="-Wl,-O1 -Wl,--as-needed" "./waf" --prefix=/usr --libdir=/usr/lib64 --nopyc --nopyo configure
  ./options()
Setting top to                           : /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9 
Setting out to                           : /var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/build_directory 
  ./configure()
Checking for 'gcc' (c compiler)          : ok 
Checking for program python              : /usr/bin/python 
python executable '/usr/bin/python' different from sys.executable '/usr/bin/pypy-c1.9'
Checking for python version              : (2, 7, 2, 'final', 42) 
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Scripting.py", line 93, in waf_entry_point
    run_commands()
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Scripting.py", line 145, in run_commands
    run_command(cmd_name)
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Scripting.py", line 138, in run_command
    ctx.execute()
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Configure.py", line 124, in execute
    super(ConfigurationContext,self).execute()
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Context.py", line 87, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Context.py", line 127, in recurse
    user_function(self)
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/wscript", line 53, in configure
    ctx.check_python_headers()
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Configure.py", line 214, in fun
    return f(*k,**kw)
  File "/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Tools/python.py", line 126, in check_python_headers
    all_flags=dct['LDFLAGS']+' '+dct['LDSHARED']+' '+dct['CFLAGS']
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
 * ERROR: dev-python/pycairo-1.10.0-r3 failed (configure phase):
 *   configure failed
 * 
 * Call stack:
 *     ebuild.sh, line   93:  Called src_configure
 *   environment, line 4887:  Called python_execute_function '-s' 'waf-utils_src_configure' '--nopyc' '--nopyo'
 *   environment, line 3212:  Called waf-utils_src_configure '--nopyc' '--nopyo'
 *   environment, line 5457:  Called die
 * The specific snippet of code:
 *           CCFLAGS="${CFLAGS}" LINKFLAGS="${LDFLAGS}" "${WAF_BINARY}" "--prefix=${EPREFIX}/usr" "${libdir}" "$@" configure || die "configure failed";
 * 
 * If you need support, post the output of `emerge --info '=dev-python/pycairo-1.10.0-r3'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/pycairo-1.10.0-r3'`.
 * The complete build log is located at '/var/tmp/portage/dev-python/pycairo-1.10.0-r3/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-python/pycairo-1.10.0-r3/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9'
 * S: '/var/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0'


Expected Results:  
No attempt to emerge pycairo for pypy, at all

# emerge --info
Portage 2.1.11.37 (default/linux/amd64/10.0/desktop, gcc-4.6.3, glibc-2.16.0, 3.7.0-gentoo x86_64)
=================================================================
System uname: Linux-3.7.0-gentoo-x86_64-Intel-R-_Core-TM-2_CPU_6420_@_2.13GHz-with-gentoo-2.2
Timestamp of tree: Sat, 15 Dec 2012 06:00:01 +0000
ld GNU ld (GNU Binutils) 2.23.1
app-shells/bash:          4.2_p39-r1
dev-lang/python:          2.7.3-r3, 3.2.3-r2
dev-util/cmake:           2.8.10.2
dev-util/pkgconfig:       0.27.1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.5
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.6.3
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.6 (virtual/os-headers)
sys-libs/glibc:           2.16.0
Repositories: gentoo x86lib32
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="ru_RU.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/x86lib32"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 amr avahi bash-completion berkdb bluetooth bluray bzip2 cairo cdda cddb cdr cjk cli consolekit cracklib crypt cups cxx dbus djvu dri dts dvd dvdr emboss encode exif ffmpeg firefox flac fontconfig fortran gdbm gif gphoto2 gtk gtk3 iconv icu idn introspection ipv6 jack jbig jpeg jpeg2k lcms ldap libnotify lzma mad matroska mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib musepack ncurses nls nptl ogg opengl openmp openrc pam pango pcre pdf png policykit postscript ppds pppd pulseaudio qt3support readline samba scanner sdl session spell sse sse2 sse3 ssl ssse3 startup-notification svg tcpd theora tiff truetype udev udisks unicode upnp upower usb v4l v4l2 vaapi vim-syntax vorbis vp8 wavpack webkit webm webp wxwidgets x264 xattr xcb xface xinerama xml xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DVB_CARDS="tda10046lifeview" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev synaptics mutouch" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2 pypy1_9" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel nouveau radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
USE_PYTHON="2.7 3.2 2.7-pypy-1.9"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

This computer has an insane not-yet-publicly-announced overlay with a multilib-portage workalike. Please take all my reports with a grain of salt, they have higher-than-usual chances to be invalid.
Comment 1 Martin von Gagern 2012-12-31 01:28:45 UTC
Same here.
Comment 2 Ian Delaney (RETIRED) gentoo-dev 2013-01-03 15:38:16 UTC
This is a real oddity.  On first inspection, the finding is something wrong with your systems.  In fact, that does hold.  However, on closer inspection, the problems are doubled. 

"Please take all my reports with a grain of salt"
serves only to muddy the waters.

Firstly, there is something I can't define that is 'wrong' in your systems.
My system effectively emerges the package without issue.

Secondly, pypy's capacity to pass tests has been actually broken by the most recent revbump changes, more like shattered. This finding is one that 'came out in the wash'.  Closing it invalid, at the same time I shall have to restrict pypy from ABIS, its cause, stated above, unrelated to the nature of this filed bug
Comment 3 Alexander E. Patrakov 2013-01-03 16:05:59 UTC
Thanks for confirming that it is a local issue. I will investigate further in a chroot without this overlay.
Comment 4 Ian Delaney (RETIRED) gentoo-dev 2013-01-04 07:51:15 UTC
sure, please post cause if you discover if only for the sake of M. von Gagern
Comment 5 Alexander E. Patrakov 2013-01-05 05:28:30 UTC
Sorry Ian, I have to reopen this.

The difference between the working and the failed cases is that the working case is -r2 and the failing is -r3 with your ABI restriction undone (same results both with and without my overlay, so let's ignore the system with the overlay from now on). And, honestly, I don't understand why it worked at all in the -r2 case. Can you reproduce the failure by unpacking py2cairo manually and running this command?

EPYTHON=pypy-c1.9 ./waf --prefix=/usr --libdir=/usr/lib64 configure

Here is what happens. Waf unpacks itself. Then it somehow imports waflib/Tools/python.py, which contains this code (slightly simplified):

v='prefix SO LDFLAGS LIBDIR LIBPL INCLUDEPY Py_ENABLE_SHARED MACOSX_DEPLOYMENT_TARGET LDSHARED CFLAGS'.split()
lst=conf.get_python_variables(["get_config_var('%s')"%x for x in v],['from distutils.sysconfig import get_config_var'])
dct=dict(zip(v,lst))
all_flags=dct['LDFLAGS']+' '+dct['LDSHARED']+' '+dct['CFLAGS']

The second line forks a separate python process that runs this program:

from distutils.sysconfig import get_config_var
print(repr(get_config_var('prefix')))
print(repr(get_config_var('SO')))
print(repr(get_config_var('LDFLAGS')))
print(repr(get_config_var('LIBDIR')))
print(repr(get_config_var('LIBPL')))
print(repr(get_config_var('INCLUDEPY')))
print(repr(get_config_var('Py_ENABLE_SHARED')))
print(repr(get_config_var('MACOSX_DEPLOYMENT_TARGET')))
print(repr(get_config_var('LDSHARED')))
print(repr(get_config_var('CFLAGS')))

On pypy, distutils.sysconfig is /usr/lib/pypy1.9/lib-python/2.7/distutils/sysconfig.py which imports /usr/lib/pypy1.9/lib-python/2.7/distutils/sysconfig_pypy.py . The implementation of get_config_var is straightforward, and you can see that none of the variables that the test program asks for are defined:

>>>> from distutils.sysconfig import get_config_vars
>>>> get_config_vars()
{'LIBDIR': '/usr/lib64/pypy1.9/lib', 'EXE': '', 'SO': '.pypy-19.so', 'SOABI': ''}

So no wonder that the test program attempted to add None and ' '. The question is, I repeat, how it worked at all in -r2.
Comment 6 Alexander E. Patrakov 2013-01-05 05:34:21 UTC
Removal of the following line from -r3 allows it to build:

WAF_BINARY="./waf"

Indeed, yay for strange buildsystems :(
Comment 7 Alexander E. Patrakov 2013-01-05 06:04:32 UTC
OK, found why it worked (by stracing the whole build process). The tests are different.

With WAF_BINARY="./waf" in place:

print(repr(get_config_var('LDFLAGS')))

Without it:

print(repr(get_config_var('LDFLAGS') or ''))

So something patches the tests without WAF_BINARY and doesn't patch in the other case.
Comment 8 Alexander E. Patrakov 2013-01-05 06:17:20 UTC
The bug is now fully understood. In -r2, waf-1.6.4 from pycairo was used for compiling both pycairo and py2cairo. In -r3, by exporting WAF_BINARY="./waf", you downgraded py2cairo's waf to the buggy version 1.6.3, that's why the failure.

A good-enough fix would be to copy waf from pycairo to py2cairo.
Comment 9 Mike Gilbert gentoo-dev 2013-01-05 06:35:14 UTC
(In reply to comment #8)
> The bug is now fully understood. In -r2, waf-1.6.4 from pycairo was used for
> compiling both pycairo and py2cairo. In -r3, by exporting
> WAF_BINARY="./waf", you downgraded py2cairo's waf to the buggy version
> 1.6.3, that's why the failure.
> 
> A good-enough fix would be to copy waf from pycairo to py2cairo.

Nice detective work.

Another approach would be to replace waf for both packages with the latest compatible version. We could just add https://waf.googlecode.com/files/waf-1.6.11 to SRC_URI and copy it into place in src_prepare.
Comment 10 Mike Gilbert gentoo-dev 2013-01-05 06:39:07 UTC
Actually, installing with pypy doesn't work anyway; waf installs the modules for pypy in /usr/lib/python2.7/site-packages instead of /usr/lib/pypy1.9/site-packages.

 * Installation of dev-python/pycairo-1.10.0-r3 with PyPy 1.9 (Python 2.7)...
"./waf" --destdir="/tmp/portage/dev-python/pycairo-1.10.0-r3/image/" install
  ./options()
Waf: Entering directory `/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/build_directory'                                                                                    
  ./build()
  src/build()
- install /tmp/portage/dev-python/pycairo-1.10.0-r3/image/usr/include/pycairo/pycairo.h (from src/pycairo.h)                                                                                            
+ install /tmp/portage/dev-python/pycairo-1.10.0-r3/image/usr/lib64/python2.7/site-packages/cairo/_cairo.pypy-19.so (from build_directory/src/_cairo.pypy-19.so)                                        
+ install /tmp/portage/dev-python/pycairo-1.10.0-r3/image/usr/lib64/pkgconfig/pycairo.pc (from pycairo.pc)                                                                                              
Waf: Leaving directory `/tmp/portage/dev-python/pycairo-1.10.0-r3/work/pycairo-1.10.0-2.7-pypy-1.9/build_directory'                                                                                     
- install /tmp/portage/dev-python/pycairo-1.10.0-r3/image/usr/lib64/python2.7/site-packages/cairo/__init__.py (from src/__init__.py)                                                                    
'install' finished successfully (0.069s)
Comment 11 Mike Gilbert gentoo-dev 2013-01-05 06:57:09 UTC
Until waf actually supports pypy, nothing we can do here.