saivert/pwvucontrol

Support wireplumber 0.5

sullyj3 opened this issue ยท 15 comments

Arch is using wireplumber 0.5, which means that pwvucontrol, depending on 0.4, can't be built.

Blocked by open issue upstream: arcnmx/wireplumber.rs/issues/35

Yes. I will have to wait for wireplumber-rs 0.5 as well.

If you really want to you can parallel install libwireplumber 0.4 with 0.5 on the same system as long as you only copy libwireplumber.0.4.so to your distro's /usr/local/lib equivalent and skip the rest of the stuff (wpctl, wireplumber binary itself and so on). Then pwvucontrol can be built against that and still work. This is what I do on my system during development since upgrading to Fedora 40 which ships wireplumber 0.5.

It only uses libwireplumber to talk to pipewire and having that older library version has no impact on the functioning of your pipewire or wireplumber installation.

Yes. I will have to wait for wireplumber-rs 0.5 as well.

Of course! I didn't mean to imply you ought to do anything in the meantime. I'm just opening to keep track of what's going on. I have a bad memory, so I've already cloned this repo and failed to build twice.

you can parallel install libwireplumber 0.4 with 0.5

Thanks, I appreciate the tip! I don't really want to mess around with going behind my package manager's back though, I'm happy to wait.

Hi,

Sorry for the dumb question, but where can I get libwireplumber.0.4.so ?

Thanks

If you're also on arch, it's likely still in your pacman cache. You can do
ls /var/cache/pacman/pkg/|grep libwireplumber to check. Copy the latest 0.4 to an empty directory and extract it using unzstd and tar. That should give you a just usr directory containing the package contents, including the file you want under ./usr/lib

If it's not in the cache, see https://wiki.archlinux.org/title/downgrading_packages#Arch_Linux_Archive

Debian Trixie (testing) is currently at libwireplumber 0.4.13 (, or libwireplumbe-0.5). Is there any chance to downgrade to build process such as it builds with 0.4.13?

Commenting to follow this issue, and to give my vote for support of wireplumber-0.5

Same here, would love to make an AUR package but I don't think I should ship one since it requires a version below.

@ThatOneCalculator I managed to make it work. Here is my diff:

diff --git a/Cargo.toml b/Cargo.toml
index cb1c308..04c84f6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,8 +10,7 @@ glib = { version = "0.18", features = ["log"] }
 log = "0.4.11"
 imbl = "3.0.0"
 once_cell = "1.15.0"
-wireplumber = { git = "https://github.com/arcnmx/wireplumber.rs.git", rev = "2c0ee463d029d3562ee66db90554c5af573565c1", features = ["v0_4_16"] }
+wireplumber = { git = "https://github.com/arcnmx/wireplumber.rs.git", rev = "a01b47d27e3e38c050e939a0176a565a27c1aee1", features = ["v0_4_12"] }
 futures = "0.3"
 anyhow = "1.0"
 pipewire = "0.7"
diff --git a/meson.build b/meson.build
index 066e09a..32c2f22 100644
--- a/meson.build
+++ b/meson.build
@@ -14,7 +14,7 @@ dependency('gio-2.0', version: '>= 2.66')
 dependency('gtk4', version: '>= 4.0.0')
 dependency('libadwaita-1', version: '>= 1.2')
 dependency('libpipewire-0.3', version: '>= 0.3.83')
-dependency('wireplumber-0.4', version: '>= 0.4.15')
+dependency('wireplumber-0.4', version: '>= 0.4.13')
 
 find_program('glib-compile-resources', required: true)
 glib_compile_schemas = find_program('glib-compile-schemas', required: true)
``

@flipreverse I tried applying it directly but got error: corrupt patch at line 14
image

Also, even applying those changes manually, I get this:

Run-time dependency libpipewire-0.3 found: YES 1.2.1
Found CMake: /usr/bin/cmake (3.30.0)
WARNING: CMake Toolchain: Failed to determine CMake compilers state
Run-time dependency wireplumber-0.4 found: NO (tried pkgconfig and cmake)

meson.build:17:0: ERROR: Dependency "wireplumber-0.4" not found, tried pkgconfig and cmake

If you really want to you can parallel install libwireplumber 0.4 with 0.5 on the same system as long as you only copy libwireplumber.0.4.so to your distro's /usr/local/lib equivalent and skip the rest of the stuff (wpctl, wireplumber binary itself and so on).

Thanks for this hint. I have created a compatibility package in the AUR to provide this and also created an AUR package for pwvucontrol.

Hi here, there is already a wp 0.5 branch in the WirePlumber rs repository.

Also, even applying those changes manually, I get this:

Run-time dependency libpipewire-0.3 found: YES 1.2.1
Found CMake: /usr/bin/cmake (3.30.0)
WARNING: CMake Toolchain: Failed to determine CMake compilers state
Run-time dependency wireplumber-0.4 found: NO (tried pkgconfig and cmake)

meson.build:17:0: ERROR: Dependency "wireplumber-0.4" not found, tried pkgconfig and cmake

Although quite late: Have you installed libwireplumber-0.4-0?

Is this the reason why pwvucontrol currently shows up as using the old API?

[1] % wpctl status
PipeWire 'pipewire-0' [1.2.5, c0rn3j@Luxuria, cookie:2703756527]
 โ””โ”€ Clients:
        32. plasmashell                         [1.2.5, c0rn3j@Luxuria, pid:9997]
        67. pwvucontrol                         [0.3.83, c0rn3j@Luxuria, pid:2]