From ef0d40db01c1f1a1295fb50dfde42ac2bf10f11b Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 25 Apr 2022 12:50:00 +0200 Subject: [PATCH] python3Packages.vivisect: unbreak on python3 Relaxes the cxxfilt constraint to fix the build. Implements extras handling for the GUI and create a toplevel attribute that enables it. Fixes: #138272 --- .../python-modules/vivisect/default.nix | 30 +++++++++++++++++-- pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 4 ++- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/vivisect/default.nix b/pkgs/development/python-modules/vivisect/default.nix index ddf6ce54b25..8eddde2b65b 100644 --- a/pkgs/development/python-modules/vivisect/default.nix +++ b/pkgs/development/python-modules/vivisect/default.nix @@ -2,32 +2,56 @@ , buildPythonPackage , isPy3k , fetchPypi +, wrapQtAppsHook + +# propagates , pyasn1 , pyasn1-modules , cxxfilt , msgpack , pycparser + +# extras: gui +, pyqt5 +, pyqtwebengine + +# knobs +, withGui ? false }: + buildPythonPackage rec { pname = "vivisect"; version = "1.0.7"; - disabled = isPy3k; src = fetchPypi { inherit pname version; sha256 = "727a27ac1eb95d5a41f4430f6912e79940525551314fe68a2811fc9d51eaf2e9"; }; + postPatch = '' + substituteInPlace setup.py \ + --replace 'cxxfilt>=0.2.1,<0.3.0' 'cxxfilt' + ''; + + nativeBuildInputs = [ + wrapQtAppsHook + ]; + propagatedBuildInputs = [ pyasn1 pyasn1-modules cxxfilt msgpack pycparser + ] ++ lib.optionals (withGui) passthru.extras-require.gui; + + passthru.extras-require.gui = [ + pyqt5 + pyqtwebengine ]; - preBuild = '' - sed "s@==.*'@'@" -i setup.py + postFixup = '' + wrapQtApp $out/bin/vivbin ''; # requires another repo for test files diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f83e19e12c8..9ba7dbc4417 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -34664,6 +34664,8 @@ with pkgs; vivid = callPackage ../tools/misc/vivid { }; + vivisect = with python3Packages; toPythonApplication (vivisect.override { withGui = true; }); + vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { }; vokoscreen-ng = libsForQt5.callPackage ../applications/video/vokoscreen-ng { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a07866054b7..04c8f3cbe31 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10669,7 +10669,9 @@ in { vispy = callPackage ../development/python-modules/vispy { }; - vivisect = callPackage ../development/python-modules/vivisect { }; + vivisect = callPackage ../development/python-modules/vivisect { + inherit (pkgs.libsForQt5) wrapQtAppsHook; + }; viv-utils = callPackage ../development/python-modules/viv-utils { };