Emacs suddenly stopped working - symbol look up error

Hi,

After installing the Boost C++ libraries, Emacs suddenly stopped working and has always given me this error on the command line: /usr/bin/emacs: symbol lookup error: /lib64/libgio-2.0.so.0: undefined symbol: g_variant_unref

Any help would be much appreciated!! Thank you!

Renee

Which openSUSE version?

Where did you install the “Boost C++ libraries” from?

What is your repo list?

zypper lr -d

This error likely points to a mismatch in libgio and libgtk3 versions, i.e. you have libgio from a different repo than libgtk3.

rpm -qi libgio-2_0-0 libgtk-3-0

On 2014-06-16 15:56, reneeee27 wrote:
>
> Hi,
>
> After installing the Boost C++ libraries, Emacs suddenly stopped working
> and has always given me this error on the command line: /usr/bin/emacs:
> symbol lookup error: /lib64/libgio-2.0.so.0: undefined symbol:
> g_variant_unref
>
> Any help would be much appreciated!! Thank you!

You could start by posting openSUSE version, and the list of repos you
have. Please post the output of “zypper lr --details”, and please do so
inside code tags (the ‘#’ button in the forum editor).
See photo

And also where you got those Boost libraries from.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

openSUSE version:


openSUSE 11.4 (x86_64)
VERSION = 11.4
CODENAME = Celadon

Repo list:

# | Alias                               | Name                                | Enabled | Refresh | Priority | Type   | URI                                                                                      | Service
--+-------------------------------------+-------------------------------------+---------+---------+----------+--------+------------------------------------------------------------------------------------------+--------
1 | dell-preinstall                     | dell-preinstall                     | Yes     | No      |   99     | yast2  | file:/var/os                                                                             |        
2 | devel:languages:R:patched           | devel:languages:R:patched           | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/devel:/languages:/R:/patched/SLE_11_SP1/       |        
3 | http-download.opensuse.org-1e66e1c3 | http-download.opensuse.org-1e66e1c3 | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/devel%3a/languages%3a/R%3a/patched/SLE_11_SP1/ |        
4 | openSUSE_11.4_Non-OSS               | openSUSE 11.4 Non-OSS               | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/11.4/repo/non-oss/                             |        
5 | openSUSE_11.4_OSS                   | openSUSE 11.4 OSS                   | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/11.4/repo/oss

I used wget to download the .bz2 file from http://www.boost.org/users/history/version_1_55_0.html

running rpm -qi libgio-2_0-0 libgtk-3-0

Name        : libgio-2_0-0                 Relocations: (not relocatable)
Version     : 2.28.0                            Vendor: openSUSE
Release     : 3.6.1                         Build Date: Tue 22 Feb 2011 11:40:25 AM EST
Install Date: Thu 08 Nov 2012 03:58:38 PM EST      Build Host: build16
Group       : System/Libraries              Source RPM: glib2-2.28.0-3.6.1.src.rpm
Size        : 1229344                          License: LGPLv2+
Signature   : RSA/8, Tue 22 Feb 2011 11:42:43 AM EST, Key ID b88b2fd43dbdc284
Packager    : http://bugs.opensuse.org
URL         : http://www.gtk.org/
Summary     : General-Purpose Utility Library -- Library for VFS
Description :
GLib is a general-purpose utility library, which provides many useful
data types, macros, type conversions, string utilities, file utilities,
a main loop abstraction, and so on.

GIO provides a modern, easy-to-use VFS API.
Distribution: openSUSE 11.4
package libgtk-3-0 is not installed


Thanks very much!

Renee

It is obvious to me that you have a mix of openSUSE 11.4 and SUSE Linux Enterprise 11 SP1 repos (and I am not sure where some of the other repos are to be usedfor).

I very much doubt that that is going to work.

Just a note:
11.4 is out of support since nearly 2 years already.
At the very least you should add the Evergreen repo and update your system.
But even Evergreen support for 11.4 will stop soon, so you might consider upgrading to a newer version.
See http://en.opensuse.org/openSUSE:Evergreen

Repo list:

...      
2 | devel:languages:R:patched           | devel:languages:R:patched           | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/devel:/languages:/R:/patched/SLE_11_SP1/       |        
3 | http-download.opensuse.org-1e66e1c3 | http-download.opensuse.org-1e66e1c3 | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/devel%3a/languages%3a/R%3a/patched/SLE_11_SP1/ |        
...

Why are you using this repo for SLE_11_SP1?
This is still available for 11.4 as well, change the URL to say openSUSE_11.4 instead of SLE_11_SP1.
And you only need one of those, as they are the same anyway.
Just remove #3.

I used wget to download the .bz2 file from http://www.boost.org/users/history/version_1_55_0.html

That’s the source code.
So you compiled and installed it as well, right?

This could cause conflicts with the already installed software, as boost 1.55 is not compatible to the shipped version 1.44.

But emacs should not be affected AFAICT.

Do you really need a newer version of Boost than the 1.44 shipped with 11.4?
Then you should definitely consider upgrading to the latest openSUSE version, 13.1 comes with 1.53 f.e.

running rpm -qi libgio-2_0-0 libgtk-3-0

...
package libgtk-3-0 is not installed

Ok, 11.4 did not yet have gtk3, but gtk2.
And g_variant_unref is actually part of glib, not gtk, sorry.

So please post the output of this then:

rpm -qi libgtk-2_0-0 libglib-2_0-0

Just a note:
11.4 is out of support since nearly 2 years already.
At the very least you should add the Evergreen repo and update your system.
But even Evergreen support for 11.4 will stop soon, so you might consider upgrading to a newer version.
See http://en.opensuse.org/openSUSE:Evergreen

Why are you using this repo for SLE_11_SP1?
This is still available for 11.4 as well, change the URL to say openSUSE_11.4 instead of SLE_11_SP1.
And you only need one of those, as they are the same anyway.
Just remove #3.

The installation was done by the company whom we bought the server from, and I don’t have the authorization to make major changes to the system (I’m a summer student). But I’ll definitely let my PI know!

That’s the source code.
So you compiled and installed it as well, right?

This could cause conflicts with the already installed software, as boost 1.55 is not compatible to the shipped version 1.44.

Yep, I followed the steps in the manual but I did encounter some errors, I guess now I know why:)

