diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix index 6a31bfd0280d..611033c5906a 100644 --- a/pkgs/applications/graphics/hydrus/default.nix +++ b/pkgs/applications/graphics/hydrus/default.nix @@ -6,18 +6,20 @@ , enableSwftools ? false , swftools , python3Packages +, qtbase +, qtcharts }: python3Packages.buildPythonPackage rec { pname = "hydrus"; - version = "503"; + version = "519"; format = "other"; src = fetchFromGitHub { owner = "hydrusnetwork"; repo = "hydrus"; rev = "refs/tags/v${version}"; - hash = "sha256-nJn5EphbmVYAAOisV3fym/nHlJl/aPZ2Iyp+Z2/N3Jc="; + hash = "sha256-q5pPRMBuB6hqDGuOl0kMyXjMKze5dw+3kdmA2FPJTPU="; }; nativeBuildInputs = [ @@ -25,6 +27,11 @@ python3Packages.buildPythonPackage rec { python3Packages.mkdocs-material ]; + buildInputs = [ + qtbase + qtcharts + ]; + propagatedBuildInputs = with python3Packages; [ beautifulsoup4 cbor2 @@ -37,8 +44,10 @@ python3Packages.buildPythonPackage rec { opencv4 pillow psutil + pympler pyopenssl - pyside2 + pyqt6 + pyqt6-charts pysocks python-dateutil python3Packages.mpv @@ -82,6 +91,7 @@ python3Packages.buildPythonPackage rec { -e TestHydrusServer \ -e TestHydrusSessions \ -e TestServer \ + -e TestClientMetadataMigration \ ''; outputs = [ "out" "doc" ]; diff --git a/pkgs/development/python-modules/pyqt6-charts.nix b/pkgs/development/python-modules/pyqt6-charts.nix new file mode 100644 index 000000000000..66df9bbf0fbc --- /dev/null +++ b/pkgs/development/python-modules/pyqt6-charts.nix @@ -0,0 +1,77 @@ +{ lib +, buildPythonPackage +, fetchPypi +, sip +, pyqt-builder +, qt6Packages +, pythonOlder +, pyqt6 +, python +}: + +buildPythonPackage rec { + pname = "PyQt6_Charts"; + version = "6.4.0"; + format = "pyproject"; + + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-tG6xKEBRagOcNvcLs/hCMzf5j94ma1gs6tQEm3e0P2Q="; + }; + + # fix include path and increase verbosity + postPatch = '' + sed -i \ + '/\[tool.sip.project\]/a\ + verbose = true\ + sip-include-dirs = [\"${pyqt6}/${python.sitePackages}/PyQt6/bindings\"]' \ + pyproject.toml + ''; + + enableParallelBuilding = true; + # HACK: paralellize compilation of make calls within pyqt's setup.py + # pkgs/stdenv/generic/setup.sh doesn't set this for us because + # make gets called by python code and not its build phase + # format=pyproject means the pip-build-hook hook gets used to build this project + # pkgs/development/interpreters/python/hooks/pip-build-hook.sh + # does not use the enableParallelBuilding flag + preBuild = '' + export MAKEFLAGS+="''${enableParallelBuilding:+-j$NIX_BUILD_CORES}" + ''; + + dontWrapQtApps = true; + + nativeBuildInputs = with qt6Packages; [ + qtcharts + sip + qmake + pyqt-builder + ]; + + buildInputs = with qt6Packages; [ + qtcharts + ]; + + propagatedBuildInputs = [ + pyqt6 + ]; + + dontConfigure = true; + + # has no tests + doCheck = false; + + pythonImportsCheck = [ + "PyQt6.QtCharts" + ]; + + meta = with lib; { + description = "Python bindings for Qt6 QtCharts"; + homepage = "https://riverbankcomputing.com/"; + license = licenses.gpl3Only; + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ dandellion ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0c8f45628658..1928fdf2df8d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30181,7 +30181,7 @@ with pkgs; hydrus = python3Packages.callPackage ../applications/graphics/hydrus { inherit miniupnpc swftools; - inherit (qt5) wrapQtAppsHook; + inherit (qt6) wrapQtAppsHook qtbase qtcharts; }; jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 979731d96349..f607af588cd8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8751,6 +8751,8 @@ self: super: with self; { pyqt6 = callPackage ../development/python-modules/pyqt/6.x.nix { }; + pyqt6-charts = callPackage ../development/python-modules/pyqt6-charts.nix { }; + pyqt6-sip = callPackage ../development/python-modules/pyqt/pyqt6-sip.nix { }; pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine.nix { };