- Multi-stage Dockerfile: discover patterns from PMS binary (capstone), compile .so with zig (musl), layer onto lscr.io/linuxserver/plex - Uses LD_PRELOAD instead of patchelf (which corrupts Plex's musl loader) - Auto-discovery: broad structural patterns with string-anchored fallback (//feature) and relationship-based fallback (BITSET_REF within BS_INIT) - hook.cpp uses __has_include for generated patterns with hardcoded fallbacks - Custom wrapper.sh (no traffic_logger preload) - Vendored Freeloader source (github.com/authrequest/Freeloader, AGPL-3.0) - Removed stale plexmediaserver_crack.so binary - Supports Plex 1.43.3+ (verified against 1.43.2 and 1.43.3)
39 lines
903 B
TOML
39 lines
903 B
TOML
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
[build-system]
|
|
requires = ["setuptools>=61"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "plex-relay"
|
|
version = "0.2.0"
|
|
description = "Reverse-engineered reimplementation of the Plex Media Server RelayController (educational / RE use)."
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { text = "AGPL-3.0-or-later" }
|
|
authors = [{ name = "Plex_Patch RE notes" }]
|
|
dependencies = [] # stdlib only
|
|
|
|
[project.optional-dependencies]
|
|
test = ["pytest>=7"]
|
|
|
|
[project.scripts]
|
|
plex-relay = "plex_relay.cli:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.setuptools.package-data]
|
|
plex_relay = ["py.typed"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
warn_unused_ignores = true
|
|
warn_redundant_casts = true
|
|
disallow_untyped_defs = true
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310" |