Fix AppImage: Grammar-Dateien und Abhängigkeiten korrekt bündeln

Das AppImage crashte beim Start mit SIGABRT weil die SIP-Grammar-Dateien
(.belr) fehlten und keine System-Libraries gebündelt waren. Jetzt werden
alle Abhängigkeiten (Qt6, Audio, Crypto, Codecs) und Grammar-Dateien
vollständig eingepackt. README mit AppImage-Build-Anleitung ergänzt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-02-18 07:38:52 +01:00
parent 3b3bb966d4
commit 063fc6fc08
2 changed files with 65 additions and 0 deletions

View file

@ -10,6 +10,19 @@ Group changes to describe their impact on the project, as follows:
Fixed for any bug fixes. Fixed for any bug fixes.
Security to invite users to upgrade in case of vulnerabilities. Security to invite users to upgrade in case of vulnerabilities.
## [6.2.1-pre.8] - 2026-02-18
### Fixed
- AppImage: Fehlende Grammar-Dateien (sip_grammar.belr, sdp_grammar.belr, cpim_grammar.belr, ics_grammar.belr, identity_grammar.belr, mwi_grammar.belr) werden jetzt korrekt gebündelt. Der SIP-Parser (belle-sip) konnte ohne diese Dateien nicht initialisieren → SIGABRT beim Start.
- AppImage: Alle Abhängigkeiten (Qt6, Audio, Crypto, Codecs, etc.) werden jetzt vollständig im AppImage gebündelt. Vorher war das AppImage auf System-Libraries angewiesen und konnte nach System-Updates brechen.
### Changed
- AppImage-Größe: 78 MB → 135 MB (weil jetzt alle Libs korrekt gebündelt sind)
- AppRun-Script: Setzt LD_LIBRARY_PATH, QT_PLUGIN_PATH und QML2_IMPORT_PATH korrekt auf gebündelte Pfade
- Qt-Plugins (Wayland, XCB, Multimedia, TLS, Imageformats) werden mitgeliefert
- QML-Module (QtQuick, QtCore, QtQml, QtMultimedia) werden mitgeliefert
## [6.1.0] - Unreleased ## [6.1.0] - Unreleased
6.1.0 release is the complete version of the new Linphone Desktop with all features including chat 6.1.0 release is the complete version of the new Linphone Desktop with all features including chat

View file

@ -308,6 +308,58 @@ The default build is very long. It is prefered to use the Ninja generator `-G "N
5. The project folder will be in the build directory and binaries should be in the OUTPUT folder. 5. The project folder will be in the build directory and binaries should be in the OUTPUT folder.
## AppImage erstellen (Linux)
Das AppImage muss **alle Abhängigkeiten vollständig bündeln** keine System-Libraries voraussetzen.
### Voraussetzungen
- Erfolgreicher Build im `build/OUTPUT/` Verzeichnis
- `linuxdeploy` und `linuxdeploy-plugin-qt` (werden automatisch heruntergeladen)
- `appimagetool` (falls linuxdeploy das AppImage nicht direkt erstellen kann)
### Build-Schritte
```bash
cd build
bash ../cmake/install/create_appimage.sh linphone Linphone-x86_64 /usr
```
### Wichtige Hinweise
**Grammar-Dateien prüfen:** Das AppImage MUSS folgende `.belr`-Dateien unter `usr/share/belr/grammars/` enthalten:
- `sip_grammar.belr` (SIP-Parser **ohne diese crasht die App beim Start!**)
- `sdp_grammar.belr` (SDP-Parser)
- `cpim_grammar.belr`, `ics_grammar.belr`, `identity_grammar.belr`, `mwi_grammar.belr`
- `vcard_grammar.belr`, `vcard3_grammar.belr`
Diese Dateien kommen aus dem linphone-sdk Build (`OUTPUT/share/belr/grammars/`).
**Gebündelte Abhängigkeiten prüfen:** Nach dem Build sicherstellen, dass folgende Libs im AppImage enthalten sind:
- Qt6 (Core, Quick, Widgets, Gui, Network, DBus, Svg, Qml, etc.)
- Qt-Plugins (platforms/wayland, xcb; imageformats; tls; multimedia)
- QML-Module (QtQuick, QtCore, QtQml, QtMultimedia)
- Linphone-Libs (liblinphone, libbelle-sip, libbctoolbox, libbelr, libmediastreamer2, etc.)
- Audio (libopus, libspeex, libgsm)
- Crypto (libmbedtls, libmbedcrypto, libdecaf, libbzrtp)
**Verifizierung:**
```bash
# AppImage extrahieren und Abhängigkeiten prüfen
./Linphone-x86_64.AppImage --appimage-extract
LD_LIBRARY_PATH=squashfs-root/usr/lib ldd squashfs-root/usr/bin/linphone | grep "not found"
# Sollte NICHTS ausgeben alle Libs müssen aufgelöst werden
```
### Fehlerbehebung
| Symptom | Ursache | Lösung |
|:---|:---|:---|
| SIGABRT beim Start, `bctbx_logv → abort` | Fehlende Grammar-Dateien | `.belr`-Dateien in `usr/share/belr/grammars/` prüfen |
| `strip: unknown type [0x13] section .relr.dyn` | Alte strip-Version in linuxdeploy | Harmlose Warnung, ignorieren |
| Kein AppImage generiert | Desktop-File/Icon fehlt im AppDir | `.desktop` + Icon vor linuxdeploy-Aufruf bereitstellen |
| App startet, aber kein Fenster | QML-Module fehlen | Qt-QML-Module in `usr/qml/` prüfen |
## Specific instructions for Linux ## Specific instructions for Linux
```bash ```bash