Files
benjamin 72f4661bdc Replace patchelf crack with Freeloader LD_PRELOAD approach
- 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)
2026-08-19 22:33:42 +02:00

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"