• Bug#1100094: kodi: Kodi fails to build with pipewire 1.4.0

    From Daniele Ricci@21:1/5 to All on Tue Mar 11 11:30:01 2025
    This is a multi-part MIME message sent by reportbug.


    Package: kodi
    Version: 2:21.2+dfsg-1
    Severity: serious
    Tags: ftbfs
    Justification: fails to build from source (but built successfully in the past)

    Dear Maintainer,

    Kodi fails to build on testing with pipewire 1.4.0 on x86_64 (although I suppose the architecture doesn't really matter in this case). Relevant excerpt from log is attached.

    To reproduce, just try to build the package on latest testing.

    The package will build successfully against pipewire 1.2.7 (that was the previous available version on testing, now available only on bookworm-backports without the "-0t64" suffix) - build script available here and tested: https://github.com/daniele-athome/my-debian- packages/blob/master/kodi/Dockerfile#L3


    -- System Information:
    Debian Release: trixie/sid
    APT prefers testing
    APT policy: (900, 'testing'), (600, 'stable'), (500, 'stable-updates') Architecture: amd64 (x86_64)
    Foreign Architectures: i386

    Kernel: Linux 6.12.17-amd64 (SMP w/8 CPU threads; PREEMPT)
    Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
    Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8), LANGUAGE not set
    Shell: /bin/sh linked to /usr/bin/dash
    Init: systemd (via /run/systemd/system)
    LSM: AppArmor: enabled

    Versions of packages kodi depends on:
    ii kodi-bin 2:21.2+dfsg-1
    ii kodi-data 2:21.2+dfsg-1

    Versions of packages kodi recommends:
    ii kodi-repository-kodi [kodi-repository] 2:21.2+dfsg-1
    ii kodi-visualization-spectrum 21.0.2+ds-1

    kodi suggests no packages.

    -- no debconf information

    [ 4%] Building CXX object build/cores/audioengine/CMakeFiles/audioengine.dir/Sinks/pipewire/PipewireNode.cpp.o
    cd /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu/build/cores/audioengine && /usr/bin/c++ -DCMS_NO_REGISTER_KEYWORD=1 -DFFMPEG_VER_SHA=7.0.0 -DFMT_SHARED -DHAS_AIRPLAY=1 -DHAS_AIRTUNES=1 -DHAS_ALSA=1 -DHAS_AVAHI=1 -DHAS_
    DBUS=1 -DHAS_EGL=1 -DHAS_FILESYSTEM_NFS -DHAS_GBM_BO_MAP=1 -DHAS_GBM_MODIFIERS=1 -DHAS_GL=1 -DHAS_LIRC=1 -DHAS_MYSQL=1 -DHAS_NFS_MOUNT_GETEXPORTS_TIMEOUT -DHAS_NFS_SET_TIMEOUT -DHAS_PULSEAUDIO=1 -DHAS_SNDIO=1 -DHAS_UDFREAD=1 -DHAS_ZEROCONF=1 -DHAVE_DRM_
    MODIFIER_NAME=1 -DHAVE_EGLEXTANGLE=1 -DHAVE_GBM=1 -DHAVE_HDR_OUTPUT_METADATA=1 -DHAVE_LCMS2=1 -DHAVE_LIBBLUETOOTH=1 -DHAVE_LIBCAP=1 -DHAVE_LIBCEC=1 -DHAVE_LIBUDEV=1 -DHAVE_LIBVDPAU=1 -DHAVE_LIBXRANDR=1 -DHAVE_LIBXSLT=1 -DHAVE_X11=1 -DSPDLOG_COMPILED_LIB -
    DSPDLOG_DEBUG_ON -DSPDLOG_FMT_EXTERNAL -DSPDLOG_NO_ATOMIC_LEVELS -DSPDLOG_SHARED_LIB -DTINYXML2_IMPORT -D_FILE_OFFSET_BITS=64 -I/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu -I/home/daniele/Playground/kodi-trixie-build/
    kodi-21.2+dfsg -I/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/lib -I/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc -I/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/platform/linux -I/home/daniele/Playground/
    kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/VideoPlayer -I/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu/build -I/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/platform/posix -I/home/daniele/Playground/kodi-
    trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine -isystem /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu/build/include -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/python3.13 -
    isystem /usr/include/samba-4.0 -isystem /usr/include/fribidi -isystem /usr/include/lzo -isystem /usr/include/dbus-1.0 -isystem /usr/lib/x86_64-linux-gnu/dbus-1.0/include -isystem /usr/include/libxml2 -isystem /usr/include/freetype2 -isystem /usr/include/
    libpng16 -isystem /usr/include/harfbuzz -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/sysprof-6 -isystem /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu/build/cores/
    RetroPlayer/messages -isystem /usr/include/libdrm -g -ffile-prefix-map=/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O3 -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_XBMC -DDEB_VERSION=\"2:21.2+dfsg-1\" -Wall -Wdouble-promotion -Wmissing-field-initializers -Wsign-compare -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -O2 -g -DNDEBUG -std=c++17 -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_
    LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -DHAS_POSIX_
    NETWORK -DHAS_LINUX_NETWORK -DHAS_BUILTIN_SYNC_ADD_AND_FETCH=1 -DHAS_BUILTIN_SYNC_SUB_AND_FETCH=1 -DHAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP=1 -DHAVE_INOTIFY=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_INTTYPES_H=1 -DHAVE_
    LIBBLURAY=1 -DHAVE_LIBBLURAY_BDJ=1 -DHAS_ISO9660PP=1 -DHAS_WEB_SERVER=1 -DHAS_WEB_INTERFACE=1 -DHAS_PIPEWIRE=1 -DHAS_PYTHON=1 -DHAS_FILESYSTEM_SMB=1 -DHAVE_LIBVA=1 -DHAS_GLX=1 -DDATE_HAS_STRINGVIEW -DHAVE_GCRYPT=1 -DHAVE_WAYLAND=1 -DHAS_UPNP=1 -DHAS_
    OPTICAL_DRIVE -DHAS_CDDA_RIPPER -DBIN_INSTALL_PATH=\"/usr/lib/x86_64-linux-gnu/kodi\" -DINSTALL_PATH=\"/usr/share/kodi\" -Werror=double-promotion -Werror=missing-field-initializers -Werror=sign-compare -pthread -MD -MT build/cores/audioengine/CMakeFiles/
    audioengine.dir/Sinks/pipewire/PipewireNode.cpp.o -MF CMakeFiles/audioengine.dir/Sinks/pipewire/PipewireNode.cpp.o.d -o CMakeFiles/audioengine.dir/Sinks/pipewire/PipewireNode.cpp.o -c /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/
    AudioEngine/Sinks/pipewire/PipewireNode.cpp /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine/Sinks/pipewire/PipewireNode.cpp: In member function 'void KODI::PIPEWIRE::CPipewireNode::EnumerateFormats()':
    /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine/Sinks/pipewire/PipewireNode.cpp:43:38: error: cannot convert 'std::unique_ptr<pw_proxy, KODI::PIPEWIRE::CPipewireProxy::PipewireProxyDeleter>::pointer' {aka 'pw_proxy*'} to '
    pw_node*'
    43 | pw_node_enum_params(m_proxy.get(), 0, m_info->params[param].id, 0, 0, NULL);
    | ~~~~~~~~~~~^~
    | |
    | std::unique_ptr<pw_proxy, KODI::PIPEWIRE::CPipewireProxy::PipewireProxyDeleter>::pointer {aka pw_proxy*}
    In file included from /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine/Sinks/pipewire/PipewireNode.h:16,
    from /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine/Sinks/pipewire/PipewireNode.cpp:9:
    /usr/include/pipewire-0.3/pipewire/node.h:208:58: note: initializing argument 1 of 'int pw_node_enum_params(pw_node*, int, uint32_t, uint32_t, uint32_t, const spa_pod*)'
    208 | PW_API_NODE_IMPL int pw_node_enum_params(struct pw_node *object,
    | ~~~~~~~~~~~~~~~~^~~~~~
    In file included from /usr/include/pipewire-0.3/pipewire/core.h:77,
    from /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine/Sinks/pipewire/PipewireProxy.h:13,
    from /home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/xbmc/cores/AudioEngine/Sinks/pipewire/PipewireNode.h:11:
    /usr/include/pipewire-0.3/pipewire/context.h:181:16: note: class type 'pw_proxy' is incomplete
    181 | struct pw_proxy * (*func) (struct pw_core *core,
    | ^~~~~~~~
    make[4]: *** [build/cores/audioengine/CMakeFiles/audioengine.dir/build.make:460: build/cores/audioengine/CMakeFiles/audioengine.dir/Sinks/pipewire/PipewireNode.cpp.o] Error 1
    make[4]: Leaving directory '/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu'
    make[3]: *** [CMakeFiles/Makefile2:8797: build/cores/audioengine/CMakeFiles/audioengine.dir/all] Error 2
    make[3]: Leaving directory '/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu'
    make[2]: *** [Makefile:149: all] Error 2
    make[2]: Leaving directory '/home/daniele/Playground/kodi-trixie-build/kodi-21.2+dfsg/obj-x86_64-linux-gnu'
    dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
    make[1]: *** [debian/rules:236: override_dh_auto_build] Error 2

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)