git: 344b4b0f4459 - main - sysutils/py-salt: 3008.2

From: Alan Somers <asomers_at_FreeBSD.org>
Date: Wed, 09 Sep 2026 19:07:25 UTC
The branch main has been updated by asomers:

URL: https://cgit.FreeBSD.org/ports/commit/?id=344b4b0f44599af946c73208befcc511e643fee5

commit 344b4b0f44599af946c73208befcc511e643fee5
Author:     Alan Somers <asomers@FreeBSD.org>
AuthorDate: 2026-08-17 20:22:21 +0000
Commit:     Alan Somers <asomers@FreeBSD.org>
CommitDate: 2026-09-09 19:07:06 +0000

    sysutils/py-salt: 3008.2
    
    Version 3008.1 version works with Python 3.12+.  However, it lacks many
    states included in Salt 3006, for example ZFS.
    
    Version 3008.2 fixes a regression in the pkg.installed state, though it
    wasn't mentioned in Salt's changelog.
    
    PR:             296290
    Approved by:    krion (maintainer)
    Sponsored by:   ConnectWise
---
 sysutils/py-salt/Makefile                          | 50 ++++++++++++++++------
 sysutils/py-salt/distinfo                          |  8 ++--
 sysutils/py-salt/files/patch-pyproject.toml        | 10 +++++
 sysutils/py-salt/files/patch-requirements_base.txt | 41 ------------------
 .../files/patch-tools_pkg_salt__build__backend.py  | 21 +++++++++
 sysutils/py-salt/pkg-plist                         |  5 ---
 6 files changed, 72 insertions(+), 63 deletions(-)

diff --git a/sysutils/py-salt/Makefile b/sysutils/py-salt/Makefile
index 3c91031c1747..b6aeb77ef3d7 100644
--- a/sysutils/py-salt/Makefile
+++ b/sysutils/py-salt/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	salt
-PORTVERSION=	3006.26
+PORTVERSION=	3008.2
 PORTEPOCH=	1
 CATEGORIES=	sysutils python
 MASTER_SITES=	PYPI
@@ -12,33 +12,61 @@ WWW=		https://pypi.org/project/salt/
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
+PATCH_SITES=    https://github.com/saltstack/salt/pull/
+PATCHFILES+=    69710.patch:-p1
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}looseversion>0:devel/py-looseversion@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}importlib-metadata>0:devel/py-importlib-metadata@${PY_FLAVOR}
+
+
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}markupsafe>0:textproc/py-markupsafe@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}distro>=1.5.0:sysutils/py-distro@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}libcloud>=0.14.0:net/py-libcloud@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}msgpack>=0.3:devel/py-msgpack@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}progressbar>0:misc/py-progressbar@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psutil>=0.3.0:sysutils/py-psutil@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}requests>=1.0.0:www/py-requests@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyyaml>0:devel/py-pyyaml@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}jmespath>0:devel/py-jmespath@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pyinotify>0:devel/py-pyinotify@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}looseversion>0:devel/py-looseversion@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}croniter>0:sysutils/py-croniter@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}frozenlist>0:devel/py-frozenlist@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}timelib>0:devel/py-timelib@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}immutables>0:devel/py-immutables@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}cffi>0:devel/py-cffi@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}tornado>0:www/py-tornado@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}virtualenv>0:devel/py-virtualenv@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}jaraco.text>=4.0.0:devel/py-jaraco.text@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}jaraco.text>=4.0.0:devel/py-jaraco.text@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}gitpython>0:devel/py-gitpython@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}idna>0:dns/py-idna@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}jaraco.functools>0:devel/py-jaraco.functools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}jaraco.context>0:devel/py-jaraco.context@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}more-itertools>0:devel/py-more-itertools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyasn1>0:devel/py-pyasn1@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pycparser>0:devel/py-pycparser@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyopenssl>0:security/py-pyopenssl@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}python-dateutil>0:devel/py-python-dateutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}gnupg>0:security/py-gnupg@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setproctitle>0:devel/py-setproctitle@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}truststore>0:security/py-truststore@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}xxhash>0:devel/py-xxhash@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}zipp>0:devel/py-zipp@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}filelock>0:sysutils/py-filelock@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pycryptodomex>0:security/py-pycryptodomex@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}opentelemetry-api>0:devel/py-opentelemetry-api@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}opentelemetry-sdk>0:devel/py-opentelemetry-sdk@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}opentelemetry-exporter-otlp-proto-http>0:devel/py-opentelemetry-exporter-otlp-proto-http@${PY_FLAVOR}
+
 
 USES=		cpe python
 
 CPE_VENDOR=	saltstack
 CPE_PRODUCT=	salt
