После 6 месяцев разработки представлен выпуск проекта postmarketOS 25.06, развивающего дистрибутив Linux для мобильных устройств, базирующийся на пакетной базе Alpine Linux, стандартной Си-библиотеке Musl и наборе утилит BusyBox. Целью проекта является предоставление Linux-дистрибутива для смартфонов и планшетов, не зависящего от жизненного цикла поддержки официальных прошивок и не привязанного к типовым решениям основных игроков индустрии. Сборки подготовлены для 57 устройств, включая PINE64 PinePhone Pro, Purism Librem 5, OnePlus 6, Fairphone 5, Google Nexus 10, Google Pixel 3a, Nokia N900, Lenovo A60xx, ASUS MeMo Pad 7, а также различные модели Samsung Galaxy и Xiaomi. Ограниченная экспериментальная поддержка предоставлена для более чем 600 устройств.
Окружение postmarketOS унифицировано и выносит все специфичные для конкретных устройств компоненты в отдельный пакет. Все остальные пакеты идентичны для всех устройств и основаны на пакетах из дистрибутива Alpine Linux. В сборках по возможности используется ванильное ядро Linux, а если это невозможно, то ядра из прошивок, подготовленных производителями устройств. В качестве основных пользовательских оболочек предлагаютсяKDE Plasma Mobile, Phosh, GNOME Mobile и Sxmo, но имеется возможность установки и других окружений, включая MATE, COSMIC и Xfce.
В новом выпуске:
Добавлена возможность использования системного менеджера systemd вместо системы инициализации OpenRC. Systemd задействован в сборках c GNOME Mobile, KDE Plasma Mobile и Phosh. OpenRC оставлен в сборке с Sxmo. Причиной добавления поддержки systemd является усложнение сопровождения стека инициализации на базе OpenRC в условиях постоянно растущей зависимости GNOME и KDE от компонентов systemd. Имеющиеся прослойки для работы GNOME и KDE без systemd не поддерживают некоторых необходимые функции и имеют проблемы с сопровождением. При задействовании systemd в дистрибутиве можно будет реализовать новые возможности для гранулированного управления привилегиями, обеспечения безопасности, управления зависимостями между сервисами, поддержки cgroups и использования активации сервисов по сокету.
Число готовых сборок увеличилось с 53 до 57. Добавлена поддержка смартфонов Google Pixel 3A XL, Motorola Moto G5 Plus, Xiaomi Redmi 7, Xiaomi Mi 9T, Redmi K20, Xiaomi POCO X3 NFC и Xiaomi Mi Pad 5 Pro.
Реализована поддержка камеры для смартфонов OnePlus 6, Motorola Moto E5 Plus, Motorola Moto G5s, Xiaomi Redmi 3S, Xiaomi Redmi 4 Standard и Xiaomi Redmi 4A.
Для устройств на чипах Qualcomm Snapdragon 425/427/430/435 (MSM89x7 ), таких как Motorola Moto E5 Plus, Motorola Moto G5s, Xiaomi Redmi 3S и Xiaomi Redmi 4 включена поддержка звуковой подсистемы и управления зарядкой.
Оболочка KDE Plasma Mobile обновлена до версии 6.3.5 (ранее поставлялась версия 6.2.4). По сравнению с прошлым выпуском модернизирован интерфейс переключения между задачами, расширены возможности управления окнами, внесены улучшения в панель быстрых настроек, добавлена поддержка ручного переключения ориентации экрана, добавлен интерфейс отслеживания трафика, улучшен виджет управления громкостью.
Обновлено пользовательское окружение GNOME Mobile, в котором задействована редакция оболочки GNOME Shell, адаптированная для использования на смартфонах и планшетах с сенсорным экраном. Компоненты GNOME Mobile переведены на ветку GNOME 48 (в прошлом выпуске использовался GNOME 46). Из изменений отмечается задействование динамической тройной буферизации при выводе, стековая компоновка уведомлений, новый шрифт и расширение средств управления окнами.
Окружение Phosh, основанное на технологиях GNOME и развиваемое компанией Purism для смартфона Librem 5, обновлено до версии 0.47 (ранее использовался выпуск 0.43). Среди изменений: возможность установки обоев для экрана блокировки, расширение возможностей панели быстрого запуска, поддержка поиска в интерфейсе выбора файлов, настройка силы тактильной обратной связи, показ широковещательных сообщений сотового оператора. Вместо squeekboard по умолчанию задействована экранная клавиатура Stevia, поддерживающая автодополнение слов и всплывающее окно ввода дополнительных символов.
Графическая оболочка Sxmo (Simple X Mobile), основанная на композитном менеджере Sway и придерживающаяся Unix-философии, обновлена до версии 1.17.1 (была 1.17.0).
Предложен новый интерфейс в инсталляторе, упрощающий установку дистрибутива на ноутбуках. Интерфейс позволяет загрузившись в live-режиме выполнить установку на внутренний накопитель, осуществить начальную настройку и произвести установку дополнительных пакетов.
В состав включён пакет mobile-config-thunderbird меняющий настройки десктоп-версии почтового клиента Thunderbird для использования в качестве мобильного приложения.
Улучшен пакет mobile-config-firefox, позволяющий использовать обычных Firefox на мобильных устройствах.
Прекращена поставка по умолчанию пакета openssh-client, который теперь нужно устанавливать вручную. Пакет также ставится как зависимость при установке набора для разработчиков postmarketos-dev, включающего alpine-sdk, bash и coreutils.
Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut, опубликовал выпуск языка программирования Hare 0.25.2. Номер версии образован как 0.YY.Q, где YY - две последние цифры года, а Q - номер квартала, прошлый выпуск Hare 0.24.2 был опубликован год назад. Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си. Исходный код компилятора и инструментария распространяются под лицензией GPLv3, а код стандартной библиотеки под лицензией MPL (Mozilla Public License).
Язык оптимизирован для решения низкоуровневых задач, таких как разработка операционных систем, компиляторов, сетевых приложений и системных утилит, для которых требуется достижение максимальной производительности и полный контроль над выполнением. В языке применяется ручное управление памятью и статическая система типов, при которой каждой переменной явно должен быть присвоен определённый тип.
Для выполнения приложения поставляется минимальный runtime, а для разработки распространяется стандартная библиотека функций, предоставляющая доступ к базовым интерфейсам операционной системы, а также предлагающая функции для работы с типовыми алгоритмами, протоколами и форматами, включая средства для использования регулярных выражений и шифрования. Для разработки графических приложений развивается инструментарий hare-wayland, а также привязки для доступа к возможностям GTK, Vulkan, OpenGL, SDL2 и libui.
Расширены возможности буферизированного ввода/вывода. В модуль "memio::" добавлен режим потоков "nonblocking". Предложены опции для настройки поведения при обработке конца файла в bufio::scanner и режимы управления потоками bufio::stream. Добавлены функции os::open_buffered и os::create_buffered.
В утилите "haredoc" реализована возможность извлечения из README-файлов краткого описания модулей и его отображения при выводе списка модулей.
Реализована поддержка Unix/POSIX API: io::fsync, io::fdatasync, unix::getrlimit, unix::setrlimit и fcntl (через os::getflags и os::setflags). Для ОС NetBSD портирована поддержка разделяемой памяти.
В утилиту hare добавлена поддержка встраивания внешних обработчиков, вызываемых при помощи подкоманды "hare tool". Например, при помощи подобного обработчика обеспечена интеграция с инструментом "hare-update".
В разряд обязательных переведена обработка ошибок в ситуациях нехватки памяти. Добавлен новый примитивный тип "nomem", возвращаемый функциями выделения памяти при невозможности выделить требуемый объём памяти.
Улучшен API для работы с датами и временем. Расширены возможности работы с часовыми поясами и добавлена поддержка правил PETZ (POSIX Extending TZ). Многие функции перенесены из модуля time::chrono в time::date.
Добавлена поддержка семантических аннотаций кода, позволяющий прикрепить к коду дополнительные метаданные, которые игнорируются компилятором, но могут учитываться лексическим анализатором в стандартной библиотеке.
Добавлена утилита hare-update для упрощения миграции кода на новые версии инструментария Hare, содержащие изменения, нарушающие обратную совместимость. Например, утилита может использоваться для адаптации существующего кода к применению обязательной обработки ошибок выделения памяти, появившейся в текущем выпуске.
Нейт Грэм (Nate Graham), разработчик, занимающийся контролем качества в проекте KDE, обобщил планы, касающиеся поддержки работы KDE Plasma в окружениях на базе X-сервера. Прекращение поддержки сеанса на базе X11 рассматривается как неизбежность, но сроки пока не определены и маловероятно, что это произойдёт в ближайшие два года. В марте, при разделении композитного сервера kwin на kwin_x11 и kwin_wayland, предполагалось, что сопровождение kwin_x11 будет прекращено в ветке KDE 7.
Время прекращения поддержки сеанса X11 зависит от того, как быстро разработчики смогут решить проблемы, специфичные для сеанса на базе Wayland, такие как ограничения в сохранении и восстановлении позиции окон Wayland-приложений, недоработки в поддержке графических планшетов, невозможность использования глобального меню в приложениях, не на базе Qt. Предполагается, что ко времени прекращения поддержки сеанса X11, сеанс Wayland будет содержать все ранее доступные возможности и даже самые требовательные пользователи X11 не должны заметить потери функциональности.
В настоящее время сеанс X11 продолжает сопровождаться. Сопровождение подразумевает тестирование компиляции компонентов KDE с поддержкой X11 и исправление специфичных для X11 важных ошибок и регрессий. Устранение некритичных ошибок и реализация новой функциональности, связанной с X11, будет производиться только если появится спонсор, готовый оплатить эту работу. При этом ситуация не так плоха, как может показаться - большинство исправляемых проблем и развиваемых новых функций не привязаны к какой-то платформе -
лишь 0.76% открытых отчётов об ошибках
связаны с X11.
Среди причин грядущего прекращения поддержки X11 упоминается общая стагнация разработки X-сервера и желание не распылять ограниченные ресурсы разработчиков на параллельную поддержку двух дисплейных систем и типов сеансов. X11 устарел и Wayland лучше подходит для современного оборудования. В частности, в текущем виде X11 не может удовлетворить современные потребности, касающиеся многомониторных конфигураций, экранов с высокой плотностью пикселей, HDR, VRR (адаптивное изменение частоты обновления монитора), одновременной работы с несколькими GPU, устойчивости к сбоям, обработки ввода и обеспечения безопасности.
По имеющейся статистике 73% пользователей KDE Plasma 6 и 60% всех пользователей KDE (включая KDE 5), активировавших отправку телеметрии, применяют сеанс на базе Wayland. Интересно, что по статистике, полученной месяц назад, 82% пользователей KDE Plasma 6 применяли Wayland, т.е. доля пользователей Wayland за месяц уменьшилась до 73%. Подобный спад объясняется выходом платформы SteamOS 3.7, в которой осуществлён переход на KDE Plasma 6 с сеансом X11 по умолчанию. Wayland-сеанс на базе KDE по умолчанию предлагают дистрибутивы Arch, Fedora, Manjaro, KDE neon и Kubuntu.
Представлен первый выпуск проекта XLibre, развивающего форк X.Org Server. Выпуск позиционируется как имеющий качество бета-версии и предназначен для тестирования и выявления возможных недоработок. XLibre 25.0 включает изменения ABI, т.е. для корректной работы требуется пересборка X11-драйверов. Проект открыт к сотрудничеству с дистрибутивами и готов интегрировать в свой состав патчи, накопившиеся в процессе сопровождения пакетов с сервером X.Org.
Форк создал Энрико Вайгельт (Enrico Weigelt), занимающий первое место по числу подготовленных для X-сервера изменений - до создания форка от Энрико в X.Org Server было принято около 1600 изменений и ещё более 1200 изменений включено в кодовую базу форка. Энрико также является мэйнтейнером драйверов AMD FCH GPIO и VIRTIO GPIO в ядре Linux, и мэйнтейнером Xnest. Энрико приглашает присоединиться к работе над XLibre всех желающих, готовых внести свой вклад в разработку и заинтересованных в продвижении X11, независимо от страны, расы, пола, возраста, политических убеждений и личных особенностей. С момента основания форка к разработке уже подключилось более 10 участников, предоставивших несколько десятков изменений.
Причиной создания форка стало несогласие с политикой сопровождающих X.Org, ведущей к стагнации разработки, в то время как Энрико выступал за активное продолжение развития и проведения большой чистки X-сервера. Недовольство сопровождающих в отношении Энрико, которое привело к прекращению приёма от него изменений, вызвано тем, что некоторые связанные с проведением чистки изменения приводили к проблемам, регрессиям, нарушению ABI и сбоям при сборке. Кроме того, Энрико был склонен к теориям заговора и заявлял, что компания Red Hat намеренно тормозит развитие X-сервера.
В первом выпуске XLibre, помимо значительной чистки кода и избавления проекта от технического долга (более тысячи патчей), предложены следующие новшества:
Поддержка X11-расширения Xnamespace, обеспечивающего изоляцию клиентов через разделение на уровне пространств имён X11.
Перевод Xnest на XCB и исключение Xlib из зависимостей.
Возможность одновременной установки разных версий ABI (для каждого варианта API свой каталог с драйверами) для бесшовного обновления в дистрибутивах.
Ник Велнхофер (Nick Wellnhofer), сопровождающий библиотеку libxml2, объявил, что отныне будет трактовать уязвимости как обычные ошибки. Сообщения об уязвимостях не будут рассматриваться в приоритетном порядке, а станут исправляться по мере появления свободного времени. Информация о сути уязвимости будет размещаться в публичном доступе сразу, не дожидаясь формирования патча и распространения исправления в дистрибутивах и операционных сиcтемах. Ник также снял с себя полномочия сопровождающего библиотеку libxslt и высказал сомнения в том, что найдётся кто-то готовый взять на себя её поддержку.
В описание проекта libxml2 добавлено примечание, указывающее на то, что библиотека написана энтузиастами, сопровождается одним добровольцем, плохо протестирована, написана на языке небезопасно работающем с памятью, содержит множество уязвимостей и не рекомендована для обработки не заслуживающих доверия данных. Сообщения о проблемах с безопасностью предписано отправлять через штатную публичную систему отслеживания ошибок и они будут обрабатываться как любые другие ошибки. За закрытыми дверями уязвимости больше устраняться не будут и все имеющиеся сведения о проблемах с безопасностью сразу будут публиковаться в открытом доступе, независимо от требований по неразглашению до заданной даты и без откладывания раскрытия информации до релиза.
Предполагается, что переход к обработке уязвимостей как обычных ошибок даст возможность Нику сосредоточиться на основной работе над libxml2, не прерываясь на внеплановые задачи. В текущем виде Нику приходится тратить несколько часов в неделю на обработку сообщений об уязвимостях и подготовку патчей, что создаёт достаточно большую нагрузку с учётом того, что сопровождение осуществляется на голом энтузиазме.
Отмечается, что скрытие сведений об уязвимостях до публикации обновлений и метрики типа OpenSSF Scorecard лишь попытка крупных компаний вызвать у сопровождающих чувство вины и заставить работать бесплатно. Предъявление дополнительных требований к сопровождающим-волонтёрам, работающим без компенсации, названо пагубной практикой.
По словам Ника, библиотека libxml2 не обладает уровнем качества, пригодным для использования в браузерах и операционных системах. Тем не менее, крупные компании, такие как Apple, Google и Microsoft, стали использовать libxml2 в своих операционных системах и продуктах. Подобные действия названы безответственными, а проводимая работа - попытками избавиться от симптомов, а не устранить причину проблем. По мнению Ника для проекта было бы лучше, если упомянутые компании прекратили использование libxml2.
Разработчики мобильной платформы KDE Plasma Mobile подвели итоги развития проекта с момента формирования релиза KDE Plasma Mobile 6.0 в марте прошлого года. Готовые сборки KDE Plasma Mobile 6 можно загрузить из тестовогорепозитория дистрибутива postmarketOS. Опробовать KDE Plasma Mobile также можно воспользовавшись сборкой Fedora KDE Plasma Mobile Spin.
Поддержка телефонии в Plasma Mobile базируется на телефонном стеке ModemManager и коммуникационном фреймворке Telepathy. Для вывода графики используется композитный сервер kwin_wayland, а для обработки звука применяется PulseAudio. Мобильные версии приложений развиваются в основном составе KDE Gear. Для построения интерфейса приложений задействован набор компонентов Mauikit и фреймворк Kirigami из состава KDE Frameworks, позволяющий создавать универсальные интерфейсы, пригодные для смартфонов, планшетов и ПК.
В состав входят такие приложения, как KDE Connect для сопряжения телефона с рабочим столом, просмотрщик документов Okular, музыкальный проигрыватель VVave, просмотрщики изображений Koko и Pix, система ведения заметок buho, календарь-планировщик calindori, файловый менеджер Index, менеджер приложений Discover, программа для отправки SMS Spacebar, адресная книга plasma-phonebook, интерфейс для осуществления телефонных вызовов plasma-dialer,
браузер plasma-angelfish и мессенджер Spectral.
Среди наиболее заметных изменений:
В предлагаемом по умолчанию домашнем экране Folio реализована панель поиска по списку приложений; добавлена поддержка управления через тачпад; появилась опция для блокировки редактирования раскладки элементов на экране; реализована кнопка для открытия окна со всеми настройками обоев; добавлен диалог подтверждения удаления папок; обеспечен тактильный отклик для различных действий.
В выпадающей панели с кнопками быстрого вызова и уведомлениями (Action Drawer) реализована анимация при попытке прокрутки за конец списка ("overscroll"). Обеспечена возможность вывода панели во время работы в полноэкранных приложениях. Добавлена отдельная область для кнопок быстрого вызова действий. Предоставлена возможность настройки порядка вывода кнопок. Обеспечено автоматическое скрытие неприменимых кнопок (например, кнопка активации мобильной передачи данных теперь не показывается при отсутствии модема). Реализовано скрытие панели при изменении состояния ползунка изменении яркости экрана. Добавлены кнопки для открытия всех приложений в полноэкранном режиме и записи скринкаста. Добавлена поддержка раскрытия виджета управления воспроизведением музыки при нажатии на нём.
Интерфейс переключения задач переведён на API управления жестами, предоставляемый композитным менеджером KWin. Добавлены новые управляющие жесты, такие как сдвиг снизу-вверх для минимизации приложения и перехода на домашний экран, сдвиг снизу-вверх с удержанием касания для показа списка задач, сдвиг влево или вправо в нижней части экрана для прокручивания списка запущенных приложений.
Добавлена поддержка тактильной индикации жестов. Улучшена анимация при переключении задач. Реализована сортировка задач по времени их последней активности. Добавлена поддержка быстрого переключения между двумя недавними задачами двойным касанием к кнопке переключения задач.
В экране блокировки системы переработано оформление панели для ввода цифрового PIN-кода, которую стало удобнее использовать при работе с устройством одной рукой. Улучшено оформление виджета с часами, который стал крупнее и лучше сочетается с фоновым изображением. Добавлены кнопки для быстрого выполнения действий при заблокированном экране, таких как включение фонарика.
Реализованы полноценные всплывающие уведомления. Добавлена поддержка группировки нескольких уведомлений в стеки. Решены многие проблемы в виджете для показа уведомлений.
Предоставлена возможность изменения в настройках высоты строки состояния. В полноэкранных приложениях для показа строки состояния теперь можно использовать жест сдвига содержимого вниз. Добавлены настройки для показа процента заряда аккумулятора и отображения даты в дополнение ко времени.
Переделана всплывающая панель изменения громкости, которая при активации теперь не перехватывает у приложения события ввода вне своей области.
В панель навигации добавлена кнопка для ручного поворота экрана (поворачивает экран в зависимости от текущей ориентации устройства, когда автоматический поворот отключён в настройках). При скрытии панели навигации кнопка показывается поверх содержимого.
Переделана анимированная индикация запуска приложений ("startup feedback"), которая теперь показывается и в интерфейсе переключения задач. При длительном запуске приложения обеспечен показ спинера.
Настройки в конфигураторе разделены на отдельные категории. Добавлен переключатель для показа всех доступных настроек, даже предоставляемых не для мобильных устройств. В настройках Wi-Fi реализован мониторинг трафика текущего соединения. В секцию с информации о системе добавлены сведения о производителе.
В web-браузере Angelfish значительно переделаны список вкладок и панель поиска. Для показа и скрытия списка вкладок стало можно использовать жест сдвига панели поиска вверх. Сам список вкладок теперь показывается в форме полноэкранной сетки. При прокрутке списка найденных элементов обеспечен предпросмотр URL.
В интерфейсе набора номера и приёма звонков (Dialer) решены проблемы с выводом при блокировке экрана и принятии звонка на устройствах с несколькими SIM-картами.
В программе для работы с SMS-сообщениями (Spacebar) решены проблемы с приёмом и отправкой сообщений, а также выводом уведомлений при поступлении сообщений. Переработано оформление страницы создания нового чата.
В менеджер установки приложений (Discover) интегрирован бэкенд для формата пакетов apk, используемых в дистрибутивах Alpine и postmarketOS.
В эмуляторе терминала QMLKonsole разрешено вручную включать или скрывать панель для симуляции нажатия клавиш-модификаторов. Решены проблемы с показом экранной клавиатуры при попытке ввода в терминале.
Модернизировано приложение для работы с часами, будильником и таймером. Реализован постоянный показ уведомления при активном таймере. Добавлена возможность изменения значения таймера без его повторного создания, а также приостановки и сброса таймера из KRunner.
Добавлен вариант интерфейса с аналоговыми часами.
Некоммерческая организация Open 3D Foundation (O3DF) представила открытый игровой 3D-движок Open 3D Engine 25.05 (O3DE), пригодный для разработки современных игр класса AAA и высокоточных симуляторов, способных работать в режиме реального времени и обеспечивать качество кинематографического уровня. Код написан на С++ и опубликован под лицензией Apache 2.0. Имеется поддержкаплатформLinux, Windows, macOS, iOS и Android.
Исходный код движка O3DE был открыт в июле 2021 года компанией Amazon и основан на коде ранее развиваемого проприетарного движка Amazon Lumberyard, построенного на технологиях движка CryEngine, лицензированных у компании Crytek в 2015 году. После открытия кодовой базы развитие движка курирует некоммерческая организация Open 3D Foundation, созданная под эгидой Linux Foundation. Помимо Amazon к совместной работе над проектом подключились такие компании, как Epic Games, Adobe, Huawei, Microsoft, Intel и Niantic.
Движок включает в себя интегрированную среду для разработки игр, многопоточную систему фотореалистичного рендеринга Atom Renderer с поддержкой Vulkan, Metal и DirectX 12, расширяемый редактор 3D-моделей, систему анимирования персонажей (Emotion FX), систему разработки полуфабрикатов (prefab), движок симуляции физических процессов в реальном режиме времени и математические библиотеки, использующие инструкции SIMD. Для определения игровой логики может использоваться среда визуального программирования (Script Canvas), а также языки Lua и Python.
Проект изначально рассчитан на возможность адаптации под свои нужды и имеет модульную архитектуру. Всего предлагается более 30 модулей, поставляемых в виде отдельных библиотек, пригодных для замены, интеграции в сторонние проекты и использования по отдельности. Например, благодаря модульности разработчики могут заменить рендер графики, звуковую систему, поддержку языков, сетевой стек, физический движок и любые другие компоненты.
Проведена работа по повышению производительности движка рендеринга Atom и реализации в нём возможности работы одновременно с несколькими GPU.
Реализована поддержка нового стандартизированного интерфейса симуляции в модуле ROS2, интегрируемом с инструментарием Robot Operating System (ROS2) и предоставляющем драйверы, реализации алгоритмов, компоненты, ресурсы и утилиты для создания симуляторов роботов.
Компании Open Robotics, NVIDIA и Robotec.ai совместно модернизировали возможности платформы для построения сложных симуляторов.
Компания Meta упростила интеграцию инструментария Quest Mobile SDK (Oculus Mobile SDK) с движком O3DE - автоматизированы операции настройки окружения для систем виртуальной реальности и управления пакетами с использованием O3DE.
Упрощён процесс подготовки и передачи изменений в проект. Для документации к API задействована система модулей Hugo, благодаря которой разработчики теперь могут отправлять изменения к документации в форме небольших pull-запросов.
Повышено качество работы среды визуального программирования Script Canvas.
Добавлена поддержка свежих версий Android SDK и Gradle.
Сокращено время загрузки и повышена производительность приложений для платформы Android.
Проведена оптимизация производительности компонентов движка для разработки игр для мобильных платформ. В некоторых ситуациях, например, при использовании констант шейдеров, удалось добиться прироста производительности на 40%.
Стабилизирована возможность задействования нескольких разных GPU для отрисовки одной сцены.
Зависимости обновлены для поддержки последней версии спецификации OpenXR.
Доступен выпуск ONLYOFFICE DocumentServer 9.0 с реализацией сервера для online-редакторов ONLYOFFICE и организации совместной работы. Редакторы можно использовать для работы с текстовыми документами, таблицами и презентациями. Для совместной работы на своих мощностях также можно использовать платформу Nextcloud Hub, в которой обеспечена полная интеграция с ONLYOFFICE. Готовые сборки сформированы для Linux, Windows и macOS. Код проекта написан на JavaScript с использованием web-технологий и распространяется под свободной лицензией AGPLv3.
В ONLYOFFICE заявлена полная совместимость с форматами MS Office и OpenDocument. Среди поддерживаемых форматов: DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP. Предусмотрена возможность расширения функциональности редакторов через плагины, например, доступны плагины для создания шаблонов и добавления видео с YouTube. Отдельно развивается открытый продукт ONLYOFFICE DesktopEditors, построенный на единой кодовой базе с online-редакторами и объединяющий в одном наборе клиентские и серверные компоненты, оформленные для самодостаточного использования на локальной системе пользователя и способные работать без обращения к внешнему сервису.
Обновлён интерфейс пользователя в редакторах документов, электронных таблиц, презентаций и PDF-файлов. Добавлены новые темы оформления Modern Light и Modern Dark.
Добавлен отдельный интерфейс для просмотра диаграмм (Diagram Viewer), позволяющий напрямую открывать файлы с диаграммами без вызова сторонних приложений.
Расширены возможности встроенного AI-ассистента. Добавлена поддержка оптического распознавания текста на изображениях в PDF-документах, позволяющая копировать текст из PDF-файлов c отсканированными страницами.
Добавлены AI-инструменты для автоматизации работы с электронными таблицами, позволяющие использовать запросы на естественном языке для выполнения действий с данными, например, можно попросить сформировать формулы для сложного набора данных.
Предоставлена возможность использования AI для автоматизации повторяющихся действий и создания макросов на основе описания задачи на естественном языке. Добавлен AI-конвертер из VBA в JavaScript.
В редактор PDF-файлов добавлена поддержка совместного заполнения или создания форм ввода, позволяющая одновременно нескольким участникам работать над одной формой. Предоставлена возможность перегруппировки страниц в режиме Drag & Drop, перетаскивая мышью эскизы страниц в навигационной панели. Реализована поддержка использования комбинаций клавиш Ctrl + C и Ctrl + V для копирования и вставки страниц через буфер обмена.
В редакторе документов в панели инструментов реализована новая кнопка для быстрой настройки обрамления содержимого.
Добавлена возможность добавления собственных кнопок управления контентом, функциональность которых обеспечивается плагинами. Улучшена визуализация при отслеживании изменений.
В редакторе электронных таблиц предоставлена возможность прямой подстановки данных из внешних электронных таблиц.
Добавлена поддержка асинхронных вычислений с возможностью создания макросов, содержащих функции-обработчики запросов.
В редакторе презентаций в режиме слайд-шоу реализована возможность показа расширенной анимации в слайдах.
Улучшена визуализация данных и расширены возможности для настройки диаграмм. Добавлена поддержка графиков роста/спада. Предоставлена возможность использования элементов форматирования TextArt в метках диаграмм.
Добавлена поддержка чтения данных в форматах md (Markdown), odg (OpenDocument Graphic), vsdx (Visio) и xlsb.
В интерфейсе проверки правописания реализовано сохранение последнего выбранного языка.
Опубликован выпуск интегрированной среды разработки Qt Creator 17, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками. Новая версия доступна в виде обновления в Qt Online Installer (коммерческий, opensource). Offline-установщики под коммерческой лицензией можно найти на Qt Account Portal, а opensource-пакеты - на соответствующей странице загрузок. Это бесплатное обновление для всех пользователей.
Краткий список улучшений и исправлений:
Тёмная и светлая темы "2024", добавленные в Qt Creator 15 и обновлённые в Qt Creator 16, теперь используются по умолчанию. Пересмотрены и обновлены иконки Qt Creator для соответствия новому внешнему виду и достижения большей целостности интерфейса.
Репозиторий плагинов, используемый по умолчанию, перенесён на GitHub. Дополнительные репозитории плагинов теперь могут быть добавлены в "Preferences > Extensions > Browser" (использовать на свой страх и риск). Расширена отображаемая информация для ещё не установленных плагинов. Добавлена установка плагинов с помощью перетаскивания (drag-n-drop) архива на панель плагинов.
Проекты: Профили запуска сделаны частью сборочных профилей (ранее были полностью независимы). Теперь каждый профиль запуска принадлежит определённому профилю сборки, и переключение текущего профиля сборки также переключает набор доступных профилей запуска, что реализует часто запрашиваемый пользователями сценарий: возможность использования разных параметров запуска, таких как аргументы командной строки или переменные окружения, для разных сборочных профилей, таких как Debug и Release.
Значения одних профилей запуска теперь можно копировать в другие с помощью кнопки "Copy into This" вне зависимости от принадлежности к конкретному сборочному профилю.
CMake: Добавлена возможность установки недостающих компонентов Qt с помощью Qt Online Installer (если Qt Creator с ним слинкован) в случае неудавшегося вызова cmake, вызванного недостающими компонентами Qt. Новое поведение полагается на функциональность "Preferences > CMake > General > Package manager auto setup", требующую запуска CMake из Qt Creator.
Python: Добавлена поддержка открытия проектов pyproject.toml; они же теперь создаются по умолчанию для новых PySide-проектов, созданных с помощью wizard-ов в Qt Creator. Открытие проектов .pyproject всё ещё поддерживается.
Редактирование C++: Готовые исполняемые файлы теперь собираются с помощью LLVM 20.1.3 для обновлённой поддержки C++. Исправлена поддержка операторов строковых литералов Qt (например, "_ba" и "_L1"). Исправлены некоторые проблемы со встроенными функциями и макросами, используемыми подобно функциям.
Добавлены изменения, призванные упростить жизнь разработчиков при использовании классов Qt, не используемых ранее в проекте (не найденных Code Model): новый quick fix (жёлтая лампочка в редакторе на строке с новым для проекта классом Qt) позволяет добавить недостающие директивы #include в исходники и недостающие модули Qt в файл проекта. Такой же quick fix на строках с директивами #include позволяет добавить необходимые модули Qt в файл проекта.
QML: Опции стиля кода в "Preferences > Qt Quick > Code Style" теперь позволяют использовать интегрированный в "QML language server" qmlformat, равно как встроенный форматировщик (formatter) или пользовательский форматировщик, совместимый с qmlformat. Переформатирование документа теперь доступно в контекстном меню и в меню "Tools > QML/JS".
В панель инструментов редактора кода QML добавлена новая кнопка для открытия файлов .ui.qml в Qt Design Studio.
Analyzer: Для Axivion добавлена поддержка локальных информационных панелей (dashboard) с новыми кнопками "Local Build" и "Local Dashboard" в интерфейсе Issues в режиме Debug > Axivion. Добавлены различные настройки в "Preferences > Analyze > Axivion".
Управление версиями: Для git добавлены различные действия "diff", работающие со "staged" изменениями вместо "unstaged". В подсказки для Instant Blame добавлены действия для отката изменений. В диалоге "Add Tag" теперь можно создавать аннотированные теги.
Компания Qualys выявилауязвимость (CVE-2025-6019) в библиотеке libblockdev, позволяющую через манипуляции с фоновым процессом udisks получить права root в системе. Работа прототипа эксплоита продемонстрирована в Ubuntu, Debian, Fedora и openSUSE Leap 15.
Процесс udisks применяется практически во всех дистрибутивах Linux и предоставляет интерфейс D-Bus для выполнения операций с накопителями, таких как монтирование и форматирование. Для совершения действий с накопителями udisks вызывает функции библиотеки libblockdev. Доступ к udisks по умолчанию открыт только для пользователей, работающих в контексте "allow_active", т.е. имеющих физический доступ к компьютеру и подключившихся через локальную консоль или запустивших графический сеанс. Пользователи, подключающиеся удалённо, например, по ssh, не попадают в этот контекст и напрямую не могут эксплуатировать уязвимость.
Для обхода данного ограничения можно использовать трюк, позволяющий поднять уровень аутентификации до "allow_active" через манипуляции с запуском утилитой systemctl пользовательского сервиса, который polkitd воспримет как признак локального сеанса. Суть метода в том, что polkitd определяет наличие физического доступа и присваивает уровень "allow_active" на основе косвенных признаков, на которые можно повлиять. Ограничения метода в том, что для обмана polkitd требуется, чтобы в системе уже был активен сеанс локального пользователя с физическим доступом.
Вторым методом получения прав "allow_active" является эксплуатация уязвимости (CVE-2025-6018) в PAM (Pluggable Authentication Modules), которую исследователи из Qualys выявили в ходе анализа уязвимости в libblockdev. Уязвимость позволяет любому пользователю, в том числе подключившемуся по SSH, выполнять операции в контексте "allow_active". Проблема специфична для настроек PAM в openSUSE Leap 15 и SUSE Linux Enterprise 15, и проявляется только в этих дистрибутивах.
В модуле pam_env в openSUSE и SUSE по умолчанию включено чтение файла ~/.pam_environment. Через данный файл пользователь может выставить переменные окружения XDG_SEAT=seat0 и XDG_VTNR=1, которые при дальнейшей обработке будут восприняты как признак физического присутствия пользователя, даже если фактически вход осуществлён по SSH. Модуль pam_env также вызывается при подключении по ssh в Debian 12 и Ubuntu 24.04 (в Debian 13 и Ubuntu 24.10+ он отключён), но выставление переменных окружения в данных дистрибутивах не может применяться для повышения уровня доступа до "allow_active", так как pam_env вызывается на финальном этапе после загрузки модуля pam_systemd и выставленные переменные окружения не могут повлиять на параметры сеанса.
Что касается уязвимости в libblockdev, то атакующий может примонтировать образ произвольной файловой системы в loop-режиме, разместив в этом образе исполняемый файл с флагом SUID root или специальное устройство (/dev/mem) для низкоуровневого доступа к дискам или памяти. Для блокирования подобных атак образы ФС монтируются системой с флагами nosuid и nodev, но уязвимость в libblockdev даёт возможность примонтировать образ без флагов nosuid и nodev. Суть уязвимости в том, что udisks позволяет пользователю с уровнем доступа "allow_active" менять размер своих файловых систем и libblockdev в процессе выполнения данной операции временно монтирует ФС без выставления флагов nosuid и nodev.
Таким образом атака сводится к созданию loop-устройства на базе образа ФС XFS, в котором размещён suid root файл, инициирования операции изменения размера loop-устройства и отслеживанию момента его монтирования в каталог /tmp/blockdev*:
victim> killall -KILL gvfs-udisks2-volume-monitor
victim> udisksctl loop-setup --file ./xfs.image --no-user-interaction
Mapped file ./xfs.image as /dev/loop0.
victim> while true; do /tmp/blockdev*/bash -c 'sleep 10; ls -l /tmp/blockdev*/bash' && break; done 2>/dev/null &
victim> gdbus call --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/block_devices/loop0 --method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}'
Error: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Error resizing filesystem on /dev/loop0: Failed to unmount '/dev/loop0' after resizing it: target is busy
-r-sr-xr-x. 1 root root 1406608 Jun 18 09:42 /tmp/blockdev.RSM429/bash
victim> /tmp/blockdev*/bash -p
victim# id
uid=65534(nobody) gid=65534(nobody) euid=0(root) groups=65534(nobody)
Уязвимость в libblockdev пока устранена только в виде патчей. Проверить состояние новой версии пакета или подготовки исправления в дистрибутивах можно на следующих страницах (если страница недоступна, значит разработчики дистрибутива ещё не приступили к рассмотрению проблемы): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo и Arch (1, 2). В качестве обходных путей для блокирования уязвимости можно изменить правило доступа к операции "org.freedesktop.udisks2.modify-device" в polkit, изменив в файле /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy значение параметра "allow_active" с "yes" на "auth_admin".
Дополнительно можно отметить раскрытую несколько часов назад уязвимость (CVE-2025-6020) в пакете linux-pam, позволяющую локальному пользователю получить права root. Модуль pam_namespace должным образом не проверял файловые пути, подконтрольные пользователю, что позволяло через манипуляции с символическими ссылками и достижением состояния гонки добиться перезаписи привилегированных файлов в системе. Уязвимость устранена в выпуске linux-pam 1.7.1. Проверить состояние новой версии пакета или подготовки исправления в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo и Arch (1, 2).
После четырёх месяцев разработки опубликован релиз среды рабочего стола KDE Plasma 6.4. Для оценки работы новых выпусков KDE можновоспользоваться сборками от проектов KDE Neon и openSUSE (Argon, основанный на openSUSE Leap, и Krypton, основанный на openSUSE Tumbleweed).
Основные изменения:
Добавлена поддержка использования для каждого виртуального рабочего стола своей мозаичной раскладки окон.
Тема оформления Breeze Dark сделана темнее для более контрастного отображения текста и элементов переднего плана на тёмном фоне.
Реализовано затемнение фона рабочего стола и текущего окна во время вывода диалога аутентификации для более заметного акцентирования внимания на нём.
В меню приложений Kickoff и виджете Application Launcher реализованы зелёные метки для выделения из общей массы недавно установленных программ. Метки исчезают через три дня после первого запуска нового приложения.
В KRunner улучшена группировка результатов поиска - действия, связанные с сеансом и загрузкой, теперь включены в приоритетный список, выводимый в первую очередь. Улучшена навигация в KRunner с использованием клавиатуры. Обеспечена визуализация цвета - при вводе кодов представления цвета (например, #112233) или названий цветов, KRunner теперь показывает как выглядит цвет.
Добавлено предупреждение, выводимое при попытке обращения к микрофону из приложения, если микрофон переведён в настройках в беззвучный режим.
В композитном менеджере KWin реализована возможность включения расширенного динамического диапазона яркости для экранов, не поддерживающих HDR, на которых HDR имитируется при помощи изменения яркости подсветки.
Улучшена поддержка Wayland. В композитном менеджере KWin задействована стабильная версия Wayland-протокола ext-data-control, необходимого для корректной работы с буфером обмена (ранее использовался протокол wlr-data-control-unstable-v1).
Добавлена поддержка Wayland-протокола fifo, позволяющего использовать FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. При помощи указанного протокола при выводе можно обойтись ожиданием завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
Добавлена поддержка Wayland-протокола xdg-session-management. Изменение позволяет восстанавливать состояние окон прерванного сеанса в окружениях на основе протокола Wayland, например, в случае аварийного завершения композитного сервера или приложения.
В окружении на базе Wayland добавлена возможность использования относительного позиционирования на графических планшетах, при котором позиция стилуса определяется относительно предыдущего положения, а не абсолютной позиции на поверхности планшета. Для работы с Wayland адаптирована возможность управления графическим курсором при помощи клавиатуры.
Кодовая база kwin разделена на kwin_x11 и kwin_wayland.
В KWin добавлена возможность настройки продолжительности действия эффекта затухания рабочего стола ("Fade Desktop").
Добавлена поддержка xdg-портала Clipboard, предоставляющего доступ к буферу обмена для приложений управления удалённым рабочим столом.
Реализована возможность переключения между окнами через сочетания клавиш Meta+Tab и Meta+Shift+Tab.
Приложениям, использующим XWayland, предоставлена возможность управления клавиатурой и указателем мыши без вывода запросов подтверждение подобных операции. По умолчанию данная возможность отключена, так как она снижает уровень безопасности системы.
В конфигураторе улучшен интерфейс страницы настройки дисплея. На системах с одним экраном обеспечено скрытие области выбора раскладки экранов. В многомониторных конфигураций улучшено выделение текущего экрана и представление подсоединённых, но не активированных экранов.
В конфигуратор добавлен новый раздел "Анимация", в который перенесены настройки анимированных эффектов. В секции "Десктоп-эффекты" оставлены общие эффекты, не связанные с визуализацией перехода из одного состояния в другое.
В диалоге настройки панели две отдельные кнопки в заголовке преобразованы в меню, что решило проблему с растяжением диалога на системах с локализацией из-за слишком длинных слов на кнопках.
На странице управления пользователями реализовано предупреждение, показываемое при попытке удаления пользователя с активным сеансом. При подтверждении подобной операции файлы такого пользователя не будут удалены.
В настройки системного лотка добавлено предупреждение, выводимое при попытке отключить сервис управления буфером обмена.
Модернизировано оформление диалогов для настройки виджетов часов, словаря, таймера и показа слайд-шоу из выбранных изображений.
Добавлена настройка для принудительного отключения пиктограмм определённых приложений в системном лотке. Новая возможность может оказаться полезной, когда приложения не содержат внутренних настроек для прекращения показа индикаторов (например, Discord).
В диалоге настройки панели визуализация макетов размещения панели теперь отражает фактическое положение панели на экране.
В диалог настройки действий при двойном клике мышью добавлена область для тестирования изменения перед его применением.
В конфигураторе на странице с параметрами дисплея обеспечено отображение нецелых значений обновления экрана (например, 59.94Hz).
Добавлена настройка для ограничения максимальной глубины цвета.
Упрощена настройка кнопок стилуса. Добавлена возможность повторной калибровки графического планшета. Добавлен режим симуляции поведения мыши при использовании графического планшета.
В системном лотке теперь показывается информация о ненастроенном виджете с прогнозом погоды.
Улучшен виджет управления громкостью, в котором теперь показывается название контента, воспроизводимого в приложениях, выставляющих подобные метаданные (например, в браузерах). Добавлены текстовые заголовки для устройств ввода и вывода звука. Повышена наглядность при использовании нескольких устройств. Ускорен вызов окна управления буфером обмена комбинацией клавиш Meta+V.
В виджет управления воспроизведением (Media Controller) добавлена поддержка комбинаций клавиш Ctrl+Tab и Alt+[number] для переключения между вкладками и источниками.
В виджет с корзиной добавлен индикатор выполнения операции очистки (вращающийся спинер).
В апплет, управляющий медиапроигрывателями, поддерживающими протокол MPRIS, добавлен переключатель скорости воспроизведения.
В виджете управления встроенными и внешними дисками (Disks & Devices) реализована проверка состояния разделов и вывод кнопки для устранения выявленных ошибок.
Оптимизирована эвристика центровки всплывающих окон виджетов, относительно экрана или панели.
Повышена точность определения и показа виджетом Power & Battery
информации о состоянии аккумуляторов Bluetooth-устройств.
На экране блокировки системы добавлена возможность настройки таймаута показа приглашения входа. В многомониторных конфигурациях часы и интерактивные элементы интерфейса на экранах блокировки и входа в систему теперь показываются только на одном активном экране и скрываются на остальных экранах, не имеющих фокуса ввода.
Переработано оформление страницы с информацией о системе и редактора меню KMenuEdit, позволяющего изменять содержимое и перегруппировывать элементы в меню приложений. В KMenuEdit добавлена возможность настройки постоянного запуска выбранных приложений на дискретном GPU.
Изменена обработка уведомлений во время открытия приложений в полноэкранном режиме. Вместо игнорирования некритичных уведомлений при работе с полноэкранными программами теперь автоматически включается режим "не беспокоить". Отличия в том, что после выхода из полноэкранного режима будет показано предупреждение о наличии пропущенных уведомлений. При желании новое поведение можно отключить в настройках.
Реализован график для наглядной оценки изменения скорости копирования файлов. График доступен на странице "Детали", на которую можно перейти из уведомления о копировании файла.
Обеспечено сохранение интерактивных кнопок в уведомлениях, показываемых во всплывающем окне с историей уведомлений.
Для уведомлений реализована поддержка выбора типа звукового оповещения (например, при получении письма может воспроизводиться отдельный звук, характерный для прихода сообщения).
Предоставлена возможность запуска менеджера приложений Discover прямо из уведомлений о появлении обновлений.
Вывод уведомлений о недостаточном свободном дисковом пространстве реализован почти для всех разделов (за исключением разделов в режиме только для чтения и разделов переполненных до монтирования), а не только для / и /home. Добавлена возможность настройки процента наполнения, при достижении которого начнёт выдаваться предупреждение.
При перемещении мышью файла на рабочий стол или в файловый менеджер, если файл перемещается в рамках одного диска, то по умолчанию файл теперь перемещается в новое место без вывода запроса выбора операции с файлом.
В приложении System Monitor модернизировано оформление обзорного режима и истории измерений. Добавлены индикатор нагрузки на GPU и диаграммы наличия свободного места на отдельных дисках. Для GPU Intel и AMD добавлена возможность отслеживания нагрузки в привязке к отдельным приложениям. Добавлена группа "Фоновые сервисы" для оценки потребления ресурсов системными компонентами. Добавлена отдельная страница с состоянием датчиков, на которой, например, можно посмотреть текущую температуру GPU и CPU.
В инструментарий для интеграции с браузерами, позволяющий управлять воспроизведением мультимедиа в браузерах с рабочего стола, добавленаподдержка flatpak-пакетов с альтернативными браузерами на движках Chromium и Firefox, такими как LibreWolf и Ungoogled Chromium.
Повышена производительность при использовании режима ночной подсветки и при изменения яркости (в данных режимах наблюдалось снижение частоты кадров при отображении видео).
Разработчики свободной системы автоматизированного проектирования печатных плат KiCad рассказали о состоянии реализации поддержки Wayland и обобщили проблемы, мешающие полноценному использованию данного протокола. Пользователям, профессионально проектирующим печатные платы в KiCad или желающим получить стабильное и полнофункциональное окружение, рекомендовано запускать KiCad в средах рабочего стола на базе протокола X11, таких как Xfce, MATE или X11-сеанс KDE Plasma.
Тем, кто намерен использовать KiCad в окружениях с Wayland, следует быть готовым к возможным зависаниям и аварийным завершениям, невозможности восстановить желаемую раскладку окон и ограничению функциональности интерфейса. Утверждается, что ограничения в функциональности вызваны отсутствием в Wayland возможностей, давно применяемых в приложениях для X11, Windows и macOS, таких как поддержка позиционирования окон и мгновенного перемещения указателя мыши (cursor warp).
Что касается возникающих сбоев, то они связываются с большой фрагментацией композитных серверов для Wayland. GNOME, KDE и обособленные композитные менеджеры по-своему интерпретируют протоколы Wayland, поэтому полагаться при разработке на единую целостную реализацию протоколов Wayland и экспериментальные расширения проблематично. Разработчикам приложений приходится учитывать особенности каждого окружения и применять костыли для обхода проблем, специфичных для разных композитных менеджеров.
Фрагментация композитных серверов существенно увеличивает трудозатраты на реализацию поддержки Wayland. Отмечается, что самое неприятное в том, что разработчики KiCad не имеют возможности исправить возникающие проблемы своими силами, так как проблемы присутствуют не в KiCad, а в протоколах, оконных менеджерах и композитных серверах.
Учитывая, что Linux применяет лишь небольшая часть пользователей KiCad, решено избегать добавления в кодовую базу проекта костылей для обхода проблем, специфичных для оконных менеджеров, но при этом продолжать собирать KiCad для Wayland и тестировать сборки на совместимость. Все выявляемые проблемы и ограничения планируют документировать и доводить до сведения пользователей.
В системе отслеживания ошибок решено не разбирать жалобы от пользователей Wayland, связанные с позиционированием и размером окон, установкой фокуса, а также зависаниями, аварийными завершениями, повышенной нагрузке на CPU, проблемами с устройствами ввода и сбоями при отрисовке, не проявляющимися в сборке для X11.
Среди известных проблем, которые находятся вне зоны влияния разработчиков KiCad и которые не удаётся устранить на стороне KiCad:
Проблемы с управлением окнами: Невозможность управления позицией окон и панелей (при открытии KiCad нельзя запомнить и восстановить положение окон и панелей инструментов). Проблемы с координацией работы одновременно с несколькими окнами. Ограничение возможности перемещения вкладок и панелей между разными областями.
Проблемы с устройствами ввода: Возможность мгновенного перемещения курсора (cursor warping) завязана на необязательные экспериментальные расширения протокола, поддерживаемые лишь в отдельных композитных менеджерах. Непредсказуемое поведение при управлении фокусом ввода. Проблемы при использовании специализированных устройств ввода и при обработке горячих клавиш.
Проблемы со стабильностью и производительностью: Повышенное потребление ресурсов и высокая нагрузка на CPU/GPU по сравнению с использованием X11. Появление графических артефактов при отрисовке и нарушение нормального вывода. Зависания и аварийные завершения, проявляющиеся только при работе в окружениях на базе Wayland. Ненадёжная работа с буфером обмена.
Ограничения интерфейса пользователя: Проблемы с позиционированием, фокусом и взаимодействием в модальных диалогах. Проблемы с запуском внешних приложений и управления ими.
Дополнительно можно отметить прогресс в разработке проекта X11Libre, развивающего форк X.Org Server. За 10 дней с момента основания форка к разработке подключилось 11 участников, которые отправили 31 изменение. Энрико Вайгельт, автор форка, в свою очередь перенёс в форк 1267 своих изменений, не принятых в основной состав X.Org. Тем временем, разработчики X.Org откатили из кодовой базы X.Org Server 6 изменений, ранее принятых от Энрико Вайгельта и приводящих к регрессиям или связанных с пометкой некоторых возможностей устаревшими (всего до создания форка от Энрико в X.Org Server было принято 1568 изменений).
Кевин Кофлер (Kevin Kofler) из проекта Fedora, входящий в рабочую группу, занимающуюся сопровождением пакетов с KDE, предложил заменить в Fedora Linux пакет xorg-x11-xserver на реализацию X-сервера от форка XLibre. В качестве мотива замены упомянут переход на активно сопровождаемую кодовую базу вместо продолжения поставки устаревшего и почти не обновляемого проекта X.Org, который по заявлению его разработчиков почти остался без сопровождения. Автор форка был наиболее активным участником проекта X.Org Server и поставка форка будет выгодна создателям редакций Fedora, остающихся на X11, например, из-за добавления в X11Libre X11-расширения Xnamespace, обеспечивающего изоляцию клиентов на уровне пространств имён X11. Предложение пока не утверждено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.
Опубликован выпуск распределенной системы управления исходными текстами Git 2.50. Git отличается высокой производительностью и предоставляет средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, а также удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Код Git распространяется под лицензией GPLv2+.
По сравнению с прошлым выпуском в новую версию принято 621 изменение, подготовленное при участии 98 разработчиков, из которых 35 впервые участвуют в разработке. Основные новшества:
Расширена возможность разделения на несколько pack-файлов базы недостижимых объектов ("cruft packs"), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги). Использование нескольких мелких pack-файлов вместо одного крупного позволяет значительно сократить операции ввода/вывода при переупаковке репозиториев с большим числом недостижимых объектов, так как для каждой операции переупаковки не нужно перезаписывать все данные.
В новой версии предложена опция "--combine-cruft-below-size", при помощи которой можно организовать объединение существующих pack-файлов, размер которых не превышает заданное значение. В отличие от ранее доступной опции "--max-cruft-size" новая опция "--combine-cruft-below-size" не ограничивает максимальный размер результирующего pack-файла, что позволяет более эффективно объединять pack-файлы в репозиториях с большим числом недостижимых объектов, разнесённых по нескольким pack-файлам.
Добавлена экспериментальная поддержка инкрементального обновления многопакетных индексов MIDX (multi-pack index), при котором каждый слой MIDX-индекса c информацией о доступности объектов размещается в отдельном bitmap-файле. В очень крупных репозиториях реализованный вид индексов даёт возможность по мере поступления коммитов быстро и эффективно добавлять новые битовые карты доступности объектов.
Из кодовой базы удалён старый движок выполнения операций слияния "recursive", на смену которому пришёл полностью переработанный движок "ORT" (Ostensibly Recursive’s Twin), более производительный, функциональный и удобный для сопровождения. ORT позволяет определить возможность объединения двух объектов, не создавая новых объектов в репозитории (при старом движке требовалось выполнение команды "git merge-tree --write-tree", записывающей новые объекты в репозиторий).
В Git 2.50 в команде merge-tree реализована опция "--quiet", при которой возможность объединения можно проверить на основе кода возврата без записи данных в репозиторий.
В "git cat-file --batch" и подобные команды добавлена опция "--filter", позволяющая пропустить некоторые объекты при выполнении операции.
В команде "git maintenance" реализованы три новых действия: worktree-prune, rerere-gc и reflog-expire. Действие worktree-prune предназначено для удаления устаревших или повреждённых рабочих деревьев (worktrees) в репозитории. Действие rerere-gc удаляет старых записи, оставшиеся после устранения конфликтов слияния. Действие reflog-expire удаляет устаревшие недоступные объекты из reflog.
Добавлена команда "git reflog drop", удаляющая все данные reflog для указанной ветки.
Проведена оптимизация обработки и использования ссылок, например, реализовано кэширование префиксов ссылок, убраны лишние проверки при выполнении команды "git update-ref", повышена эффективность поиска существующих итераторов ссылок.
Для библиотеки cURL добавлены настройки KeepAlive: http.keepAliveIdle, http.keepAliveInterval и http.keepAliveCount.
В команде "git rev-list" реализована возможность вывода в формате, удобном для машинного разбора, при котором каждое поле разделено символом NUL.
Язык Perl исключён из зависимостей, необходимых для утилит работы с документацией и выполнения тестового набора ("make test"). Многие Perl-однострочники в тестах заменены на функции shell или переписаны на языке Си.
Добавлен userdiff-обработчик для формата файлов конфигурации ".ini".
В команде send-email улучшена поддержка SMTP-сервера Outlook.
В развиваемом проектом KDE эмуляторе терминала Konsole выявленауязвимость (CVE-2025-49091), позволяющая организовать выполнение кода в системе при открытии в браузере специально оформленной страницы.
Для Konsole по умолчанию в KDE регистрируется сервис KTelnetService (ktelnetservice6.desktop), подключающий обработчики открываемых в браузере URL-схем telnet://, rlogin:// и ssh://. При обработке данных схем в эмуляторе терминала запускаются утилиты telnet, rlogin и ssh, которым передаётся указанный в ссылке путь.
Уязвимость вызвана тем, что в случае, когда в системе не установлена утилита telnet, rlogin или ssh, Konsole при вызове соответствующего обработчика URL запускал командный интерпретатор bash. Например, если отсутствует telnet при открытии в браузере ссылки "telnet:///proc/self/cwd/Downloads/evil" в Konsole запускался "/bin/bash /proc/self/cwd/Downloads/evil". По аналогии можно совершить атаку на обработчики rlogin:// и ssh:// при отсутствии в системе утилит rlogin и ssh.
Эксплуатации уязвимостей сопутствует то, что в конфигурации по умолчанию современные версии Firefox и Chrome автоматически сохраняют инициированные для загрузки файлы, не выводя запрос пользователю, а лишь показывая уведомление о факте состоявшейся загрузки. В Firefox подобное поведение можно отключить, выставив настройку "Always ask you where to save files" на странице конфигуратора "General > Files and Applications". Как правило, файлы сохраняются в каталог ~/Downloads, на который, не зная имени текущего пользователя, можно сослаться через файловый путь "/proc/self/cwd/Downloads/".
Ниже показан пример JavaScript-кода, при выполнении которого в браузере в окружениях KDE с Konsole у пользователя будут выполнены команды "echo "Hello world"; touch /tmp/foobar" (в примере они закодированы в строке "data:;base64,ZWNobyAiSGVsbG8gd29ybGQiCnRvdWNoIC90bXAvZm9vYmFyCg=="). Предложенный код формирует ссылку с интегрированными данными, симулирует клик на эту ссылку и перебрасывает пользователя на URL "telnet://...". Для работы в Chrome следует изменить имя файла в ссылке на evil.txt, так как Chrome автоматически добавляет расширение txt.
В Firefox и Chrome при попытке перехода по ссылке "telnet://" по умолчанию будет выведен запрос для подтверждения операции у пользователя. В случае согласия KTelnetService запустит команду:
Если в системе нет утилиты telnet, Konsole откатится на запуск bash вместо telnet, передав изначально указанный в командной строке аргумент.
Проблема устранена в выпуске Konsole 25.04.2, вошедшем в состав обновления KDE Gear 25.04.2. Проследить за устранением уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD. В качестве обходных путей для блокирования уязвимости можно установить утилиты telnet, rlogin и ssh или удалить файл /usr/share/applications/ktelnetservice6.desktop.
Разработчики дистрибутива Nitrux сообщили о прекращении разработки рабочего стола NX Desktop, представлявшего собой надстройку над KDE Plasma 5. Все репозитории nx-desktop на GitHub переведены в архивный режим и сопровождение NX Desktop прекращено. В качестве причины упоминается сворачивание программы длительной поддержки релизов KDE Plasma.
Одновременно упоминается о приостановке разработки собственной оболочки Maui Shell, так как проект столкнулся с нехваткой ресурсов и отсутствием интереса к разработке со стороны участников из сообщества. Ранее решено было не переводить NX Desktop на технологии KDE Plasma 6 и развивать собственную новую оболочку Maui Shell, которая со временем должна была заменить NX Desktop, но ситуация изменилась.
В соответствии с новым планом, дистрибутив Nitrux будет переведён на пользовательское окружение, построенное при помощи композитного сервера Hyprland, панели Waybar и меню завершения работы в системе Wlogout. Вместо дисплейного менеджера SDDM для запуска сеанса будут задействован менеджер входа greetd и экран входа QtGreet.
Композитный сервер Hyprland использует Wayland, поддерживает мозаичную (tiling) компоновку окон, классическое произвольное размещение окон, группировку окон в форме вкладок, псевдомозаичный режим и полноэкранное раскрытие окон. Среди возможностей: динамически создаваемые виртуальные рабочие столы; режимы компоновки элементов на экране; глобальная обработка горячих клавиш; управление жестами на тачпаде/сенсорном экране; средства для визуально насыщенных интерфейсов (градиенты в обрамлении окон, размытие фона, анимационные эффекты и тени); расширение через плагины.
Пакет с ядром Linux в дистрибутиве Nitrux решено перевести с использования патчей Liquorix на вариант ядра от проекта CachyOS. Причиной стало отсутствие в Liquorix патча для включения механизма PSI (Pressure Stall Information), позволяющего в пространстве пользователя анализировать сведения о времени ожидания получения различных ресурсов (CPU, память, ввод/вывод) для точной оценки уровня загруженности системы и характера замедления работы. Поддержка PSI необходима для работы Waydroid, прослойки для запуска Android-приложений.
Для установки дополнительных программ будут задействованы инструментарий NX AppHub и формат AppBox, которые теперь преподносятся как более предпочтительные, по сравнению с пакетами AppImage. Обновления дистрибутива планируют публиковать два раза в месяц. Для установки обновлений продолжит использоваться утилита nuts (Nitrux Update Tool System). Из более отдалённых планов на будущее отмечена замена SquashFS на DwarFS и создание сборок для устройств ARM64, помимо ранее поддерживаемой архитектуры x86_64.