Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Re: unbreak wfuzz
To:
Sebastian Reitenbach <sebastia@openbsd.org>, ports <ports@openbsd.org>
Date:
Thu, 12 Feb 2026 15:39:44 +0100

Download raw body.

Thread
On Thu Feb 12, 2026 at 11:14:44AM +0000, Stuart Henderson wrote:
> - replace "cgi" from standard library, for this use the header parser
> from email.message is a usable alternative. unbreaks with py3.13
> - replace pkg_resources, will be removed in setuptools sometime
> 
> ok?

OK rsadowski

> 
> (alternatively: is this still useful to have?)

I'll play around with it a bit more.

> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/security/wfuzz/Makefile,v
> diff -u -p -r1.10 Makefile
> --- Makefile	17 Jun 2025 12:52:34 -0000	1.10
> +++ Makefile	12 Feb 2026 11:09:12 -0000
> @@ -2,7 +2,7 @@ COMMENT =	web fuzzer
>  
>  MODPY_DISTV =	3.1.0
>  DISTNAME =	wfuzz-${MODPY_DISTV}
> -REVISION =	6
> +REVISION =	7
>  
>  CATEGORIES =	security www
>  
> @@ -13,16 +13,16 @@ MAINTAINER =	Sebastian Reitenbach <sebas
>  # GPLv2
>  PERMIT_PACKAGE =	Yes
>  
> -MODPY_PI =		Yes
> +MODPY_PI =	Yes
>  
> -MODULES =		lang/python
> +MODULES =	lang/python
>  MODPY_PYBUILD =	setuptools
>  
> -RUN_DEPENDS =		devel/py-parsing \
> -			devel/py-six \
> -			net/py-curl \
> -			textproc/py-chardet
> +RUN_DEPENDS =	devel/py-parsing \
> +		devel/py-six \
> +		net/py-curl \
> +		textproc/py-chardet
>  
> -BUILD_DEPENDS =		${RUN_DEPENDS}
> +#BUILD_DEPENDS =	${RUN_DEPENDS}
>  
>  .include <bsd.port.mk>
> Index: patches/patch-src_wfuzz_externals_reqresp_Response_py
> ===================================================================
> RCS file: patches/patch-src_wfuzz_externals_reqresp_Response_py
> diff -N patches/patch-src_wfuzz_externals_reqresp_Response_py
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_wfuzz_externals_reqresp_Response_py	12 Feb 2026 11:09:12 -0000
> @@ -0,0 +1,22 @@
> +suggested replacement for removed API:
> +https://peps.python.org/pep-0594/#cgi
> +
> +Index: src/wfuzz/externals/reqresp/Response.py
> +--- src/wfuzz/externals/reqresp/Response.py.orig
> ++++ src/wfuzz/externals/reqresp/Response.py
> +@@ -1,5 +1,5 @@
> + import re
> +-import cgi
> ++from email.message import Message
> + 
> + from io import BytesIO
> + import gzip
> +@@ -22,7 +22,7 @@ def get_encoding_from_headers(headers):
> +     if not content_type:
> +         return None
> + 
> +-    content_type, params = cgi.parse_header(content_type)
> ++    content_type, params = Message(content_type)
> + 
> +     if "charset" in params:
> +         return params["charset"].strip("'\"")
> Index: patches/patch-src_wfuzz_helpers_file_func_py
> ===================================================================
> RCS file: patches/patch-src_wfuzz_helpers_file_func_py
> diff -N patches/patch-src_wfuzz_helpers_file_func_py
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_wfuzz_helpers_file_func_py	12 Feb 2026 11:09:12 -0000
> @@ -0,0 +1,32 @@
> +pkg_resources will go away
> +
> +Index: src/wfuzz/helpers/file_func.py
> +--- src/wfuzz/helpers/file_func.py.orig
> ++++ src/wfuzz/helpers/file_func.py
> +@@ -1,7 +1,6 @@
> + import os
> + import sys
> + import re
> +-import pkg_resources
> + 
> + from chardet.universaldetector import UniversalDetector
> + import chardet
> +@@ -10,15 +9,9 @@ from ..exception import FuzzExceptInternalError
> + 
> + 
> + def get_filter_help_file():
> +-    FILTER_HELP_FILE = "advanced.rst"
> +-    FILTER_HELP_DEV_FILE = "../../../docs/user/advanced.rst"
> +-
> +-    filter_help_text = None
> +-    try:
> +-        fname = pkg_resources.resource_filename("wfuzz", FILTER_HELP_FILE)
> +-        filter_help_text = open(fname).read()
> +-    except IOError:
> +-        filter_help_text = open(get_path(FILTER_HELP_DEV_FILE)).read()
> ++    ref = importlib_resources.files('wfuzz') / 'advanced.rst'
> ++    with importlib_resources.as_file(ref) as path:
> ++        filter_help_text = open(path).read()
> + 
> +     return filter_help_text
> + 
>