1{ stdenv, fetchurl, fetchpatch, python, pkgconfig, cairo, xlibsWrapper, isPyPy }:
2
3if isPyPy then throw "pycairo not supported for interpreter ${python.executable}" else stdenv.mkDerivation rec {
4 version = "1.10.0";
5 name = "pycairo-${version}";
6 src = if python.is_py3k or false
7 then fetchurl {
8 url = "http://cairographics.org/releases/pycairo-${version}.tar.bz2";
9 sha256 = "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s";
10 }
11 else fetchurl {
12 url = "http://cairographics.org/releases/py2cairo-${version}.tar.bz2";
13 sha256 = "0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k";
14 };
15
16 patches = [(fetchpatch {
17 url = http://www.linuxfromscratch.org/patches/blfs/svn/pycairo-1.10.0-waf_unpack-1.patch;
18 sha256 = "1bmrhq2nmhx4l5glvyi59r0hc7w5m56kz41frx7v3dcp8f91p7xd";
19 })];
20
21 patch_waf = fetchpatch {
22 url = http://www.linuxfromscratch.org/patches/blfs/svn/pycairo-1.10.0-waf_python_3_4-1.patch;
23 sha256 = "0xfl1i9dips2nykyg91f5h5r3xpk2hp1js1gq5z0hwjr0in55id4";
24 };
25
26 buildInputs = [ python pkgconfig cairo xlibsWrapper ];
27
28 configurePhase = ''
29 (
30 cd $(${python.executable} waf unpack)
31 pwd
32 patch -p1 < ${patch_waf}
33 )
34
35 ${python.executable} waf configure --prefix=$out
36 '';
37 buildPhase = "${python.executable} waf";
38 installPhase = "${python.executable} waf install";
39}