Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 setuptools, 6 pythonAtLeast, 7 fetchPypi, 8 substituteAll, 9 10 # build 11 autoPatchelfHook, 12 attrdict, 13 doxygen, 14 pkg-config, 15 python, 16 sip, 17 which, 18 19 # runtime 20 cairo, 21 gst_all_1, 22 gtk3, 23 libGL, 24 libGLU, 25 libSM, 26 libXinerama, 27 libXtst, 28 libXxf86vm, 29 libglvnd, 30 mesa, 31 pango, 32 SDL, 33 webkitgtk, 34 wxGTK, 35 xorgproto, 36 37 # propagates 38 numpy, 39 pillow, 40 six, 41}: 42 43buildPythonPackage rec { 44 pname = "wxpython"; 45 version = "4.2.1"; 46 format = "other"; 47 disabled = pythonAtLeast "3.12"; 48 49 src = fetchPypi { 50 pname = "wxPython"; 51 inherit version; 52 hash = "sha256-5I3iEaZga/By7D+neHcda3RsALf0uXDrWHKN31bRPVw="; 53 }; 54 55 patches = [ 56 (substituteAll { 57 src = ./4.2-ctypes.patch; 58 libgdk = "${gtk3.out}/lib/libgdk-3.so"; 59 libpangocairo = "${pango}/lib/libpangocairo-1.0.so"; 60 libcairo = "${cairo}/lib/libcairo.so"; 61 }) 62 ]; 63 64 nativeBuildInputs = [ 65 attrdict 66 pkg-config 67 setuptools 68 SDL 69 sip 70 which 71 wxGTK 72 ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; 73 74 buildInputs = 75 [ 76 wxGTK 77 SDL 78 ] 79 ++ lib.optionals stdenv.isLinux [ 80 gst_all_1.gst-plugins-base 81 gst_all_1.gstreamer 82 libGL 83 libGLU 84 libSM 85 libXinerama 86 libXtst 87 libXxf86vm 88 libglvnd 89 mesa 90 webkitgtk 91 xorgproto 92 ]; 93 94 propagatedBuildInputs = [ 95 numpy 96 pillow 97 six 98 ]; 99 100 buildPhase = '' 101 runHook preBuild 102 103 export DOXYGEN=${doxygen}/bin/doxygen 104 export PATH="${wxGTK}/bin:$PATH" 105 export SDL_CONFIG="${SDL.dev}/bin/sdl-config" 106 107 ${python.pythonOnBuildForHost.interpreter} build.py -v --use_syswx dox etg sip --nodoc build_py 108 109 runHook postBuild 110 ''; 111 112 installPhase = '' 113 runHook preInstall 114 115 ${python.pythonOnBuildForHost.interpreter} setup.py install --skip-build --prefix=$out 116 wrapPythonPrograms 117 118 runHook postInstall 119 ''; 120 121 checkPhase = '' 122 runHook preCheck 123 124 ${python.interpreter} build.py -v test 125 126 runHook postCheck 127 ''; 128 129 meta = with lib; { 130 changelog = "https://github.com/wxWidgets/Phoenix/blob/wxPython-${version}/CHANGES.rst"; 131 description = "Cross platform GUI toolkit for Python, Phoenix version"; 132 homepage = "http://wxpython.org/"; 133 license = licenses.wxWindows; 134 maintainers = with maintainers; [ hexa ]; 135 }; 136}