Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#704257: missing libgl1-mesa-dri in upgrades

0 views
Skip to first unread message

John Paul Adrian Glaubitz

unread,
Apr 1, 2013, 8:40:01 AM4/1/13
to
On 04/01/2013 11:59 AM, Daniel Pocock wrote:
>
> I've found that some default packages in Gnome are broken if
> libgl1-mesa-dri is not installed
>
>(...)
>
> While I've filed a bug against empathy (that is where I observed the
> problem), I suspect other packages are impacted and the issue may need
> to be fixed at some other level.
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=704257

Empathy itself does not required GL libraries to be installed:

glaubitz@znote-t60o:~$ objdump -p `which empathy` |grep NEEDED
NEEDED libenchant.so.1
NEEDED libcheese-gtk.so.21
NEEDED libebook-1.2.so.13
NEEDED libgeoclue.so.0
NEEDED libgeocode-glib.so.0
NEEDED libnm-glib.so.4
NEEDED libgudev-1.0.so.0
NEEDED libm.so.6
NEEDED libdbus-glib-1.so.2
NEEDED libfolks-telepathy.so.25
NEEDED libfolks.so.25
NEEDED libgee.so.2
NEEDED libgnome-keyring.so.0
NEEDED libgnutls.so.26
NEEDED libgstreamer-0.10.so.0
NEEDED libgthread-2.0.so.0
NEEDED libtelepathy-logger.so.2
NEEDED libtelepathy-glib.so.0
NEEDED libxml2.so.2
NEEDED libcanberra-gtk3.so.0
NEEDED libcanberra.so.0
NEEDED libnotify.so.4
NEEDED libwebkitgtk-3.0.so.0
NEEDED libchamplain-gtk-0.12.so.0
NEEDED libclutter-gtk-1.0.so.0
NEEDED libgtk-3.so.0
NEEDED libchamplain-0.12.so.0
NEEDED libclutter-1.0.so.0
NEEDED libgdk-3.so.0
NEEDED libX11.so.6
NEEDED libgio-2.0.so.0
NEEDED libgdk_pixbuf-2.0.so.0
NEEDED libpango-1.0.so.0
NEEDED libgobject-2.0.so.0
NEEDED libglib-2.0.so.0
NEEDED libpthread.so.0
NEEDED libc.so.6
glaubitz@znote-t60o:~$

However, Empathy depends on Clutter which itself requires an OpenGL
implementation:

glaubitz@znote-t60o:~$ objdump -p
/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0 |grep NEEDED
NEEDED libm.so.6
NEEDED libatk-1.0.so.0
NEEDED libcogl-pango.so.0
NEEDED libcogl.so.9
NEEDED libjson-glib-1.0.so.0
NEEDED libgio-2.0.so.0
NEEDED libgdk-3.so.0
NEEDED libpangocairo-1.0.so.0
NEEDED libgdk_pixbuf-2.0.so.0
NEEDED libcairo-gobject.so.2
NEEDED libcairo.so.2
NEEDED libX11.so.6
NEEDED libXext.so.6
NEEDED libXdamage.so.1
NEEDED libXfixes.so.3
NEEDED libXcomposite.so.1
NEEDED libXi.so.6
NEEDED libpangoft2-1.0.so.0
NEEDED libpango-1.0.so.0
NEEDED libfreetype.so.6
NEEDED libfontconfig.so.1
NEEDED libgobject-2.0.so.0
NEEDED libgthread-2.0.so.0
NEEDED libgmodule-2.0.so.0
NEEDED librt.so.1
NEEDED libglib-2.0.so.0
NEEDED libpthread.so.0
NEEDED libc.so.6
glaubitz@znote-t60o:~$

Checking the depends of libclutter-1.0-0:

glaubitz@znote-t60o:~$ apt-cache depends libclutter-1.0-0 |head
libclutter-1.0-0
Depends: libatk1.0-0
Depends: libc6
Depends: libcairo-gobject2
Depends: libcairo2
Depends: libcogl-pango0
Depends: libcogl9
Depends: libfontconfig1
Depends: libfreetype6
Depends: libgdk-pixbuf2.0-0
glaubitz@znote-t60o:~$

where you see a dependency on libcogl9 which in turn depends on MESA:

glaubitz@znote-t60o:~$ apt-cache depends libcogl9 |head
libcogl9
Depends: libc6
Depends: libgdk-pixbuf2.0-0
Depends: libglib2.0-0
Depends: libx11-6
Depends: libxcomposite1
Depends: libxdamage1
Depends: libxext6
Depends: libxfixes3
Depends: libgl1-mesa-glx
glaubitz@znote-t60o:~$

So, whatever you do, don't mess around with Empathy. The bug, if any, is
not in Empathy but any of its dependencies. I'd have a look at Clutter.

Also, have you tried running Empathy on a non-compositing window manager
when libgl1-mesa-dri is not installed?

Cheers,

Adrian

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glau...@debian.org
`. `' Freie Universitaet Berlin - glau...@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913


