PORTABLE INSTALLATION: umgeht 16-GB-Pruefung von macOS Installer.app
URSACHE GEFUNDEN: macOS Installer.app verlangt 10-16 GB freien Speicher als SYSTEMRESERVE - obwohl GStreamer nur 146 MB gross ist. Diese Pruefung blockiert Installationen auf vollen Platten. LOESUNG: HMS-Portable-Install.command - Laedt GStreamer .pkg (146 MB) per curl - Entpackt mit 'pkgutil --expand-full' OHNE Installer.app (keine 16-GB-Pruefung, kein sudo, nichts systemweit) - Kopiert GStreamer.framework in runtime/ im Projektordner - Loescht Download + Temp (gibt ~750 MB zurueck) - Schreibt runtime/env.sh mit allen Umgebungsvariablen - Braucht NUR ca. 800 MB WAHREND der Installation - Danach: ca. 500-600 MB im Projektordner (portable, loeschbar) Integration: - run.py: laedt portable env automatisch VOR gi-Import (DYLD_LIBRARY_PATH, GST_PLUGIN_PATH, GI_TYPELIB_PATH, PYTHONPATH fuer gi-Bindings) - App-Launcher: sourced runtime/env.sh falls vorhanden - launcher_core.py: gleiche portable env-Logik - Freien Speicher pruefen (nur 800 MB noetig, nicht 16 GB) Drei Installationswege jetzt verfuegbar: 1. HMS-Portable-Install.command (wenig Speicher, nichts systemweit) 2. HMS-Mac-Install.command (Homebrew, mehr Komfort) 3. HMS-MediaEngine.app startet mit whichever verfuegbar ist
This commit is contained in:
@@ -19,6 +19,23 @@ from pathlib import Path
|
||||
ROOT = Path(__file__).resolve().parent
|
||||
IS_WIN = sys.platform == "win32"
|
||||
|
||||
# Portable GStreamer laden (macOS: HMS-Portable-Install.command)
|
||||
_fw = ROOT / "runtime" / "GStreamer.framework" / "Versions" / "1.0"
|
||||
if _fw.is_dir():
|
||||
import os as _os
|
||||
_lib = str(_fw / "lib")
|
||||
_os.environ["DYLD_LIBRARY_PATH"] = _lib + ":" + _os.environ.get("DYLD_LIBRARY_PATH", "")
|
||||
_gst = str(_fw / "lib" / "gstreamer-1.0")
|
||||
_os.environ["GST_PLUGIN_PATH"] = _gst
|
||||
_os.environ["GST_PLUGIN_SYSTEM_PATH_1_0"] = _gst
|
||||
_os.environ["GI_TYPELIB_PATH"] = (str(_fw / "lib" / "girepository-1.0")
|
||||
+ ":" + _os.environ.get("GI_TYPELIB_PATH", ""))
|
||||
for _v in ("python3.12", "python3.13", "python3.11"):
|
||||
_sp = _fw / "lib" / _v / "site-packages"
|
||||
if (_sp / "gi").is_dir():
|
||||
sys.path.insert(0, str(_sp))
|
||||
break
|
||||
|
||||
|
||||
def web_port() -> int:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user