From 21f191cddb25206937a0a6d323f70c477f18ba70 Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Mon, 13 Apr 2020 12:32:37 -0400 Subject: [PATCH 1/4] python3Packages.apptools: fix build --- pkgs/development/python-modules/apptools/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/apptools/default.nix b/pkgs/development/python-modules/apptools/default.nix index 9e06abd9a71..47144fc07aa 100644 --- a/pkgs/development/python-modules/apptools/default.nix +++ b/pkgs/development/python-modules/apptools/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchPypi, buildPythonPackage +{ lib, fetchPypi, buildPythonPackage, fetchpatch , configobj, six, traitsui , nose, tables, pandas }: @@ -12,6 +12,13 @@ buildPythonPackage rec { sha256 = "10h52ibhr2aw076pivqxiajr9rpcr1mancg6xlpxzckcm3if02i6"; }; + # PyTables issue; should be merged in next post-4.5.0 release (#117) + patches = [ (fetchpatch { + url = "https://github.com/enthought/apptools/commit/3734289d1a0ebd8513fa67f75288add31ed0113c.patch"; + sha256 = "001012q1ib5cbib3nq1alh9ckzj588bfrywr8brkd1f6y1pgvngk"; + }) + ]; + propagatedBuildInputs = [ configobj six traitsui ]; checkInputs = [ From 5ac182265e8dac3490b397a485f5b4deaeb69e16 Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Mon, 13 Apr 2020 12:33:51 -0400 Subject: [PATCH 2/4] python3Packages.pyface: remove optional wxPython dep --- pkgs/development/python-modules/pyface/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyface/default.nix b/pkgs/development/python-modules/pyface/default.nix index db8b05e8d68..db0ee541e09 100644 --- a/pkgs/development/python-modules/pyface/default.nix +++ b/pkgs/development/python-modules/pyface/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchPypi, buildPythonPackage -, setuptools, six, traits, wxPython +, setuptools, six, traits }: buildPythonPackage rec { @@ -11,7 +11,7 @@ buildPythonPackage rec { sha256 = "1g2g3za64rfffbivlihbf5njrqbv63ln62rv9d8fi1gcrgaw6akw"; }; - propagatedBuildInputs = [ setuptools six traits wxPython ]; + propagatedBuildInputs = [ setuptools six traits ]; doCheck = false; # Needs X server From 2d8f346c7c4fc7ab55b209743517d24e814e3997 Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Mon, 13 Apr 2020 13:48:53 -0400 Subject: [PATCH 3/4] python3Packages.envisage: update and disable for Python 2 - next release will drop support for Python 2 --- .../python-modules/envisage/default.nix | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/envisage/default.nix b/pkgs/development/python-modules/envisage/default.nix index ba3e6a0c636..397e573a252 100644 --- a/pkgs/development/python-modules/envisage/default.nix +++ b/pkgs/development/python-modules/envisage/default.nix @@ -1,15 +1,18 @@ -{ stdenv, fetchPypi, buildPythonPackage +{ lib, fetchPypi, fetchpatch, isPy27 +, buildPythonPackage , traits, apptools -, ipykernel +, python, ipykernel, ipython }: buildPythonPackage rec { pname = "envisage"; - version = "4.7.2"; + version = "4.9.2"; + + disabled = isPy27; src = fetchPypi { inherit pname version; - sha256 = "0jb5nw0w9x97jij0hd3d7kfzcj58r1cqmplmdy56bj11dyc4wyc9"; + sha256 = "1srjmkhnz84nz5jd72vdsnc4fn7dd9jr8nyf3hzk6yx1dsn815gd"; }; propagatedBuildInputs = [ traits apptools ]; @@ -18,16 +21,26 @@ buildPythonPackage rec { export HOME=$PWD/HOME ''; + # fix a test failure; should be merged in next release + patches = [ (fetchpatch { + url = "https://github.com/enthought/envisage/pull/248/commits/7b6d2dd615d5cb7455b200eb8f37e030bbf4df9e.patch"; + sha256 = "0a3dmbpxwsn1bkjcjv9v7b751rcmppj6hc9wcgiayg4l9r2nrvyh"; + }) ]; + checkInputs = [ - ipykernel + ipykernel ipython ]; - doCheck = true; + checkPhase = '' + runHook preCheck + ${python.interpreter} -m unittest + runHook postCheck + ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Framework for building applications whose functionalities can be extended by adding 'plug-ins'"; homepage = "https://github.com/enthought/envisage"; - maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; + maintainers = with lib.maintainers; [ knedlsepp ]; license = licenses.bsdOriginal; }; } From 9b83c440f67d1e77387a99577a845318756a23ff Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Mon, 13 Apr 2020 13:50:19 -0400 Subject: [PATCH 4/4] python3Packages.mayavi: build for Python 3 instead of Python 2 - switch from wxPython to Qt5 --- .../python-modules/mayavi/default.nix | 32 ++++++++++++------- pkgs/top-level/python-packages.nix | 5 ++- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/mayavi/default.nix b/pkgs/development/python-modules/mayavi/default.nix index ffdf9747583..2fd53660907 100644 --- a/pkgs/development/python-modules/mayavi/default.nix +++ b/pkgs/development/python-modules/mayavi/default.nix @@ -1,37 +1,45 @@ -{ stdenv, fetchPypi, buildPythonPackage -, wxPython, pygments, numpy, vtk, traitsui, envisage, apptools -, nose, mock -, isPy3k +{ lib, buildPythonPackage, isPy27, fetchPypi, wrapQtAppsHook +, pyface, pygments, numpy, vtk, traitsui, envisage, apptools, pyqt5 }: buildPythonPackage rec { pname = "mayavi"; version = "4.7.1"; + disabled = isPy27; + src = fetchPypi { inherit pname version; extension = "tar.bz2"; sha256 = "095p7mds6kqqrp7xqv24iygr3mw85rm7x41wb5y4yc3gi1pznldy"; }; - # Discovery of 'vtk' in setuptools is not working properly, due to a missing - # .egg-info in the vtk package. It does however import and run just fine. postPatch = '' + # Discovery of 'vtk' in setuptools is not working properly, due to a missing + # .egg-info in the vtk package. It does however import and run just fine. substituteInPlace mayavi/__init__.py --replace "'vtk'" "" + + # building the docs fails with the usual Qt xcb error, so skip: + substituteInPlace setup.py \ + --replace "build.build.run(self)" "build.build.run(self); return" ''; - propagatedBuildInputs = [ wxPython pygments numpy vtk traitsui envisage apptools ]; + nativeBuildInputs = [ wrapQtAppsHook ]; - checkInputs = [ nose mock ]; - - disabled = isPy3k; # TODO: This would need pyqt5 instead of wxPython + propagatedBuildInputs = [ + pyface pygments numpy vtk traitsui envisage apptools pyqt5 + ]; doCheck = false; # Needs X server - meta = with stdenv.lib; { + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + meta = with lib; { description = "3D visualization of scientific data in Python"; homepage = "https://github.com/enthought/mayavi"; - maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; + maintainers = with maintainers; [ knedlsepp ]; license = licenses.bsdOriginal; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0f16f8c3afd..cb147217fab 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4370,7 +4370,10 @@ in { maya = callPackage ../development/python-modules/maya { }; - mayavi = callPackage ../development/python-modules/mayavi { }; + mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi { + inherit buildPythonPackage isPy27 fetchPypi; + inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5; + }; mccabe = callPackage ../development/python-modules/mccabe { };