xserver-xorg-lts-quantal breaks Kubuntu

Bug #1134492 reported by tlu on 2013-02-27
This bug affects 6 people
Affects Status Importance Assigned to Milestone
apt (Ubuntu)
xorg-lts-quantal (Ubuntu)

Bug Description

Installing xserver-xorg-lts-quantal as suggested on https://wiki.ubuntu.com/Kernel/LTSEnablementStack breaks Kubuntu 12.04 as crucial KDE packages like kubuntu-desktop, kdm etc. will be removed.

tlu (thomas-ludwig-gmx) wrote :
tlu (thomas-ludwig-gmx) on 2013-02-27
description: updated
bugbot (bugbot) on 2013-02-28
tags: added: kubuntu
tlu (thomas-ludwig-gmx) wrote :

Nobody? Really?

I mean, Kubuntu 12.04 is an LTS version, too. That a (semi-)official upgrade suggestion dismantles it and nobody seems to care, is rather weird, IMO.

BTW: Other Ubuntu flavours like Xubuntu, Lubuntu etc. might also be affected although I haven't checked that.

Maarten Lankhorst (mlankhorst) wrote :

Empfohlene Pakete:

You really want to have --install-recommends enabled by default you know..

Changed in xorg-lts-quantal (Ubuntu):
status: New → Invalid
Harald Sitter (apachelogger) wrote :

As is enabled by default on Kubuntu...

tlu (thomas-ludwig-gmx) wrote :

And it's enabled on my system, too. However, libgl1-mesa-glx-lts-quantal won't be installed by Muon, Synaptic or apt-get.

Only if I *manually* add libgl1-mesa-glx-lts-quantal :

sudo apt-get install xserver-xorg-lts-quantal libgl1-mesa-glx-lts-quantal

... kubuntu-desktop etc. won't be removed.

tlu (thomas-ludwig-gmx) wrote :

The attachment shows what aptitude reports.

Malte S. Stretz (mss) wrote :

This is actually caused by multiarch packages present. I fixed this by manually removing the google-earth-stable:i386, teamviewer7:stable and libgl1-*:i368 packages which also removed wine1.4 (which depends on wine1.4:i386) and skype:i386.

Even though this is a bug in the default apt solver (which goes and tries to drop a lot of KDE and other packages), this should be documented on the page mentioned on the initial report.

The aspcud solver helped a lot in solving this:

root@slpn-nb-mss:~# apt-get install --no-remove xserver-xorg-lts-quantal --solver aspcud
Reading package lists... Done
Building dependency tree
Reading state information... Done
Execute external solver... 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 to resolve the situation:

The following packages have unmet dependencies:
 libgl1-mesa-dri-lts-quantal : Conflicts: libgl1-mesa-dri:i386
 libgl1-mesa-glx:i386 : Conflicts: libgl1
 libgl1-mesa-glx-lts-quantal : Recommends: libtxc-dxtn-s2tc0 but it is not going to be installed
                               Conflicts: libgl1:i386
                               Conflicts: libgl1-mesa-glx:i386
 libglapi-mesa-lts-quantal : Conflicts: libglapi-mesa:i386
 xserver-xorg-lts-quantal : Recommends: linux-generic-lts-quantal but it is not going to be installed
                            Recommends: xserver-xorg-input-all-lts-quantal but it is not going to be installed
                            Recommends: xserver-xorg-video-all-lts-quantal but it is not going to be installed
                            Recommends: x11-xserver-utils-lts-quantal but it is not going to be installed
                            Conflicts: libgl1-mesa-dri:i386 (>= 0~)
                            Conflicts: libgl1-mesa-glx:i386 (>= 0~)
                            Conflicts: libglapi-mesa:i386 (>= 0~)
E: Broken packages

Changed in xorg-lts-quantal (Ubuntu):
status: Invalid → New
Malte S. Stretz (mss) wrote :
Download full text (16.8 KiB)

I have to correct myself: Removing the multiarch packages helped, but the default solver still wants to drop half of KDE while the aspcud solver looks good:

root@slpn-nb-mss:~# apt-get install -V --no-remove xserver-xorg-lts-quantal --solver aspcud
Reading package lists... Done
Building dependency tree
Reading state information... Done
^Cecute external solver... 25%
root@slpn-nb-mss:~# apt-get install -V --no-remove xserver-xorg-lts-quantal ^C
root@slpn-nb-mss:~# apt-get install -V --no-remove xserver-xorg-lts-quantal
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
   x11-apps (7.6+5ubuntu1)
   libfreehep-graphicsio-svg-java (2.1.1-3)
   libsdl-ttf2.0-0 (2.0.9-1.1ubuntu1)
   libnumber-compare-perl (0.03-1)
   units (1.87-2)
   libfile-spec-perl (3.3300-1build2)
   krita-data (2.6.1-0ubuntu5~ubuntu12.04.2~ppa2)
   libfile-remove-perl (1.51-1)
   libfile-homedir-perl (0.98-1)
   libdevel-refactor-perl (0.05-1)
   liborlite-perl (1.51-1)
   fonts-takao-pgothic (003.02.01-5ubuntu1)
   libfile-next-perl (1.06-2)
   libfile-sharedir-perl (1.00-0.1)
   libfreehep-graphicsio-java (2.1.1-2)
   libfile-pushd-perl (1.001-1)
   libfile-find-rule-perl (0.33-1)
   libplplot11 (5.9.9-2ubuntu2)
   libqtexengine1 (0.3-2)
   libfile-which-perl (1.08-1)
   libclass-unload-perl (0.07-1)
   libfreehep-export-java (2.1.1-2)
   libmodule-manifest-perl (0.07-1)
   libqwt5-qt4 (5.2.2-1ubuntu2)
   qt-assistant-compat (4.6.3-3ubuntu2)
   libgl2ps0 (1.3.6-1)
   ack-grep (1.92-1)
   libsunflow-java (0.07.2.svn396+dfsg-9)
   libthreads-shared-perl (1.40-1build1)
   libfreehep-io-java (2.0.2-4)
   xsettings-kde (0.12.3-0ubuntu2.1)
   libdbd-sqlite3-perl (1.35-1)
   libprobe-perl-perl (0.01-1)
   libtext-findindent-perl (0.10-1)
   libparse-errorstring-perl-perl (0.15-1)
   libkdcraw-data (4.10.2-0ubuntu1~ubuntu12.04~ppa2)
   x11-session-utils (7.6+2)
   libvecmath-java (1.5.2-3)
   libclass-inspector-perl (1.25-1)
   libmath-basecnv-perl (1.8.B59BrZX-1)
   libppix-regexp-perl (0.023-1)
   libtemplate-tiny-perl (1.12-1)
   libpod2-base-perl (0.043-1)
   libmikmod2 (3.1.12-2)
   libpod-abstract-perl (0.20-1)
   libjas-plotter-java (2.2.6+dfsg1-2)
   libclass-adapter-perl (1.07-1)
   libdevel-dumpvar-perl (1.06-1)
   libmuparser0debian1 (1.34-2)
   libfreehep-graphicsio-tests-java (2.1.1+dfsg1-3)
   libtext-diff-perl (1.41-1)
   libtask-weaken-perl (1.03-1)
   libxml-tidy-perl (1.12.B55J2qn-1)
   libcsiro0 (5.9.9-2ubuntu2)
   libtext-glob-perl (0.09-1)
   libtablelayout-java (20090826-2)
   filezilla-common (3.5.3-1ubuntu2)
   libsdl-net1.2 (1.2.7-5)
   libalglib-2.6.0 (2.6.0-3)
   libqsastime0 (5.9.9-2ubuntu2)
   wx-common (
   libwxbase2.8-dev (
   qtiplot-doc (
   libfreehep-util-java (2.0.2-5)
   libfreehep-graphics2d-java (2.1.1-3)
   libkdcraw22 (4.10.2-0ubuntu1~ubuntu12.04~ppa2)
   libppix-editortools-perl (0.13-1)
   libfreehep-xml-java (2.1.2+dfsg1-3)
   libipc-run3-perl (0.045-1)
   wx2.8-headers (
   liborlite-migrate-perl (1.09-1)

Changed in xorg-lts-quantal (Ubuntu):
status: New → Invalid
Maarten Lankhorst (mlankhorst) wrote :

Still not a bug in xorg-lts-quantal, please don't reopen it there, the packaging is fine. Apt is broken.
This sounds like it might be related to bug #1130419 though, could you try with apt 0.8.16~exp12ubuntu10.8?

Malte S. Stretz (mss) wrote :

No, I can't test it because I upgraded by now.

I reopened the bug because I think the official wiki page https://wiki.ubuntu.com/Kernel/LTSEnablementStack should get a big fat warning that the recommended command can completely brick your (K)Ubuntu. I also ran into bug 1168859 which rendered my touchpad useless. (That might be due to the alternative apt solver though).

Changed in apt (Ubuntu):
importance: Undecided → High
milestone: none → ubuntu-12.04.3
Maarten Lankhorst (mlankhorst) wrote :

Downgrading is trivial: apt-get install xserver-xorg-lts-precise libgl1-mesa-{dri,glx}:i386

This is unsupported for newer hardware, because they're not tested with the older linux/xserver, but in your case it would work. It seems some interaction with multiarch is making it fail. Multiarch was already failing to switch correctly, causing the 32-bits libs to be uninstalled. If I install enough 32-bits applications I can make it uninstall kubuntu-desktop too.

But the failure the other way around is easier to test:

pbuilder-dist precise amd64 login
apt-get install --install-recommends ia32-libs xserver-xorg-lts-precise
apt-get install --install-recommends xserver-xorg-lts-quantal

Notice that ia32-libs gets removed by installing xserver-xorg-lts-quantal. However if I install ia32-libs afterwards it works, because that case was fixed in #1130419:
pbuilder-dist precise amd64 login
apt-get install --install-recommends xserver-xorg-lts-quantal
apt-get install --install-recommends ia32-libs

It's still easy to make the resolver die completely, too:

pbuilder-dist precise amd64 login
apt-get install --install-recommends xserver-xorg-lts-precise
apt-get install --install-recommends xserver-xorg-lts-quantal ia32-libs

if you add libgl1-mesa-{glx,dri}-lts-quantal:i386 to the last line, it will find the correct solution.

Changed in apt (Ubuntu):
status: New → Confirmed
tlu (thomas-ludwig-gmx) wrote :

Re #9: Sorry for the late response. I tested it with the newest version 0.8.16~exp12ubuntu10.10 and it still doesn't work as expected.

Maarten Lankhorst (mlankhorst) wrote :

First stab at a fix. Not the final version, but seems to work in this limited case.

If installing a m-a: same package that declares a conflict, and the conflict is removing a package from another arch, attempt to install the same package on the other arch too.

TODO: Write a testcase, get it reviewed, add more comments in the code.

tags: added: patch
tags: added: precise
David Kalnischkies (donkult) wrote :

Limiting a solution to Conflicts would be bad, that should work with Breaks too, as Conflicts should be avoided like the plague (if we can). And just doing it on Conflicts (or Breaks) does make it apply to a lot of cases there we don't want it to happen (think: libfoogtk2-0 conflicts/breaks with libfoogtk3-0) so we need some more heuristic here than just this (aspcud is just based on numbers, so it works here, but fails then the solution is not just a numbers game).

I can only really comment on that with an example though (a dpkg/status file and sources.list might be enough until a test surfaces. Setting up a system to test just this isn't exactly easy …). Frankly, I don't see why this is considered "high" though: switching X-stacks doesn't sound like an everyday task, so I guess everyone could live with a slightly longer commandline to type (aka: copy&paste) and a "low" or similar…

Quick-Review (just looking at diff, no applied or anything)
1. A user can easily have more architectures configured than just two, so comparing architectures is dangerous.
2. Not all of these architectures are a good choice (think: armel on armhf or armhf on a amd64 crossbuilder).
3. Please do a patch against trunk. We can always try to backport it later.
4. MarkInstall (and for that matter MarkDelete) can fail and you should do something sensible if they do, not just ignore it
5. Do we really want to do something even if the removed package is M-A:foreign ?

Serious nitpick: Don't name a variable iPkg if you use Pkg in the same context, while its definition is far away. It's very easy to miss (which I did initially and wondered why you renamed Pkg to iPkg and wanted to nitpick about unneeded renames first…)

Lesser nitpick: Instead of Z, use P as an iterator. If you are used to APT code you know immediately which iterators are G, P, V, D, … no such hint for Z (okay, at times P stands for Provides, but every rule has an exception – and usually its Prv instead).

Malte S. Stretz (mss) wrote :

Instead of patching apt, wouldn't it be easier to ship a script like do-release-upgrade (eg. do-lts-upgrade --component=xorg --component=linux --target=quantal) which does all the necessary magic? It could even do something like

1. trigger package downloads only
2. force-remove the old packages
3. install the new packages

That would circumvent any solver and possible brakages due to that.

I had this problem today where lightDM wouldn't let me login after I ran apt-get upgrade so I installed aptitude and ran the upgrade. Fixed the issue.

Is this the same issue? If not, I will delete my comment. Just trying to help.

Maarten Lankhorst (mlankhorst) wrote :

A real script is unneeded for this case, manually specifying the correct packages across archs is enough.

I'm unsure how to proceed though, I fear that this would need to be fixed in the conflict resolver instead.

theghost (theghost) wrote :

For those users who want to install the kubuntu-desktop package with Quantal stack coming from Ubuntu 12.04.2 the following did the trick for me:

sudo apt-get install kubuntu-desktop xserver-xorg-lts-quantal libgl1-mesa-glx-lts-quantal libgbm1-lts-quantal kde-window-manager

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers