I can't update multimedia/helvum >= 0.4.1 because https://gitlab.freedesktop.org/pipewire/pipewire-rs/-/commit/7b75773274a5 depends on https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/00ae289a1481 and part of pipewire >= 0.3.65 (2023-01-24). [libspa-sys 0.7.0] cargo:warning=src/type-info.c:61:58: error: use of undeclared identifier 'spa_type_video_flags'; did you mean 'spa_type_audio_flags'? [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning=const struct spa_type_info* libspa_rs_type_video_flags = spa_type_video_flags; [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning= ^~~~~~~~~~~~~~~~~~~~ [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning= spa_type_audio_flags [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning=/usr/local/include/spa-0.2/spa/param/audio/type-info.h:153:35: note: 'spa_type_audio_flags' declared here [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning=static const struct spa_type_info spa_type_audio_flags[] = { [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning= ^ [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning=src/type-info.c:62:67: error: use of undeclared identifier 'spa_type_video_interlace_mode' [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning=const struct spa_type_info* libspa_rs_type_video_interlace_mode = spa_type_video_interlace_mode; [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning= ^ [libspa-sys 0.7.0] [libspa-sys 0.7.0] cargo:warning=2 errors generated.
With the latest pipewire-rs (due to partial legacy support) the error has changed: error[E0412]: cannot find type `spa_debug_context` in this scope --> libspa-sys/src/debug/pod.rs:8:19 | 8 | ctx: *mut spa_debug_context, | ^^^^^^^^^^^^^^^^^ not found in this scope error[E0412]: cannot find type `spa_debug_context` in this scope --> libspa-sys/src/debug/pod.rs:18:19 | 18 | ctx: *mut spa_debug_context, | ^^^^^^^^^^^^^^^^^ not found in this scope Also, helvum 0.4.1 appears to work fine with pipewire-rs 0.6.0 (see ports 2c6b7355e43b) but helvum 0.5.0 depends on pipewire-rs >= 0.7 features: error[E0432]: unresolved import `pipewire::spa::param` --> src/pipewire_connection/mod.rs:35:9 | 35 | param::{ParamInfoFlags, ParamType}, | ^^^^^ could not find `param` in `spa` error[E0432]: unresolved import `pipewire::spa::format` --> src/ui/graph/graph_view.rs:45:24 | 45 | use pipewire::spa::format::MediaType; | ^^^^^^ could not find `format` in `spa` error[E0432]: unresolved import `pipewire::spa::format` --> src/ui/graph/port.rs:34:25 | 34 | use pipewire::spa::{format::MediaType, Direction}; | ^^^^^^ could not find `format` in `spa` error[E0432]: unresolved import `pipewire::spa::format` --> src/ui/graph/link.rs:18:20 | 18 | use pipewire::spa::format::MediaType; | ^^^^^^ could not find `format` in `spa` error[E0432]: unresolved imports `pipewire::spa::format`, `crate::MediaType`, `crate::MediaType` --> src/main.rs:23:21 | 23 | use pipewire::spa::{format::MediaType, Direction}; | ^^^^^^ could not find `format` in `spa` | ::: src/graph_manager.rs:30:28 | 30 | use crate::{ui::graph, MediaType, NodeType}; | ^^^^^^^^^ | ::: src/pipewire_connection/mod.rs:42:25 | 42 | use crate::{GtkMessage, MediaType, NodeType, PipewireMessage}; | ^^^^^^^^^ error[E0433]: failed to resolve: could not find `format` in `spa` --> src/graph_manager.rs:258:75 | 258 | fn link_format_changed(&self, id: u32, media_type: pipewire::spa::format::MediaType) { | ^^^^^^ could not find `format` in `spa` error[E0433]: failed to resolve: could not find `param` in `spa` --> src/pipewire_connection/mod.rs:327:42 | 327 | .and_then(|param| pipewire::spa::param::format_utils::parse_format(param).ok()) | ^^^^^ could not find `param` in `spa` error[E0433]: failed to resolve: could not find `param` in `spa` --> src/pipewire_connection/mod.rs:461:43 | 461 | .and_then(|format| pipewire::spa::param::format_utils::parse_format(format).ok()) | ^^^^^ could not find `param` in `spa` error[E0412]: cannot find type `Pod` in module `pipewire::spa::pod` --> src/pipewire_connection/mod.rs:323:40 | 323 | param: Option<&pipewire::spa::pod::Pod>, | ^^^ not found in `pipewire::spa::pod` error[E0593]: closure is expected to take 4 arguments, but it takes 5 arguments --> src/pipewire_connection/mod.rs:250:10 | 250 | .param(clone!(@strong sender => move |_, param_id, _, _, param| { | __________^^^^^_- | | | | | expected closure that takes 4 arguments 251 | | if param_id == ParamType::EnumFormat { 252 | | handle_port_enum_format(port_id, param, &sender) 253 | | } 254 | | })) | |__________- takes 5 arguments error[E0599]: no method named `params` found for reference `&PortInfo` in the current scope --> src/pipewire_connection/mod.rs:300:27 | 300 | let params = info.params(); | ^^^^^^ method not found in `&PortInfo` error[E0599]: no method named `enum_params` found for reference `&pipewire::port::Port` in the current scope --> src/pipewire_connection/mod.rs:306:23 | 306 | proxy.enum_params(0, Some(ParamType::EnumFormat), 0, u32::MAX); | ^^^^^^^^^^^ method not found in `&Port` error[E0599]: no method named `format` found for reference `&LinkInfo` in the current scope --> src/pipewire_connection/mod.rs:460:10 | 459 | let media_type = link_info | ______________________- 460 | | .format() | | -^^^^^^ method not found in `&LinkInfo` | |_________| |
https://github.com/waycrate/xdg-desktop-portal-luminous is also affected: v0.1.1 (the first tag) already specifies pipewire-sys-0.7.2 (Rust bindings), and according to git-blame(1) no revision existed that used pipewire-sys < 0.7.
(In reply to Jan Beich from comment #2) If you or someone else have ideas for workarounds I've added x11/xdg-desktop-portal-luminous to facilitate testing.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ea9c61f86374e6138f5ec6948d2e57f0c7c39eaf commit ea9c61f86374e6138f5ec6948d2e57f0c7c39eaf Author: Gleb Popov <arrowd@FreeBSD.org> AuthorDate: 2023-10-08 16:32:38 +0000 Commit: Gleb Popov <arrowd@FreeBSD.org> CommitDate: 2023-10-10 19:48:07 +0000 multimedia/pipewire: Update to 0.3.81 PR: 273258 multimedia/pipewire/Makefile | 10 +- multimedia/pipewire/distinfo | 10 +- ...tch-spa_plugins_vulkan_dmabuf__fallback.c (new) | 16 ++ ...tch-src_modules_module-netjack2-manager.c (new) | 13 ++ ...-pulse_modules_module-zeroconf-publish.c (gone) | 10 -- ...tch-src_modules_module-protocol-simple.c (gone) | 11 -- .../pipewire/files/patch-test_test-functional.c | 13 +- multimedia/pipewire/pkg-plist | 164 +++++++++++---------- 8 files changed, 132 insertions(+), 115 deletions(-)
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=0815295e0b7988daf05dc1665b4ff523c7083763 commit 0815295e0b7988daf05dc1665b4ff523c7083763 Author: Jan Beich <jbeich@FreeBSD.org> AuthorDate: 2023-10-11 11:40:13 +0000 Commit: Jan Beich <jbeich@FreeBSD.org> CommitDate: 2023-10-11 14:18:49 +0000 multimedia/pipewire: unbreak on FreeBSD < 13.2 after ea9c61f86374 In file included from ../src/modules/module-netjack2-manager.c:38: ../src/modules/module-netjack2/peer.c:2:10: fatal error: 'byteswap.h' file not found #include <byteswap.h> ^~~~~~~~~~~~ PR: 273258 .../patch-src_modules_module-netjack2_peer.c (new) | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+)
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=d26cd48207f1d50401c130539a650e91e6f150b2 commit d26cd48207f1d50401c130539a650e91e6f150b2 Author: Jan Beich <jbeich@FreeBSD.org> AuthorDate: 2023-10-11 16:57:25 +0000 Commit: Jan Beich <jbeich@FreeBSD.org> CommitDate: 2023-10-11 17:05:10 +0000 multimedia/pipewire: unbreak MEDIASESSION after ea9c61f86374 $ daemon -f pipewire $ /usr/local/libexec/xdg-desktop-portal-wlr [ERROR] - pipewire: couldn't connect to context [ERROR] - xdpw: failed to initialize screencast 'impl->enter_count > 0' failed at ../spa/plugins/support/loop.c:362 loop_leave() PR: 273258 Regressed by: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/01096bf6695a multimedia/pipewire/Makefile | 2 + .../files/patch-spa_plugins_meson.build (new) | 8 +++ multimedia/pipewire/pkg-plist | 77 ++++++++++++++++++++++ 3 files changed, 87 insertions(+)