{ lib , stdenv , buildPythonPackage , setuptools , pythonAtLeast , fetchPypi , substituteAll # build , autoPatchelfHook , attrdict , doxygen , pkg-config , python , sip , which # runtime , cairo , gst_all_1 , gtk3 , libGL , libGLU , libSM , libXinerama , libXtst , libXxf86vm , libglvnd , mesa , pango , SDL , webkitgtk , wxGTK , xorgproto # propagates , numpy , pillow , six }: buildPythonPackage rec { pname = "wxpython"; version = "4.2.1"; format = "other"; disabled = pythonAtLeast "3.12"; src = fetchPypi { pname = "wxPython"; inherit version; hash = "sha256-5I3iEaZga/By7D+neHcda3RsALf0uXDrWHKN31bRPVw="; }; patches = [ (substituteAll { src = ./4.2-ctypes.patch; libgdk = "${gtk3.out}/lib/libgdk-3.so"; libpangocairo = "${pango}/lib/libpangocairo-1.0.so"; libcairo = "${cairo}/lib/libcairo.so"; }) ]; nativeBuildInputs = [ attrdict pkg-config setuptools SDL sip which wxGTK ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ wxGTK SDL ] ++ lib.optionals stdenv.isLinux [ gst_all_1.gst-plugins-base gst_all_1.gstreamer libGL libGLU libSM libXinerama libXtst libXxf86vm libglvnd mesa webkitgtk xorgproto ]; propagatedBuildInputs = [ numpy pillow six ]; buildPhase = '' runHook preBuild export DOXYGEN=${doxygen}/bin/doxygen export PATH="${wxGTK}/bin:$PATH" export SDL_CONFIG="${SDL.dev}/bin/sdl-config" ${python.pythonOnBuildForHost.interpreter} build.py -v --use_syswx dox etg sip --nodoc build_py runHook postBuild ''; installPhase = '' runHook preInstall ${python.pythonOnBuildForHost.interpreter} setup.py install --skip-build --prefix=$out wrapPythonPrograms runHook postInstall ''; checkPhase = '' runHook preCheck ${python.interpreter} build.py -v test runHook postCheck ''; meta = with lib; { changelog = "https://github.com/wxWidgets/Phoenix/blob/wxPython-${version}/CHANGES.rst"; description = "Cross platform GUI toolkit for Python, Phoenix version"; homepage = "http://wxpython.org/"; license = licenses.wxWindows; maintainers = with maintainers; [ hexa ]; }; }