Ok, 11.4 did not yet have gtk3, but gtk2.
And g_variant_unref is actually part of glib, not gtk, sorry.

So please post the output of this then:

rpm -qi libgtk-2_0-0 libglib-2_0-0

Output:

Name        : libgtk-2_0-0                 Relocations: (not relocatable)
Version     : 2.22.1                            Vendor: openSUSE
Release     : 13.13.2                       Build Date: Tue 22 Feb 2011 05:19:35 PM EST
Install Date: Thu 08 Nov 2012 04:02:07 PM EST      Build Host: build24
Group       : System/Libraries              Source RPM: gtk2-2.22.1-13.13.2.src.rpm
Size        : 8285892                          License: LGPLv2.1+
Signature   : RSA/8, Tue 22 Feb 2011 05:22:36 PM EST, Key ID b88b2fd43dbdc284
Packager    : http://bugs.opensuse.org
URL         : http://www.gtk.org/
Summary     : The GTK+ toolkit library (version 2)
Description :
GTK+ is a multi-platform toolkit for creating graphical user interfaces.
Offering a complete set of widgets, GTK+ is suitable for projects
ranging from small one-off projects to complete application suites.
Distribution: openSUSE 11.4
Name        : libglib-2_0-0                Relocations: (not relocatable)
Version     : 2.22.5                            Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Release     : 0.2.23                        Build Date: Sun 09 May 2010 08:05:52 AM EDT
Install Date: Wed 22 Jun 2011 09:10:41 PM EDT      Build Host: crumb
Group       : Development/Libraries/C and C++   Source RPM: glib2-2.22.5-0.2.23.src.rpm
Size        : 807272                           License: LGPL v2.1 or later
Signature   : RSA/8, Sun 09 May 2010 08:06:15 AM EDT, Key ID e3a5c360307e3d54
Packager    : http://bugs.opensuse.org
URL         : http://www.gtk.org/
Summary     : A Library with Convenient Functions Written in C
Description :
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>
Distribution: SUSE Linux Enterprise 11


Thank you so much for the help!

Well, I guess this is the reason.
libglib-2_0-0 is from SUSE Linux Enterprise 11, whereas the rest is from openSUSE 11.4.

