es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utiliza Wayland sin cabeza / sway al realizar pruebas en GitHub Actions.

Estoy tratando de ejecutar un conjunto de pruebas en GitHub Actions para un paquete que envuelve utilidades para llamar al portapapeles en diferentes plataformas. Si bien logré configurar las pruebas sin cabeza en un sistema Linux utilizando X11, ejecutando xvfb, estoy teniendo dificultades para encontrar documentación sobre cómo configurar un sistema basado en Wayland sin cabeza para probar la utilidad wl-clipboard.

La acción actual que estoy ejecutando instala sway, crea el XDG_RUNTIME_DIR requerido y luego ejecuta sway. Sospecho que no estoy iniciando sway correctamente porque no logro hacer que se inicie y se mantenga en ejecución en segundo plano mientras se ejecutan el resto de las pruebas.


- name: Instalar Wayland
if: ${{ matrix.config.clip_type == 'wayland' }}
run: |
mkdir $XDG_RUNTIME_DIR
chown $USER $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
sudo apt-get update
sudo apt-get purge x11-*
sudo apt-get install sway meson libwayland-dev
echo $XDG_RUNTIME_DIR
ls -la $XDG_RUNTIME_DIR
sway -d -V
cd $GITHUB_WORKSPACE/..
git clone https://github.com/bugaevc/wl-clipboard.git
cd wl-clipboard
meson build
cd build/
sudo ninja install
wl-copy --primary
wl-paste --primary
cd $GITHUB_WORKSPACE
env:
XDG_RUNTIME_DIR: /home/runner/work/clipr/xdg
WLR_BACKENDS: headless
WLR_LIBINPUT_NO_DEVICES: 1
WAYLAND_DISPLAY: wayland-1
GTK_USE_PORTAL: 0

Consulta los registros detallados de sway. Al ejecutar sway de esta manera en primer plano, simplemente se queda colgado indefinidamente. Si intento ejecutar sway en segundo plano usando nohup sway & los llamados posteriores a las utilidades muestran el mensaje Fallo al conectar con un servidor Wayland.

¿Alguna sugerencia para poner en marcha un servidor Wayland sin cabeza?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en GitHub Actions y sistemas sin interfaz gráfica, aquí tienes algunas sugerencias para ejecutar un conjunto de pruebas en GitHub Actions para un paquete que utiliza la utilidad del portapapeles de Wayland, wl-clipboard:

    1. Intenta usar Xvfb-run para pruebas sin interfaz gráfica: Aunque la acción actual configura las pruebas sin interfaz gráfica para Linux utilizando el servidor X11, vale la pena intentar usar Xvfb-run en lugar de sway para las pruebas sin interfaz gráfica. Esto se debe a que Xvfb-run proporciona un servidor X virtual que puede ejecutarse sin necesidad de un display físico o un servidor Wayland. Para usar Xvfb-run, primero instálalo con sudo apt-get install xvfb y luego modifica la acción actual para reemplazar sway -d -V con xvfb-run --server-args="-screen 0 1024x768x24" sway -d -V. Esto debería iniciar sway dentro del servidor X virtual y permitir las pruebas sin interfaz gráfica.
    2. Usa sesiones Wayland anidadas: Otra opción es usar sesiones Wayland anidadas para habilitar las pruebas sin interfaz gráfica. Esto implica iniciar un servidor Wayland dentro de la sesión Wayland actual utilizando las herramientas wayland-scanner y weston. Comienza instalando wayland-scanner y weston con sudo apt-get install wayland-scanner weston. Luego, modifica la acción actual para agregar las siguientes líneas después del comando cd $GITHUB_WORKSPACE/..:

              # Iniciar una sesión Wayland anidada
              export XDG_RUNTIME_DIR=/tmp/wayland
              mkdir -p $XDG_RUNTIME_DIR
              weston-launch --tty=0 \
                --width=1024 \
                --height=768 \
                --idle-time=0 \
                --output-config=output.ini \
                --log=/tmp/weston.log \
                &
              sleep 5
    

    Esto iniciará una sesión Wayland anidada con los parámetros especificados y debería permitir las pruebas sin interfaz gráfica con wl-clipboard.

    1. Verifica la compatibilidad con Wayland: Por último, vale la pena verificar si la utilidad wl-clipboard es compatible con servidores Wayland sin interfaz gráfica, ya que algunos compositores Wayland pueden no admitir operaciones de portapapeles sin un display físico. Si es posible, intenta ejecutar la utilidad wl-clipboard manualmente en una sesión Wayland y verifica que funcione como se espera antes de usarlo con GitHub Actions.

    Con estas sugerencias, deberías poder configurar un sistema sin interfaz gráfica basado en Wayland para probar la utilidad wl-clipboard en GitHub Actions.

Comments are closed.