--
To UNSUBSCRIBE, email to debian-bugs...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

John Paul Adrian Glaubitz

unread,
Apr 1, 2013, 4:10:01 PM4/1/13
to
On 04/01/2013 09:59 PM, Daniel Pocock wrote:
> Agreed, but that doesn't complete the picture, as libgl1-mesa-glx
> doesn't depend on libgl1-mesa-dri:
>
> $ apt-cache depends libgl1-mesa-glx
> ...
> Recommends: libgl1-mesa-dri
>

Well, "Recommends" are installed by default, aren't they? However, I'm
not sure why it shouldn't be depending on either "libgl1-mesa-dri" or
"libgl1-mesa-swx11" here. I mean, MESA doesn't work without either of
these, does it?

> Either empathy or libclutter probably need to generate a popup error
> window in this situation, if the error only appears in a console then it
> will leave users with a bad impression of any impacted binary.
> Generating such an error is independent of making sure the dependency is
> present.

No, I don't think there should be a popup. Someone should just fix the
dependencies.

>> Also, have you tried running Empathy on a non-compositing window manager
>> when libgl1-mesa-dri is not installed?
>>
>
> I'm happy to try that, can you propose which window manager I should
> try? I know fvwm quite well and don't mind installing that.

Yeah, fvwm doesn't really do any compositing :).

Josselin Mouette

unread,
Apr 1, 2013, 7:10:02 PM4/1/13
to
Le lundi 01 avril 2013 à 22:04 +0200, John Paul Adrian Glaubitz a
écrit :
> > $ apt-cache depends libgl1-mesa-glx
> > ...
> > Recommends: libgl1-mesa-dri
> >
>
> Well, "Recommends" are installed by default, aren't they? However, I'm
> not sure why it shouldn't be depending on either "libgl1-mesa-dri" or
> "libgl1-mesa-swx11" here. I mean, MESA doesn't work without either of
> these, does it?

It should work with indirect GLX if the server supports it, in which
case you don’t need either of the two. I guess this is the reason for
Recommends instead of Depends.

OTOH the metapackage xorg correctly depends on libgl1-mesa-dri. I’m not
sure what can be done to make things better.

--
.''`. Josselin Mouette
: :' :
`. `'
`-

David Kalnischkies

unread,
Apr 2, 2013, 5:30:02 AM4/2/13
to
On Mon, Apr 1, 2013 at 11:16 PM, Daniel Pocock <dan...@pocock.com.au> wrote:
> On 01/04/13 22:04, John Paul Adrian Glaubitz wrote:
>> On 04/01/2013 09:59 PM, Daniel Pocock wrote:
>>> Agreed, but that doesn't complete the picture, as libgl1-mesa-glx
>>> doesn't depend on libgl1-mesa-dri:
>>>
>>> $ apt-cache depends libgl1-mesa-glx
>>> ...
>>> Recommends: libgl1-mesa-dri
>>>
>>
>> Well, "Recommends" are installed by default, aren't they? However, I'm
>
> Not during upgrade or dist-upgrade operations. This is specifically an
> upgrading issue. From man apt-get:
>
> " upgrade:
> ... under no circumstances are currently installed packages removed,
> or packages not already installed retrieved and installed."

Correct for apt/squeeze, partly-wrong for apt/wheezy (since 0.8.15.3).
A package requiring a new recommends which is in a non-broken policy state
previously will be held back just like other packages requiring a new depends
in apt/wheezy.
In apt/squeeze the policy will break, which you could fix with
"apt-get install --fix-policy", but that is going to fix ALL recommends.

We are going to be "fine" in this regard as many packages have a new
dependency in a new release (upgrade is mostly for between releases).
In this case it is at least "multiarch-support".


> "dist-upgrade:
> ... intelligently handles changing dependencies with new versions of
> packages"

dist-upgrade on the other hand installs new recommends since the introduction
of recommends. Keyword is "new": If you had recommends disabled previously
and/or removed a recommends apt will not install this recommendation again.
(It compares the recommends list of the old version with the new version and
only uninstalled recommends present in the new, but not in the old version
are marked for installation).
Of course, if the recommends isn't installable you will still get a solution
which doesn't include this recommends which will be displayed as usual.
You have to install it later by hand then as it now an old recommends …
(In stable, uninstallability shouldn't happen though)

I guess the confusion comes from the word "dependencies":
In APT namespace "dependency" means any relation which is allowed;
not just a "Depends".

So the sentence should be read as "… handles changing Pre-Depends, Depends,
Conflicts, Breaks, Replaces, Provides, Recommends (if enabled, default yes)
and Suggests (if enabled, default no) with new versions …"
(for the sake of completion: Enhances are not handled)
It's just that a user shouldn't really be required to know what those are.

(if you digg deaper [usually in non-user facing texts] you will come across
"hard", "important", "soft", "negative" and "positive" dependencies to
complete the confusion. I will leave it as an exercise for now which subsets
are meant with those adjectives)


Best regards

David Kalnischkies
0 new messages