diff --git a/config.h.meson b/config.h.meson index 2095b6915..77045319c 100644 --- a/config.h.meson +++ b/config.h.meson @@ -61,5 +61,6 @@ /* XKB base prefix */ #mesondefine XKB_BASE -/* Default rules for allowing Xwayland grabs */ -#mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES +/* Either or */ +#mesondefine HAVE_SYS_RANDOM +#mesondefine HAVE_LINUX_RANDOM diff --git a/meson.build b/meson.build index d88a8653d..886481f4d 100644 --- a/meson.build +++ b/meson.build @@ -364,6 +364,15 @@ if have_wayland xwayland_path = find_program('Xwayland').path() endif cdata.set_quoted('XWAYLAND_PATH', xwayland_path) + + # For Xwayland authority file generation. + if cc.has_header_symbol('sys/random.h', 'getrandom') + cdata.set('HAVE_SYS_RANDOM', 1) + elif cc.has_header_symbol('linux/random.h', 'getrandom') + cdata.set('HAVE_LINUX_RANDOM', 1) + else + error('Required function getrandom not found') + endif endif xwayland_grab_default_access_rules = get_option('xwayland_grab_default_access_rules') diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c index 92a2224b2..9455326d0 100644 --- a/src/wayland/meta-xwayland.c +++ b/src/wayland/meta-xwayland.c @@ -31,7 +31,11 @@ #include #include #include +#if defined(HAVE_SYS_RANDOM) #include +#elif defined(HAVE_LINUX_RANDOM) +#include +#endif #include #include