Recently, dosbox-staging went FTBFS in Rawhide. Failure happens when building the statically linked parts, due to not finding libjack.so.0. Previously, that library came from package jack-audio-connection-kit, but for the failing build, dnf has switched into resolving that dependency with pipewire-jack-audio-connection-kit-libs. The reason for not finding the shared object is that the pipewire variant puts the shared object under /usr/lib64/pipewire/jack/, which is not searched by default. There is a ld.so.conf file to add it to search path, but that is in another subpackage pipewire-jack-audio-connection-kit, which is not included when dnf automatically resolves the shared object dependency. Please make it so that when dnf pulls in both shared object and the needed ld.so.conf file. Reproducible: Always Steps to Reproduce: Run 'fedpkg mockbuild' for dosbox-staging. Actual Results: Build fails with errors like: FAILED: dosbox g++ -o dosbox dosbox.p/src_main.cpp.o dosbox.p/src_dosbox.cpp.o dosbox.p/src_libs_ghc_fs_std_impl.cpp.o -Wl,--as-needed -Wl,--no-undefined -Wl,-Map,dosbox.map -Wl,--Map,dosbox.map -rdynamic -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wl,--start-group src/misc/libmisc.a src/libs/loguru/libloguru.a src/libs/whereami/libwhereami.a src/capture/libcapture.a src/libs/zmbv/libzmbv.a src/cpu/libcpu.a src/dos/libdos.a src/libs/decoders/libdecoders.a src/fpu/libfpu.a src/gui/libgui.a src/hardware/libhardware.a src/libs/ESFMu/libesfmu.a src/libs/nuked/libnuked.a src/libs/residfp/libresidfp.a src/libs/YM7128B_emu/libym7128bemu.a src/ints/libints.a src/midi/libmidi.a src/shell/libshell.a src/libs/tal-chorus/libtalchorus.a src/libs/manymouse/libmanymouse.a -latomic -lstdc++fs /usr/lib64/libSDL2.so -pthread /usr/lib64/libiir.so /usr/lib64/libslirp.so /usr/lib64/libglib-2.0.so -lstdc++fs -ldl /usr/lib64/libpng16.so /usr/lib64/libz.so /usr/lib64/libSDL2_net.so /usr/lib64/libopusfile.so /usr/lib64/libGL.so /usr/lib64/libspeexdsp.so /usr/lib64/libfluidsynth.so /usr/lib64/libmt32emu.so /usr/lib64/libasound.so /usr/lib64/libXi.so -Wl,--end-group /usr/bin/ld: warning: libjack.so.0, needed by /usr/lib64/libfluidsynth.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_set_buffer_size_callback' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_activate' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_port_get_buffer' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_port_register' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_set_process_callback' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_on_shutdown' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_client_close' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_set_port_registration_callback' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_get_sample_rate' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_get_ports' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_client_open' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_free' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_port_name' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_connect' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_set_sample_rate_callback' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_midi_event_get' /usr/bin/ld: /usr/lib64/libfluidsynth.so: undefined reference to `jack_midi_get_event_count' collect2: error: ld returned 1 exit status Expected Results: Build succeeds Failing build: http://koji.fedoraproject.org/koji/taskinfo?taskID=129180906 Koschei's view on changed dependency resolution: http://koschei.fedoraproject.org/package/dosbox-staging?collection=f43
I experience the same issue with ardour8 failing to build, see here: http://src.fedoraproject.org/rpms/ardour8/pull-request/1 I can confirm that with the ld.so.conf file present, the package builds.
http://src.fedoraproject.org/rpms/pipewire/pull-request/30
I've made adjustments and submitted PRs for this across all affected Fedora releases: - rawhide: http://src.fedoraproject.org/rpms/pipewire/pull-request/31 - f42: http://src.fedoraproject.org/rpms/pipewire/pull-request/32 - f41: http://src.fedoraproject.org/rpms/pipewire/pull-request/33 - f40: http://src.fedoraproject.org/rpms/pipewire/pull-request/34 This needs to land asap because it's breaking KDE too.
Proposed as a Blocker for 42-beta by Fedora user ngompa using the blocker tracking app because: This is breaking builds and creating incoherent runtime issues with packages that link to libjack.
*** Bug 2263486 has been marked as a duplicate of this bug. ***
I've updated my PRs to install libjack to the default library location to just eliminate this wonkiness.
FEDORA-2025-1da71d2444 (pipewire-1.4.0-2.fc43) has been submitted as an update to Fedora 43. http://bodhi.fedoraproject.org/updates/FEDORA-2025-1da71d2444
JACK2 and pipewire-jack need to be installable at the same time or else a required feature of having jack2 as a pipewire backend can't be done anymore. This excludes having the same libjack.so location. The only solution then is to always install the ld.so.conf file when the -libs are pulled in. I'm making a build with the ld.so.conf moved to the -libs package but I probably prefer to just install the pipewire-jack-audio-connection-kit package as a Requires, like the patch from Robert-Andre. Doing this breaks the ability to choose where to run a jack application in case JACK2 is installed as well (using pw-jack to send it to pipewire, otherwise it goes to JACK2). I think this is an acceptable breakage, I don't know anyone who does or wants to do that. We could eventually fix this again if we allow swapping between jack2 for pipewire-jack-audio-connection-kit (like we do for the pulseaudio server), but I don't want to spend much time thinking about that niche case.
FEDORA-2025-1da71d2444 (pipewire-1.4.0-2.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report.