LINUX.ORG.RU

Релиз Wayland 1.11

 ,


1

4

После трёх месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.11, а также развиваемый параллельно композитный сервер Weston 1.11. Ветка 1.11 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений, расширяющих возможности композитного сервера Weston. Следующий выпуск 1.12 запланирован на конец сентября.

В композитном сервере Weston развиваются технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.

Основные новшества Weston 1.11:

  • В рамках инициативы по выносу функциональности Weston в обособленную библиотеку libweston проведена значительная переработка методов инициализации, загрузки и настройки бэкендов. Разбор файлов конфигурации пока по-прежнему производится в Weston main.c, но данные передаются динамически загружаемым модулям бэкендов в форме унифицированной структуры, состояние которой сохраняется в хранилище внутренних объектов для дальнейшего использования без привязки к main.c. Изменения внесены в бэкенды wayland, drm, x11, headless, fbdev и rdp.
  • В оболочке для информационно-развлекательных систем (IVI Shell) отмечена большая чистка кода, рефакторинг и приведение в порядок документации. Удалена или упрощена большая порция излишних вызовов API, система динамического выделения памяти переведена на использование стека по возможности, приведены в порядок проверки на указатель NULL, добавлена отладочная функция get_label().
  • Переработана система сборки, в которой стандартизировано использование макроса AC_SEARCH_LIBS, решены проблемы со сборкой без включения systemd-login, налажена обработка CFLAGS от systemd, в разряд опциональных зависимостей переведена поддержка JPEG (--with-jpeg/--without-jpeg) и WebP (--with-webp/--without-webp), упрощена логика проверки версии Wayland и Weston.
  • Добавлены новые пиктограммы для поставляемых в комплекте приложений terminal, flower и editor.
  • Реализована возможность настройки панельных часов через файл конфигурации.
  • Улучшена поддержка drag-and-drop.
  • Добавлена поддержка недавно стабилизированного протокола presentation-time.

Улучшения, связанные с протоколом и API Wayland 1.11:

  • Добавлен API Proxy wrapper, позволяющий избежать состояния гонки при работе многопоточных клиентов. API может использоваться для отправки непроксируемых запросов, что даёт возможность избежать ситуации, когда одна нить вызывает события, которые не успевают обработать другие нити.
  • Внесены улучшения в механизм разделяемой памяти (shm): добавлена защита от выполнения операций изменения размера при наличии ссылок на изменяемый блок памяти, обеспечен раздельный подсчёт внешних и внутренних пользователей, расширена информативность текста ошибок распределения памяти.
  • В рамках работы по улучшению поддержки перечисляемых типов в биндингах на различных языках добавлена поддержка межинтерфейсных атрибутов enum.
  • В документацию включены HTML-представления комментариев в коде, оформленных в формате Doxygen, что упрощает ссылки на функциональность клиентского и серверного API.
  • Добавлена сборочная опция --enable-fatal-warnings, приводящая к завершению процесса сборки в случае вывода компилятором предупреждений.
  • Для повышения безопасности в wayland-scanner задействован неисполняемый стек.

Дополнительно можно отметить выход набора расширений wayland-protocols 1.4, в прошлом году выделенный из основной кодовой базы в отдельный пакет. Wayland-protocols включает набор протоколов и расширений, дополняющих возможности базового протокола Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений. В новой версии представлен стабильный протокол "viewporter" (ранее "wl_scaler"), позволяющий клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера. Статус стабильного протокола подразумевает завершённость разработки и обязательное обеспечение обратной совместимости. Ранее был стабилизован протокол "presentation time", предоставляющий возможности для организации отображения видео. Остальные протоколы имеют статус нестабильных:

  • "fullscreen-shell" - управление работой в полноэкранном режиме;
  • "input-method" - обработка методов ввода;
  • "linux-dmabuf" - совместное использование нескольких видеокарт при помощи технологии DMABuff;
  • "text-input" - организация ввода текста;
  • "pointer-gestures" - управление с сенсорных экранов;
  • "xdg-shell" - XDG-расширения для рабочего стола;
  • "relative pointer events" - относительные события указателей;
  • "pointer constraints" - ограничения указателей (блокировка);
  • "tablet" - поддержка ввода с планшетов.

