summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <halfline@gmail.com>2023-12-26 11:37:01 +0000
committerRay Strode <halfline@gmail.com>2023-12-26 11:37:01 +0000
commitc835c7ff53aa25009b694fd66e9a6c55cbed670c (patch)
tree0ee7710e2312ae3a2edaf12fc903efdef08ce454
parent32d930bdda47f4abd5c8c8707708bfbb2ad83570 (diff)
parent03842d5201e4486fe62635c7b470eb94696f985d (diff)
Merge branch 'fall-back-to-text-faster' into 'main'23.360.11
ply-device-manager: Fall back to text plugin if no renderers installed See merge request plymouth/plymouth!275
-rw-r--r--src/libply-splash-core/ply-device-manager.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
index 99433345..bfdd28d7 100644
--- a/src/libply-splash-core/ply-device-manager.c
+++ b/src/libply-splash-core/ply-device-manager.c
@@ -52,6 +52,7 @@
static void create_devices_from_udev (ply_device_manager_t *manager);
#endif
+static void create_non_graphical_devices (ply_device_manager_t *manager);
static bool create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
const char *device_path,
ply_terminal_t *terminal,
@@ -1097,6 +1098,13 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
renderer = ply_renderer_new (renderer_type, device_path, terminal);
if (renderer != NULL && !ply_renderer_open (renderer)) {
+ if (errno == ENOENT) {
+ ply_trace ("No renderer plugins installed, creating non-graphical devices");
+ ply_renderer_free (renderer);
+ create_non_graphical_devices (manager);
+ manager->device_timeout_elapsed = true;
+ return false;
+ }
ply_trace ("could not open renderer for %s", device_path);
ply_renderer_free (renderer);
renderer = NULL;