USE flags are inconsistent: USE="screencast -wayland" looks for pipewire needed by USE=screencast; pipewire requires wayland the way it is implemented in the krfb cmake scripts.
There is a second bug due to a bad regex that may have been broken by an upstream change in CMakeLists.txt with the consequence that pipewire is always searched for, no matter the USE settings, so wayland also is always required if pipewire is found. If USE=-wayland, the ebuild is supposed to modify CMakeLists.txt not to look for pipewire that is enabled by default. Then if USE=wayland is set, pipewire is supposed to be turned back on by setting CMAKE_DISABLE_FIND_PACKAGE_PipeWire=OFF. The latter seems to have no effect. With the regex broken, the attempt to compile with pipewire support is never disabled in any combination of USE flags. If pipewire is not installed (Funtoo default) then nothing happens. However, if pipewire is on the system, it will be found by krfb's cmake scripts that will then test for wayland and fail if it's not found.
Fixing this at least means that USE="-screencast -wayland" does not look for pipewire, so it doesn't depend on wayland secondhand. $(cmake_use_find_package wayland PlasmaWaylandProtocols) seems to work to squelch the search for PlasmaWaylandProtocols when USE=-wayland ... or else the build failure never would have occurred, since pipewire would have had what it needed.
It seems necessary also to define REQUIRED_USE="screencast? ( wayland )" to solve the inconsistency wherein wayland is required if USE="screencast -wayland" is specified.
- relates to
-
FL-10987 kde-apps/krfb-22.08.1:5::kde-kit cannot be merged on next without USE=wayland
- Closed