Pēc 13 mēnešu izstrādes ir piedāvāta stabila Wayland 1.24 protokola, starpproses mijiedarbības mehānisma un bibliotēku versija. 1.24 zars ir atpakaļsavienojams API un ABI līmenī ar 1.x laidieniem un galvenokārt ietver kļūdu labojumus un nelielas protokola atjauninājumus. Projekta attīstība tiek izplatīta ar MIT licenci. Atsauce kompozīcijas serveris Weston, kas nodrošina kodu un darbināmos piemērus Wayland izmantošanai darbvirsmas vidē un iebūvētās risinājumos, tiek attīstīta atsevišķā izstrādes ciklā.
Galvenās izmaiņas protokola ietvaros:
- Ir ieviests wl_fixes interfeiss, kas ļauj risināt problēmas ar citiem pamata protokolu programmatūras interfeisiem, kuras nav iespējams novērst ar šo interfeisu savām iespējām. Piemēram, pieprasījums «wl_fixes::destroy_registry» ļauj iznīcināt wl_registry objektu, pēc tam klients to nevarēs izmantot, un kompozīcijas serveris pārtrauks pārsūtīt notikumus caur to.
- Programmatūras interfeisā wl_keyboard::key ir ieviests pseido-stāvoklis «repeated», kas nozīmē taustiņa nospiešanu. Taustiņš var tikt pārvērsts stāvoklī «repeated» tikai pēc tam, kad tas ir bijis stāvoklī «pressed», bet pirms pārejas uz stāvokli «released». Saistītie notikumi var tikt ģenerēti vairākas reizes, kamēr taustiņš ir nospiests. Izmaiņas ļauj kompozīcijas serveriem apstrādāt atkārtotu nospiešanu, turēšana kā atsevišķus stāvokļus, nevis vienkārši kā atkārtotu nospiešanas notikumu plūsmu («pressed»), kas var būt noderīgi darbā ar attālināto darbvirsmu.
- Ir pievienotas funkcijas wl_display_dispatch_queue_timeout() un wl_display_dispatch_timeout() notikumu pārvaldīšanai rindā ar laika ierobežojumu (funkcijas wl_display_dispatch un wl_display_dispatch_queue atgriež 0 tikai tad, kad nav notikumu, bet *_timeout varianti arī tad, ja ir iestājies laika ierobežojums).
- Ir pievienotas funkcijas wl_shm_buffer_ref() un wl_shm_buffer_unref() piekļuvei koplietotai atmiņai, kas saistīta ar wl_shm_buffer, pēc tās iznīcināšanas (piemēram, kad klients beidz darbu). Funkcijas ļauj atdalīt wl_shm_buffer no pamata resursa wl_buffer mūža, kad kompozīcijas serverim ir nepieciešams atlikt pāreju uz jauno stāvokli.
- Tika lietojumprogrammas wl_proxy_get_interface() un wl_resource_get_interface(), kas atgriež wl_interface noteiktam resursam, ir pieprasītas dinamiskā tipa valodu saitēs.
- Tika pievienota funkcija wl_resource_post_error_vargs(), kas ir alternatīva funkcijai wl_resource_post_error() ar iespēju nodot argumentu sarakstu, lai formatētu virkni (va_list).
Visredzamākie notikumi, kas saistīti ar Wayland un notikuši kopš iepriekšējā izlaiduma publikācijas:
- Uzlabota Wayland atbalsta nodrošināšana slēgtajos NVIDIA draiveros.
- KDE plāno atstāt tikai Wayland atbalstu. Koda atdalīšana starp kwin_x11 un kwin_wayland.
- Ubuntu un Kubuntu atstās tikai Wayland sesijas atbalstu GNOME un KDE.
- GDM pēc noklusējuma atstāj tikai Wayland atbalstu.
- GTK ir atjauninājusi X11 backend uz novecojušu.
- Fedora 43 ir izlemts dzēst no repozitorija paketes, kas tiek izmantotas GNOME, lai strādātu uz X servera. Visi GNOME lietotāji, kas izmanto X11, tiks piespiedu kārtā pāradresēti uz Wayland bāzētu sesiju.
- Darba virsmas vidē Budgie tiks atstāsts tikai Wayland atbalsts.
- Xfce 4.20 ir ieviesta daļēja Wayland atbalsta nodrošināšana.
- MATE 1.28 ar eksperimentālu Wayland atbalstu.
- Wayback — Wayland kompozītserveris, lai palaistu X11 balstītus darba galdus.
- Uzņēmums Valve ir uzsācis projektu Frog, lai paātrinātu jauno Wayland protokolu virzību.
- Grafisko saskarnes bibliotēka Cosmoe, kas izmanto Wayland un BeOS stila API.
- Wayland draivera iekļaušana pēc noklusējuma Wine programmā.
- Raspberry Pi OS pāreja uz Wayland izmantošanu.
- FLTK 1.4.0 grafiskā rīku komplekta iznākšana ar Wayland atbalstu.
- Wayland-Protocols kopā pievienota papildu protokolu virzības fāze — "experimental", mērķis ir samazināt barjeru integrējot protokolus, paātrināt protokolu izstrādi un stimulēt agrīnu realizāciju esošajos projektos.
- AMD attīsta savu kompozītserveri ACS, kas izmanto Wayland.
- Septiņi kosmiskās darba virsmas alfa izlaidumi.
- Kompozītmontāžņu serveru atjauninājums: Weston 14.0, Niri 25.05, Wayland Maker 0.5, miracle-wm 0.5, Hyprland 0.49, labwc 0.8.3, Cage 0.2, Wayfire 0.9, Sway 1.11.
Pēdējā gada laikā pievienotie protokolu paplašinājumi, kas papildina pamatprotokolu Wayland un tiek piegādāti atsevišķā Wayland-Protocols komplektā:
- color-management — iespējas krāsu pārvaldībā un paplašinātā dinamiskā gaismas diapazona (HDR, High Dynamic Range) atbalsts.
- color-representation-v1 — Wayland virsmas krāsu представление noteikšana.
- xdg-toplevel-tag — ļauj Wayland klientiem pievienot tagus augsta līmeņa virsotnēm, kuras kompozīcijas servers var izmantot logu identificēšanai pēc lietojumprogrammas atkārtotas palaišanas.
- ext-background-effect — efektu piemērošana caurspīdīgajām Wayland virsmas daļām, piemēram, fona izplūšanai.
- pointer-warp — ļauj lietojumprogrammām tūlīt pārvietot kursoru uz norādīto pozīciju.
- xx-session-management — logu stāvokļa atjaunošana pārtraukto sesiju gadījumā (piemēram, pēc kompozīcijas pārvaldnieka avārijas).
- xx-input-method — jauna protokola attīstība teksta ievades metožu izmantošanai. ext-data-control — ļauj privileģētiem klientiem pārvaldīt datu apstrādi, piemēram, starpliktuves pārvaldītājiem.
- ext-workspace — īsteno koncepciju uz virtuālām darbvirsmām un piedāvā notikumus ar informāciju par darbvirsmas stāvokli, kā arī iespējas darbvirsmas aktivizēšanai un deaktivizēšanai.
- xdg-system-bell — ļauj izvadīt sistēmas signālu, kuru var izmantot, piemēram, kā brīdinājumu termināla emulatorā.
- xdg-toplevel-icon — piktogrammas piesaistīšanai augsta līmeņa logam.
- ext-image-capture-source un ext-image-copy-capture — ekrānā izvadītā satura noķeršana.
- fifo — realizē FIFO mehānisma (pirmais ieradās — pirmais aizgāja) satura atjaunināšanas rindas apstrādi.
- commit-timing — ļauj piešķirt laika ierobežojumu virsmas saturam (kompozīcijas serverim jāattēlo izmaiņas saturā, cik drīz vien iespējams, noteiktā laikā, bet ne ātrāk).
Atgādinām, ka Wayland ir protokols, kas nosaka mijiedarbību starp kompozīto serveri un tajā darbojošām lietotnēm. Klienti pats veic savu logu attēlošanu atsevišķā buferī, nosūtot informāciju par atjauninājumiem kompozītajam serverim, kurš apvieno atsevišķu lietotņu buferu saturu gala izvadē, ņemot vērā iespējamos faktorus, piemēram, logu pārklāšanos un caurspīdīgumu. Citiem vārdiem sakot, kompozītais serveris neizsniedz API konkrētu elementu attēlošanai, bet darbojas tikai ar jau izveidotiem logiem, kas ļauj izvairīties no dubultā buferēšanas, izmantojot augstākas līmeņa bibliotēkas, piemēram, GTK un Qt, kas uzņemas logu satura kompozīcijas darbu.
Wayland risina daudzas X11 drošības problēmas, jo atšķirībā no pēdējā tas izolē ievadi un izvadi katram logam, neļaujot klientam piekļūt citu klientu loga saturam, kā arī nepieļaujot saistīto notikumu ievades notveršanu. Tiešā darbības ar Wayland atbalsts ir realizēts lielākajām Linux grafiskajām bibliotēkām, tostarp GTK, Qt, SDL, FLTK, wxWidgets, Clutter un EFL (Enlightenment Foundation Library).
Sadarbība ar aparatūru Wayland/Weston, piemēram, inicializācija, video režīmu maiņa (drm modesetting) un atmiņas pārvaldība (GEM i915 un TTM radeon un nouveau) grafikas kartēm, var notikt tieši caur moduli, kas darbojas kodola līmenī, ļaujot iztikt bez superlietotāja privilēģijām. Lai nodrošinātu, ka parastās X11 lietojumprogrammas darbojas Wayland bāzētajā vidē, tiek izmantots DDX komponentes XWayland (Device-Dependent X), kas organizācijas ziņā līdzīgs Xwin un Xquartz Win32 un macOS platformām.


Avots: opennet.lv
