Open dmarx opened 2 years ago
gstreamer1.0-pipewire : Depends: pipewire (= 0.3.52.r2.g9255cfb-1~ubuntu21.10) but 0.3.32-1 is installed
https://packages.ubuntu.com/impish/pipewire shows that 21.10 should have had Pipewire 0.3.32-1
, with Ubuntu 22.04 having 0.3.48-1ubuntu1
and Pop!_OS 22.04 having 0.3.52-1pop1~1654797379~22.04~457334a
. I'm not sure where the 0.3.52.r2.g9255cfb-1~ubuntu21.10
being referred to comes from.
It looks like that version number is used in this PPA: https://launchpad.net/~pipewire-debian/+archive/ubuntu/pipewire-upstream Were you using upstream Pipewire from that PPA or another?
I am able to recreate this on a fresh 21.10 install by adding the above PPA, installing all updates (requires full-upgrade
), and then attempting to run the upgrade:
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo apt update
sudo apt full-upgrade
pop-upgrade release upgrade
On the command line, I get Release upgrade status: Release upgrade aborted: Failed to downgrade packages
. sudo apt update
then reports no updates available, but sudo apt upgrade
shows unmet dependencies.
Were you using upstream Pipewire from that PPA or another?
Not sure, but entirely possible. I vaguely remember doing something funny with pipewire installation to get ffmpeg working to begin with. Let me know if this helps or what I could run to get any other information you need
$ ls /etc/apt/sources.list.d
1password.list pop-os-release.sources
1password.list.save pop-os-release.sources.save
docker.list slack.list
docker.list.save slack.list.save
nvidia-container-runtime.list system.sources
nvidia-container-runtime.list.save system.sources.save
nvidia-docker.list teams.list
nvidia-docker.list.save teams.list.save
pipewire-debian-ubuntu-pipewire-upstream-impish.list ubuntu-toolchain-r-ubuntu-test-impish.list
pipewire-debian-ubuntu-pipewire-upstream-impish.list.save ubuntu-toolchain-r-ubuntu-test-impish.list.save
pop-os-apps.sources vscode.list
pop-os-apps.sources.save vscode.list.save
$ cat /etc/apt/sources.list.d/pipewire-debian-ubuntu-pipewire-upstream-impish.list
# deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu/ impish main
# deb-src http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu/ impish main
pipewire-debian-ubuntu-pipewire-upstream-impish.list
Yes, this is a non-default third-party PPA that you added. That is what caused the issue.
pop-upgrade obviously shouldn't fail due to that, it should know how to remove it. I'm testing a quick potential solution myself, otherwise this may need further engineering work to fix. In the meantime, my testing suggests you should be able to unblock your machine's package manager with this command:
sudo apt install gstreamer1.0-pipewire=0.3.32-1 pipewire-media-session=0.3.32-1 pipewire-audio-client-libraries=0.3.32-1
(Those version numbers were found with apt policy ___
for each package and looking at the available version numbers from Ubuntu for each one.) After that, run pop-upgrade release upgrade
or try from the GUI again, and it should not fail in the same place.
On 22.04, PipeWire is provided by Pop!_OS instead of Ubuntu, so you shouldn't need to replace it with a PPA's version (if you have any problems with it, they can be reported at https://github.com/pop-os/pipewire for 22.04-- ffmpeg is working fine on 22.04, but then it should have worked fine out-of-the-box on 21.10 too, so I'm not sure what issue you had previously run into.)
To try and fix this, I first tried adding pipewire-media-session
to the conflicting packages list. That didn't work because the error is occurring during downgrade_packages
, which runs before remove_conflicting_packages
. Interestingly, I can recreate the issue by running the apt-get --allow-downgrades -y install package1=...
command that downgrade_packages
uses manually, but if I run the same command a second time, it finishes and leaves the package manager in a good state. So two potential solutions might be running downgrade_packages
twice, or making remove_conflicting_packages
happen before downgrade_packages
(and adding the necessary packages to remove_conflicting_packages
, although I'm not sure either of those are the best solutions.
sudo apt install gstreamer1.0-pipewire=0.3.32-1 pipewire-media-session=0.3.32-1 pipewire-audio-client-libraries=0.3.32-1
this worked to unblock me (i.e. I have ffmpeg again), thanks!
pipewire-debian-ubuntu-pipewire-upstream-impish.list
Yes, this is a non-default third-party PPA that you added. That is what caused the issue.
pop-upgrade obviously shouldn't fail due to that, it should know how to remove it. I'm testing a quick potential solution myself, otherwise this may need further engineering work to fix. In the meantime, my testing suggests you should be able to unblock your machine's package manager with this command:
sudo apt install gstreamer1.0-pipewire=0.3.32-1 pipewire-media-session=0.3.32-1 pipewire-audio-client-libraries=0.3.32-1
(Those version numbers were found with
apt policy ___
for each package and looking at the available version numbers from Ubuntu for each one.) After that, runpop-upgrade release upgrade
or try from the GUI again, and it should not fail in the same place.On 22.04, PipeWire is provided by Pop!_OS instead of Ubuntu, so you shouldn't need to replace it with a PPA's version (if you have any problems with it, they can be reported at https://github.com/pop-os/pipewire for 22.04-- ffmpeg is working fine on 22.04, but then it should have worked fine out-of-the-box on 21.10 too, so I'm not sure what issue you had previously run into.)
FWIW, I had this exact same issue when upgrading to 22.04 (don't judge me for waiting so long :joy:) and this unblocked me as well :raised_hands:
Upgrade to 22.04 failed with message (FYI: this text can't currently be copy/pasted, had to screenshot it):
hoped to deal with this later, but apparently the failed upgrade process removed ffmpeg (which I need for work) and now I can't reinstall it. All attempts to repair the upgrade, install ffmpeg, or remove broken packages with apt result in some variant of "unmet dependencies" messages implicating gstreamer/pipewire as the core of the problem.