После трёх месяцев разработки представлен (https://lists.freedesktop.org/archives/wayland-devel/2016-Ju...) стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.11, а также развиваемый параллельно композитный сервер Weston 1.11 (https://lists.freedesktop.org/archives/wayland-devel/2016-Ju...). Ветка 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;
- Реализована (https://bugs.freedesktop.org/show_bug.cgi?id=57583) возможность настройки панельных часов через файл конфигурации
- Улучшена поддержка drag-and-drop;
- Добавлена поддержка недавно стабилизированного протокола presentation-time.
Улучшения, связанные с протоколом и API Wayland 1.11:
- Добавлен API Proxy wrapper, позволяющий избежать состояния гонки при работе многопоточных клиентов. API может использоваться для отправки непроксируемых запросов, что даёт возможность избежать ситуации, когда одна нить вызывает события, которые не успевают обработать другие нити.
- Внесены улучшения в механизм разделяемой памяти (shm): добавлена защита от выполнения операций изменения размера при наличии ссылок на изменяемый блок памяти, обеспечен раздельный подсчёт внешних и внутренних пользователей, расширена информативность текста ошибок распределения памяти;
- В рамках работы по улучшению поддержки перечисляемых типов в биндингах на различных языках, добавлена поддержка межинтерфейсных атрибутов enum;
- В документацию включены HTML-представления комментариев в коде, оформленных в формате doxygen, что упрощает ссылки из web на функциональность клиентского и серверного API;
- Добавлена сборочная опция "--enable-fatal-warnings" приводящая к завершению процесса сборки в случае вывода компилятором предупреждений;
- Для повышения безопасности в wayland-scanner задействован неисполняемый стек.
Дополнительно можно отметить выход (https://lists.freedesktop.org/archives/wayland-devel/2016-Ma...) набора расширений wayland-protocols 1.4 (https://lists.freedesktop.org/archives/wayland-devel/2016-Fe...), в прошлом году выдленный (https://www.opennet.dev/opennews/art.shtml?num=43338) из основной кодовой базы в отдельный пакет. Wayland-protocols включает набор протоколов и расширений, дополняющих возможности базового протокола Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
В новой версии представлен стабильный протокол "viewporter" (ранее "wl_scaler"), позволяющий клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера. Статус стабильного протокола подразумевает завершённость разработки и обязательное обеспечение обратной совместимости. Кроме "viewporter" ранее был стабилизован протокол "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 (https://www.opennet.dev/opennews/art.shtml?num=44102) поддержка Wayland приближена к паритету в функциональности с сеансом на базе X.org. Реализована большая порция мелочей и устранены многие недоработки, которые оставались последними звеньями, мешающими созданию готового для ежедневного использования окружения GNOME на базе Wayland. В частности, добавлены полная поддержка механизма Drag-and-Drop, уведомлений о запуске приложений, первичного основного буфера обмена (заработала вставка средней кнопкой мыши), решены проблемы с позиционированием диалоговых окон, меню и различных всплывающих элементов интерфейса приложений, до должного уровня доведено качество кинетической прокрутки.
- Репозиторий Fedora Rawhide, на базе которого формируется релиз Fedora 24, изначально был переведён (https://www.opennet.dev/opennews/art.shtml?num=43303) на использование по умолчанию рабочего стола GNOME поверх Wayland, но в итоге решение по использованию Wayland по умолчанию в Fedora 24 было отложено (https://www.opennet.dev/opennews/art.shtml?num=43991), так как не все проблемы удалось решить. Сеанс GNOME на базе Wayland в Fedora 24 будет доступен в качестве опции;
- Экспериментальный сеанс рабочего стола GNOME на базе Wayland поставляется (https://www.opennet.dev/opennews/art.shtml?num=44288) в Ubuntu GNOME (следует установить пакет gnome-session-wayland и выбрать на экране входа "GNOME on wayland");
- Началось (https://www.opennet.dev/opennews/art.shtml?num=44373) формирование ежедневных Live-сборок Neon Plasma Wayland, позволяющих оценить текущее состояние рабочего стола KDE Plasma в окружении на базе Wayland. Wayland задействован по умолчанию в платформе Plasma Mobile (https://www.opennet.dev/opennews/art.shtml?num=42668). В основной состав KDE Frameworks
принята (https://www.opennet.dev/opennews/art.shtml?num=44446) библиотека KWayland, в которую вынесен код Plasma, специфичный для поддержки Wayland. KWayland отнесён к фреймворкам первого уровня, т.е. является функциональным дополнением к Qt и, кроме Qt, не требует дополнительных зависимостей. При этом KWayland позиционируется не как замена QtWayland, а как дополнение к QtWayland, предоставляющее большую гибкость за счёт приближения программного интерфейса ...
URL: https://lists.freedesktop.org/archives/wayland-devel/2016-Ju...
Новость: http://www.opennet.dev/opennews/art.shtml?num=44526