So you cannot even install packages?
If you can, just try this:

sudo zypper in -f libglib-2_0-0

libglib-2_0-0 should then be installed from the 11.4 repo and emacs should work again, unless there are other critical package mismatches of course.
The best thing would be a “sudo zypper dup”, I suppose, to make sure all packages come from 11.4.

It would be nice to know what is in that /var/os directory though that is added as repo “dell_preinstalled”:

ls /var/os

Maybe that’s where those SLES_11 packages come from?
Anyway, the 11.4 repo should have higher versions so a zypper dup should switch everything to 11.4.

So you cannot even install packages?
If you can, just try this:

sudo zypper in -f libglib-2_0-0

libglib-2_0-0 should then be installed from the 11.4 repo and emacs should work again, unless there are other critical package mismatches of course.

I tried this:

Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: libglib-2_0-0-2.28.0-3.6.1.x86_64 requires glib2-branding = 2.28.0, but this requirement cannot be provided
  uninstallable providers: glib2-branding-upstream-2.28.0-3.6.1.i586[openSUSE_11.4_OSS]
                   glib2-branding-openSUSE-11.4-4.2.noarch[openSUSE_11.4_OSS]
                   glib2-branding-upstream-2.28.0-3.6.1.x86_64[openSUSE_11.4_OSS]
 Solution 1: deinstallation of glib2-branding-SLES-2.16-47.3.noarch
 Solution 2: do not install libglib-2_0-0-2.28.0-3.6.1.x86_64
 Solution 3: break libglib-2_0-0 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c] (c): 


Why does it say that the glib2 package is uninstallable?

It would be nice to know what is in that /var/os directory though that is added as repo “dell_preinstalled”:

ls /var/os

Maybe that’s where those SLES_11 packages come from?

Output:

ARCHIVES.gz  COPYRIGHT.de                      gpg-pubkey-b37b98a9-4be01a1a.asc
boot         directory.yast                    INDEX.gz
ChangeLog    docu                              license.tar.gz
content      gpg-pubkey-0dfb3188-41ed929b.asc  ls-lR.gz
content.asc  gpg-pubkey-1d061a62-4bd70bfa.asc  media.1
content.key  gpg-pubkey-307e3d54-4be01a65.asc  NEWS
control.xml  gpg-pubkey-3d25d3d9-36e12d04.asc  pubring.gpg
COPYING      gpg-pubkey-7e2e3b05-4be037ca.asc  README
COPYING.de   gpg-pubkey-9c800aca-4be01999.asc  suse
COPYRIGHT    gpg-pubkey-a1912208-446a0899.asc


Thanks again!!

It doesn’t say it is uninstallable.
It says it cannot be installed because the installed glib2-branding-SLES (again from SLES11 SP1) conflicts with the newer libglib-2_0-0.
Choose Solution 1, uninstall glib2-branding-SLES. The update (and emacs) should work then.

Output:

ARCHIVES.gz  COPYRIGHT.de                      gpg-pubkey-b37b98a9-4be01a1a.asc
boot         directory.yast                    INDEX.gz
ChangeLog    docu                              license.tar.gz
content      gpg-pubkey-0dfb3188-41ed929b.asc  ls-lR.gz
content.asc  gpg-pubkey-1d061a62-4bd70bfa.asc  media.1
content.key  gpg-pubkey-307e3d54-4be01a65.asc  NEWS
control.xml  gpg-pubkey-3d25d3d9-36e12d04.asc  pubring.gpg
COPYING      gpg-pubkey-7e2e3b05-4be037ca.asc  README
COPYING.de   gpg-pubkey-9c800aca-4be01999.asc  suse
COPYRIGHT    gpg-pubkey-a1912208-446a0899.asc

Thanks again!!

OK, this doesn’t tell much, except that this is a complete repo, most probably SLES_11_SP1.

Could you also post the output of:

cat /var/os/media.1/products

This should tell which distribution this is.
If this file does not exist, please post the file /var/os/contents instead.

