1{ stdenv, fetchurl, pythonPackages, qt4, pkgconfig, lndir, dbus_libs, makeWrapper }: 2 3let 4 version = "4.12"; 5 inherit (pythonPackages) buildPythonPackage python dbus-python sip; 6in buildPythonPackage { 7 name = "PyQt-x11-gpl-${version}"; 8 format = "other"; 9 10 src = fetchurl { 11 url = "mirror://sourceforge/pyqt/PyQt4_gpl_x11-${version}.tar.gz"; 12 sha256 = "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w"; 13 }; 14 15 configurePhase = '' 16 mkdir -p $out 17 lndir ${dbus-python} $out 18 rm -rf "$out/nix-support" 19 20 export PYTHONPATH=$PYTHONPATH:$out/lib/${python.libPrefix}/site-packages 21 ${stdenv.lib.optionalString stdenv.isDarwin '' 22 export QMAKESPEC="unsupported/macx-clang-libc++" # macOS target after bootstrapping phase \ 23 ''} 24 25 substituteInPlace configure.py \ 26 --replace 'install_dir=pydbusmoddir' "install_dir='$out/lib/${python.libPrefix}/site-packages/dbus/mainloop'" \ 27 ${stdenv.lib.optionalString stdenv.isDarwin '' 28 --replace "qt_macx_spec = 'macx-g++'" "qt_macx_spec = 'unsupported/macx-clang-libc++'" # for bootstrapping phase \ 29 ''} 30 31 configureFlagsArray=( \ 32 --confirm-license --bindir $out/bin \ 33 --destdir $out/${python.sitePackages} \ 34 --plugin-destdir $out/lib/qt4/plugins --sipdir $out/share/sip/PyQt4 \ 35 --dbus=${dbus-python}/include/dbus-1.0 --verbose) 36 37 ${python.executable} configure.py $configureFlags "''${configureFlagsArray[@]}" 38 ''; 39 40 buildInputs = [ pkgconfig makeWrapper qt4 lndir dbus_libs ]; 41 42 propagatedBuildInputs = [ sip ]; 43 44 postInstall = '' 45 for i in $out/bin/*; do 46 wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH" 47 done 48 ''; 49 50 enableParallelBuilding = true; 51 52 passthru = { 53 qt = qt4; 54 }; 55 56 meta = { 57 description = "Python bindings for Qt"; 58 license = "GPL"; 59 homepage = http://www.riverbankcomputing.co.uk; 60 maintainers = [ stdenv.lib.maintainers.sander ]; 61 platforms = stdenv.lib.platforms.mesaPlatforms; 62 }; 63}