3

There seems to be an issue with libpulse-dev in Ubuntu 21.10 because if I want to install libsdl2-dev on a fully up-to-date system, I get:

The following packages have unmet dependencies:

libpulse-dev : Depends: libpulse0 (= 1:15.0+dfsg1-1ubuntu2) but 1:15.0+dfsg1-1ubuntu2.1 is to be installed

# dpkg --get-selections | grep hold
root@gamer2:/# apt update
Hit:1 https://repo.steampowered.com/steam stable InRelease
Hit:2 http://ca.archive.ubuntu.com/ubuntu impish InRelease                             
Hit:3 http://ca.archive.ubuntu.com/ubuntu impish-updates InRelease                     
Hit:4 http://security.ubuntu.com/ubuntu impish-security InRelease
Hit:5 http://ca.archive.ubuntu.com/ubuntu impish-backports InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
root@gamer2:/# apt dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@gamer2:/# apt install libsdl2-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies: libpulse-dev : Depends: libpulse0 (= 1:15.0+dfsg1-1ubuntu2) but 1:15.0+dfsg1-1ubuntu2.1 is to be installed Depends: libpulse-mainloop-glib0 (= 1:15.0+dfsg1-1ubuntu2) but 1:15.0+dfsg1-1ubuntu2.1 is to be installed E: Unable to correct problems, you have held broken packages. root@gamer2:/# dpkg --get-selections | grep hold root@gamer2:/#

How do I solve this?

This is on a fresh 64b ubuntu21.10 install.

UPDATE

# apt-cache policy libpulse-dev
libpulse-dev:
  Installed: (none)
  Candidate: 1:15.0+dfsg1-1ubuntu2
  Version table:
     1:15.0+dfsg1-1ubuntu2.2 1 (phased 20%)
        500 http://ca.archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
     1:15.0+dfsg1-1ubuntu2 500
        500 http://ca.archive.ubuntu.com/ubuntu impish/main amd64 Packages

Ubuntu version, kernel, and architecture:

root@gamer2:/# cat /etc/issue
Ubuntu 21.10 \n \l

root@gamer2:/# uname -a Linux gamer2 5.13.0-22-generic #22-Ubuntu SMP Fri Nov 5 13:21:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

UPDATE 2

It seems to get libpulse0 from impish, but libpulse-dev from impish-updates, but why?

root@gamer2:/# apt-cache policy libpulse0
libpulse0:
  Installed: 1:15.0+dfsg1-1ubuntu2.1
  Candidate: 1:15.0+dfsg1-1ubuntu2.1
  Version table:
     1:15.0+dfsg1-1ubuntu2.2 1 (phased 20%)
        500 http://ca.archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
 *** 1:15.0+dfsg1-1ubuntu2.1 100
        100 /var/lib/dpkg/status
     1:15.0+dfsg1-1ubuntu2 500
        500 http://ca.archive.ubuntu.com/ubuntu impish/main amd64 Packages
root@gamer2:/# apt install libpulse0
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libpulse0 is already the newest version (1:15.0+dfsg1-1ubuntu2.1).
libpulse0 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

UPDATE 3

This PC has no non-default repositories, nor ever had any non-default repositories configured.

There are no holds:

$ apt-mark showhold
$ 
Bram
  • 2,479
  • 1
  • 29
  • 48
  • I would check your system is fully-updated & software lists are updated; as the depends rules you provided don't match a fully upgraded impish (21.10) install. See https://packages.ubuntu.com/impish-updates/libpulse-dev or = 1:15.0+dfsg1-1ubuntu2.2 , ie. start with basics; sudo apt update to update software lists, messages clean without errors/warnings, no missing lines etc... – guiverc Dec 10 '21 at 00:43
  • @guiverc it is fully updated, the grep on hold returns nothing. – Bram Dec 10 '21 at 00:49
  • Please provide apt-cache policy libpulse-dev but you didn't provide architecture (64bits is vague; which 64-bit architecture) as package version can vary on architecture I note in CLI queries for impish. – guiverc Dec 10 '21 at 00:52
  • @guiverc thanks! See update. Why does the dev want a very specific version? Did libpulse and libpulse-dev get out of sync, where one got a revision bump, and one did not? (In the repo.) I have no non-ubuntu entries in my apt sources. – Bram Dec 10 '21 at 00:56
  • I'm assuming this is clear; but do you have any holds? (does anything show if you apt-mark showhold). The apt-cache policy shows the newer package is found & available (with a phased 20%) but sorry I've not taken enough notice of phasing (Ubuntu Community Hub has some workarounds if that's the issue; it came in with 21.04) – guiverc Dec 10 '21 at 05:19
  • What does it mean if apt-cache policy marks a package with ***? – Bram Dec 10 '21 at 18:04
  • The '***' tells you that is the package your system is using, has installed. – guiverc Dec 10 '21 at 20:58
  • Thank you for taking the time to report this bug and helping to make Ubuntu better. The Ubuntu Foundations team will fix the issue when they can. https://bugs.launchpad.net/launchpad/+bug/1929082 (I realize you'll already be aware of this; it's for other readers as well...) – guiverc Dec 11 '21 at 21:28

1 Answers1

5

"(phased 20%)"

see https://wiki.ubuntu.com/PhasedUpdates https://wiki.ubuntu.com/ErrorTracker/PhasedUpdates

You can wait until the phasing period is over (currently on 50%) or install the package providing the version numbers:

Either

sudo apt install libpulse-dev=1:15.0+dfsg1-1ubuntu2 libpulse0=1:15.0+dfsg1-1ubuntu2 libpulse-mainloop-glib0=1:15.0+dfsg1-1ubuntu2

or

sudo apt install libpulse-dev=1:15.0+dfsg1-1ubuntu2.2 libpulse0=1:15.0+dfsg1-1ubuntu2.2 libpulse-mainloop-glib0=1:15.0+dfsg1-1ubuntu2.2

This seems to be a specific case that may deserve a bug report on Launchpad see also https://answers.launchpad.net/ubuntu/+source/pulseaudio/+question/699828

m_hampl
  • 66
  • I normally use apt, but in such a case, after a brief internet search I would try "sudo aptitude ...". For this libpulse issue, aptitude worked. – fchen Apr 03 '23 at 13:36