După mai bine de un an de dezvoltare, a fost lansată versiunea stabilă a protocolului, mecanismului de interacțiune între procese și bibliotecilor Wayland 1.23. Ramura 1.23 este compatibilă înapoi la nivel API și ABI cu versiunile 1.x și conține în principal corecții de erori și actualizări minore ale protocolului. Lucrările proiectului sunt distribuite sub licența MIT. Serverul compozit de referință Weston, care oferă cod și exemple funcționale pentru utilizarea Wayland în mediile desktop și soluțiile încorporate, este dezvoltat într-un ciclu de dezvoltare separat.
Principalele modificări în protocol:
- În libwayland a fost implementat un API care permite clientului să determine dimensiunea maximă a bufferului intern de conexiuni pe partea serverului. Dimensiunea de bază a bufferului este setată prin interfața wl_display, iar noul API permite clienților să o modifice în legătură cu fiecare conexiune client. Din punct de vedere practic, această modificare permite utilizarea bufferelor mai mari în clienții specifici Wayland, cum ar fi Xwayland, care au o intensitate mai mare a evenimentelor de intrare.
- Pentru cereri (request), evenimente (event) și enumerări (enum) a fost oferită posibilitatea de a utiliza atributul XML „deprecated-since” pentru a marca elementele învechite. În terminologia Wayland, cererile sunt mesajele trimise de client către server; evenimentele sunt mesajele transmise de la server către client; enumerările sunt seturi de valori numerice asociate cu un nume specific, manipulate de protocol.
- În utilitarul wayland-scanner, destinat generării fișierelor header și codului în limbajul C pe baza fișierelor XML care descriu protocolul, a fost adăugat modul „enum-header”, care include specificarea în fișierele header doar a „enumerărilor”.
- În wayland-scanner a fost asigurată generarea funcțiilor de validare (validator) pentru „enumerări” pe partea serverului.
- A fost adăugată posibilitatea de a atribui nume coadelor de evenimente pentru a simplifica depurarea.
- Au fost adăugate funcțiile wl_client_get_user_data() și wl_client_set_user_data(), care simplifică atașarea datelor arbitrare la client.
- A fost adăugat apelul wl_shm.release, care permite clientului să informeze serverul despre încetarea utilizării obiectului partajat, permițând serverului să elibereze memoria asociată.
- A fost adăugată suport pentru platforma OpenBSD.
Evenimentele legate de Wayland care s-au întâmplat de la publicarea ultimei ediții:
- A fost publicat XWayland 24.1.0 cu suport pentru tehnologia Explicit Sync și îmbunătățiri ale suportului pentru arhitecturile de accelerare 2D GLAMOR și EXA.
- Actualizare a serverului de compunere labwc (Lab Wayland Compositor) cu caracteristici asemănătoare managerului de feronerie Openbox.
- Proiectul wprs, care dezvoltă pentru Wayland un manager de sesiune similar utilitarului screen, dar pentru aplicații grafice.
- Publicarea serverului de compunere Niri, care folosește Wayland și oferă o metodă de compunere mozaicală (tiling) cu gruparea feroneriilor într-o bandă infinit scrollabilă pe ecran.
- Actualizarea setului de protocoale și extensii Wayland-Protocols: 1.34, 1.33, 1.32, 1.35.
- Dezvoltarea bibliotecii SDL3, care aplică Wayland în mod implicit.
- Lansarea mediului desktop LXQt 2.0.0 cu suport Wayland în managerul de fișiere PCManFM-Qt, sistemul de notificări, desktop, utilitarul de lansare a programelor (Runner), panoul, interfața de ieșire din sistem, interfața de configurare LXQt și majoritatea aplicațiilor.
- Lansarea mediului personalizat Sway 1.9, care folosește Wayland.
- Noua gestionare de compunere miracle-wm, bazată pe Wayland și componente pentru construirea gestionarilor de compunere Mir.
- Louvre — noua bibliotecă pentru dezvoltarea de compunere servere bazată pe Wayland.
- Lucrări privind implementarea suportului Wayland în Xfce.
- Suport inițial pentru Wayland în mediul desktop Budgie.
- Suport inițial pentru Wayland în mediul desktop Cinnamon.
- Portarea biroului MATE pentru Wayland aproape finalizată.
- Distro-ul Lubuntu trece la utilizarea Qt 6 și Wayland.
- În KDE 6, sesiunea care folosește protocolul Wayland este propusă implicit. Suport pentru extensiile Wayland pentru gestionarea culorilor a fost implementat.
- Platforma Electron a inclus modul de decorare a feroneriilor pentru Wayland.
- Actualizarea serverului de compunere Wayfire, care folosește Wayland și permite formarea interfețelor utilizatorului cu efecte 3D în stilul pluginurilor 3D pentru Compiz.
- Suport pentru Wayland în IDE-ul IntelliJ și OpenJDK.
- Suport pentru Wayland în editorul de text GNU Emacs.
- În GNOME, în sesiunea bazată pe Wayland, a fost implementat suportul pentru comutatorul KVM software Input Leap, permițând utilizarea unei singure tastaturi și mouse pentru a controla mai multe computere.
- Ediția Fedora cu desktop KDE a încetat suportul pentru sesiunea bazată pe protocolul X11 în livrarea de bază.
- Îmbunătățită suportul pentru medii bazate pe Wayland în driverele proprietare NVIDIA.
- A fost implementat un driver care permite utilizarea Wine în medii bazate pe protocolul Wayland fără a folosi XWayland și componentele X11.
- A fost lansată versiunea serverului de compunere Weston 13.0.
- Pentru testarea funcționării KDE, GNOME, Enlightenment, Wayfire, Mir, Xfce și Sway pe Wayland, se lansează un Live-ISO special Rebecca Black Linux.
- În versiunile Linux ale Firefox, utilizarea serverului de compunere Wayland este activată implicit în loc de XWayland. S-a oferit posibilitatea de a crea versiuni care suportă funcționarea doar în Wayland.
Amintim că Wayland este un protocol de interacțiune între serverul de compunere și aplicațiile care lucrează cu acesta. Clienții efectuează singuri redarea ferestrelor lor într-un buffer separat, transmițând informațiile despre actualizări serverului de compunere, care combină conținutul bufferelor aplicațiilor individuale pentru a forma ieșirea finală, ținând cont de nuanțele posibile, cum ar fi suprapunerea ferestrelor și transparența. Cu alte cuvinte, serverul de compunere nu oferă API pentru redarea unor elemente individuale, ci lucrează doar cu feronțele deja formate, ceea ce permite eliminarea dublării bufferizării utilizând biblioteci de nivel înalt, cum ar fi GTK și Qt, care se ocupă de compilarea conținutului feronțelor.
Wayland rezolvă multe probleme de securitate cu X11, deoarece, spre deosebire de acesta, izolează intrarea și ieșirea pentru fiecare fereastră, nu permite clientului să acceseze conținutul ferestrelor altor clienți și de asemenea nu permite interceptarea evenimentelor de intrare legate de alte feronțe. În prezent, suportul pentru funcționarea directă cu Wayland este deja implementat pentru bibliotecile GTK, Qt, SDL (începând cu versiunea 2.0.2), Clutter și EFL (Enlightenment Foundation Library). Începând cu Qt 5.4, a fost inclus modulul QtWayland cu implementarea componentelor pentru funcționarea aplicațiilor Qt în mediu serverului de compunere Weston, dezvoltat de proiectul Wayland.
Interacțiunea cu hardware-ul în Wayland/Weston, de exemplu, inițializarea, comutarea modurilor video (drm modesetting) și gestionarea memoriei (GEM pentru i915 și TTM pentru radeon și nouveau) al plăcilor grafice, poate fi realizată direct printr-un modul care funcționează la nivel de kernel, ceea ce permite evitarea privilegiilor de superutilizator. Serverul compozit Weston poate funcționa nu doar folosind modulul DRM al kernelului Linux, ci și deasupra X11, altui server compozit Wayland, framebuffer-ului și RDP. În plus, se dezvoltă proiecte pentru a asigura funcționarea deasupra stivei grafice a platformei Android.
În cadrul proiectului Weston se dezvoltă una dintre implementările serverului compozit. Orice alt produs care suportă protocolul Wayland poate acționa ca server compozit. De exemplu, în prezent se lucrează la asigurarea suportului Wayland în KWin. În forma sa actuală, Weston a depășit deja setul de exemple pentru testarea protocolului Wayland și poate fi extins prin pluginuri și extensii. Interfețele utilizator și funcționalitățile avansate de gestionare a ferestrelor pot fi implementate sub formă de backend-uri externe pentru Weston. Pentru a permite executarea aplicațiilor X11 obișnuite într-un mediu bazat pe Wayland, se folosește componenta DDX XWayland (Device-Dependent X), similară din punct de vedere al organizării cu Xwin și Xquartz pentru platformele Win32 și macOS.


Sursa: opennet.ro
