undefined symbol in libgsettings.so and libini.so

Bug #1163611 reported by raveit65
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Compiz
Fix Released
Medium
Sam Spilsbury
compiz (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

After installing compiz-0.9.9 revision 3644 on fedora 18+
i get those errors if itry to start compiz.

[rave@mother ~]$ compiz --replace gsettings
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
compiz (core) - Info: Loading plugin: gsettings
compiz (core) - Error: dlsym: /usr/lib64/compiz/libgsettings.so: undefined symbol: getCompPluginVTable20090315_gsettings
compiz (core) - Error: Failed to load plugin: gsettings
compiz (core) - Info: Loading plugin: composite
compiz (core) - Info: Starting plugin: composite
compiz (core) - Info: Loading plugin: opengl
compiz (core) - Info: Starting plugin: opengl
compiz (core) - Info: Loading plugin: copytex
compiz (core) - Info: Starting plugin: copytex
compiz (core) - Info: Loading plugin: compiztoolbox
compiz (core) - Info: Starting plugin: compiztoolbox
compiz (core) - Info: Loading plugin: decor
compiz (core) - Info: Starting plugin: decor
compiz (core) - Info: Loading plugin: scale
compiz (core) - Info: Starting plugin: scale
compiz (core) - Info: Loading plugin: resize
compiz (core) - Info: Starting plugin: resize
compiz (core) - Info: Loading plugin: staticswitcher
compiz (core) - Info: Starting plugin: staticswitcher
compiz (core) - Info: Loading plugin: place
compiz (core) - Info: Starting plugin: place
compiz (core) - Info: Loading plugin: move
compiz (core) - Info: Starting plugin: move
compiz (core) - Info: Loading plugin: mousepoll
compiz (core) - Info: Starting plugin: mousepoll
compiz (core) - Info: Loading plugin: vpswitch
compiz (core) - Info: Starting plugin: vpswitch
compiz (core) - Info: Loading plugin: regex
compiz (core) - Info: Starting plugin: regex
compiz (core) - Info: Loading plugin: snap
compiz (core) - Info: Starting plugin: snap
compiz (core) - Info: Loading plugin: session
compiz (core) - Info: Starting plugin: session
compiz (core) - Info: Loading plugin: wall
compiz (core) - Info: Starting plugin: wall
compiz (core) - Info: Loading plugin: workarounds
compiz (core) - Info: Starting plugin: workarounds
compiz (core) - Info: Loading plugin: ezoom
compiz (core) - Info: Starting plugin: ezoom

[rave@mother ~]$ compiz --replace ini
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
compiz (core) - Info: Loading plugin: ini
compiz (core) - Error: dlsym: /usr/lib64/compiz/libini.so: undefined symbol: getCompPluginVTable20090315_ini
compiz (core) - Error: Failed to load plugin: ini
compiz (core) - Info: Loading plugin: composite
compiz (core) - Info: Starting plugin: composite
compiz (core) - Info: Loading plugin: opengl
compiz (core) - Info: Starting plugin: opengl
compiz (core) - Info: Loading plugin: copytex
compiz (core) - Info: Starting plugin: copytex
compiz (core) - Info: Loading plugin: compiztoolbox
compiz (core) - Info: Starting plugin: compiztoolbox
compiz (core) - Info: Loading plugin: decor
compiz (core) - Info: Starting plugin: decor
compiz (core) - Info: Loading plugin: scale
compiz (core) - Info: Starting plugin: scale
compiz (core) - Info: Loading plugin: resize
compiz (core) - Info: Starting plugin: resize
compiz (core) - Info: Loading plugin: staticswitcher
compiz (core) - Info: Starting plugin: staticswitcher
compiz (core) - Info: Loading plugin: place
compiz (core) - Info: Starting plugin: place
compiz (core) - Info: Loading plugin: move
compiz (core) - Info: Starting plugin: move
compiz (core) - Info: Loading plugin: mousepoll
compiz (core) - Info: Starting plugin: mousepoll
compiz (core) - Info: Loading plugin: vpswitch
compiz (core) - Info: Starting plugin: vpswitch
compiz (core) - Info: Loading plugin: regex
compiz (core) - Info: Starting plugin: regex
compiz (core) - Info: Loading plugin: snap
compiz (core) - Info: Starting plugin: snap
compiz (core) - Info: Loading plugin: session
compiz (core) - Info: Starting plugin: session
compiz (core) - Info: Loading plugin: wall
compiz (core) - Info: Starting plugin: wall
compiz (core) - Info: Loading plugin: workarounds
compiz (core) - Info: Starting plugin: workarounds
compiz (core) - Info: Loading plugin: ezoom
compiz (core) - Info: Starting plugin: ezoom

In result changing a setting in ccsm doesn't work.
Compiz start with ugly adwaita windows-decorator in fedora MATE-Desktop and only the wall plugin seems to be working.
If you need more info let me know.

Thanks for your work

The problem the reporter appears to be describing (from the comments) is that the backends are not installed with the correct lib suffix:

Unfortunately, this configuration installs the compizconfig folder to /usr/lib and not to /usr/lib64

-- Installing: /usr/lib/compizconfig/backends/libini.so
-- Set runtime path of "/usr/lib/compizconfig/backends/libini.so" to "/usr/lib"
-- Installing: /usr/lib64/libcompizconfig.so.0.0.0
-- Up-to-date: /usr/lib64/libcompizconfig.so.0
-- Up-to-date: /usr/lib64/libcompizconfig.so

-- Installing: /usr/lib/compizconfig/backends/libgsettings.so
-- Set runtime path of "/usr/lib/compizconfig/backends/libgsettings.so" to "/usr/lib"

(/usr/lib should be /usr/lib64)

Related branches

Revision history for this message
raveit65 (raveit65) wrote :

by the way, i need to edit cmake files by hand after cmake configure and generate, to change the path of the backends from /lib/compizconfig to /lib64/compizconfig for arch x86_64.
All other libs are installed to /usr/lib64 automaticly.
Without changing this, starting ccsm result in following error.

[rave@mother ~]$ ccsm
compizconfig - Error: dlopen: /usr/lib64/compizconfig/backends/libgconf.so: cannot open shared object file: No such file or directory
compizconfig - Warning: unable to open backend gconf, falling back to ini
compizconfig - Error: dlopen: /usr/lib64/compizconfig/backends/libini.so: cannot open shared object file: No such file or directory
compizconfig - Error: failed to open any backends, aborting
Aborted (core dumped)

But maybe i didn't setup the right cmake configure options in cmake-gui.

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

You'll need to pass the following to cmake to handle the lib64 case.

-DCOMPIZ_PACKAGING_ENABLED=ON -Dlibdir=/usr/lib64/ -Dlibcompizconfig_libdir=/usr/lib64

Also "gsettings" and "ini" should not be added to the compiz plugin list.

Changed in compiz:
status: New → Incomplete
Revision history for this message
raveit65 (raveit65) wrote :
Download full text (4.8 KiB)

Thanks for helping me for my project to get closer to upstream for fedora :)
I use 0.8.8 packages for the moment.
Today i use the cmake configure flags which you sugested.
COMPIZ_PACKAGING_ENABLED:BOOL=ON
libcompizconfig_libdir:PATH=/usr/lib64
libdir:PATH=/usr/lib64
COMPIZ_DEFAULT_PLUGINS:STRING=core composite opengl copytex compiztoolbox decor scale resize staticswitcher place move mousepoll vpswitch regex snap session wall workarounds ezoom

Here is my complete CMakeCache.txt
https://dl.dropbox.com/u/49862637/Mate-desktop/Bugs/CMakeCache.txt

Unfortunately, this configuration installs the compizconfig folder to /usr/lib and not to /usr/lib64

-- Installing: /usr/lib/compizconfig/backends/libini.so
-- Set runtime path of "/usr/lib/compizconfig/backends/libini.so" to "/usr/lib"
-- Installing: /usr/lib64/libcompizconfig.so.0.0.0
-- Up-to-date: /usr/lib64/libcompizconfig.so.0
-- Up-to-date: /usr/lib64/libcompizconfig.so

-- Installing: /usr/lib/compizconfig/backends/libini.so
-- Set runtime path of "/usr/lib/compizconfig/backends/libini.so" to "/usr/lib"
-- Installing: /usr/lib64/libcompizconfig.so.0.0.0
-- Up-to-date: /usr/lib64/libcompizconfig.so.0
-- Up-to-date: /usr/lib64/libcompizconfig.so

Which results in following errors for starting compiz and ccsm.

ccsm:
compizconfig - Error: dlopen: /usr/lib64/compizconfig/backends/libgsettings.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
compizconfig - Warning: unable to open backend gsettings, falling back to ini
compizconfig - Error: dlopen: /usr/lib64/compizconfig/backends/libini.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
compizconfig - Error: failed to open any backends, aborting
Abgebrochen (Speicherabzug geschrieben)
< sorry, in german, which means " can't open shared object file"" doesn't find file or directory">

Same happend if i try to start compiz with
compiz --replace --keep-desktop-hints --debug ini
or
compiz --replace --keep-desktop-hints --debug gsettings

Ok, to avoid those errors i patched some cmake files.
https://dl.dropbox.com/u/49862637/Mate-desktop/Bugs/compiz_hardcoded_libs_minimal.patch
I know changing ${CMAKE_INSTALL_PREFIX}/lib/ to
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/
is only valid for x86_64 archs, but i don't know a other solution?

Now:
-- Installing: /usr/lib64/compizconfig/backends/libini.so
-- Set runtime path of "/usr/lib64/compizconfig/backends/libini.so" to "/usr/lib64"

-- Installing: /usr/lib64/python2.7/site-packages/compizconfig.so
-- Removed runtime path from "/usr/lib64/python2.7/site-packages/compizconfig.so"

-- Installing: /usr/lib64/compizconfig/backends/libgsettings.so
-- Set runtime path of "/usr/lib64/compizconfig/backends/libgsettings.so" to "/usr/lib64"
-- Up-to-date: /usr/share/glib-2.0/schemas//org.compiz.gschema.xml
-- Installing: /usr/lib64/libcompizconfig_gsettings_backend.so
-- Removed runtime path from "/usr/lib64/libcompizconfig_gsettings_backend.so"

CCSM starts well now, but i'm fall back to the errors in my first post.

compiz (core) - Info: Loading plugin: gsettings
compiz (core) - Debug: Trying to load gsettings from: /home/rave/.compiz-1/plugins/lib...

Read more...

Revision history for this message
raveit65 (raveit65) wrote :

Sorry, wrong

This what i meant:

Unfortunately, this configuration installs the compizconfig folder to /usr/lib and not to /usr/lib64

-- Installing: /usr/lib/compizconfig/backends/libini.so
-- Set runtime path of "/usr/lib/compizconfig/backends/libini.so" to "/usr/lib"
-- Installing: /usr/lib64/libcompizconfig.so.0.0.0
-- Up-to-date: /usr/lib64/libcompizconfig.so.0
-- Up-to-date: /usr/lib64/libcompizconfig.so

-- Installing: /usr/lib/compizconfig/backends/libgsettings.so
-- Set runtime path of "/usr/lib/compizconfig/backends/libgsettings.so" to "/usr/lib"

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Okay, confirmed, they don't seem to be using the right suffix.

I'll fix that now.

Changed in compiz:
status: Incomplete → Confirmed
importance: Undecided → Medium
assignee: nobody → Sam Spilsbury (smspillaz)
milestone: none → 0.9.10.0
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:compiz at revision None, scheduled for release in compiz, milestone 0.9.10.0

Changed in compiz:
status: Confirmed → Fix Committed
Revision history for this message
raveit65 (raveit65) wrote :
Download full text (3.8 KiB)

Thank you for fixing.

But this fixed only the installation path for x86_64 arch.
Now the backends are installed in /usr/lib64/compizconfig/backends.
But starting compiz results in following errors:

[rave@mother ~]$ compiz --replace --debug gsettings
<snip>
compiz (core) - Info: Loading plugin: gsettings
compiz (core) - Debug: Trying to load gsettings from: /home/rave/.compiz-1/plugins/libgsettings.so
compiz (core) - Debug: dlopen failed: /home/rave/.compiz-1/plugins/libgsettings.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load gsettings from: /usr/lib64/compiz/libgsettings.so
compiz (core) - Debug: dlopen failed: /usr/lib64/compiz/libgsettings.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load gsettings from: libgsettings.so
compiz (core) - Debug: dlopen failed: libgsettings.so: cannot open shared object file: No such file or directory
compiz (core) - Error: Failed to load plugin: gsettings

compiz --replace --debug ini
<snip>
compiz (core) - Info: Loading plugin: ini
compiz (core) - Debug: Trying to load ini from: /home/rave/.compiz-1/plugins/libini.so
compiz (core) - Debug: dlopen failed: /home/rave/.compiz-1/plugins/libini.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load ini from: /usr/lib64/compiz/libini.so
compiz (core) - Debug: dlopen failed: /usr/lib64/compiz/libini.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load ini from: libini.so
compiz (core) - Debug: dlopen failed: libini.so: cannot open shared object file: No such file or directory
compiz (core) - Error: Failed to load plugin: ini

Seems like the runpath to /usr/lib64/compizconfig/backends isn't working.
After i symlink the backend libaries to /usr/lib64 i get the old error.

compiz (core) - Debug: dlopen failed: /home/rave/.compiz-1/plugins/libini.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load ini from: /usr/lib64/compiz/libini.so
compiz (core) - Debug: dlopen failed: /usr/lib64/compiz/libini.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load ini from: libini.so
compiz (core) - Debug: Opened library: libini.so
compiz (core) - Error: dlsym: /lib64/libini.so: undefined symbol: getCompPluginVTable20090315_ini
compiz (core) - Error: Failed to load plugin: ini

compiz (core) - Info: Loading plugin: gsettings
compiz (core) - Debug: Trying to load gsettings from: /home/rave/.compiz-1/plugins/libgsettings.so
compiz (core) - Debug: dlopen failed: /home/rave/.compiz-1/plugins/libgsettings.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load gsettings from: /usr/lib64/compiz/libgsettings.so
compiz (core) - Debug: dlopen failed: /usr/lib64/compiz/libgsettings.so: cannot open shared object file: No such file or directory
compiz (core) - Debug: Trying to load gsettings from: libgsettings.so
compiz (core) - Debug: Opened library: libgsettings.so
compiz (core) - Error: dlsym: /lib64/libgsettings.so: undefined symbol: getCompPluginVTable20090315_g...

Read more...

Revision history for this message
Stephen M. Webb (bregma) wrote :

Fix Released in Compiz Compiz 0.9.10.0.

Changed in compiz:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (70.8 KiB)

This bug was fixed in the package compiz - 1:0.9.10+13.10.20130822-0ubuntu1

---------------
compiz (1:0.9.10+13.10.20130822-0ubuntu1) saucy; urgency=low

  [ Sam Spilsbury ]
  * Bump version to 0.9.10

  [ Łukasz 'sil2100' Zemczak ]
  * Remove debian/patches/unity_support_test.patch:
    - Running the support test from compiz has bad side effects, from now
      on we run it from Xsession.d
  * Automatic snapshot from revision 3644

  [ Iven Hsu ]
  * Opacify: Only dim the windows above the active window.(LP:
    #1189374). (LP: #1189374)
  * KWD: Fix compile errors with KDE 4.11. The KWin developers made
    kdecorationbridge.h private. See:
    http://lists.freedesktop.org/archives/compiz/2013-March/003479.html
    (LP: #1193792). (LP: #1193792)

  [ Nikolay Martynov ]
  * When static switcher is enabled and has an option to show
    application icon turned on the icons are expected to be ~1/3 of a
    thumbnail (48px). Instead they are displayed in 512px size and
    completely cover everything. This change addresses this issue. See
    LP #1173914. (LP: #1173914, #1186426)

  [ BryanFRitt ]
  * Fixed the non-working Annotate 'Clear' Button. Moved this option's
    CCSM position upwards to keep the button shortcuts together. (LP:
    #1202907). (LP: #1202907)

  [ Mehrdad Afshari ]
  * Added "move window to previous monitor" feature to compiz Put
    plugin. (LP: #1178581)

  [ Hu Kang ]
  * gtk-window-decorator: destroy action menu when any of the (close,
    min, max) buttons on the title bar is pressed. (LP: #1101648)
  * Remove redundant src/logmessage/include/core/logmessage.h (LP:
    #1067246). (LP: #1067246)

  [ Steve Langasek ]
  * Fix for bug #763148 (with added test cases): when the desktop is
    resized, windows should stay on their original workspace. (LP:
    #763148)

  [ Brandon Schaefer ]
  * Unrevert 3728, fix failing tests. Change the behaviour of
    undecorating windows. Previously when a window was undecorated, we
    would shift it back to an appropriate position according to its
    gravity member. That behaviour was problematic because in the
    StaticGravity case the window has to just stay in the same place.
    But then if you had a window with StaticGravity which then did get a
    decoration and later removed it, it would be placed as though it was
    decorated and appear to be in the wrong place. The correct behaviour
    is to place all windows as though they have decorations, and then
    when decorations are removed, to move the window back to the corner
    as indicated in its gravity and then expand its size to cover the
    obscured regions no longer hidden because the decorations went away.
    (LP: #1165343).   1. Completely remove decorOffsetMove and other
    related code from      decor.cpp. Put the logic to handle the
    window->input () - window->border ()      placement offset inside of
    setWindowFrameExtents instead. Now the window      will always be
    offset from its original non-decorated position to the new
         decorated position, rather than having to guess between
    decoration sizes.   2. Make saveGeometry and restoreGeometry work
    relative to window->border ()      a...

Changed in compiz (Ubuntu):
status: New → Fix Released
Revision history for this message
raveit65 (raveit65) wrote :

Sorry guys,
this issue isn't fixed!
Pls re-open.
You are prevent me to use 0.9.x for packaging in fedora, without fixing 'undefined symbol in libgsettings.so and libini.so'.

Changed in compiz:
status: Fix Released → In Progress
Changed in compiz:
status: In Progress → Invalid
status: Invalid → Fix Released
description: updated
Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Hi raveit65,

Initially I changed this bug to "invalid", but after reading through the comments I changed it back to "fix committed", as I hadn't updated the initial description with what the actual problem was.

The actual problem exposed in this report was that the backends were not being installed with the correct library suffix. The undefined symbol errors, however, are not a bug. This is because you are attempting to load them as compiz plugins directly. Because they are not compiz plugins, they do not contain the vtable entry point symbol that all compiz plugins have, hence the error message.

If you wish to change the active backend, you need to adjust /etc/compizconfig/config and change the value for [gnome_session] from "backend = gconf" to "backend = $backend" (so long as MATE still exports DESKTOP_SESSION_ID)

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.