dev47apps / droidcam-linux-client

GNU/Linux/nix client for DroidCam
http://www.dev47apps.com
GNU General Public License v2.0
1.08k stars 174 forks source link

Arch-Linux: Error after update (libswscale.so.7 -> libswscale.so.8) #283

Closed PaulKraut closed 4 months ago

PaulKraut commented 4 months ago

Describe the bug After updating Arch Linux / KDE Plasma 6.1 to the latest version, droidcam did not start any more, stating:

droidcam: error while loading shared libraries: libswscale.so.7: cannot open shared object file: No such file or directory

Dirty trying to symlink ./libswscale.so.7 -> ./libswscale.so.8 leads to error message

droidcam: /usr/lib/libswscale.so.7: version `LIBSWSCALE_7' not found (required by droidcam)

Expected behavior Starting of droidcam with the virtual camera

Additional context

$inxi -b              
System:
  Host: * Kernel: 6.9.6-arch1-1 arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.1.0 Distro: Arch Linux
Machine:
  Type: Desktop System: Micro (HK) Tech product: HX90G v: N/A
    serial: <superuser required>
  Mobo: Shenzhen Meigao Equipment model: HX90G serial: <superuser required>
    UEFI: American Megatrends LLC. v: 5.19 date: 08/12/2022
CPU:
  Info: 8-core AMD Ryzen 9 5900HX with Radeon Graphics [MT MCP] speed (MHz):
    avg: 2526 min/max: 400/4680
Graphics:
  Device-1: AMD Navi 23 [Radeon RX 6600/6600 XT/6600M] driver: amdgpu
    v: kernel
  Device-2: AMD Cezanne [Radeon Vega Series / Radeon Mobile Series]
    driver: amdgpu v: kernel
  Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.0
    compositor: kwin_wayland driver: X: loaded: amdgpu
    unloaded: modesetting,vesa dri: radeonsi gpu: amdgpu,amdgpu resolution:
    1: * 2: * 3: *
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.1.2-arch1.1
    renderer: AMD Radeon RX 6600M (radeonsi navi23 LLVM 17.0.6 DRM 3.57
    6.9.6-arch1-1)
Network:
  Device-1: Intel Ethernet *
  Device-2: MEDIATEK *
Drives:
  Local Storage: total: 1.82 TiB used: 947.23 GiB (50.8%)
Info:
  Memory: total: 64 GiB note: est. available: 62.23 GiB
    used: 22.05 GiB (35.4%)
PaulKraut commented 4 months ago

As a workaround and specially for Arch Linux:

There is an AUR-Package of ffmpeg6.1 6.1.1-1, that contains the current and fixed version of ffmpeg 6, that delivers libswscale.so.7.5.100. If you build the package, put the binaries to i.e. /opt/lib/ffmpeg6, you can point LD_LIBRARY_PATH to that directory and may start droidcam or any other app, that depends on libswscale.so.7.

Since I assumed, that the package may interfere with the common or other ffmpeg packages, I deployed it to /opt/lib. If someone has a cleaner solution: Any helping hand is welcome :)

Disclaimer: Of course you have either to check the code of the PKGBUILD-file or to trust its author, as I do (since I do not know, what all these git cherry-pickings really do ;-) ) ..

aramg commented 4 months ago

I believe this is an issue with the Arch package. The downloads on the app website are statically linked, and should not break when the system ffmpeg version changes: https://www.dev47apps.com/droidcam/linux/

HorayNarea commented 4 months ago

As a fix you could also just rebuild droidcam, which automatically links against the currently installed libswscale.

I suggest using rebuild-detector after every pacman -Syu so you can see which AUR package needs to be rebuilt

PaulKraut commented 4 months ago

@HorayNarea That was exactly the issue, thanks for the hints!