FS#78337 - [libpipewire] [pipewire] should libpipewire supply /usr/lib/spa-0.2/support/*.so
Attached to Project:
Arch Linux
Opened by John (graysky) - Sunday, 30 April 2023, 11:30 GMT
Last edited by Toolybird (Toolybird) - Tuesday, 30 May 2023, 03:31 GMT
Opened by John (graysky) - Sunday, 30 April 2023, 11:30 GMT
Last edited by Toolybird (Toolybird) - Tuesday, 30 May 2023, 03:31 GMT
|
Details
I maintain kodi-git[1] which is based heavily on the
official kodi PKGBUILD. I noticed that the way it is
currently built _forces_ a dependency on pipewire whereas
the current official PKGBUILD runs fine with just
libpipewire. At issue is the absence of several shared
objects which libpipewire does not supply but that pipewire
does supply, namely:
/usr/lib/spa-0.2/support/libspa-support.so /usr/lib/spa-0.2/support/libspa-journal.so /usr/lib/spa-0.2/support/libspa-support.so When I start kodi-gbm (compiled from kodi-git) via a systemd service[2], I get it core dumping due to these missing *.so files. Note that I passed PIPEWIRE_DEBUG=4 to see more verbose output. When I install the pipewire package, kodi starts and runs since it provides the missing *.so files. Is this: a. A new kodi dependency on pipewire (I find none in the linux docs for kodi)? b. A bug in kodi's code? c. A problem with how am I building (perhaps there is an alternative way to build/dependencies to circumvent this)? d. A problem with what we are packaging in pipewire/libpipewire? (Ie should libpipewire be supplying those *.so files)? e. Something else? 1. https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=kodi-git 2. https://github.com/graysky2/kodi-standalone-service/blob/master/x86/init/kodi-gbm.service Journalctl output without pipewire installed: kodi-standalone[4025]: [D] pw.context [pipewire.c:229 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.log' kodi-standalone[4025]: [D] pw.context [pipewire.c:113 open_plugin()] can't load /usr/lib/spa-0.2/support/libspa-support.so: /usr/lib/spa-0.2/support/libspa-support.so: cannot open shared object file: No such file or directory kodi-standalone[4025]: [D] pw.context [pipewire.c:229 load_spa_handle()] load lib:'support/libspa-journal' factory-name:'support.log' kodi-standalone[4025]: [D] pw.context [pipewire.c:113 open_plugin()] can't load /usr/lib/spa-0.2/support/libspa-journal.so: /usr/lib/spa-0.2/support/libspa-journal.so: cannot open shared object file: No such file or directory kodi-standalone[4025]: [D] pw.context [pipewire.c:229 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.cpu' kodi-standalone[4025]: [D] pw.context [pipewire.c:113 open_plugin()] can't load /usr/lib/spa-0.2/support/libspa-support.so: /usr/lib/spa-0.2/support/libspa-support.so: cannot open shared object file: No such file or directory kodi-standalone[4025]: [I] pw.context [pipewire.c:647 pw_init()] version 0.3.70 kodi-standalone[4025]: [D] pw.thread-loop [thread-loop.c:145 loop_new()] 0x55874c5fc690: new name:pipewire kodi-standalone[4025]: [D] pw.context [pipewire.c:229 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.system' kodi-standalone[4025]: [D] pw.context [pipewire.c:113 open_plugin()] can't load /usr/lib/spa-0.2/support/libspa-support.so: /usr/lib/spa-0.2/support/libspa-support.so: cannot open shared object file: No such file or directory kodi-standalone[4025]: [E] pw.loop [loop.c:67 pw_loop_new()] 0x55874c5e7980: can't make support.system handle: No such file or directory kodi-standalone[4025]: terminate called after throwing an instance of 'std::runtime_error' kodi-standalone[4025]: what(): CPipewireThreadLoop: failed to create main loop systemd[1]: Started Process Core Dump (PID 4029/UID 0). systemd-coredump[4030]: [🡕] Process 4025 (kodi.bin) of user 981 dumped core. Stack trace of thread 4025: #0 0x00007faafb2618ec n/a (libc.so.6 + 0x878ec) #1 0x00007faafb212ea8 raise (libc.so.6 + 0x38ea8) #2 0x00007faafb1fc53d abort (libc.so.6 + 0x2253d) #3 0x00007faafac9a833 _ZN9__gnu_cxx27__verbose_terminate_handlerEv (libstdc++.so.6 + 0x9a833) #4 0x00007faafaca6d0c _ZN10__cxxabiv111__terminateEPFvvE (libstdc++.so.6 + 0xa6d0c) #5 0x00007faafaca6d79 _ZSt9terminatev (libstdc++.so.6 + 0xa6d79) #6 0x00007faafaca6fdd __cxa_throw (libstdc++.so.6 + 0xa6fdd) #7 0x0000558748bfdd6b n/a (kodi.bin + 0x98fd6b) #8 0x000055874a1994c1 _ZN4KODI8PIPEWIRE9CPipewire5StartEv (kodi.bin + 0x1f2b4c1) #9 0x000055874a199b28 _ZN4KODI8PIPEWIRE9CPipewire6CreateEv (kodi.bin + 0x1f2bb28) #10 0x000055874a192dab _ZN2AE4SINK15CAESinkPipewire8RegisterEv (kodi.bin + 0x1f24dab) #11 0x0000558748fcdfb6 _ZN14CPlatformLinux12InitStageOneEv (kodi.bin + 0xd5ffb6) #12 0x000055874998ab82 _ZN15CServiceManager12InitStageOneEv (kodi.bin + 0x171cb82) #13 0x0000558749728cfd _ZN12CApplication6CreateEv (kodi.bin + 0x14bacfd) #14 0x00005587494dcdf8 XBMC_Run (kodi.bin + 0x126edf8) #15 0x0000558748ca41d7 main (kodi.bin + 0xa361d7) #16 0x00007faafb1fd790 n/a (libc.so.6 + 0x23790) #17 0x00007faafb1fd84a __libc_start_main (libc.so.6 + 0x2384a) #18 0x0000558748d16f35 _start (kodi.bin + 0xaa8f35) Stack trace of thread 4028: #0 0x00007faafb25c766 n/a (libc.so.6 + 0x82766) #1 0x00007faafb25ef90 pthread_cond_wait (libc.so.6 + 0x84f90) #2 0x00007faafaccfe51 __gthread_cond_wait (libstdc++.so.6 + 0xcfe51) #3 0x0000558749fa1251 _ZN12ANNOUNCEMENT20CAnnouncementManager7ProcessEv (kodi.bin + 0x1d33251) #4 0x000055874948b6e5 _ZN7CThread6ActionEv (kodi.bin + 0x121d6e5) #5 0x000055874948c4b0 n/a (kodi.bin + 0x121e4b0) #6 0x00007faafacd72c3 execute_native_thread_routine (libstdc++.so.6 + 0xd72c3) #7 0x00007faafb25fbb5 n/a (libc.so.6 + 0x85bb5) #8 0x00007faafb2e1d90 n/a (libc.so.6 + 0x107d90) ELF object binary architecture: AMD x86-64 systemd[1]: systemd-coredump@3-4029-0.service: Deactivated successfully. kodi-standalone[4020]: /usr/bin/kodi: line 181: 4025 Aborted (core dumped) ${KODI_BINARY} $SAVED_ARGS kodi-standalone[4020]: Crash report available at /var/lib/kodi/kodi_crashlog-20230430_070427.log |
This task depends upon
Closed by  Toolybird (Toolybird)
Tuesday, 30 May 2023, 03:31 GMT
Reason for closing: Â Won't fix
Additional comments about closing: Â See comments from PM. Upstream ticket proposes a fix on the Kodi side.
Tuesday, 30 May 2023, 03:31 GMT
Reason for closing: Â Won't fix
Additional comments about closing: Â See comments from PM. Upstream ticket proposes a fix on the Kodi side.
Some more information:
Debain has a separate package for libspa modules and libpipewire has a hard dependency on it.
https://packages.debian.org/sid/libpipewire-0.3-0
https://packages.debian.org/sid/amd64/libspa-0.2-modules/filelist
The main reason it fails seems to be that the libspa-support module contains functions to help with event loops and libpipewire uses that.
https://docs.pipewire.org/group__spa__loop.html
If the libspa-support module is not made available to libpipewire, then at minimum patch to kodi would be required, maybe other applications could run into the same issue as well.
/usr/lib/spa-0.2/support/libspa-support.so
/usr/lib/spa-0.2/support/libspa-journal.so
/usr/lib/spa-0.2/support/libspa-dbus.so
/usr/share/pipewire/client.conf
/usr/lib/pipewire-0.3/libpipewire-module-adapter.so
/usr/lib/pipewire-0.3/libpipewire-module-client-device.so
/usr/lib/pipewire-0.3/libpipewire-module-client-node.so
/usr/lib/pipewire-0.3/libpipewire-module-metadata.so
/usr/lib/pipewire-0.3/libpipewire-module-protocol-native.so
/usr/lib/pipewire-0.3/libpipewire-module-session-manager.so