Статус поддержки Wayland в окружениях рабочего стола и дистрибутивах:

  • В GNOME 3.20 поддержка Wayland приближена к паритету в функциональности с сеансом на базе X.org. Реализована большая порция мелочей и устранены многие недоработки, которые оставались последними звеньями, мешающими созданию готового для ежедневного использования окружения GNOME на базе Wayland. В частности, добавлены полная поддержка механизма drag-and-drop, уведомлений о запуске приложений, первичного основного буфера обмена (заработала вставка средней кнопкой мыши), решены проблемы с позиционированием диалоговых окон, меню и различных всплывающих элементов интерфейса приложений, до должного уровня доведено качество кинетической прокрутки.
  • Репозиторий Fedora Rawhide, на базе которого формируется релиз Fedora 24, изначально был переведён на использование по умолчанию рабочего стола GNOME поверх Wayland, но в итоге решение по использованию Wayland по умолчанию в Fedora 24 было отложено, так как не все проблемы удалось решить. Сеанс GNOME на базе Wayland в Fedora 24 будет доступен в качестве опции.
  • Экспериментальный сеанс рабочего стола GNOME на базе Wayland поставляется в Ubuntu GNOME (следует установить пакет gnome-session-wayland и выбрать на экране входа "GNOME on wayland").
  • Началось формирование ежедневных Live-сборок Neon Plasma Wayland, позволяющих оценить текущее состояние рабочего стола KDE Plasma в окружении на базе Wayland. Wayland задействован по умолчанию в платформе Plasma Mobile. В основной состав KDE Frameworks принята библиотека KWayland, в которую вынесен код Plasma, специфичный для поддержки Wayland. KWayland отнесён к фреймворкам первого уровня, т.е. является функциональным дополнением к Qt и, кроме Qt, не требует дополнительных зависимостей. При этом KWayland позиционируется не как замена QtWayland, а как дополнение к QtWayland, предоставляющее большую гибкость за счёт приближения программного интерфейса к Wayland API.
  • В KDE Plasma 5.6 продолжена адаптация KDE для работы с использованием протокола Wayland, появилась поддержка декорирования окон для Wayland-клиентов, позволяющая унифицировать оформление. Реализованы все доступные в окружениях на базе X11 средства управления вводом, добавлена поддержка различных раскладок клавиатуры и переключения между ними.
  • В пользовательском окружении Enlightenment 0.20 обеспечена полноценная поддержка Wayland. Работа поверх Wayland реализована с применением собственного композитного менеджера wl-desktop-shell. Отмечается, что все необходимые для работы поверх Wayland возможности реализованы, но окружение на базе Wayland пока недостаточно протестировано для ежедневного использования.
  • Для ОС DragonFly BSD подготовлен порт с Wayland и Weston. Обеспечена поддержка XWayland.
  • Wayland задействован по умолчанию в мобильных платформах Sailfish 2 и Tizen 3.
  • В панели Cairo-Dock реализована возможность работы в окружении композитного сервера Weston.
  • Работа по добавлению поддержки Wayland ведётся для рабочих столов LXQt и MATE.
  • Развиваются новые десктоп-окружения, работающие только на базе технологий Wayland: Quantum Shell, Hawaii и Orbital.
  • Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.
  • Отмечается прогресс в адаптации Firefox, Chrome и LibreOffice для работы поверх Wayland без привлечения прослойки XWayland. В Chrome 50 интегрированы наработки проекта ozone-wayland, в рамках которого развивался вариант веб-браузера Chromium, предназначенный для работы в окружениях на базе Wayland.
  • Firefox 46 перешёл на GTK+ 3 в Linux, что является важным звеном в реализации работы на системах, поддерживающих протокол Wayland.
  • В текстовом выпуске Qt 5.7 появился новый модуль Qt Wayland Compositor TP с реализацией многопоточной системы отрисовки для встраиваемых устройств, использующая протокол Wayland.
  • В проприетарном драйвере NVIDIA 364.x обеспечена официальная поддержка Wayland, включая все необходимые расширения: EGL, библиотеку libnvidia-egl-wayland.so и KMS API.

Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких, как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK+ 3, Qt 5, SDL (начиная с выпуска 2.0.2), Clutter и EFL (Enlightenment Foundation Library). Начиная с версии 5.4, в состав библиотеки Qt включён модуль QtWayland с реализацией компонентов для работы Qt-приложений в окружении композитного сервера Weston, развиваемого проектом Wayland.

Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11, другого композитного сервера Wayland, фреймбуфера и RDP. Кроме того, развиваются проекты по обеспечению работы поверх графического стека платформы Android.

В рамках проекта Weston развивается одна из реализаций композитного сервера. В роли композитного сервера также может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в KWin. В текущем виде Weston уже вышел за рамки набора примеров для тестирования протокола Wayland и может обрастать функциональностью через плагины и дополнения. Пользовательские оболочки и расширенные функций управления окнами предлагается реализовывать в форме внешних бэкендов к Wayland.

Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и OS X. Поддержку запуска X11-приложений планируется встроить непосредственно в композитный сервер Weston, который при попытке выполнения X11-приложения будет инициировать запуск X-сервера и связанных с ним компонентов XWayland. При таком подходе процесс запуска X11-приложений будет бесшовным и неотличимым для пользователя от запуска приложений, работающих напрямую с Wayland.

Источник

>>> Подробности

★★★★

Проверено: Falcon-peregrinus ()
Последнее исправление: DeadEye (всего исправлений: 2)

Ответ на: комментарий от anonymous

в финале это тупо блиттер

Ну тайловый wm может и обойдется малой кровью. Но blit - это типа уже не отрисовка?

anonymous
()
Ответ на: комментарий от anonymous

Да по всякому можно. Вот сейчас у гнома под wayland «Global keybindings don’t work» (это типа «лучшая поддержка Wayland»), Weston даже не пытается такое сделать, а KDE сделала предложенный в посте DBus-метод (но еще далеко не факт что остальные сделают так же и вообще будут это делать). Про EFL не в курсе, но скорее всего не будет там.

anonymous
()

«xdg-shell» - XDG-расширения для рабочего стола;

flatpak-shell звучит глупо.

shaiZaigh
()
Ответ на: комментарий от anonymous

Про EFL не в курсе, но скорее всего не будет там.

А EFL что разве хоть как-то котируется, что его ставите на одну доску с GNOME и KDE?

anonymous
()
Ответ на: комментарий от anonymous

А EFL что разве хоть как-то котируется, что его ставите на одну доску с GNOME и KDE?

У desktop-юзеров нет. Но Samsung от Wayland вообще кипятком писает, поэтому наверное это основной DE на Wayland. Будет проталкивать его в телефонах и телевизорах.

anonymous
()

погонял плазму 5 на вяляном, тиринга реально нет, на спец видео в ютубе на иксах его тоже почти нет, кое где зубчики на краях видно, а в вяляном полностью чистая картинка.

Novell-ch ★★★★★
()
Ответ на: комментарий от anonymous

Угу, только больше идеологически, чем технически.

Shadow ★★★★★
()

вялый релиз

anonymous
()
Ответ на: комментарий от anonymous

то есть wayland весьма уныл по ф-лу для десктопа получается, и на каждый чих надо выдумывать свой велосипед, и таких будет много - не совместимых с друг другом.

теперь понятно, ну да, оно более для embedded пойдет.

alwayslate ★★
()
Ответ на: комментарий от Shadow

Вот тебе евангелисты RH в мозг-то нас....

да вот нет жеж.

В конце 90-х не то, что иниты, даже пакетные менеджеры у солярки и, например, слаки, были похожи.

в курсе, просто я про то что в случае linux там будет много много всего разного поболее чем ...

alwayslate ★★
()
Ответ на: комментарий от shaiZaigh

Разве это не преимущество?

нет, desktop != embedded от слова совсем. то что пытаются сделать, ну так видно что получается полное г.

если в тыклафоне, например, не надо управление окнами - в силу того что там оно одно отображается одновременно, то в desktop это надо, или нынче desktop не нужен ?

Ну то есть если смотреть внимательнее, то - функционала недостаточно у wayland, надо его лепить сверху, следовательно сверху будет налеплено куча несовместимых между собой расширений, то есть что работает под одним, под другим не будет работать. Примеры выше описали, плюс есть еще, и наверняка те кто больше пилит гуев и приложений найдут еще и еще.

