compositor: print a clear message when XDG_RUNTIME_DIR is not set
authorPekka Paalanen <ppaalanen@gmail.com>
Wed, 6 Jun 2012 13:59:44 +0000 (16:59 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 6 Jun 2012 17:27:04 +0000 (13:27 -0400)
Without this patch, Weston would not start with the message:
creating a keymap file for 44012 bytes failed: No such file or directory

If you do not know, that we use XDG_RUNTIME_DIR for that, the message is
very confusing. Therefore implement a clear error message right at the
start if XDG_RUNTIME_DIR is not set.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
src/compositor.c

index 93eeb24..3039c3d 100644 (file)
@@ -3088,6 +3088,12 @@ load_module(const char *name, const char *entrypoint, void **handle)
        return init;
 }
 
+static const char xdg_error_message[] =
+       "fatal: environment variable XDG_RUNTIME_DIR is not set.\n"
+       "Refer to your distribution on how to get it, or\n"
+       "http://www.freedesktop.org/wiki/Specifications/basedir-spec\n"
+       "on how to implement it.\n";
+
 int main(int argc, char *argv[])
 {
        struct wl_display *display;
@@ -3129,6 +3135,11 @@ int main(int argc, char *argv[])
        argc = parse_options(core_options,
                             ARRAY_LENGTH(core_options), argc, argv);
 
+       if (!getenv("XDG_RUNTIME_DIR")) {
+               fprintf(stderr, xdg_error_message);
+               exit(EXIT_FAILURE);
+       }
+
        display = wl_display_create();
 
        loop = wl_display_get_event_loop(display);