Commit c6606136 authored by Bad3r's avatar Bad3r
Browse files

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.
parent 0135f540
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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 ];
+29 −0
Original line number Diff line number Diff line
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",