Downgrade PipeWire 0.3.39 to 0.3.38

PipeWire 0.3.39 on Debian deprecates pipewire-media-session in favor of WirePlumber. The main issue I found with the new version is that it doesn’t support Bluetooth profile autoswitching, as it is unimplemented in WirePlumber. The best solution until this is resolved is simply holding back upgrading to 0.3.39. If you already upgraded, downgrading is a bit of hassle.

The first step is to retrieve all the necessary packages in the last working version, which is 0.3.38-2.

$ cd `mktemp -d`
$ debsnap -a amd64 --binary -d . gstreamer1.0-pipewire 0.3.38-2
$ debsnap -a amd64 --binary -d . libpipewire-0.3-0 0.3.38-2
$ debsnap -a all --binary -d . libpipewire-0.3-common 0.3.38-2
$ debsnap -a amd64 --binary -d . libpipewire-0.3-modules 0.3.38-2
$ debsnap -a amd64 --binary -d . pipewire-audio-client-libraries 0.3.38-2
$ debsnap -a amd64 --binary -d . pipewire-bin 0.3.38-2
$ debsnap -a amd64 --binary -d . pipewire-pulse 0.3.38-2
$ debsnap -a amd64 --binary -d . pipewire 0.3.38-2
$ debsnap -a amd64 --binary -d . pipewire-media-session 0.3.38-2
$ debsnap -a amd64 --binary -d . libspa-0.2-modules 0.3.38-2
$ debsnap -a amd64 --binary -d . libspa-0.2-bluetooth 0.3.38-2

Install all the retrieved packages and mark some of the packages back as automatically installed.

$ sudo apt install ./*.deb
$ sudo apt-mark auto gstreamer1.0-pipewire libpipewire-0.3-0 libpipewire-0.3-common libpipewire-0.3-modules pipewire-bin pipewire libspa-0.2-modules

Mark pipewire-media-session as held so it won’t get accidentally removed again.

$ sudo apt-mark hold pipewire-media-session

Finally, restart PipeWire.

$ systemctl --user daemon-reload
$ systemctl --user restart pipewire pipewire-pulse

4 thoughts on “Downgrade PipeWire 0.3.39 to 0.3.38”

  1. Thanks for the guide. 0.3.39 breaks the echo cancellation module on ubuntu 20.04. However, while following your downgrade guide, I run into dependency and version issue. Any idea how to fix it? Thanks in advance

    dpkg: libspa-0.2-bluetooth:amd64: dependency problems, but configuring anyway as you requested:
    libspa-0.2-bluetooth:amd64 depends on libsbc1 (>= 1.5); however:
    Version of libsbc1:amd64 on system is 1.4-1.

  2. You can try getting a new version of libsbc1 from Debian but it might lead to more dependency problems.
    Maybe a better approach would be to check what was the previous version of libspa-0.2-bluetooth you had install and downgrade to that specific version. Also, you might want to install the specific build you had (maybe Ubuntu builds have different dependent versions for libraries).

  3. Hii.. I’m PPA owner of ppa:pipewire-debian/pipewire-upstream and ppa:pipewire-debian/wireplumber-upstream . PipeWire-media-session is not deprecated yet but its separated from pipewire and act as an individual project to make things more modular. In this PPA I have gave the option for both “pipewire-media-session” as well as “wireplumber” you can install whichever you prefer.

    So nothing is deprecated or removed. If you want the detailed instruction how to install them from PPA on debian head over to : https://pipewire-debian.github.io read all. Don’t worry man nothing will be get mixed.

  4. Here are instructions for Ubuntu:

    Uninstall current pipe wire:
    sudo apt remove pipewire
    sudo apt autoclean && sudo apt autoremove

    Go here and download 0.3.38 for your version of Ubuntu: https://launchpad.net/~pipewire-debian/+archive/ubuntu/pipewire-upstream/+packages?field.name_filter=pipewire&field.status_filter=&field.series_filter=

    Download all .deb packages. Skip .ddeb and those which have dev in the name. Move all downloaded .deb files into a separate folder. cd to that folder. Run following commands:
    sudo apt install libfdk-aac2 libldacbt-{abr,enc}2 libopenaptx0
    sudo apt install libcamera0 libfreeaptx0 liblttng-ust-ctl4 liblttng-ust0 libopenfec libroc liburcu6
    sudo dpkg -i ./*.deb

    Reboot. Verify with pactl info that you have 0.3.38. Open Software updater, click on Settings then on Other software. Uncheck Pipewire PPA so it is not offered for the update. Check it back once the issue is fixed so you can update again normally.

Leave a Reply

Your email address will not be published. Required fields are marked *