diff options
| author | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-07-05 02:26:53 +0200 |
|---|---|---|
| committer | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-07-05 11:45:11 +0200 |
| commit | 45d8de38393c2b34eaafd49901a48fced685b1e8 (patch) | |
| tree | dc89853e1c49129bc748423d653715e751414032 /gtk-broadway-run.sh | |
| parent | ecd1b0d916bbbe002af9624f152c062a891e4633 (diff) | |
added gtk-broadway-run.sh as an alternative to xfvb-run
The latter sometimes fails and causes a lot of fallout on OBS servers.
gtk-broadway-run.sh uses the GTK Broadway backend instead and will
only work with GTK applications.
It is currently tested for the Debian and RPM packages and might
later be integrated into the FreeBSD package as well.
Diffstat (limited to 'gtk-broadway-run.sh')
| -rwxr-xr-x | gtk-broadway-run.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gtk-broadway-run.sh b/gtk-broadway-run.sh new file mode 100755 index 0000000..9b20f7b --- /dev/null +++ b/gtk-broadway-run.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# ./gtk-broadway-run.sh PROGRAM ARGS... +# Starts PROGRAM under Gtk with the Broadway backend. +# +# This is meant as a more reliable replacement to xvfb-run +# when building SciTECO on headless systems. +# WARNING: This will block indefinitely when letting +# SciTECO (or any Gtk app) start up to its UI. +set -e + +export GDK_BACKEND=broadway + +# mktemp would create the file already +BROADWAY_SOCKET=/tmp/gtk-broadway.sock.$$ + +broadwayd --unixsocket $BROADWAY_SOCKET >/dev/null & +BROADWAY_PID=$! +trap "kill $BROADWAY_PID; rm -f $BROADWAY_SOCKET" EXIT + +# Wait for broadway to start up. +# broadwayd might also die in the meantime. +while kill -0 $BROADWAY_PID >/dev/null && [ ! -S $BROADWAY_SOCKET ]; do + # `sleep 0.1` might be unportable. + sleep 0.1 || sleep 1 +done + +# We don't exec, so we can still clean up with the trap afterwards. +"$@" |
