On 2024/05/03 08:14, Antoine Jacoutot wrote:
> On Tue, Apr 30, 2024 at 08:30:46AM -0600, Jeremy Evans wrote:
> > CVSROOT: /cvs
> > Module name: ports
> > Changes by: [email protected] 2024/04/30 08:30:46
> >
> > Modified files:
> > security/suricata: Makefile distinfo
> >
> > Log message:
> > Update to suricata 7.0.5
> >
> > Fixes CVE-2024-32663 CVE-2024-32664 CVE-2024-32867
> >
> > OK gonzalo@
>
> Making all in qa
> Making all in coccinelle
> Making all in rules
> Making all in doc
> Making all in userguide
> RELEASE_DATE=2024-04-23 sysconfdir=/etc localstatedir=/var version=7.0.5
> /usr/local/bin/sphinx-build -W -b man -d _build/doctrees ../../doc/userguide
> _build/man
> Running Sphinx v7.3.7
>
> Extension error:
> Could not import extension sphinx.builders.linkcheck (exception: cannot
> import name 'JSONDecodeError' from 'simplejson' (unknown location))
We've seen this on a few things using sphinx now (from before the sphinx
updates).
I think it may be related to py-requests picking up and preferring an
installed "py3-simplejson" over the Python built-in json module, but I
can't replicate the problem here.
(IIUC the "simplejson" module evolved into the "json" built-in in Python
3; simplejson used to be faster so some software preferred it for that
reason, but it seems now the only reason to use it is for code that
wants backwards compat with old Python).
requests doesn't want to change this until a major version bump.
simplejson is only listed as a dep for these ports:
mail/mailparser
net/seafile/seafile (though the code no longer uses it)
www/woob
I think it probably makes sense to patch these to use json instead of
simplejson and then remove simplejson.
I've tested mailparser's json functionality with this change and no
problem. I don't really know how to test woob, I have a lot of errors
with the existing version, I managed to get useful data out of some
backends and that didn't change after patching (and upstream already
allows "json" as a fallback more most things anyway, so I don't expect
problems).
Would anyone else like to check these? (maintainers CC'd).
Index: mail/mailparser/Makefile
===================================================================
RCS file: /cvs/ports/mail/mailparser/Makefile,v
diff -u -p -r1.1.1.1 Makefile
--- mail/mailparser/Makefile 18 Apr 2024 09:28:41 -0000 1.1.1.1
+++ mail/mailparser/Makefile 3 May 2024 07:17:17 -0000
@@ -1,6 +1,7 @@
COMMENT = wrapper for 'email' in Python's standard library
MODPY_EGG_VERSION = 3.15.0
+REVISION = 0
DISTNAME = mail-parser-${MODPY_EGG_VERSION}
PKGNAME = mailparser-${MODPY_EGG_VERSION}
@@ -12,8 +13,8 @@ PERMIT_PACKAGE = Yes
MODULES = lang/python
MODPY_PYBUILD = setuptools
MODPY_PI = Yes
+NO_TEST = Yes
-RUN_DEPENDS = devel/py-simplejson${MODPY_FLAVOR} \
- devel/py-six${MODPY_FLAVOR}
+RUN_DEPENDS = devel/py-six${MODPY_FLAVOR}
.include <bsd.port.mk>
Index: mail/mailparser/patches/patch-mailparser_mailparser_py
===================================================================
RCS file: mail/mailparser/patches/patch-mailparser_mailparser_py
diff -N mail/mailparser/patches/patch-mailparser_mailparser_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mail/mailparser/patches/patch-mailparser_mailparser_py 3 May 2024
07:17:17 -0000
@@ -0,0 +1,12 @@
+Index: mailparser/mailparser.py
+--- mailparser/mailparser.py.orig
++++ mailparser/mailparser.py
+@@ -25,7 +25,7 @@ import os
+
+ import ipaddress
+ import six
+-import simplejson as json
++import json
+
+ from .const import (
+ ADDRESSES_HEADERS,
Index: mail/mailparser/patches/patch-mailparser_utils_py
===================================================================
RCS file: mail/mailparser/patches/patch-mailparser_utils_py
diff -N mail/mailparser/patches/patch-mailparser_utils_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mail/mailparser/patches/patch-mailparser_utils_py 3 May 2024 07:17:17
-0000
@@ -0,0 +1,12 @@
+Index: mailparser/utils.py
+--- mailparser/utils.py.orig
++++ mailparser/utils.py
+@@ -33,7 +33,7 @@ import logging
+ import os
+ import random
+ import re
+-import simplejson as json
++import json
+ import string
+ import subprocess
+ import sys
Index: net/seafile/seafile/Makefile
===================================================================
RCS file: /cvs/ports/net/seafile/seafile/Makefile,v
diff -u -p -r1.54 Makefile
--- net/seafile/seafile/Makefile 4 Mar 2024 06:21:15 -0000 1.54
+++ net/seafile/seafile/Makefile 3 May 2024 07:17:17 -0000
@@ -5,6 +5,7 @@ GH_PROJECT = seafile
# this commit is from the "v9.0.5" tag
GH_COMMIT = b5c8e027ad50a1422f27d218c13f82a8f10018d2
DISTNAME = seafile-daemon-9.0.50pl20240228
+REVISION = 0
SHARED_LIBS = seafile 4.0
@@ -17,7 +18,6 @@ WANTLIB += lib/inotify/inotify
MODULES = lang/python
BUILD_DEPENDS = lang/vala
-RUN_DEPENDS = devel/py-simplejson${MODPY_FLAVOR}
LIB_DEPENDS = devel/libinotify \
databases/sqlite3 \
devel/libevent2 \
Index: www/woob/Makefile
===================================================================
RCS file: /cvs/ports/www/woob/Makefile,v
diff -u -p -r1.10 Makefile
--- www/woob/Makefile 3 Mar 2024 08:23:13 -0000 1.10
+++ www/woob/Makefile 3 May 2024 07:17:17 -0000
@@ -1,7 +1,7 @@
COMMENT = web outside of browsers
MODPY_EGG_VERSION = 3.6
-REVISION = 0
+REVISION = 1
DISTNAME = woob-${MODPY_EGG_VERSION}
CATEGORIES = www
@@ -36,7 +36,6 @@ RUN_DEPENDS += textproc/py-lxml${MODPY_F
# unlisted dependencies in woob/ and tools/
# (dependencies for some tools, some features, ...)
RUN_DEPENDS += devel/py-colorama${MODPY_FLAVOR} \
- devel/py-simplejson${MODPY_FLAVOR} \
textproc/py-feedparser${MODPY_FLAVOR} \
textproc/py-pdfminer${MODPY_FLAVOR} \
textproc/py-prettytable${MODPY_FLAVOR} \
Index:
www/woob/patches/patch-contrib_plugin_video_videoobmc_resources_lib_base_woobmc_py
===================================================================
RCS file:
www/woob/patches/patch-contrib_plugin_video_videoobmc_resources_lib_base_woobmc_py
diff -N
www/woob/patches/patch-contrib_plugin_video_videoobmc_resources_lib_base_woobmc_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++
www/woob/patches/patch-contrib_plugin_video_videoobmc_resources_lib_base_woobmc_py
3 May 2024 07:17:17 -0000
@@ -0,0 +1,12 @@
+Index: contrib/plugin.video.videoobmc/resources/lib/base/woobmc.py
+--- contrib/plugin.video.videoobmc/resources/lib/base/woobmc.py.orig
++++ contrib/plugin.video.videoobmc/resources/lib/base/woobmc.py
+@@ -5,7 +5,7 @@ import sys
+ import os
+ import re
+ import subprocess
+-import simplejson as json
++import json
+
+ if hasattr(sys.modules["__main__"], "common_xbmc"):
+ common_xbmc = sys.modules["__main__"].common_xbmc
Index: www/woob/patches/patch-woob_tools_json_py
===================================================================
RCS file: www/woob/patches/patch-woob_tools_json_py
diff -N www/woob/patches/patch-woob_tools_json_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ www/woob/patches/patch-woob_tools_json_py 3 May 2024 07:17:17 -0000
@@ -0,0 +1,20 @@
+Index: woob/tools/json.py
+--- woob/tools/json.py.orig
++++ woob/tools/json.py
+@@ -21,15 +21,7 @@ from datetime import datetime, date, time, timedelta
+
+ __all__ = ['json', 'mini_jsonpath']
+
+-try:
+- # try simplejson first because it is faster
+- # However, note that simplejson has very different behaviors from the
+- # stdlib json module. In particular, it is handling Decimal in a very
+- # peculiar way and is not returning a string for them.
+- import simplejson as json
+-except ImportError:
+- # Python 2.6+ has a module similar to simplejson
+- import json
++import json
+
+ from woob.capabilities.base import BaseObject, NotAvailable, NotLoaded
+