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,138 +1,160 @@ PORTNAME= salt -PORTVERSION= 3006.26 +PORTVERSION= 3008.2 PORTEPOCH= 1 CATEGORIES= sysutils python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= krion@FreeBSD.org COMMENT= Distributed remote execution and configuration management system 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* # we must pass these options before the target name, and python.mk has no # early-arguments variable, so we have to manipulate the target PYDISTUTILS_INSTALL_TARGET=\ --salt-root-dir=/ \ --salt-config-dir=${ETCDIR} \ --salt-cache-dir=/var/cache/salt \ --salt-sock-dir=/var/run/salt \ --salt-srv-root-dir=${ETCDIR} \ --salt-base-file-roots-dir=${ETCDIR}/states \ --salt-base-pillar-roots-dir=${ETCDIR}/pillar \ --salt-base-master-roots-dir=${ETCDIR}/salt-master \ --salt-logs-dir=/var/log/salt \ --salt-pidfile-dir=/var/run \ install USE_RC_SUBR= salt_api \ salt_master \ salt_minion \ salt_proxy \ salt_syndic SUB_LIST+= PYTHON_CMD=${PYTHON_CMD} SUB_FILES= pkg-message OPTIONS_DEFINE= AWS BASH FISH TCP ZEROMQ ZSH OPTIONS_DEFAULT= BASH FISH ZEROMQ ZSH AWS_DESC= Install dependencies required for Amazon Web Services TCP_DESC= Install dependencies required for TCP transport ZEROMQ_DESC= Install dependencies required for ZeroMQ transport # AWS dependencies (Note: the devel/py-botocore port is updated very frequently) AWS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}botocore>0:devel/py-botocore@${PY_FLAVOR} TCP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycryptodomex>=3.9.7:security/py-pycryptodomex@${PY_FLAVOR} ZEROMQ_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyzmq>=2.2.0:net/py-pyzmq@${PY_FLAVOR} ZEROMQ_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyzmq>=2.2.0:net/py-pyzmq@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pycryptodomex>=3.9.7:security/py-pycryptodomex@${PY_FLAVOR} BASH_PLIST_FILES= share/bash-completion/completions/salt FISH_PLIST_FILES= share/fish/completions/salt-call.fish \ share/fish/completions/salt-cp.fish \ share/fish/completions/salt-key.fish \ share/fish/completions/salt-master.fish \ share/fish/completions/salt-minion.fish \ share/fish/completions/salt-run.fish \ share/fish/completions/salt-syndic.fish \ share/fish/completions/salt.fish \ share/fish/completions/salt_common.fish ZSH_PLIST_FILES= share/zsh/site-functions/_salt post-patch: .for file in conf/minion conf/master doc/man/salt-key.1 \ doc/man/salt-cp.1 doc/man/salt-minion.1 doc/man/salt-syndic.1 \ doc/man/salt-master.1 doc/man/salt-run.1 doc/man/salt.1 \ doc/man/salt-call.1 salt/modules/mysql.py salt/modules/tls.py salt/modules/postgres.py @${REINPLACE_CMD} -e 's|/etc/salt|${ETCDIR}|' \ -e 's|/srv/salt|${ETCDIR}/states|' \ -e 's|/srv/pillar|${ETCDIR}/pillar|' ${WRKSRC}/${file} .endfor @${REINPLACE_CMD} -e 's|yumpkg5|pkgng|' ${WRKSRC}/conf/minion @${REINPLACE_CMD} -e 's|"/usr/bin/python3"|"${PYTHON_CMD}"|' ${WRKSRC}/salt/auth/pam.py do-install-BASH-on: @${MKDIR} ${STAGEDIR}${PREFIX}/share/bash-completion/completions/ ${INSTALL_DATA} ${WRKSRC}/pkg/rpm/salt.bash \ ${STAGEDIR}${PREFIX}/share/bash-completion/completions/salt do-install-FISH-on: @${MKDIR} ${STAGEDIR}${PREFIX}/share/fish/completions/ ${INSTALL_DATA} ${WRKSRC}/pkg/common/fish-completions/*.fish \ ${STAGEDIR}${PREFIX}/share/fish/completions do-install-ZSH-on: @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions ${INSTALL_DATA} ${WRKSRC}/pkg/common/salt.zsh \ ${STAGEDIR}${PREFIX}/share/zsh/site-functions/_salt post-install: @${MKDIR} ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${WRKSRC}/conf/master ${STAGEDIR}${ETCDIR}/master.sample ${INSTALL_DATA} ${WRKSRC}/conf/minion ${STAGEDIR}${ETCDIR}/minion.sample -.include - -.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 +.include 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