python3Packages.wfuzz: fix screenshot plugin on Python 3.13

`pipes` was deprecated in Python 3.11 (PEP 594) and removed in 3.13;
src/wfuzz/plugins/scripts/screenshot.py imports it and fails to load on
3.13 with `No module named 'pipes'`. The module loader catches the
ImportError and silently drops the plugin, so `wfuzz -e scripts` no
longer lists `screenshot`.

Replace `pipes.quote` with `shlex.quote` (the documented stdlib
replacement; identical semantics for the single argument used here).

Reported upstream at xmendez/wfuzz#380.
This commit is contained in:
Bad3r
2026-05-04 22:58:58 +03:00
parent 0135f54023
commit c6606136d7
2 changed files with 32 additions and 0 deletions
@@ -35,6 +35,9 @@ buildPythonPackage (finalAttrs: {
url = "https://github.com/xmendez/wfuzz/commit/f4c028b9ada4c36dabf3bc752f69f6ddc110920f.patch?full_index=1";
hash = "sha256-t7pUMcdFmwAsGUNBRdZr+Jje/yR0yzeGIgeYNEq4hFE=";
})
# replace removed `pipes` stdlib module with `shlex` for Python >= 3.13
# https://github.com/xmendez/wfuzz/issues/380
./python-313-shlex.patch
];
build-system = [ setuptools ];
@@ -0,0 +1,29 @@
Replace removed `pipes` stdlib module with `shlex` in screenshot plugin.
`pipes` was deprecated in Python 3.11 (PEP 594) and removed in 3.13;
`shlex.quote` is the documented stdlib replacement and behaves identically
for the single argument used here.
Reported upstream: https://github.com/xmendez/wfuzz/issues/380
diff --git a/src/wfuzz/plugins/scripts/screenshot.py b/src/wfuzz/plugins/scripts/screenshot.py
--- a/src/wfuzz/plugins/scripts/screenshot.py
+++ b/src/wfuzz/plugins/scripts/screenshot.py
@@ -3,7 +3,7 @@ from wfuzz.externals.moduleman.plugin import moduleman_plugin
import subprocess
import tempfile
-import pipes
+import shlex
import os
import re
@@ -42,7 +42,7 @@ class screenshot(BasePlugin):
subprocess.call(
[
"cutycapt",
- "--url=%s" % pipes.quote(fuzzresult.url),
+ "--url=%s" % shlex.quote(fuzzresult.url),
"--out=%s" % filename,
"--insecure",
"--print-backgrounds=on",