Package: pipewire-pulse Version: 0.3.78-1 Severity: normal
Dear pipewire maintainers, * What led up to the situation? I'm trying to getting Mobian Pinephone (PP) audio phone calls to fully work (person on remote phone hears me and I hear the person on the remote phone). See https://salsa.debian.org/Mobian-team/packages/alsa-ucm-conf/-/issues/8 https://salsa.debian.org/Mobian-team/packages/alsa-ucm-conf/-/issues/9 for details. A bug related to callaudiod in pipewire-0.3.77 was reported to be fixed in 0.3.78: https://gitlab.com/mobian1/callaudiod/-/issues/30 . I had pipewire 0.3.77-1 from Mobian/Debian/trixie installed. * What exactly did you do (or not do) that was effective (or ineffective)? I compiled pipewire 0.3.78-1 from Debian (salsa) source with 'fakeroot debian/rules binary' after applying the two patches in debian/patches/ . I installed all the newly compiled *.deb files that matched names that I already had from 0.3.77-1, using dpkg -i *.deb. More specifically, I did: 'for i in gstreamer1.0-pipewire_0.3.78-1_arm64.deb libpipewire-0.3-0_0.3.78-1_arm64.deb libpipewire-0.3-modules_0.3.78-1_arm64.deb libspa-0.2-bluetooth_0.3.78-1_arm64.deb libspa-0.2-jack_0.3.78-1_arm64.deb libspa-0.2-libcamera_0.3.78-1_arm64.deb libspa-0.2-modules_0.3.78-1_arm64.deb pipewire_0.3.78-1_arm64.deb pipewire-alsa_0.3.78-1_arm64.deb pipewire-audio_0.3.78-1_all.deb pipewire-audio-client-libraries_0.3.78-1_all.deb pipewire-bin_0.3.78-1_arm64.deb pipewire-jack_0.3.78-1_arm64.deb pipewire-pulse_0.3.78-1_arm64.deb; do sudo dpkg -i ${i}; done' four times, as a brute force alternative to working out in which order the packages depended on each other. The first three times each reported missing dependencies, but fewer each time. The fourth iteration appeared to be error-free. I checked that the apt system was clean with dpkg --audit which gave an empty response. I restarted pipewire (several times). * What was the outcome of this action? Some phone calls worked :). And some phone calls failed :(. More specifically, after analysing and tidying log files for my main bug, I found that the old /usr/bin/pipewire-pulse (0.3.77-1) is still running. The output of 'pw-dump' shows that there is a mix of 0.3.78-1 and 0.3.77-1 running in parallel. I've kept this situation for the purposes of reporting this bug, but I'll kill off the old pipewire-pulse process after filing the bug report. * What outcome did you expect instead? What I expected was that the dpkg/apt system and/or the systemd system should have recognised that the old 'pipewire-pulse' process was invalid and should have forced it to restart with the 0.3.78-1 version. SUGGESTED SOLUTIONS: (1) dpkg or the debian/control or other debian/* file - if pipewire is re-installed and pipewire-pulse is present, then pipewire-pulse must not only be updated to the same version, but any processes actually running must be restarted too. This depends on whether the debian/* files force restarting of the systemd services or not. If the services are restarted, then it seems to me that pipewire-pulse must be restarted along with pipewire (if pipewire-pulse is installed). (2) systemd alone - if (i) the pipewire-pulse service exists, and (ii) pipewire is restarted, then (iii) pipewire-pulse must be restarted. I can only make an educated guess as to what the systemd rules for this should be. My guess is: /lib/systemd/user/pipewire.service PropagatesStopTo=pipewire-pulse /lib/systemd/user/pipewire-pulse.service StopPropagatedFrom=pipewire since a 'restart' is presumably a stop and a start. There doesn't seem to be a pair PropagatesRestartTo and RestartPropagatesTo. COMMENT: If upstream has a separate 'pipewire-pulse' package, then this issue should presumably be also fixed upstream. DIAGNOSTICS: $ dpkg -l |grep pipewire ii gstreamer1.0-pipewire:arm64 0.3.78-1 arm64 GStreamer 1.0 plugin for the PipeWire multimedia server ii libpipewire-0.3-0:arm64 0.3.78-1 arm64 libraries for the PipeWire multimedia server ii libpipewire-0.3-modules:arm64 0.3.78-1 arm64 libraries for the PipeWire multimedia server - modules ii pipewire:arm64 0.3.78-1 arm64 audio and video processing engine multimedia server ii pipewire-alsa:arm64 0.3.78-1 arm64 PipeWire ALSA plugin ii pipewire-audio 0.3.78-1 all recommended set of PipeWire packages for a standard audio desktop use ii pipewire-audio-client-libraries 0.3.78-1 all transitional package for pipewire-alsa and pipewire-jack ii pipewire-bin 0.3.78-1 arm64 PipeWire multimedia server - programs ii pipewire-jack:arm64 0.3.78-1 arm64 PipeWire JACK plugin ii pipewire-pulse 0.3.78-1 arm64 PipeWire PulseAudio daemon $ ls -l /usr/bin/pipewire-pulse /usr/share/pipewire/pipewire-pulse.conf lrwxrwxrwx 1 root root 8 Aug 22 13:51 /usr/bin/pipewire-pulse -> pipewire -rw-r--r-- 1 root root 5990 Aug 22 13:51 /usr/share/pipewire/pipewire-pulse.conf $ head /usr/share/pipewire/pipewire-pulse.conf # PulseAudio config file for PipeWire version "0.3.78" # # # Copy and edit this file in /etc/pipewire for system-wide changes # or in ~/.config/pipewire for local changes. # # It is also possible to place a file with an updated section in # /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in # ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes. # $ ls ~/.config/pipewire* ls: cannot access '/home/mobian/.config/pipewire*': No such file or directory [+58%]@mobian:~$ systemctl --user status pipewire ● pipewire.service - PipeWire Multimedia Service Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled) Active: active (running) since Fri 2023-08-25 10:42:20 CEST; 1h 28min ago TriggeredBy: ● pipewire.socket Main PID: 84989 (pipewire) Tasks: 3 (limit: 3167) Memory: 4.4M CPU: 248ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service └─84989 /usr/bin/pipewire Aug 25 10:42:20 mobian systemd[774]: Started pipewire.service - PipeWire Multimedia Service. [+58%]@mobian:~$ systemctl --user status pipewire-pulse ● pipewire-pulse.service - PipeWire PulseAudio Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; preset: enabled) Active: active (running) since Tue 2023-08-22 13:47:08 CEST; 2 days ago TriggeredBy: ● pipewire-pulse.socket Main PID: 853 (pipewire-pulse) Tasks: 3 (limit: 3167) Memory: 13.9M CPU: 25.507s CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service └─853 /usr/bin/pipewire-pulse Aug 22 13:47:08 mobian systemd[774]: Started pipewire-pulse.service - PipeWire PulseAudio. $ ps -A uf |grep "/usr.*pipewire" |grep -v grep mobian 853 0.0 0.6 110704 19028 ? S<sl Aug22 0:25 \_ /usr/bin/pipewire-pulse mobian 84989 0.0 0.3 110120 11404 ? S<sl 10:42 0:00 \_ /usr/bin/pipewire $ pw-dump |grep -B2 "0\.3\.[0-9]*" "user-name": "mobian", "host-name": "mobian", "version": "0.3.78", -- "module.name": "libpipewire-module-rt", "module.usage": "( nice.level=<priority: default 20(don't change)> ) ( rt.prio=<priority: default 88> ) ( rt.time.soft=<in usec: default -1> ) ( rt.time.hard=<in usec: default -1> ) ( rlimits.enabled=<default true> ) ( rtportal.enabled=<default true> ) ( rtkit.enabled=<default true> ) ", "module.version": "0.3.78", -- "module.description": "Native protocol using unix sockets", "module.name": "libpipewire-module-protocol-native", "module.version": "0.3.78", -- "module.description": "Generate Profiling data", "module.name": "libpipewire-module-profiler", "module.version": "0.3.78", -- "module.description": "Allow clients to create metadata store", "module.name": "libpipewire-module-metadata", "module.version": "0.3.78", -- "module.description": "Provide a factory to make SPA devices", "module.name": "libpipewire-module-spa-device-factory", "module.version": "0.3.78", -- "module.description": "Provide a factory to make SPA nodes", "module.name": "libpipewire-module-spa-node-factory", "module.version": "0.3.78", -- "module.description": "Allow clients to create and control remote nodes", "module.name": "libpipewire-module-client-node", "module.version": "0.3.78", -- "module.description": "Allow clients to create and control remote devices", "module.name": "libpipewire-module-client-device", "module.version": "0.3.78", -- "module.name": "libpipewire-module-access", "module.usage": "( access.force=flatpak ) ( access.allowed= [ <cmd-line>,.. ] ) ( access.rejected= [ <cmd-line>,.. ] ) ( access.restricted= [ <cmd-line>,.. ] ) ", "module.version": "0.3.78", -- "module.description": "Manage adapter nodes", "module.name": "libpipewire-module-adapter", "module.version": "0.3.78", -- "module.name": "libpipewire-module-link-factory", "module.usage": "( allow.link.passive=<bool, default false> ) ", "module.version": "0.3.78", -- "module.description": "Implements objects for session management", "module.name": "libpipewire-module-session-manager", "module.version": "0.3.78", -- "config.name": "pipewire-pulse.conf", "core.name": "pipewire-mobian-853", "core.version": "0.3.77", -- "config.name": "pipewire-pulse.conf", "core.name": "pipewire-mobian-853", "core.version": "0.3.77", -- "config.name": "pipewire-pulse.conf", "core.name": "pipewire-mobian-853", "core.version": "0.3.77", -- "config.name": "pipewire-pulse.conf", "core.name": "pipewire-mobian-853", "core.version": "0.3.77", -- "clock.power-of-two-quantum": true, "core.name": "pipewire-mobian-1685", "core.version": "0.3.77", -- "config.name": "/usr/share/wireplumber/wireplumber.conf", "core.name": "pipewire-mobian-84995", "core.version": "0.3.78", -- "config.name": "/usr/share/wireplumber/wireplumber.conf", "core.name": "pipewire-mobian-84995", "core.version": "0.3.78", -- "config.name": "pipewire-pulse.conf", "core.name": "pipewire-mobian-853", "core.version": "0.3.77", -- "config.name": "pipewire-pulse.conf", "core.name": "pipewire-mobian-853", "core.version": "0.3.77", -- "clock.power-of-two-quantum": true, "core.name": "pipewire-mobian-87647", "core.version": "0.3.78", -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing') Architecture: arm64 (aarch64) Kernel: Linux 6.1-sunxi64 (SMP w/4 CPU threads) Kernel taint flags: TAINT_CRAP, TAINT_UNSIGNED_MODULE Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages pipewire-pulse depends on: ii init-system-helpers 1.65.2 ii pipewire 0.3.78-1 Versions of packages pipewire-pulse recommends: ii wireplumber 0.4.14-4 Versions of packages pipewire-pulse suggests: ii libspa-0.2-bluetooth 0.3.78-1 ii pulseaudio-utils 16.1+dfsg1-2+b1 -- no debconf information Cheers Boud