What I suspect that has happened here is this:

  • the system had SLE11 SP1 preinstalled, with the repo/Installation-DVD mirrored in /var/os/ and setup as repo.
  • somebody added the 11.4 repos and upgraded to that
  • because of some conflicts (branding-related), not all packages got upgraded. Those branding packages that caused the conflict (glib2-branding-SLES) did not get removed by “zypper dup” (or however the upgrade was made), because it is still available in that repo.
    Or maybe the upgrade just wasn’t done correctly (or at all) anyway, but by “zypper up” or installing the standard updates the update applet offered.

It doesn’t say it is uninstallable.
It says it cannot be installed because the installed glib2-branding-SLES (again from SLES11 SP1) conflicts with the newer libglib-2_0-0.
Choose Solution 1, uninstall glib2-branding-SLES. The update (and emacs) should work then.

This solved my problems with Emacs! Thank you so much!

OK, this doesn’t tell much, except that this is a complete repo, most probably SLES_11_SP1.

Could you also post the output of:

cat /var/os/media.1/products

This should tell which distribution this is.
If this file does not exist, please post the file /var/os/contents instead.

Output of cat /var/os/media.1/products:

/ SUSE-Linux-Enterprise-Server-11-SP1 11.1.1-1.152

What I suspect that has happened here is this:

  • the system had SLE11 SP1 preinstalled, with the repo/Installation-DVD mirrored in /var/os/ and setup as repo.
  • somebody added the 11.4 repos and upgraded to that
  • because of some conflicts (branding-related), not all packages got upgraded. Those branding packages that caused the conflict (glib2-branding-SLES) did not get removed by “zypper dup” (or however the upgrade was made), because it is still available in that repo.
    Or maybe the upgrade just wasn’t done correctly (or at all) anyway, but by “zypper up” or installing the standard updates the update applet offered.

I’ll definitely let my PI know of these issues! Should I just remove the 11.4 repos? Thank you so much!

As suspected, this is SLES11-SP1.

I’ll definitely let my PI know of these issues! Should I just remove the 11.4 repos? Thank you so much!

Well, at least part of the system has been updated to 11.4 already but I don’t know how much so I cannot really say what would be better.

You have two choices:
Either

  • Remove the 11.4 repos and “upgrade” (or rather downgrade, depending on how you look at it) the system to SLES11-SP1
    or
  • Remove that SLE11-SP1 repo, change the [noparse]devel:languages:R:patched[/noparse] repo to the 11.4 version as well as already mentioned, and upgrade fully to 11.4.

Regardless of your choice of repos, a “sudo zypper dup” should bring your system to a fully consistent state.
If you would get some conflicts and are unsure about how to solve them, just ask.

Thank you so much!

On 2014-06-16 21:16, reneeee27 wrote:

> I’ll definitely let my PI know of these issues! Should I just remove the
> 11.4 repos? Thank you so much!

Your boss has to decide whether to revert to the original SLES, or to
switch to openSUSE 11.4, and then upgrade in about a month to 13.1, as
11.4 goes out of support.

You can not stay midway.

As this appears to be a machine sold by a provider with SLES, going to
openSUSE probably breaks their support contract or whatever you have
with them. In fact, adding those 11.4 repos time ago already broke the
contract, I’d guess.

So, what to do to solve the situation is not on your pay grade. Do not
install or remove anything, nor add or remove any repo. Management has
to decide and take responsibilities, they are paid for that.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-06-16, reneeee27 <reneeee27@no-mx.forums.opensuse.org> wrote:
> The installation was done by the company whom we bought the server from,
> and I don’t have the authorization to make major changes to the system
> (I’m a summer student). But I’ll definitely let my PI know!

You should tell your PI that openSUSE 11.4 (and it’s Evergreen extension) have been EOL for some time, and it’s not a
good idea to continue running a lab machine on Kernel 2.6.x especially if it’s at all networked. I would recommend your
lab upgrades OS now, because now’s an ideal time since the present version of openSUSE (version 13.1) has been scheduled
for long term support (`Evergreen’). Many of my lab computers have openSUSE versions 12.x and I intend to upgrade them
all to 13.1 because of Evergreen support (even if openSUSE 13.2 is already released). The only reason to hold back is if
there’s kernel-critical software (typically hardware drivers) for which you require legacy support.

Thank you guys so much for all the help! I have contacted Dell technical support and informed them of the issues as well as all the suggestions:)