From e2d06ea4f56b88d7b195b012ca6a7d47fcf11f8f Mon Sep 17 00:00:00 2001 From: ghpzin Date: Thu, 25 Jul 2024 21:32:35 +0300 Subject: [PATCH] python3Packages.wfuzz: fix build on Python 3.12 - add patch from upstream PR fixing imp module uses - disable test depending on imp module - replace distutils with setuptools._distutils --- .../development/python-modules/wfuzz/default.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/development/python-modules/wfuzz/default.nix b/pkgs/development/python-modules/wfuzz/default.nix index 8c46f47ffdaf3..ab11125bb379a 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" ];