1{ lib, fetchurl, fetchpatch, python, mkPythonDerivation, pkgconfig, cairo, xlibsWrapper, isPyPy, isPy35 }: 2 3if (isPyPy) then throw "pycairo not supported for interpreter ${python.executable}" else mkPythonDerivation rec { 4 version = "1.10.0"; 5 name = "${python.libPrefix}-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 patch_waf-py3_5 = ./waf-py3_5.patch; 27 28 buildInputs = [ python pkgconfig cairo xlibsWrapper ]; 29 30 configurePhase = '' 31 ( 32 cd $(${python.executable} waf unpack) 33 pwd 34 patch -p1 < ${patch_waf} 35 ${lib.optionalString isPy35 "patch -p1 < ${patch_waf-py3_5}"} 36 ) 37 38 ${python.executable} waf configure --prefix=$out 39 ''; 40 buildPhase = "${python.executable} waf"; 41 installPhase = "${python.executable} waf install"; 42 43 meta.platforms = lib.platforms.linux ++ lib.platforms.darwin; 44}