Для унылых тыклафонов это пойдет, для desktopов нет. Конечно X11 не самое удачное и лучшее, но лучше и удачнее пока, к сожалению, нет. Конечно стоит пилить что то типа Wayland, но необходимо еще предоставлять другой ф-л.

alwayslate ★★
()
Ответ на: комментарий от alwayslate

Не спроста OpenGL ES 2.0 переполз на десктопы, переиспользование базовой части wayland пойдет ему на пользу. Что же касается «кучи несовместимых между собой расширений», то иксы до сих пор живы лишь благодаря им.

shaiZaigh
()
Ответ на: комментарий от shaiZaigh

ну тем не менее написанно под KDE вы можете и под Gnome запустить, то есть нет привязки к реализации оконного манагера.

в случае с wayland очевидно будет привязка к манагеру и его реализации, каждое DE, как обычно, запилит свой лесопед, и уже не будет то что было под KDE запускатся и работать под Gnome. Я не говорю уже про нормальные вещи, навроде просто wm, без DE.

alwayslate ★★
()
Ответ на: комментарий от alwayslate

Может это и лучше? Произойдёт разделение на GNOME OS и KDE OS, ну а далее в следствии конкуренции оба рабочих окружения обзаведутся сильными программами.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Может это и лучше? Произойдёт разделение на GNOME OS и KDE OS, ну а далее в следствии конкуренции оба рабочих окружения обзаведутся сильными программами.

дада, потом это к еще GNU/Linux-libre, Systemd/Linux, ... это разделение не приведет ни к чему хорошему, поддерживать это станет нереально. Нет кроссплатформенных приложений, даже в области, вроде бы похожих систем, нет системы.

По итогу будет что то вроде - хотите популярный линукс, то это ж RHEL - systemd, wayland, gcompmanager + gnome. И все - все, нужен тебе DE или не нужен, нужен тебе монстр типа systemd или не нужен - никто не спрашивает. Хочешь что то написать? надо выбрать, потом разобратся в 33 либах, типа systemd-app-runtime, wayland-libblabla, gnome-appblabla*. И это еше только для RHEL - ну и подумаешь а нафик тебе это надо, и не только ты один. Короче это просто убъет экосистему лялеха, маргинализирует все и будет нормальный лялех чем то вроде Haiku OS/AROS/etc ...

PS нет, я не пользуюсь DE следовательно не фанат ни gnome ни kde.

alwayslate ★★
()
Ответ на: комментарий от alwayslate

ну тем не менее написанно под KDE вы можете и под Gnome запустить, то есть нет привязки к реализации оконного манагера.

в случае с wayland очевидно будет привязка к манагеру и его реализации, каждое DE, как обычно, запилит свой лесопед, и уже не будет то что было под KDE запускатся и работать под Gnome. Я не говорю уже про нормальные вещи, навроде просто wm, без DE.

Подытожим сказанное: в иксах программу из KDE можно запустить в Gnome, в вейленде такое невозможно. WAT?

shaiZaigh
()
Ответ на: комментарий от shaiZaigh

Подытожим сказанное: в иксах программу из KDE можно запустить в Gnome, в вейленде такое невозможно. WAT?

Не, ну определенная совместимость есть, достаточная для калькулятора, например, или для сапера. Но пожалуйста не удивляйтесь, если текст выделенный в kwrite не удастся вставить средней кнопкой в gnome-terminal. Хороший разработчик DE сотню подобных примеров приведет (что можно было реализовать в X11 и что теперь нельзя реализовать в Wayland).

Можно очень легко такого не допустить, если начать делать расширения (или даже модифицировать core-протокол Wayland). Но их надо было начинать делать еще вчера!

anonymous
()
Ответ на: комментарий от anonymous

Но пожалуйста не удивляйтесь, если текст выделенный в kwrite не удастся вставить средней кнопкой в gnome-terminal.

При нажатии Ctrl+Shift+V вставлять текст умеем, а средней кнопкой мыши - нет. Чудеса, да и только.

