From c43b6f4908184263e92ee526ac2091ec28712880 Mon Sep 17 00:00:00 2001
From: mreid-tt <943378+mreid-tt@users.noreply.github.com>
Date: Mon, 27 Jan 2025 16:52:25 -0400
Subject: [PATCH] SABnzbd: Migrate to Python 3.12
---
spk/sabnzbd/Makefile | 6 +--
spk/sabnzbd/src/requirements-crossenv.txt | 5 ++-
spk/sabnzbd/src/requirements-pure.txt | 50 ++++++++++++-----------
spk/sabnzbd/src/service-setup.sh | 2 +-
4 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/spk/sabnzbd/Makefile b/spk/sabnzbd/Makefile
index c0035e626b5..0703ebac0f3 100644
--- a/spk/sabnzbd/Makefile
+++ b/spk/sabnzbd/Makefile
@@ -1,9 +1,9 @@
SPK_NAME = sabnzbd
SPK_VERS = 4.4.1
-SPK_REV = 73
+SPK_REV = 74
SPK_ICON = src/sabnzbd.png
-PYTHON_PACKAGE = python311
+PYTHON_PACKAGE = python312
DEPENDS = cross/ionice cross/coreutils cross/par2cmdline-turbo cross/7zz cross/sabnzbd
OPTIONAL_DEPENDS = cross/unrar7 cross/unrar
@@ -23,7 +23,7 @@ DESCRIPTION_FRE = SABnzbd rend Usenet aussi simple et automatisé que possible.
DESCRIPTION_SPN = SABnzbd hace que Usenet sea lo más simple posible, automatizando todo lo que se puede. Todo lo que tienes que hacer es agregar un archivo .nzb. SABnzbd empieza desde ahí. Tus archivos serán automáticamente descargados, verificados, reparados, descomprimidos y archivados.
DISPLAY_NAME = SABnzbd
STARTABLE = yes
-CHANGELOG = "1. Update SABnzbd to 4.4.1.
2. Replace 7za by 7zz v24.09.
3. Update unrar to v7.1.2 (DSM 7 only).
4. Update par2cmdline-turbo to v1.2.0."
+CHANGELOG = "1. Update SABnzbd to 4.4.1.
2. Replace 7za by 7zz v24.09.
3. Update unrar to v7.1.2 (DSM 7 only).
4. Update par2cmdline-turbo to v1.2.0.
5. Update to Python 3.12."
HOMEPAGE = https://sabnzbd.org
LICENSE = GPL
diff --git a/spk/sabnzbd/src/requirements-crossenv.txt b/spk/sabnzbd/src/requirements-crossenv.txt
index ed657b294ae..5ac6a8bb52c 100644
--- a/spk/sabnzbd/src/requirements-crossenv.txt
+++ b/spk/sabnzbd/src/requirements-crossenv.txt
@@ -1,9 +1,10 @@
# cross-compiled wheels
cffi==1.17.1
+#cryptography
CT3==3.4.0
+orjson==3.10.15
sabctools==8.2.5
-orjson==3.10.12
# AppRise/Requests Requirements
+charset_normalizer==3.4.1
PyYAML==6.0.2
-charset_normalizer==3.4.0
diff --git a/spk/sabnzbd/src/requirements-pure.txt b/spk/sabnzbd/src/requirements-pure.txt
index 43b0fd70a08..2f8e413dacb 100644
--- a/spk/sabnzbd/src/requirements-pure.txt
+++ b/spk/sabnzbd/src/requirements-pure.txt
@@ -1,39 +1,43 @@
# Wheels that absolutely needs
# to be managed as pure-python
-pycparser==2.22
-feedparser==6.0.11
-configobj==5.0.9
+babelfish==0.6.1
+chardet==5.2.0
cheroot==10.0.1
-cherrypy==18.10.0
-jaraco.functools==4.1.0
-jaraco.collections==5.0.0
-jaraco.text==3.8.1 # Newer version introduces irrelevant extra dependencies
+CherryPy==18.10.0
+configobj==5.0.9
+feedparser==6.0.11
+guessit==3.8.0
jaraco.classes==3.4.0
+jaraco.collections==5.0.0
jaraco.context==4.3.0
-more-itertools==10.4.0
-zc.lockfile==3.0.post1
-python-dateutil==2.9.0.post0
-tempora==5.7.0
-pytz==2024.2
-sgmllib3k==1.0.0
+jaraco.functools==4.1.0
+jaraco.text==3.8.1 # Newer version introduces irrelevant extra dependencies
+more_itertools==10.6.0
portend==3.2.0
-chardet==5.2.0
-PySocks==1.7.1
puremagic==1.28
-guessit==3.8.0
-babelfish==0.6.1
+pycparser==2.22
+PySocks==1.7.1
+python_dateutil==2.9.0.post0
+pytz==2024.2
rebulk==3.2.0
+sgmllib3k==1.0.0
+tempora==5.8.0
+zc.lockfile==3.0.post1
+
+# Linux notifications
+notify2==0.3.1
# Apprise Requirements
-apprise==1.9.0
-requests==2.32.3
-requests-oauthlib==2.0.0
-markdown==3.7
+apprise==1.9.2
+click==8.1.8
+Markdown==3.7
paho-mqtt==1.6.1 # Pinned, newer versions don't work with AppRise yet
+requests_oauthlib==2.0.0
+requests==2.32.3
# Requests Requirements
+blinker==1.9.0
idna==3.10
-urllib3==2.2.3
oauthlib==3.2.2
PyJWT==2.10.1
-blinker==1.9.0
+urllib3==2.3.0
diff --git a/spk/sabnzbd/src/service-setup.sh b/spk/sabnzbd/src/service-setup.sh
index a854319c409..18b582c8514 100644
--- a/spk/sabnzbd/src/service-setup.sh
+++ b/spk/sabnzbd/src/service-setup.sh
@@ -1,4 +1,4 @@
-PYTHON_DIR="/var/packages/python311/target/bin"
+PYTHON_DIR="/var/packages/python312/target/bin"
PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}"
BIN="${SYNOPKG_PKGDEST}/bin"