git: 4bf3302c4071 - main - multimedia/streamlink: Update to 8.6.1
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 07 Oct 2026 16:21:39 UTC
The branch main has been updated by joneum:
URL: https://cgit.FreeBSD.org/ports/commit/?id=4bf3302c40710c380d0fdd2dcd76e2459aed3d7b
commit 4bf3302c40710c380d0fdd2dcd76e2459aed3d7b
Author: takefu <takefu@airport.fm>
AuthorDate: 2026-10-07 16:20:41 +0000
Commit: Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-10-07 16:21:13 +0000
multimedia/streamlink: Update to 8.6.1
- SECURITY: fixed arbitrary local file read via HTTP(S) redirection to
file:// URL (GHSA-vf2x-4v53-pm7v).
- SECURITY: fixed insecure cross-scheme redirection (HTTPS -> HTTP)
(GHSA-vf2x-4v53-pm7v).
- Added support for HLS packed audio streams.
- Fixed HTTP server of --player-http/--player-continuous-http binding to
all interfaces.
- Fixed compatibility with urllib3 2.8.0.
Changes: https://streamlink.github.io/changelog.html#streamlink-8-6-1-2026-09-16
PR: 277552
Sponsored by: Netzkommune GmbH
---
multimedia/streamlink/Makefile | 27 +++++++++-----------
multimedia/streamlink/distinfo | 6 ++---
.../files/patch-build__backend_commands.py | 11 ++++++++
multimedia/streamlink/files/patch-pyproject.toml | 29 ++++++++++++++--------
4 files changed, 45 insertions(+), 28 deletions(-)
diff --git a/multimedia/streamlink/Makefile b/multimedia/streamlink/Makefile
index 9a68e3590edd..6fe3b80e85fa 100644
--- a/multimedia/streamlink/Makefile
+++ b/multimedia/streamlink/Makefile
@@ -1,6 +1,5 @@
PORTNAME= streamlink
-DISTVERSION= 6.5.1
-PORTREVISION= 4
+DISTVERSION= 8.6.1
CATEGORIES= multimedia
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,32 +12,30 @@ LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS}\
- ${PYTHON_PKGNAMEPREFIX}versioningit>=2.0.0:devel/py-versioningit@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}country>0:devel/py-country@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}isodate>0:devel/py-isodate@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}lxml>=4.6.4:devel/py-lxml@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}lxml>=5.0.0:devel/py-lxml@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}pycountry>0:textproc/py-pycountry@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pycryptodome>=3.4.3:security/py-pycryptodome@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pysocks>1.5.7:net/py-pysocks@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}requests>2.26.0:www/py-requests@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}requests>2.30.0:www/py-requests@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}trio>=0.22.0:net/py-trio@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}trio-websocket>=0.9.0:net/py-trio-websocket@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.0.0:devel/py-typing-extensions@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}urllib3>=1.26.0:net/py-urllib3@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}urllib3>=2.0.0:net/py-urllib3@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}websocket-client>=1.2.1:www/py-websocket-client@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}backports>0:devel/py-backports@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}freezegun>0:devel/py-freezegun@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>0:devel/py-pytest-asyncio@${PY_FLAVOR}\
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}freezegun>=1.5.0:devel/py-freezegun@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pytest-trio>0:devel/py-pytest-trio@${PY_FLAVOR}\
- ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}requests-mock>0:www/py-requests-mock@${PY_FLAVOR}
-USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USES= python:3.10+
+USE_PYTHON= autoplist pep517 pytest
+TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
NO_ARCH= yes
-OPTIONS_DEFINE= FFMPEG
+OPTIONS_DEFINE= BROTLI FFMPEG ZSTD
OPTIONS_DEFAULT= FFMPEG
+BROTLI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}brotli>0:archivers/py-brotli@${PY_FLAVOR}
FFMPEG_RUN_DEPENDS= ffmpeg:multimedia/ffmpeg
+ZSTD_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}zstandard>0:archivers/py-zstandard@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/multimedia/streamlink/distinfo b/multimedia/streamlink/distinfo
index 60f1d0bb9be0..d9977d8f7185 100644
--- a/multimedia/streamlink/distinfo
+++ b/multimedia/streamlink/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1705468344
-SHA256 (streamlink-6.5.1.tar.gz) = 207fb4ce99c35bfeb1b8f7c76b96cfcb4076ad6881c61eaea553c2ec13d97c57
-SIZE (streamlink-6.5.1.tar.gz) = 717297
+TIMESTAMP = 1790580552
+SHA256 (streamlink-8.6.1.tar.gz) = 29ba76ed6d6913c9e69bc730fc584b581b2860022af18661a1d08c8daee03642
+SIZE (streamlink-8.6.1.tar.gz) = 872414
diff --git a/multimedia/streamlink/files/patch-build__backend_commands.py b/multimedia/streamlink/files/patch-build__backend_commands.py
new file mode 100644
index 000000000000..3646040d9a74
--- /dev/null
+++ b/multimedia/streamlink/files/patch-build__backend_commands.py
@@ -0,0 +1,11 @@
+--- build_backend/commands.py.orig 2026-10-07 14:28:47 UTC
++++ build_backend/commands.py
+@@ -17,7 +17,7 @@ class StreamlinkBuildPyCommand(build_py, Command):
+
+ class StreamlinkBuildPyCommand(build_py, Command):
+ def _build_plugins_json(self) -> None:
+- self.announce("building plugins JSON data", logging.INFO)
++ self.announce("building plugins JSON data")
+ output = Path(self.build_lib) / STREAMLINK_PLUGINS_JSON
+ output.parent.mkdir(parents=True, exist_ok=True)
+ data = build()
diff --git a/multimedia/streamlink/files/patch-pyproject.toml b/multimedia/streamlink/files/patch-pyproject.toml
index 24ca75e25a94..3726774cc2e5 100644
--- a/multimedia/streamlink/files/patch-pyproject.toml
+++ b/multimedia/streamlink/files/patch-pyproject.toml
@@ -1,11 +1,20 @@
---- pyproject.toml.orig 2025-09-28 08:11:20 UTC
+--- pyproject.toml.orig 2026-10-07 13:33:06 UTC
+++ pyproject.toml
-@@ -57,7 +57,7 @@ dependencies = [
- dependencies = [
- "certifi",
- "isodate",
-- "lxml >=4.6.4,<6",
-+ "lxml >=4.6.4,<7",
- "pycountry",
- "pycryptodome >=3.4.3,<4",
- "PySocks >=1.5.6,!=1.5.7",
+@@ -1,6 +1,6 @@ requires = [
+ [build-system]
+ requires = [
+- "setuptools >=77",
++ "setuptools >=63",
+ # The versioningit build-requirement gets removed from the source distribution,
+ # as the version string is already built into it (see the onbuild versioningit hook):
+ # "versioningit >=2.0.0,<4",
+@@ -19,8 +19,7 @@ readme = "README.md"
+ Streamlink is a command-line utility that extracts streams from various services and pipes them into a video player of choice.\
+ """
+ readme = "README.md"
+-license = "BSD-2-Clause"
+-license-files = ["LICENSE"]
++license = {text = "BSD-2-Clause"}
+ authors = [
+ { name = "Streamlink" },
+ { email = "streamlink@protonmail.com" }