Dopo oltre un anno di sviluppo, è stata presentata la versione stabile del protocollo, del meccanismo di interazione tra processi e delle librerie Wayland 1.23. Il ramo 1.23 è retrocompatibile a livello di API e ABI con le versioni 1.x e contiene principalmente correzioni di bug e aggiornamenti minori del protocollo. I risultati del progetto sono distribuiti sotto licenza MIT. Il server composito di riferimento Weston, che fornisce codice ed esempi funzionanti per l'utilizzo di Wayland in ambienti desktop e soluzioni integrate, si sviluppa in un ciclo di sviluppo separato.
Principali modifiche al protocollo:
- In libwayland è stata implementata un'API che consente al client di definire la dimensione massima del buffer interno delle connessioni lato server. La dimensione massima di base del buffer viene impostata tramite l'interfaccia wl_display, mentre la nuova API consente ai client di modificarla in base a ogni connessione del client. Dal punto di vista pratico, questa modifica permette di utilizzare buffer di dimensioni maggiori in client specifici di Wayland, come Xwayland, caratterizzati da una maggiore intensità di eventi di input.
- Per richieste (request), eventi (event) e enumerazioni (enum) è stata fornita la possibilità di utilizzare l'attributo XML "deprecated-since" per contrassegnare gli elementi obsoleti. Nella terminologia di Wayland, le richieste sono messaggi inviati dal client a server; gli eventi sono messaggi inviati dal server al client; le enumerazioni sono insiemi di valori numerici legati a un nome specifico, manipolati dal protocollo.
- Nell'utilità wayland-scanner, destinata alla generazione di file di intestazione e codice in C basati su file XML che descrivono il protocollo, è stata aggiunta la modalità "enum-header", che include solo l'indicazione delle "enumerazioni" nei file di intestazione.
- In wayland-scanner è stata garantita la generazione di funzioni di convalida (validator) per le "enumerazioni" lato server.
- È stata aggiunta la possibilità di assegnare nomi alle code di eventi per semplificare il debug.
- Sono state aggiunte le funzioni wl_client_get_user_data() e wl_client_set_user_data(), che semplificano l'assegnazione di dati arbitrari al client.
- È stata aggiunta la richiesta wl_shm.release, che consente al client di informare il server di cessare l'uso dell'oggetto condiviso, permettendo al server di liberare la memoria ad esso associata.
- È stata aggiunta la supporto per la piattaforma OpenBSD.
Eventi legati a Wayland avvenuti dall'uscita dell'ultimo episodio:
- Pubblicato XWayland 24.1.0 con supporto per la tecnologia Explicit Sync e miglioramenti nel supporto delle architetture di accelerazione 2D GLAMOR e EXA.
- Aggiornamento del compositore labwc (Lab Wayland Compositor) con funzionalità che ricordano il gestore di finestre Openbox.
- Il progetto wprs sviluppa per Wayland un gestore di sessione simile all'utility screen, ma per applicazioni grafiche.
- Pubblicazione del compositore Niri, che utilizza Wayland e offre un metodo di layout a mosaico (tiling) con raggruppamento di finestre in un nastro a scorrimento infinito sullo schermo.
- Aggiornamento del pacchetto di protocolli e estensioni Wayland-Protocols: 1.34, 1.33, 1.32, 1.35.
- Sviluppo della libreria SDL3, che utilizza Wayland come impostazione predefinita.
- Rilascio dell'ambiente desktop LXQt 2.0.0 con supporto per Wayland nel gestore di file PCManFM-Qt, nel sistema di notifiche, nel desktop, nell'utility di avvio programmi (Runner), nella barra, nell'interfaccia di uscita dal sistema, nell'interfaccia di configurazione LXQt e nella maggior parte delle applicazioni.
- Rilascio dell'ambiente utente Sway 1.9, che utilizza Wayland.
- Nuovo gestore di composizione miracle-wm, basato su Wayland e componenti per la costruzione di gestori di composizione Mir.
- Louvre - nuova libreria per lo sviluppo di compositori server basata su Wayland.
- Lavori per implementare il supporto di Wayland in Xfce.
- Supporto iniziale per Wayland nell'ambiente desktop Budgie.
- Supporto iniziale per Wayland nell'ambiente desktop Cinnamon.
- Quasi completato il porting del desktop MATE per Wayland.
- La distribuzione Lubuntu passa all'uso di Qt 6 e Wayland.
- In KDE 6 è stato proposto di default una sessione che utilizza il protocollo Wayland. Implementato il supporto per le estensioni Wayland per la gestione del colore.
- Nella piattaforma Electron è stata inclusa una modalità di decorazione delle finestre per Wayland.
- Aggiornamento del compositore Wayfire, che utilizza Wayland e consente di creare interfacce utente con effetti 3D nello stile dei plugin 3D di Compiz.
- Supporto per Wayland in IDE IntelliJ e OpenJDK.
- Supporto per Wayland nell'editor di testo GNU Emacs.
- In GNOME nella sessione basata su Wayland è stato implementato il supporto per l'interruttore KVM software Input Leap, che consente di utilizzare una sola tastiera e un solo mouse per gestire più computer.
- La versione di Fedora con l'ambiente desktop KDE ha cessato il supporto per la sessione basata sul protocollo X11 nella fornitura base.
- Migliorato il supporto per ambienti basati su Wayland nei driver proprietari NVIDIA.
- Implementato un driver che consente l'uso di Wine in ambienti basati su protocollo Wayland senza utilizzare XWayland e componenti X11.
- Rilasciata la versione del server composito Weston 13.0.
- Per testare il funzionamento di KDE, GNOME, Enlightenment, Wayfire, Mir, Xfce e Sway su Wayland, è disponibile una distribuzione Live speciale chiamata Rebecca Black Linux.
- Nelle versioni Linux di Firefox, è abilitato per impostazione predefinita l'uso del server composito Wayland invece di XWayland. È fornita la possibilità di creare versioni che supportano solo il funzionamento in Wayland.
Ricordiamo che Wayland è un protocollo di interazione tra il server composito e le applicazioni che vi operano. I client eseguono autonomamente il rendering delle proprie finestre in un buffer separato, trasmettendo informazioni sugli aggiornamenti al server composito, che combina il contenuto dei buffer delle singole applicazioni per formare l'output finale tenendo conto di eventuali dettagli, come la sovrapposizione delle finestre e la trasparenza. In altre parole, il server composito non fornisce un'API per il rendering di singoli elementi, ma opera solo con finestre già formate, il che consente di eliminare il doppio buffering quando si utilizzano librerie di alto livello come GTK e Qt, che si occupano del lavoro di composizione del contenuto delle finestre.
Wayland risolve molti problemi di sicurezza di X11, poiché, a differenza di quest'ultimo, isola input e output per ogni finestra, non consente al client di accedere al contenuto delle finestre di altri client e impedisce di intercettare eventi di input correlati ad altre finestre. Attualmente, il supporto per il lavoro diretto con Wayland è già stato implementato per le librerie GTK, Qt, SDL (a partire dalla versione 2.0.2), Clutter ed EFL (Enlightenment Foundation Library). A partire da Qt 5.4, è stato incluso il modulo QtWayland con implementazioni per il funzionamento delle applicazioni Qt nell'ambiente del server composito Weston, sviluppato dal progetto Wayland.
L'interazione con l'hardware in Wayland/Weston, ad esempio, l'inizializzazione, il cambio delle modalità video (drm modesetting) e la gestione della memoria (GEM per i915 e TTM per radeon e nouveau) delle schede grafiche, può avvenire direttamente tramite un modulo che opera a livello di kernel, consentendo di evitare i privilegi di superutente. Il server composito Weston può funzionare non solo utilizzando il modulo DRM del kernel Linux, ma anche sopra X11, un altro server composito Wayland, frame buffer e RDP. Inoltre, sono in fase di sviluppo progetti per garantire il funzionamento sopra lo stack grafico della piattaforma Android.
Nell'ambito del progetto Weston, si sta sviluppando una delle implementazioni di un server composito. Qualsiasi altro prodotto che supporti il protocollo Wayland può anche fungere da server composito. Ad esempio, attualmente si stanno svolgendo lavori per garantire il supporto di Wayland in KWin. Nella sua forma attuale, Weston ha già superato il set di esempi per testare il protocollo Wayland e può espandere la funzionalità tramite plugin e addon. Le shell utente e le funzionalità avanzate di gestione delle finestre sono proposte da implementare sotto forma di backend esterni per Weston. Per garantire che le normali applicazioni X11 funzionino in un ambiente basato su Wayland, si utilizza il componente DDX XWayland (Device-Dependent X), simile per organizzazione a Xwin e Xquartz per le piattaforme Win32 e macOS.


Fonte: opennet.ru
