LiveTraffic Steam Fix (X-Plane 12, Linux)
Naprawia problem z ładowaniem wtyczki LiveTraffic w wersji X-Plane 12 ze Steam na Linuxie.
Problem
Steam Linux Runtime „przypina" (pinuje) własny, stary libcurl.so.4 (wersja 4.2.0), który eksportuje tylko symbol CURL_OPENSSL_3. LiveTraffic jest zbudowany przeciw nowszemu libcurl (CURL_OPENSSL_4) i wymaga też libssl.so.3 / libcrypto.so.3.
Efekt w Log.txt:
dlerror: .../SteamLinuxRuntime/var/steam-runtime/pinned_libs_64/libcurl.so.4:
version `CURL_OPENSSL_4' not found
(required by .../LiveTraffic/lin_x64/LiveTraffic.xpl)
i wtyczka nie jest ładowana (nie pojawia się w menu Plugins).
To samo dotyczy innych wtyczek zbudowanych przeciw nowemu libcurl (np. plugin REP dla Cessny — SimCoders).
Dlaczego to się dzieje
Steam Runtime v1 („scout") jest zgodny z Ubuntu 12.04, więc musi używać starego ABI libcurl. To potwierdzone przez Valve — nie da się tego obejść opcjami uruchamiania (STEAM_RUNTIME_USE_LIBCURL_SHIM ani przełączeniem runtime'u na soldier).
Rozwiązanie
Kopiujemy systemowy libcurl + wszystkie jego zależności do katalogu wtyczki i ustawiamy RPATH=$ORIGIN/lib, dzięki czemu wtyczka ładuje własne, nowe biblioteki niezależnie od Steam Runtime.
Użycie
./fix-livetraffic.sh [/ścieżka/do/X-Plane 12]
Domyślnie skrypt zakłada ścieżkę /mnt/nvme_data/SteamLibrary/steamapps/common/X-Plane 12. Możesz podać własną jako argument.
Wymagania:
patchelf(pacman -S patchelf)- systemowy
libcurl4.8+ zlibssl.so.3(Arch Linux / nowoczesny Linux)
Co robi skrypt
- Backup
LiveTraffic.xpl→LiveTraffic.xpl.bak. - Kopiuje
libcurl.so.4+ 21 zależności z/usr/libdoLiveTraffic/lin_x64/lib/. - Ustawia
RPATH=$ORIGINna wszystkich skopiowanych bibliotekach. - Ustawia
RPATH=$ORIGIN/libnaLiveTraffic.xpl.
Weryfikacja
Po uruchomieniu X-Plane w Log.txt szukaj:
Loaded: .../LiveTraffic/lin_x64/LiveTraffic.xpl
(zamiast dlerror).
Uwagi
- Skrypt jest idempotentny — można go uruchomić wielokrotnie (backup robi tylko raz).
- Po aktualizacji systemu (nowszy libcurl) uruchom skrypt ponownie, żeby odświeżyć biblioteki.
- Nie wrzucamy binarek
.sodo tego repo — są zależne od wersji systemu.