Erster Commit: nativer Linux-Port aus macOS-Bytecode
Läuft die Voice Acoustic VA-Remotecontrol (AllDSP AllControl) nativ unter Linux auf echtem wxGTK 3.0 — ohne Wine und ohne dekompilierten App-Code. Ausgeführt wird das unveränderte Python-2.7-Bytecode aus dem macOS-.app; C-Extensions (wxGTK/numpy/ scipy/PortAudio) kommen nativ aus Debian stretch. Enthält: va/ (Original-.pyc + pure-Python-Libs + Assets + launch.py mit den drei Linux-Fixes), Dockerfile/run.sh/entrypoint.sh, reference/ (dekompilierter Quellcode zum Debuggen) und README/STATUS. img.cache (378 MB, regenerierbar) ist per .gitignore ausgeschlossen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Nativer Linux-Port aus macOS-Bytecode — Stand: ✅ LÄUFT
|
||||
|
||||
## Verifiziert (headless auf echtem Xorg)
|
||||
- **Image baut sauber** (Debian stretch via archive.debian.org + debian-security).
|
||||
- **App startet nativ** aus Original-macOS-Bytecode, **ohne Wine**: wx 3.0.2 (gtk2 classic),
|
||||
numpy 1.12.1, scipy 0.18.1 laden, one_unit/child_unit laufen als Original-`.pyc`.
|
||||
- **GUI rendert korrekt** (Menü File/Tools/Help, Status-Icons, „All Units (0 units online)",
|
||||
Voice-Acoustic-Logo) — siehe `screenshot-native.png`. **Kein schwarzer Wine-Screen.**
|
||||
- **Log ist sauber** — keine Tracebacks (nur eine harmlose wxPyDeprecationWarning).
|
||||
|
||||
Getestet mit Xorg **dummy**-Treiber (liefert VidMode/RandR) im Container; **Xvfb geht NICHT**,
|
||||
weil es die XFree86-VidMode-Extension nicht hat und wx 3.0 dann bei `wxDisplay.GetCurrentMode()`
|
||||
crasht — reines Test-Artefakt, auf echtem Display irrelevant.
|
||||
|
||||
## Drei Linux-Fixes in `va/launch.py` (non-invasiv, KEIN Bytecode-Patch)
|
||||
1. **`platform.version()`** unter Linux beginnt mit `#…` → `int('#')` in einer Windows-
|
||||
Versionsprüfung (`one_unit.start()`) crasht und deaktiviert dabei RTA. Fix: Windows-artigen
|
||||
String liefern → Prüfung läuft durch, RTA bleibt aktiv.
|
||||
2. **wx-Assertions → SUPPRESS**: diese wxGTK-Build wirft C++-Assertions als Python-Exceptions
|
||||
(Default). `one_unit.app.SetAssertMode(wx.PYAPP_ASSERT_SUPPRESS)` = Release-/Mac-Verhalten;
|
||||
sonst crasht `flatmenu.DrawMenuBar` an einer transienten negativen Bitmapgröße.
|
||||
3. **`my_MenuBar.left_down`**: wird nur im Nicht-Mac-Zweig von `__init__` gesetzt (Linux läuft
|
||||
als „mac", `mac_names='posix'`), `OnPaint` braucht es aber → Klassen-Default `= False`.
|
||||
|
||||
## Noch offen (braucht deine Maschine)
|
||||
- **Realer Lauf auf dem Desktop** via `./run.sh` (X11/XWayland) — sollte laut Headless-Test
|
||||
direkt gehen; GDK_BACKEND=x11 + `--ipc=host` sind gesetzt.
|
||||
- **Geräteanbindung** ungetestet mangels Amp: Ethernet (Host-Netz) oder seriell/COM
|
||||
(`SERIAL_DEV=/dev/ttyUSB0`). Discovery/Protokoll laufen als Original-Bytecode.
|
||||
- **RTA-Mikrofon**: braucht Audio-Durchreichung (ALSA/Pulse) in den Container.
|
||||
Reference in New Issue
Block a user