Хороший разработчик DE сотню подобных примеров приведет (что можно было реализовать в X11 и что теперь нельзя реализовать в Wayland).

Трей? Не нужно. Расширение X11, либо DBUS. Нотификация? DBUS. Интеграция с DE необходима, но всякие вещи вроде линз у лаунчера убунты слишком специфичны и требуют отдельных затрат на их реализацию.

Можно очень легко такого не допустить, если начать делать расширения (или даже модифицировать core-протокол Wayland). Но их надо было начинать делать еще вчера!

При наличии такого количества советчиков эти расширения так и не были реализованы. Интересно, почему?

shaiZaigh
()
Ответ на: комментарий от shaiZaigh

При нажатии Ctrl+Shift+V вставлять текст умеем, а средней кнопкой мыши - нет.

Перед тем как текст средней кнопкой вставлять - его надо скопировать (причем скопировать автоматом при выделении). Причем скопировать в другой буфер обмена (чтобы не перезаписать то что скопировано по Ctrl+Insert). Так что явная поддержка нужна.

При наличии такого количества советчиков эти расширения так и не были реализованы. Интересно, почему?

Для принятия решения нужен только приказ ведущего разработчика. Я помню года 2-3 назад мне на ЛОРе доказывали с пеной у рта, что PRIMARY SELECTION - это пережиток прошлого и ненужно. Он только вводит пользователей в заблуждение и работает с глюками, а в Wayland он нахрен никому не сдался и делать его там не будут.

Когда дело дошло до того чтобы сделать гном дефолтным, ведущие разоботчики RH сказали: «PRIMARY SELECTION надобно сделать.» Делать начали примерно полгода назад. Вроде что-то сделали, но пока видимо не доделали, т.к. до сих пор всплывают обсуждения. Надеюсь, что летом-осенью окончательно определяться и таки доделают. Ну и надеюсь, что остальные DE/тулкиты не станут свои костыли изобретать.

Устранить все недостатки Wayland и слелать его пригодным для десктопа можно, никто ж не спорит. Но сделают это через пару лет в лучшем случае, но пока Wayland скорее в неюзабельном состоянии. А может и через 5 лет Wayland не станет юзабельным... Помимо юзабилити еще вопрос совместимости остается.

anonymous
()
Ответ на: комментарий от shaiZaigh

либо DBUS.? а что у нас dbus по сети? а что у нас с dbus для разных пользователей ? (сюрприз у меня на экран выводят информацию программы запущенные на разных машинах и даже от разных пользователей (в том числе и локальных)?

anonymous
()

Скоро 10 лет иксов сказкой покажутся.

Пс

Пишу со своего M10 аззаза.

special-k ★★★
()
Ответ на: комментарий от anonymous

Но пожалуйста не удивляйтесь, если текст выделенный в kwrite не удастся вставить средней кнопкой в gnome-terminal.

Он уже вставляется, епт. И даже в иксовые приложения на xwayland. Ох уж мне эти упоротые нытики-утята с лора.

anonymous
()
Ответ на: комментарий от anonymous

сюрприз у меня на экран выводят информацию программы запущенные на разных машинах

Что им под вэйландом мешает выводить на экран с разных машин?

anonymous
()

а universal plane support и atomic modesetting так и не вмёржили. год болтается в отдельной ветке. отвратительно

jtootf ★★★★★
()

А оно пригодно, не? Если нет то оно фигня...

Gamebot
()

В проприетарном драйвере NVIDIA 364.x обеспечена официальная поддержка Wayland, включая все необходимые расширения: EGL, библиотеку libnvidia-egl-wayland.so и KMS API

В проприетарном драйвере NVIDIA 364.x обеспечена официальная поддержка Wayland, включая все необходимые расширения: EGL, библиотеку libnvidia-egl-wayland.so и KMS API

енто все вранье, ибо под проприетарными дровами EGL не стартует, только GLX, почему? хз хз

safocl ★★
()
Ответ на: комментарий от anonymous

ну я хз, все библиотеки лежат в папке либ, но увы при переключении с GLX на EGL бекенд все эффекты пропадают и тиринг.... на ноувеау все роббит нормально, но нафиг мне ентот ноувеау сдался

safocl ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.