git: 159bd857b3f7 - main - deskutils/py-paperless-ngx: Update to 2.17.1
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 01 Aug 2025 18:30:34 UTC
The branch main has been updated by grembo:
URL: https://cgit.FreeBSD.org/ports/commit/?id=159bd857b3f7becc8a3f0d3165836af7c148daa6
commit 159bd857b3f7becc8a3f0d3165836af7c148daa6
Author: Michael Gmelin <grembo@FreeBSD.org>
AuthorDate: 2025-08-01 09:01:00 +0000
Commit: Michael Gmelin <grembo@FreeBSD.org>
CommitDate: 2025-08-01 18:11:57 +0000
deskutils/py-paperless-ngx: Update to 2.17.1
PR: 287939
Co-authored-by: Sebastian <sko@rostwald.de>
---
deskutils/py-paperless-ngx/Makefile | 14 +++----
deskutils/py-paperless-ngx/distinfo | 10 ++---
.../files/patch-src_paperless__mail_mail.py | 20 +++++++++
deskutils/py-paperless-ngx/files/pkg-message.in | 21 ++++++++++
deskutils/py-paperless-ngx/pkg-plist | 47 ++++++++++++++++++++++
5 files changed, 100 insertions(+), 12 deletions(-)
diff --git a/deskutils/py-paperless-ngx/Makefile b/deskutils/py-paperless-ngx/Makefile
index 36609cd699ee..543abc7e87a3 100644
--- a/deskutils/py-paperless-ngx/Makefile
+++ b/deskutils/py-paperless-ngx/Makefile
@@ -1,6 +1,6 @@
PORTNAME= paperless-ngx
-DISTVERSION= 2.16.3
DISTVERSIONPREFIX= v
+DISTVERSION= 2.17.1
CATEGORIES= deskutils python
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/:webui \
GH:gh
@@ -17,9 +17,9 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.6:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bleach>=6.2.0:www/py-bleach@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}concurrent-log-handler>=0.9.19:sysutils/py-concurrent-log-handler@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dateparser>=1.2.1:devel/py-dateparser@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj51-channels-redis>=4.2.1:www/py-dj51-channels-redis@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj51-django-allauth>=65.9.0:www/py-dj51-django-allauth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dateparser>=1.2.2:devel/py-dateparser@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj51-channels-redis>=4.3.0:www/py-dj51-channels-redis@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj51-django-allauth>=65.10.0:www/py-dj51-django-allauth@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj51-django-auditlog>=3.0.0:www/py-dj51-django-auditlog@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj51-django-celery-results>=2.6.0:www/py-dj51-django-celery-results@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj51-django-compression-middleware>=0.5.0:www/py-dj51-django-compression-middleware@${PY_FLAVOR} \
@@ -34,18 +34,18 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.6:devel/py-Jinja2@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}filelock>=3.17.0:sysutils/py-filelock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flower>=2.0.1:www/py-flower@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gotenberg-client>=0.10.0:converters/py-gotenberg-client@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}granian>=2.3.3:www/py-granian@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}granian>=2.5.0:www/py-granian@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}h2>=4.1.0:www/py-h2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}hiredis>=3.0.0:databases/py-hiredis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httptools>=0.6.4:www/py-httptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httpx-oauth>=0.10.1:www/py-httpx-oauth@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}imap-tools>=1.10.0:mail/py-imap-tools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}imap-tools>=1.11.0:mail/py-imap-tools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}inotifyrecursive>=0.3.5_2:devel/py-inotifyrecursive@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}langdetect>=1.0.9:textproc/py-langdetect@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mysqlclient>=2.2.7:databases/py-mysqlclient@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}nltk>=3.8.1:textproc/py-nltk@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ocrmypdf>=16.10.1:textproc/py-ocrmypdf@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pathvalidate>=3.2.3:devel/py-pathvalidate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pathvalidate>=3.3.1:devel/py-pathvalidate@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pdf2image>=1.17.0:graphics/py-pdf2image@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pdftotext>=3.0.0:textproc/py-pdftotext@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.10:databases/py-psycopg2@${PY_FLAVOR} \
diff --git a/deskutils/py-paperless-ngx/distinfo b/deskutils/py-paperless-ngx/distinfo
index ba50a6293da7..65c7da79fb33 100644
--- a/deskutils/py-paperless-ngx/distinfo
+++ b/deskutils/py-paperless-ngx/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1749710100
-SHA256 (paperless-ngx-v2.16.3.tar.xz) = 8d26e989555b35929208b3693ff27e16d0e2eb1db8cbb5630c4766b8be349a00
-SIZE (paperless-ngx-v2.16.3.tar.xz) = 77068608
-SHA256 (paperless-ngx-paperless-ngx-v2.16.3_GH0.tar.gz) = d23ba8f354bc9b199d86fd363cfe1e93901471b4d45b55b804facaee2bc4aee5
-SIZE (paperless-ngx-paperless-ngx-v2.16.3_GH0.tar.gz) = 49816301
+TIMESTAMP = 1751359329
+SHA256 (paperless-ngx-v2.17.1.tar.xz) = b70bd19d4af4e41984b1d5637dd7f032351c0d7eadd4bd2e49ab21579e4ab09a
+SIZE (paperless-ngx-v2.17.1.tar.xz) = 78780336
+SHA256 (paperless-ngx-paperless-ngx-v2.17.1_GH0.tar.gz) = ab6c356a4485c5f3cb6b9c463c4468e9c9eaef538332396dafbcdb2cb63d2b88
+SIZE (paperless-ngx-paperless-ngx-v2.17.1_GH0.tar.gz) = 49844317
diff --git a/deskutils/py-paperless-ngx/files/patch-src_paperless__mail_mail.py b/deskutils/py-paperless-ngx/files/patch-src_paperless__mail_mail.py
new file mode 100644
index 000000000000..948e6f5f4e98
--- /dev/null
+++ b/deskutils/py-paperless-ngx/files/patch-src_paperless__mail_mail.py
@@ -0,0 +1,20 @@
+--- src/paperless_mail/mail.py.orig 2025-06-19 19:07:49 UTC
++++ src/paperless_mail/mail.py
+@@ -29,7 +29,7 @@ from imap_tools import MailBoxUnencrypted
+ from imap_tools import MailMessage
+ from imap_tools import MailMessageFlags
+ from imap_tools import errors
+-from imap_tools.mailbox import MailBoxTls
++from imap_tools.mailbox import MailBoxStartTls
+ from imap_tools.query import LogicOperator
+
+ from documents.data_models import ConsumableDocument
+@@ -419,7 +419,7 @@ def get_mailbox(server, port, security) -> MailBox:
+ if security == MailAccount.ImapSecurity.NONE:
+ mailbox = MailBoxUnencrypted(server, port)
+ elif security == MailAccount.ImapSecurity.STARTTLS:
+- mailbox = MailBoxTls(server, port, ssl_context=ssl_context)
++ mailbox = MailBoxStartTls(server, port, ssl_context=ssl_context)
+ elif security == MailAccount.ImapSecurity.SSL:
+ mailbox = MailBox(server, port, ssl_context=ssl_context)
+ else:
diff --git a/deskutils/py-paperless-ngx/files/pkg-message.in b/deskutils/py-paperless-ngx/files/pkg-message.in
index 2abb73ca7ab0..6f38d15dc3ef 100644
--- a/deskutils/py-paperless-ngx/files/pkg-message.in
+++ b/deskutils/py-paperless-ngx/files/pkg-message.in
@@ -31,4 +31,25 @@ Please modify your %%PREFIX%%/etc/paperless.conf based on
`*NLTK*` settings found in %%PREFIX%%/etc/paperless.conf.sample.
EOM
}
+{ type: upgrade
+ minimum_version: "2.16.0"
+ maximum_version: "2.17.1"
+ message: <<EOM
+WARNING
+
+In versions 2.16.0 - 2.16.3, the interpretation of offset days for
+scheduled workflows was inverted. This has been corrected to restore
+the intuitive, pre-2.16 behavior:
+
+ Positive offsets now trigger workflows after the date
+ Negative offsets trigger workflows before the date
+
+If you configured scheduled workflows in v2.16.x with inverted offsets
+(or adjusted a trigger created in 2.15.x), you must now adjust the
+offset sign to match this corrected logic.
+
+If you did not alter your workflow triggers after upgrading from v2.15,
+no changes are required.
+EOM
+}
]
diff --git a/deskutils/py-paperless-ngx/pkg-plist b/deskutils/py-paperless-ngx/pkg-plist
index 7c0aa1863415..a3aaee6580cb 100644
--- a/deskutils/py-paperless-ngx/pkg-plist
+++ b/deskutils/py-paperless-ngx/pkg-plist
@@ -2023,6 +2023,53 @@ share/man/man7/paperless-ngx.7.gz
%%WWWDIR%%/static/frontend/es-ES/styles.css
%%WWWDIR%%/static/frontend/es-ES/styles.css.br
%%WWWDIR%%/static/frontend/es-ES/styles.css.gz
+%%WWWDIR%%/static/frontend/fa-IR/3rdpartylicenses.txt
+%%WWWDIR%%/static/frontend/fa-IR/3rdpartylicenses.txt.br
+%%WWWDIR%%/static/frontend/fa-IR/3rdpartylicenses.txt.gz
+%%WWWDIR%%/static/frontend/fa-IR/apple-touch-icon.png
+%%WWWDIR%%/static/frontend/fa-IR/assets/document.png
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.min.mjs
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.min.mjs.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.min.mjs.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.worker.min.mjs
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.worker.min.mjs.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.worker.min.mjs.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark-notext.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark-notext.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark-notext.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-notext.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-notext.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-notext.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-white-notext.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-white-notext.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-white-notext.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/favicon.ico
+%%WWWDIR%%/static/frontend/fa-IR/favicon.ico.br
+%%WWWDIR%%/static/frontend/fa-IR/favicon.ico.gz
+%%WWWDIR%%/static/frontend/fa-IR/index.html
+%%WWWDIR%%/static/frontend/fa-IR/index.html.br
+%%WWWDIR%%/static/frontend/fa-IR/index.html.gz
+%%WWWDIR%%/static/frontend/fa-IR/main.js
+%%WWWDIR%%/static/frontend/fa-IR/main.js.br
+%%WWWDIR%%/static/frontend/fa-IR/main.js.gz
+%%WWWDIR%%/static/frontend/fa-IR/manifest.webmanifest
+%%WWWDIR%%/static/frontend/fa-IR/manifest.webmanifest.br
+%%WWWDIR%%/static/frontend/fa-IR/manifest.webmanifest.gz
+%%WWWDIR%%/static/frontend/fa-IR/polyfills.js
+%%WWWDIR%%/static/frontend/fa-IR/polyfills.js.br
+%%WWWDIR%%/static/frontend/fa-IR/polyfills.js.gz
+%%WWWDIR%%/static/frontend/fa-IR/runtime.js
+%%WWWDIR%%/static/frontend/fa-IR/runtime.js.br
+%%WWWDIR%%/static/frontend/fa-IR/runtime.js.gz
+%%WWWDIR%%/static/frontend/fa-IR/styles.css
+%%WWWDIR%%/static/frontend/fa-IR/styles.css.br
+%%WWWDIR%%/static/frontend/fa-IR/styles.css.gz
%%WWWDIR%%/static/frontend/fi-FI/3rdpartylicenses.txt
%%WWWDIR%%/static/frontend/fi-FI/3rdpartylicenses.txt.br
%%WWWDIR%%/static/frontend/fi-FI/3rdpartylicenses.txt.gz