Skip to content

Commit

Permalink
wxPython_410: builds and fails at kicad
Browse files Browse the repository at this point in the history
  • Loading branch information
evils committed Jun 17, 2020
1 parent 78e324d commit 101d1e9
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pkgs/applications/science/electronics/kicad/default.nix
Expand Up @@ -33,7 +33,7 @@ let

pythonPackages = python.pkgs;
python = python3;
wxPython = pythonPackages.wxPython_4_0;
wxPython = pythonPackages.wxPython_410;

in
stdenv.mkDerivation rec {
Expand Down
111 changes: 111 additions & 0 deletions pkgs/development/python-modules/wxPython/4.1.nix
@@ -0,0 +1,111 @@
{ lib
, stdenv
, openglSupport ? true

# build time deps
, fetchPypi
, buildPythonPackage
, which
, pkgconfig

# runtime deps
# listed by them
, python
, freeglut
, gstreamer
, wxGTK
, libpng
, libtiff
, libjpeg
, libnotify
, SDL2
, xorg # libxtst, libsm

# not listed by them
, libX11
, pyopengl
, gst-plugins-base
, requests
, doxygen
, cairo
, ncurses
, pango
, pathlib2

, libGLU
}:

buildPythonPackage rec {
pname = "wxPython";
version = "4.1.0";

src = fetchPypi {
inherit pname version;
sha256 = "12x4ci5q7qni4rkfiq6lnpn1fk8b0sfc6dck5wyxkj2sfp5pa91f";
};

# https://github.com/NixOS/nixpkgs/issues/75759
# https://github.com/wxWidgets/Phoenix/issues/1316
doCheck = false;

nativeBuildInputs = [ pkgconfig which doxygen wxGTK ];

buildInputs = [
freeglut
gstreamer
wxGTK.gtk
libpng
libtiff
libjpeg
libnotify
SDL2
xorg.libSM
xorg.libXtst

# not listed by them
gst-plugins-base ncurses
requests libX11
pathlib2

libGLU
]
++ lib.optional openglSupport pyopengl;

hardeningDisable = [ "format" ];

DOXYGEN = "${doxygen}/bin/doxygen";

preConfigure = lib.optionalString (!stdenv.isDarwin) ''
substituteInPlace wx/lib/wxcairo/wx_pycairo.py \
--replace 'cairoLib = None' 'cairoLib = ctypes.CDLL("${cairo}/lib/libcairo.so")'
substituteInPlace wx/lib/wxcairo/wx_pycairo.py \
--replace '_dlls = dict()' '_dlls = {k: ctypes.CDLL(v) for k, v in [
("gdk", "${wxGTK.gtk}/lib/libgtk-x11-3.0.so"),
("pangocairo", "${pango.out}/lib/libpangocairo-1.0.so"),
("appsvc", None)
]}'
# https://github.com/wxWidgets/Phoenix/pull/1584
substituteInPlace build.py --replace "os.environ['PYTHONPATH'] = phoenixDir()" \
"os.environ['PYTHONPATH'] = os.environ['PYTHONPATH'] + os.pathsep + phoenixDir()"
'';

buildPhase = ''
${python.interpreter} build.py -v build
'';

installPhase = ''
${python.interpreter} setup.py install --skip-build --prefix=$out
wrapPythonPrograms
'';

passthru = { inherit wxGTK openglSupport; };

meta = with lib; {
description = "Cross platform GUI toolkit for Python, Phoenix version";
homepage = "http://wxpython.org/";
license = licenses.wxWindows;
maintainers = [ maintainers.evils ];
};

}
6 changes: 6 additions & 0 deletions pkgs/top-level/python-packages.nix
Expand Up @@ -6117,6 +6117,12 @@ in {
wxGTK = pkgs.wxGTK30.override { withGtk2 = false; withWebKit = true; };
};

# named in honour of my thinkpad T410
wxPython_410 = callPackage ../development/python-modules/wxPython/4.1.nix {
inherit (pkgs) pkgconfig;
wxGTK = pkgs.wxGTK31.override { withGtk2 = false; withWebKit = true; };
};

xml2rfc = callPackage ../development/python-modules/xml2rfc { };

xmlschema = callPackage ../development/python-modules/xmlschema { };
Expand Down

0 comments on commit 101d1e9

Please sign in to comment.