-USE_PYTHON=	autoplist cryptography distutils
+USE_PYTHON=	autoplist cryptography pep517
 NO_ARCH=	yes
 
 CONFLICTS=	py[0-9]*-salt-300*
@@ -129,10 +157,4 @@ post-install:
 	${INSTALL_DATA} ${WRKSRC}/conf/master ${STAGEDIR}${ETCDIR}/master.sample
 	${INSTALL_DATA} ${WRKSRC}/conf/minion ${STAGEDIR}${ETCDIR}/minion.sample
 
-.include <bsd.port.pre.mk>
-
-.if ${PYTHON_REL} >= 31200
-BROKEN=		does not work with Python 3.12 or newer, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296290
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/sysutils/py-salt/distinfo b/sysutils/py-salt/distinfo
index e01b67286250..64897c5880ec 100644
--- a/sysutils/py-salt/distinfo
+++ b/sysutils/py-salt/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1782376704
-SHA256 (salt-3006.26.tar.gz) = f5c910642d221e21ced630d9142f98a38e335524aa9d5639583c40708c6162f8
-SIZE (salt-3006.26.tar.gz) = 16885547
+TIMESTAMP = 1788378809
+SHA256 (salt-3008.2.tar.gz) = 44a1e206a955bf57aaffbe3f1dfb5f4476c9442d64f3a103ce7ac0aa68bfa907
+SIZE (salt-3008.2.tar.gz) = 15126429
+SHA256 (69710.patch) = ae990a40a7eb06f5dec321609e42c20b3d1847b73ed3c2876f5ac05184565d7b
+SIZE (69710.patch) = 11606
diff --git a/sysutils/py-salt/files/patch-pyproject.toml b/sysutils/py-salt/files/patch-pyproject.toml
new file mode 100644
index 000000000000..06fa860216b3
--- /dev/null
+++ b/sysutils/py-salt/files/patch-pyproject.toml
@@ -0,0 +1,10 @@
+--- pyproject.toml.orig	2026-06-28 09:45:18 UTC
++++ pyproject.toml
+@@ -1,6 +1,6 @@ requires = [
+ [build-system]
+ requires = [
+-    "setuptools>=64.0",
++    "setuptools>=63.0",
+     "wheel",
+     "looseversion",
+     "packaging",
diff --git a/sysutils/py-salt/files/patch-requirements_base.txt b/sysutils/py-salt/files/patch-requirements_base.txt
deleted file mode 100644
index 09113889e4e7..000000000000
--- a/sysutils/py-salt/files/patch-requirements_base.txt
+++ /dev/null
@@ -1,41 +0,0 @@
---- requirements/base.txt.orig
-+++ requirements/base.txt
-@@ -9,15 +9,15 @@
- cheroot>=11.1.2
- cherrypy>=18.10.0
- # We need contextvars for salt-ssh
--contextvars
--croniter!=0.3.22,>=6.2.2; sys_platform != 'win32'
-+#contextvars
-+#croniter!=0.3.22,>=6.2.2; sys_platform != 'win32'
- # cryptography 48.0.0 drops support for Python 3.9.0 and 3.9.1
- # (only >3.9.1 is accepted), but the py3.9 lock files are compiled
- # with --python-version=3.9 which includes those releases. Cap at the
- # last 46.x release for Python 3.9 so uv pip compile can still resolve.
- # Furthermore, pyOpenSSL 26.2 dropped X509Extension and add_extensions()
- # which breaks salt/modules/tls.py. pyOpenSSL < 26.2 requires cryptography < 48.0.0.
--cryptography>=46.0.7,<48.0.0
-+cryptography>=46.0.7
- distro>=1.9.0
- frozenlist>=1.8.0; python_version < '3.11'
- frozenlist>=1.5.0; python_version >= '3.11'
-@@ -31,7 +31,7 @@
- jmespath>=1.1.0
- looseversion
- lxml>=6.1.1; sys_platform == 'win32'
--MarkupSafe<4.0.0
-+MarkupSafe
- # multidict 6.0.4 fails to source-build under clang 17+ with strict int/pointer
- # conversion checks (macOS 15 onedir builds compile from sdist via
- # --no-binary=:all:). 6.6+ fixed the C source compatibility.
-@@ -43,8 +43,8 @@
- # `/` parameter syntax which is a SyntaxError on Python <3.8. Keep at
- # 24.0 to preserve salt-ssh compatibility against legacy target
- # Pythons; salt 3006.x still promises this matrix.
--packaging==24.0
--psutil<6.0.0; python_version <= '3.9'
-+packaging>=21.3
-+#psutil<6.0.0; python_version <= '3.9'
- psutil>=5.0.0; python_version >= '3.10'
- # pymssql 2.3.12+ dropped win32 (32-bit Windows) wheels; salt 3006.x
- # still builds a Windows x86 onedir, so pin to the last release that
diff --git a/sysutils/py-salt/files/patch-tools_pkg_salt__build__backend.py b/sysutils/py-salt/files/patch-tools_pkg_salt__build__backend.py
new file mode 100644
index 000000000000..8a6cfc94ee36
--- /dev/null
+++ b/sysutils/py-salt/files/patch-tools_pkg_salt__build__backend.py
@@ -0,0 +1,21 @@
+--- tools/pkg/salt_build_backend.py.orig	2026-06-28 09:48:25 UTC
++++ tools/pkg/salt_build_backend.py
+@@ -7,10 +7,6 @@ from setuptools import build_meta as _orig
+     sys.path.insert(0, PROJECT_ROOT)
+ 
+ from setuptools import build_meta as _orig
+-from setuptools.build_meta import build_editable as setuptools_build_editable
+-from setuptools.build_meta import (
+-    prepare_metadata_for_build_editable as setuptools_prepare_metadata,
+-)
+ 
+ try:
+     from setuptools.build_meta import build_editable as setuptools_build_editable
+@@ -221,6 +217,7 @@ def get_scripts(dist=None):
+ 
+ 
+ def get_scripts(dist=None):
++    return []  # FreeBSD: console_scripts entry points only, avoid duplicate bin scripts
+     is_windows = sys.platform.startswith("win")
+     scripts = ["scripts/salt-call"]
+ 
diff --git a/sysutils/py-salt/pkg-plist b/sysutils/py-salt/pkg-plist
index 8af3d8958fa3..84a1e383cd20 100644
--- a/sysutils/py-salt/pkg-plist
+++ b/sysutils/py-salt/pkg-plist
@@ -1,7 +1,2 @@
 @sample %%ETCDIR%%/master.sample
 @sample %%ETCDIR%%/minion.sample
-%%PYTHON_SITELIBDIR%%/salt/_syspaths.py
-%%PYTHON2%%%%PYTHON_SITELIBDIR%%/salt/_syspaths.pyc
-%%PYTHON2%%%%PYTHON_SITELIBDIR%%/salt/_syspaths.pyo
-%%PYTHON3%%%%PYTHON_SITELIBDIR%%/salt/__pycache__/_syspaths.cpython-%%PYTHON_SUFFIX%%.pyc
-%%PYTHON3%%%%PYTHON_SITELIBDIR%%/salt/__pycache__/_syspaths.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc