kernel traps

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Jul 4 09:32:50 UTC 2016


On 02/07/16 11:02, René J.V. Bertin wrote:
> I haven't been able to figure out exactly what went wrong, but I
> presume I ended up setting XDG_DATA_DIRS to a value that glib didn't
> know how to handle, possibly simply ":/opt/local/share" instead of
> "/opt/local/share".

If XDG_DATA_DIRS is set but does not contain at least /usr/share, then
you have probably broken a lot of the software you received from your
distribution (in your case Kubuntu). For instance, a system-wide (/usr)
installation of GLib looks in the glib-2.0/schemas subdirectory of each
element of XDG_DATA_DIRS for schemas, so if /usr/share isn't in your
XDG_DATA_DIRS, it won't find its own schemas.

The default if XDG_DATA_DIRS is not set is to use
/usr/local/share:/usr/share. Any custom value for that variable should
include both of those paths, unless you are doing something very very
unusual.

Loading a settings schema that doesn't exist is considered to be
programming error (the GLib library and the GLib schemas are always
meant to go together) so it will typically result in a crash.

> I still have to figure out when to set XDG_DATA_DIRS early enough.
> Apparently ~/.cshrc isn't early enough as I still need the
> session-local.conf file. In itself that's fine with me (it seems
> an appropriate use for an appropriate case) but the question has
> piqued my interest :)

On something as old as Kubuntu 14.04, you're presumably not using
Wayland or Mir, so /etc/X11/Xsession.d would probably work.

    S
-- 
Simon McVittie
Collabora Ltd. <http://www.collabora.com/>



More information about the dbus mailing list