diff --git a/pkgs/development/python-modules/wfuzz/default.nix b/pkgs/development/python-modules/wfuzz/default.nix index 8c46f47ffdaf..ab11125bb379 100644 --- a/pkgs/development/python-modules/wfuzz/default.nix +++ b/pkgs/development/python-modules/wfuzz/default.nix @@ -13,6 +13,7 @@ pythonOlder, setuptools, six, + fetchpatch2, }: buildPythonPackage rec { @@ -29,9 +30,22 @@ buildPythonPackage rec { hash = "sha256-RM6QM/iR00ymg0FBUtaWAtxPHIX4u9U/t5N/UT/T6sc="; }; + patches = [ + # replace use of imp module for Python 3.12 + # https://github.com/xmendez/wfuzz/pull/365 + (fetchpatch2 { + url = "https://github.com/xmendez/wfuzz/commit/f4c028b9ada4c36dabf3bc752f69f6ddc110920f.patch?full_index=1"; + hash = "sha256-t7pUMcdFmwAsGUNBRdZr+Jje/yR0yzeGIgeYNEq4hFE="; + }) + ]; + postPatch = '' substituteInPlace setup.py \ --replace "pyparsing>=2.4*" "pyparsing>=2.4" + + # fix distutils use for Python 3.12 + substituteInPlace src/wfuzz/plugin_api/base.py \ + --replace-fail "from distutils import util" "from setuptools._distutils import util" ''; propagatedBuildInputs = [ @@ -56,6 +70,8 @@ buildPythonPackage rec { # The tests are requiring a local web server "tests/test_acceptance.py" "tests/acceptance/test_saved_filter.py" + # depends on imp module removed from Python 3.12 + "tests/test_moduleman.py" ]; pythonImportsCheck = [ "wfuzz" ];