Merge pull request #230545 from panicgh/pyqt5-modules

python3Packages.{pyqt3d,pyqtchart,pyqtdatavisualization}: init; python3Packages.pyqt5: add options

authored by

Sandro and committed by
GitHub
0dc60955 00b9bdc6

+254
+8
pkgs/development/python-modules/pyqt/5.x.nix
··· 17 17 , withWebKit ? false 18 18 , withWebSockets ? false 19 19 , withLocation ? false 20 + , withSerialPort ? false 21 + , withTools ? false 20 22 }: 21 23 22 24 buildPythonPackage rec { ··· 86 88 ++ lib.optional withWebKit qtwebkit 87 89 ++ lib.optional withWebSockets qtwebsockets 88 90 ++ lib.optional withLocation qtlocation 91 + ++ lib.optional withSerialPort qtserialport 92 + ++ lib.optional withTools qttools 89 93 ; 90 94 91 95 buildInputs = with libsForQt5; [ ··· 99 103 ++ lib.optional withWebKit qtwebkit 100 104 ++ lib.optional withWebSockets qtwebsockets 101 105 ++ lib.optional withLocation qtlocation 106 + ++ lib.optional withSerialPort qtserialport 107 + ++ lib.optional withTools qttools 102 108 ; 103 109 104 110 propagatedBuildInputs = [ ··· 130 136 ++ lib.optional withMultimedia "PyQt5.QtMultimedia" 131 137 ++ lib.optional withConnectivity "PyQt5.QtBluetooth" 132 138 ++ lib.optional withLocation "PyQt5.QtPositioning" 139 + ++ lib.optional withSerialPort "PyQt5.QtSerialPort" 140 + ++ lib.optional withTools "PyQt5.QtDesigner" 133 141 ; 134 142 135 143 meta = with lib; {
+77
pkgs/development/python-modules/pyqt3d/default.nix
··· 1 + { lib 2 + , stdenv 3 + , buildPythonPackage 4 + , fetchPypi 5 + , pyqt5 6 + , pyqt-builder 7 + , python 8 + , pythonOlder 9 + , qt3d 10 + , setuptools 11 + , sip 12 + }: 13 + 14 + buildPythonPackage rec { 15 + pname = "pyqt3d"; 16 + version = "5.15.6"; 17 + format = "pyproject"; 18 + 19 + disabled = pythonOlder "3.7"; 20 + 21 + src = fetchPypi { 22 + pname = "PyQt3D"; 23 + inherit version; 24 + hash = "sha256-fWxtVc2PwiGzE8mVwPhymjdxFJJvA3f46QEdRevziBw="; 25 + }; 26 + 27 + postPatch = '' 28 + substituteInPlace pyproject.toml \ 29 + --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]" 30 + ''; 31 + 32 + outputs = [ "out" "dev" ]; 33 + 34 + enableParallelBuilding = true; 35 + # HACK: paralellize compilation of make calls within pyqt's setup.py 36 + # pkgs/stdenv/generic/setup.sh doesn't set this for us because 37 + # make gets called by python code and not its build phase 38 + # format=pyproject means the pip-build-hook hook gets used to build this project 39 + # pkgs/development/interpreters/python/hooks/pip-build-hook.sh 40 + # does not use the enableParallelBuilding flag 41 + preBuild = '' 42 + export MAKEFLAGS+="''${enableParallelBuilding:+-j$NIX_BUILD_CORES}" 43 + ''; 44 + 45 + dontWrapQtApps = true; 46 + 47 + nativeBuildInputs = [ 48 + sip 49 + qt3d 50 + setuptools 51 + pyqt-builder 52 + ]; 53 + 54 + buildInputs = [ 55 + qt3d 56 + ]; 57 + 58 + propagatedBuildInputs = [ 59 + pyqt5 60 + ]; 61 + 62 + dontConfigure = true; 63 + 64 + # has no tests 65 + doCheck = false; 66 + 67 + pythonImportsCheck = [ 68 + "PyQt5.Qt3DCore" 69 + ]; 70 + 71 + meta = with lib; { 72 + description = "Python bindings for the Qt 3D framework"; 73 + homepage = "https://riverbankcomputing.com/"; 74 + license = licenses.gpl3Only; 75 + maintainers = with maintainers; [ panicgh ]; 76 + }; 77 + }
+77
pkgs/development/python-modules/pyqtchart/default.nix
··· 1 + { lib 2 + , stdenv 3 + , buildPythonPackage 4 + , fetchPypi 5 + , pyqt5 6 + , pyqt-builder 7 + , python 8 + , pythonOlder 9 + , qtcharts 10 + , setuptools 11 + , sip 12 + }: 13 + 14 + buildPythonPackage rec { 15 + pname = "pyqtchart"; 16 + version = "5.15.6"; 17 + format = "pyproject"; 18 + 19 + disabled = pythonOlder "3.7"; 20 + 21 + src = fetchPypi { 22 + pname = "PyQtChart"; 23 + inherit version; 24 + hash = "sha256-JpF5b+kqKUphdZKlxcNeeF3JH3dZ3vnrItp532N2Izk="; 25 + }; 26 + 27 + postPatch = '' 28 + substituteInPlace pyproject.toml \ 29 + --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]" 30 + ''; 31 + 32 + outputs = [ "out" "dev" ]; 33 + 34 + enableParallelBuilding = true; 35 + # HACK: paralellize compilation of make calls within pyqt's setup.py 36 + # pkgs/stdenv/generic/setup.sh doesn't set this for us because 37 + # make gets called by python code and not its build phase 38 + # format=pyproject means the pip-build-hook hook gets used to build this project 39 + # pkgs/development/interpreters/python/hooks/pip-build-hook.sh 40 + # does not use the enableParallelBuilding flag 41 + preBuild = '' 42 + export MAKEFLAGS+="''${enableParallelBuilding:+-j$NIX_BUILD_CORES}" 43 + ''; 44 + 45 + dontWrapQtApps = true; 46 + 47 + nativeBuildInputs = [ 48 + sip 49 + qtcharts 50 + setuptools 51 + pyqt-builder 52 + ]; 53 + 54 + buildInputs = [ 55 + qtcharts 56 + ]; 57 + 58 + propagatedBuildInputs = [ 59 + pyqt5 60 + ]; 61 + 62 + dontConfigure = true; 63 + 64 + # has no tests 65 + doCheck = false; 66 + 67 + pythonImportsCheck = [ 68 + "PyQt5.QtChart" 69 + ]; 70 + 71 + meta = with lib; { 72 + description = "Python bindings for the Qt Charts library"; 73 + homepage = "https://riverbankcomputing.com/"; 74 + license = licenses.gpl3Only; 75 + maintainers = with maintainers; [ panicgh ]; 76 + }; 77 + }
+77
pkgs/development/python-modules/pyqtdatavisualization/default.nix
··· 1 + { lib 2 + , stdenv 3 + , buildPythonPackage 4 + , fetchPypi 5 + , pyqt5 6 + , pyqt-builder 7 + , python 8 + , pythonOlder 9 + , qtdatavis3d 10 + , setuptools 11 + , sip 12 + }: 13 + 14 + buildPythonPackage rec { 15 + pname = "pyqtdatavisualization"; 16 + version = "5.15.5"; 17 + format = "pyproject"; 18 + 19 + disabled = pythonOlder "3.7"; 20 + 21 + src = fetchPypi { 22 + pname = "PyQtDataVisualization"; 23 + inherit version; 24 + hash = "sha256-iSf496pwhX7wDFHj379vg92fOFX0FuDVMVknYcu53H8="; 25 + }; 26 + 27 + postPatch = '' 28 + substituteInPlace pyproject.toml \ 29 + --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]" 30 + ''; 31 + 32 + outputs = [ "out" "dev" ]; 33 + 34 + enableParallelBuilding = true; 35 + # HACK: paralellize compilation of make calls within pyqt's setup.py 36 + # pkgs/stdenv/generic/setup.sh doesn't set this for us because 37 + # make gets called by python code and not its build phase 38 + # format=pyproject means the pip-build-hook hook gets used to build this project 39 + # pkgs/development/interpreters/python/hooks/pip-build-hook.sh 40 + # does not use the enableParallelBuilding flag 41 + preBuild = '' 42 + export MAKEFLAGS+="''${enableParallelBuilding:+-j$NIX_BUILD_CORES}" 43 + ''; 44 + 45 + dontWrapQtApps = true; 46 + 47 + nativeBuildInputs = [ 48 + sip 49 + qtdatavis3d 50 + setuptools 51 + pyqt-builder 52 + ]; 53 + 54 + buildInputs = [ 55 + qtdatavis3d 56 + ]; 57 + 58 + propagatedBuildInputs = [ 59 + pyqt5 60 + ]; 61 + 62 + dontConfigure = true; 63 + 64 + # has no tests 65 + doCheck = false; 66 + 67 + pythonImportsCheck = [ 68 + "PyQt5.QtDataVisualization" 69 + ]; 70 + 71 + meta = with lib; { 72 + description = "Python bindings for the Qt Data Visualization library"; 73 + homepage = "https://riverbankcomputing.com/"; 74 + license = licenses.gpl3Only; 75 + maintainers = with maintainers; [ panicgh ]; 76 + }; 77 + }
+15
pkgs/top-level/python-packages.nix
··· 9203 9203 9204 9204 pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine.nix { }; 9205 9205 9206 + pyqt3d = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt3d { 9207 + inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder 9208 + setuptools sip; 9209 + }; 9210 + 9211 + pyqtchart = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtchart { 9212 + inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder 9213 + setuptools sip; 9214 + }; 9215 + 9216 + pyqtdatavisualization = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtdatavisualization { 9217 + inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder 9218 + setuptools sip; 9219 + }; 9220 + 9206 9221 pyqtgraph = callPackage ../development/python-modules/pyqtgraph { }; 9207 9222 9208 9223 pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {