Digikam fails to start with "error while loading shared libraries: libjack.so.0"

digikam fails to start and gives the error message

digikam: error while loading shared libraries: libjack.so.0: cannot open shared object file: No such file or directory

My system is

Operating System: openSUSE Tumbleweed 20230603
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.106.0
Qt Version: 5.15.9
Kernel Version: 6.3.4-1-default (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-7820HK CPU @ 2.90GHz
Graphics Processor: Mesa Intel® HD Graphics 630
digikam 8.0.0

My system uses pipewire for audio and there is a file /usr/lib64/pipewire-0.3/jack/libjack.so.0.

I created a symlink /usr/lib64/libjack.so.0 (strace revealed that this was one of the places where digikam looked for the file) and now digikam starts without problems.

However I do not know if my “workaround” will not cause any other (yet unknown to me) problems in the future operation of digikam.

Any advice is welcome.

Thank you.

Post:
zypper se -s libjack

Here we go

# zypper se -s libjack
Loading repository data...
Reading installed packages...

S  | Name                       | Type    | Version    | Arch   | Repository
---+----------------------------+---------+------------+--------+------------------------
   | libjack-devel              | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjack-devel-32bit        | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjack0                   | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjack0-32bit             | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjacknet0                | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjacknet0-32bit          | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjackserver0             | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
   | libjackserver0-32bit       | package | 1.9.22-2.1 | x86_64 | openSUSE Tumbleweed Oss
i+ | pipewire-libjack-0_3       | package | 0.3.71-3.1 | x86_64 | openSUSE Tumbleweed Oss
   | pipewire-libjack-0_3-32bit | package | 0.3.71-3.1 | x86_64 | openSUSE Tumbleweed Oss
   | pipewire-libjack-0_3-devel | package | 0.3.71-3.1 | x86_64 | openSUSE Tumbleweed Oss
#

Maybe its an packaging error, install libjack0.

rpm -ql libjack0
/usr/lib64/libjack.so.0
/usr/lib64/libjack.so.0.1.0
# zypper in libjack0
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: the installed pipewire-libjack-0_3-0.3.71-3.1.x86_64 conflicts with 'libjack0' provided by the to be installed libjack0-1.9.22-2.1.x86_64
 Solution 1: deinstallation of pipewire-libjack-0_3-0.3.71-3.1.x86_64
 Solution 2: do not install libjack0-1.9.22-2.1.x86_64

Choose from above solutions by number or cancel [1/2/c/d/?] (c): 

Don’t tinker, don’t cheat unless there is no other option. What works now for you will hunt you in the future.

On infamous host erlangen digikam starts smoothly. Package libjack0 got installed automatically:

erlangen:~ # zypper if libjack0
Loading repository data...
Reading installed packages...


Information for package libjack0:
---------------------------------
Repository     : Haupt-Repository (OSS)
Name           : libjack0
Version        : 1.9.22-2.1
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 322.3 KiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : jack-1.9.22-2.1.src
Upstream URL   : https://jackaudio.org/
Summary        : Jack Audio Connection Kit Library
Description    : 
    This package contains the library to access JACK
    (Jack Audio ConnectionKit).

erlangen:~ # 

Try a manual install of package libjack0.

It sounds like 445422 – digikam not compliant with pipewire jack library

Apparently digikam is not built against libjack but tries to load it at runtime and gets confused by non-standard location.

pipewire-libjack adds ld.so.conf.d snippet to resolve libjack.so.0 to /usr/lib64/pipewire-0.3/jack/libjack.so.0, so effectively it does the same as what you did.

Consider submitting openSUSE bug report against pipewire. May be instead of playing with ld.so.conf they consider using alternatives for libjakc.so.0.

pipewire-libjack-0_3 provides libjack.so.0 at a non-standard location. Get rid of this carp.

IOW - do not do anything differently from host erlangen. Only the host erlangen has the correct installation of openSUSE. As soon as you do anything differently, you are doing it wrong simply because you do it differently.

Thank you for your feedback.

As you suggested I created a bug report.

In a comment in that bug, I included the URL of this thread, and noted that without pipewire-libjack-0_3, 15.5/KDE3 users who wish to use (actively developed) pipewire to the exclusion of (minimal/maintenance mode) pulseaudio may have no way to enable system sounds.

  1. While existing Tumbleweed systems automatically selected package libjack0 in the past a pristine installation on 2022-06-02 selected package pipewire-libjack-0_3.

  2. Users wanting to use digikam without further hassle may deinstall package pipewire-libjack-0_3 and install libjack0 instead.

  3. Pipewire developers’ style of development is plain and utter PITA, in my opinion of course.

A newer install of Tumbleweed on 2023-06-03 10:46:58 does no longer pull in any jack related packages. I presume the issue has already been fixed.