On a build machine with no running XFce4 (or any X), and no DISPLAY being set in the environment, the module will still be loaded by the g-ir-compiler. It is not expected to fully work in this state, of course, but right now it aborts and kills the compiler. CRITICAL ** ... Failed to get connection to xfconfd: Could not connect: No such file or directory
Note that (IMO very stupidly) the gobject introspection compiler sets g_log_always_fatal for warnings, so even reducing the g_critical to g_warning does not fix the issue.
see alos: https://gitlab.gnome.org/GNOME/glib/issues/1678
I confirm and can reproduce on OpenBSD too. On debian, DISPLAY variable is initialized, and compilation works. But it needs the "dbus-launch" binary… It also impacts libxfce4ui or libxfce4util builds (at least), if xfconf is already installed with gsettings backend, and you try to build them with gobject-introspection support (default). It fails on g-ir-compiler invokation: /usr/local/bin/g-ir-compiler --includedir=. --includedir=. --includedir=. libxfce4util-1.0.gir -o libxfce4util-1.0.typelib ** (g-ir-compiler:3827): CRITICAL **: 22:27:00.846: Failed to get connection to xfconfd: Cannot autolaunch D-Bus without X11 $DISPLAY The thread on NetBSD mailist which affect thunar build: https://mail-index.netbsd.org/pkgsrc-users/2019/01/21/msg027969.html
I propose to disable gsettings backend by default for xfconf if we can't find a fix/workaround, and set this bug as blocker for 4.14 as it prevent correct builds on *BSD platforms and maybe other contexts.
Also see https://bugzilla.xfce.org/show_bug.cgi?id=14789
Romain Bouvier referenced this bugreport in commit 6f11cc65a2213f424728b5a0d25b1b63c19e773e Bug #15122: xfconf: disable gsettings backend by default https://git.xfce.org/xfce/xfconf/commit?id=6f11cc65a2213f424728b5a0d25b1b63c19e773e
*** Bug 15273 has been marked as a duplicate of this bug. ***
See https://gitlab.gnome.org/GNOME/gobject-introspection/issues/261#note_515165 for how to handle a missing DISPLAY in the gio module.