Разработчики свободной системы автоматизированного проектирования печатных плат 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 не имеют возможности исправить возникающие проблемы своими силами, так как проблемы присутствуют не в KiСad, а в протоколах, оконных менеджерах и композитных серверах.
Учитывая, что 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.
Разработчики дистрибутива Arch Linux объявили о сборке по умолчанию Wine и Wine-Staging в режиме Wow64 (64-bit Windows-on-Windows), обеспечивающем выполнение 32-разрядных Windows-приложений в 64-разрядных Unix-системах. Поставка 64-разрядных сборок Wine позволила прекратить использовать для пакетов wine и wine-staging репозиторий multilib с 32-разрядными версиями библиотек.
В качестве причины изменения упоминается синхронизация с изменениями в основном проекте Wine, связанными с упрощением создания пакетов и сокращением цепочки зависимостей. Среди проблем, которые могут возникнуть после миграции на Wow64, упоминается снижение производительности OpenGL для 32-разрядных программ Windows и необходимость пересоздания существующих 32-разрядных префиксов Wine.
Опубликован выпуск распределенной системы управления исходными текстами 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.
Состоялся выпуск дистрибутива Securonis Linux 3.0, сфокусированного на сохранении конфиденциальности и усилении безопасности. Дистрибутив основан на пакетной базе Debian "Testing", преднастроен для отправки всего трафика только через сеть Tor (опционально поддерживается I2P) и включает подборку изменений настроек и компонентов для повышения безопасности. В качестве рабочего стола предлагается MATE. Возможна установка дистрибутива для повседневной работы или загрузка в Live-режиме. Размер iso-образа - 2.5 ГБ.
Представлен релиз дистрибутива Kali Linux 2025.2, основанного на пакетной базе Debian и предназначенного для тестирования систем на наличие уязвимостей, проведения аудита безопасности, анализа остаточной информации и выявления последствий атак. Все оригинальные наработки, созданные для дистрибутива, распространяются под лицензией GPL и доступны через публичный Git-репозиторий. Для загрузки подготовлены iso-образы размером 646 МБ и 4.2 ГБ. Сборки доступны для архитектур x86_64 и ARM64. Hа выбор предоставляются рабочие столы Xfce, KDE и GNOME.
Kali предлагает подборку инструментов для специалистов в области компьютерной безопасности, включающую от средств для тестирования web-приложений и проникновения в беспроводные сети до программ для считывания данных с идентификационных RFID чипов. В комплект входит коллекция эксплоитов и около 400 специализированных утилит для проверки безопасности, таких как Aircrack, Maltego, SAINT, Kismet, Bluebugger, Btcrack, Btscanner, Nmap, p0f. Помимо этого, в дистрибутив входят средства для подбора паролей (Multihash CUDA Brute Forcer) и WPA ключей (Pyrit), использующие GPU NVIDIA и AMD для ускорения.
В новом выпуске:
Полностью переделано меню приложений, структура которого приближена к классификатору базы знаний MITRE ATT&CK.
Среда рабочего стола GNOME обновлена до версии 48.
В сеанс GNOME добавлен индикатор, показывающий IP-адрес текущего VPN-соединения, который ранее поставлялся в сеансе на базе Xfce.
Среда рабочего стола KDE обновлена до версии Plasma 6.3.
Осуществлён переход с инструментария BloodHound Legacy, не обновлявшегося с 2023 года, на BloodHound Community Edition, применяемого для построения карты связей в сетях на базе контроллера домена Active Directory или Azure.
В состав включены утилиты:
azurehound - коллектор данных в окружении Microsoft Azure для визуализации при помощи пакета BloodHound.
crlfuzz - утилита для проверки на уязвимости, связанные с подстановкой символов перевода строки или возврата каретки в HTTP-заголовки и параметры запроса.
donut-shellcode - генерация универсального shell-кода из содержимого в памяти.
gitxray - сбор данных о репозиториях в GitHub и участниках их разработки.
ldeep - утилита для перебора содержимого через LDAP.
tinja - утилита для тестирования web-страниц на возможность подстановки шаблонов.
В состав всех графических сеансов добавлена утилита Xclip, позволяющая быстро поместить данные в буфер обмена из терминала.
Обновлено окружение для мобильных устройств на базе платформы Android - NetHunter, с подборкой инструментов для тестирования систем на наличие уязвимостей. При помощи NetHunter возможна проверка осуществления атак, специфичных для мобильных устройств, например, через эмуляцию работы USB-устройств (BadUSB и HID Keyboard - эмуляция сетевого USB-адаптера, который может использоваться для MITM-атак, или USB-клавиатуры, выполняющей подстановку символов) и создание подставных точек доступа (MANA Evil Access Point). NetHunter устанавливается в штатное окружение платформы Android в форме chroot-образа, в котором выполняется специально адаптированный вариант Kali Linux.
В новой версии реализована возможность проведения атак на Wi-Fi, подстановки кадров и захвата параметров согласования соединения WPA2, используя умные часы на базе чипов bcm43436b0, такие как TicWatch Pro 3. Обновлён инструментарий CARsenal (ранее CAN Arsenal) для осуществления атаки на автомобильные информационные системы. Обновлены варианты ядра для смартфонов
Xiaomi Redmi 4/4X (A13), Xiaomi Redmi Note 11 (A15), Realme C15 (A10), Samsung Galaxy S10 (A14,A15/exynos9820) и Samsung Galaxy S9.
Унифицированы и переведены на ядро Linux 6.12 сборки для Raspberry Pi.
В развиваемом проектом 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.
Каролина Стаге Олсен (Caroline Stage Olsen), министр по цифровизации в правительстве Дании, подтвердила согласование между правительством и региональными властями стратегии цифрового суверенитета. На первом этапе воплощения новой стратегии в жизнь Министерство цифровизации Дании прекратит использование продуктов Microsoft в пользу открытого ПО. В качестве офисного пакета будет использован LibreOffice. Половина сотрудников будет переведена на LibreOffice в течение следующего месяца. Перевод всех сотрудников на открытое ПО планируют завершить до конца года.
Решения отказаться от использования Microsoft в роли основного поставщика ИТ-услуг также приняли муниципальные власти Копенгагена и Орхуса. В качестве причин перехода упоминаются финансовые предпосылки, нахождение в зависимости от компании, занимающей почти монопольное положение на рынке, и ухудшение геополитического климата из-за высказываний президента США о желании получить контроль над Гренландией. Финансовые предпосылки связаны с тем, что расходы на покупку ПО Microsoft за пять лет увеличились на 72% - с 313 миллионов крон в 2018 году до 538 миллионов крон в 2023 году.
Разработчики дистрибутива 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.
Нейт Грэм (Nate Graham), разработчик, занимающийся контролем качества в проекте KDE, опубликовал очередной отчёт о разработке KDE. Наиболее заметные изменения, развиваемые для выпуска KDE Plasma 6.5:
Добавлена поддержка экспериментального Wayland-протокола xdg-pip (picture-in-picture), позволяющего корректно отображать постоянно видимые плавающие окна с мультимедийным контентом, такие как окно "картинка в картинке" в Firefox. Код для поддержки протокола xdg-pip на днях был добавлен в состав кодовой базы Firefox, на основе которой формируется выпуск 141.
В конфигураторе настройки инвертирования и масштабирования перенесены на страницу "Accessibility", на которой они более уместны, чем на странице десктоп-эффектов.
В программе для создания скриншотов Spectacle добавлена подсказка о возможности завершения записи скринкаста, нажатием комбинации клавиш, используемой для начала записи.
В стилях Breeze обеспечена работа эффектов для анимации кликов на переключателях в приложениях на базе QtQuick и на страницах конфигуратора.
Виджеты управления подключением устройств, установки сетевого соединения и настройки Bluetooth переведены на штатный стиль заголовков секций.
При использовании Wayland реализована поддержка перегруппировки виртуальных рабочих столов через виджет Pager. Синхронизированы операции перегруппировки в обзорном режиме и виджете Pager.
В KWin объединены взаимозависимые эффекты размытия (Blur) и изменения контраста фона (Background Contrast) - в эффекте Blur используется шейдер BackgroundContrast.
Улучшен поиск в интерфейсе выбора Emoji - поле для поиска теперь показывается постоянно, а сам поиск охватывает полный набор символов, а не только содержимое текущей страницы.
В KDE Gear 25.04.3 устранено аварийное завершение обработчика миниатюр (thumbnailer), возникавшее при использовании некоторых стилей виджетов на системах с X11.
Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 10.10. С момента выпуска 10.9 было закрыто 38 отчётов об ошибках и внесено 234 изменения.
Движок Wine Mono обновлён до выпуска 10.1.0. Wine Mono представляет собой дистрибутив Framework Mono, предназначенный для использования в Wine вместо проприетарного компонента .NET Framework.
Убрана зависимость от библиотеки OSMesa (Off-screen Mesa).
В реализации языка описания интерфейса WIDL (Wine Interface Definition Language) расширена поддержка генерации метаданных Windows Runtime (WinRT).
Данные локализации обновлены до версии Unicode CLDR 47 (Unicode Common Locale Data Repository).
В реализацию фреймворка Media Foundation добавлена поддержка формата P010.
Обновлены версии faudio 25.06, mpg123 1.33.0, libpng 1.6.48 и xslt 1.1.43.
Закрыты отчёты об ошибках, связанные с работой приложений: Lotus Freelance Graphics 2.1, HTML-Kit 292, cmd.exe, regedit, Baofeng5, Noteworthy Composer, Ricoh Digital Camera Utility 5, PlayOnline Viewer, HP Prime Virtual Calculator, Wondershare Uniconverter 13, AVCLabs Video Enhancer AI, Qt Installer, Smartsuite 3.1.
Закрыты отчёты об ошибках, связанные с работой игр: Rise of Nations: Thrones and Patriots, Braid, Burger Shop, Horizon Chase, F.E.A.R, S.T.A.L.K.E.R. Anomaly, The Fidelio Incident, Eador: Masters of the Broken World, Unreal 2, Vampyr, StarCraft Remastered.
Дополнительно можно отметить выпуск прослойки DXVK 2.6.2, предоставляющей реализацию DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 и 11, работающую через трансляцию вызовов в API Vulkan. Для использования DXVK требуется наличие драйверов с поддержкой API Vulkan 1.3. DXVK может применяться для запуска 3D-приложений и игр в Linux при помощи Wine, выступая в качестве более высокопроизводительной альтернативы встроенных в Wine реализаций Direct3D, работающих поверх OpenGL.
В новой версии DXVK:
Добавлена переменная окружения DXVK_FILTER_DEVICE_UUID для отсеивания устройств по UUID на системах с несколькими одинаковыми моделями GPU.
Добавлены параметры конфигурации d3d9.hide{Amd,Intel,Nvidia}Gpu и улучшена логика переопределения идентификаторов GPU, что может быть полезным для запуска игр, отказывающихся запускаться на некоторых GPU или использующих на них урезанную функциональность.
В dxvk-native улучшен выбор бэкенда WSI.
Решены проблемы с некорректным обновлением стеревывода в некоторых играх для шлемов виртуальной реальности.
Решены проблемы в играх Pirate Hunter, Red Orchestra: Ostfront, Rocketbirds 2 и Thumper.
Автор библиотеки управления памятью jemalloc объявил о прекращении разработки проекта и перевёл GitHub-репозиторий в архивный режим, допускающий доступ только для чтения. Библиотека jemalloc предлагала альтернативную реализацию функций malloc, оптимизированную для снижения фрагментации и работы на многопроцессорных системах. В 2005 году библиотека была включена в состав FreeBSD, а в 2007 была задействована в Firefox.
В 2009 году автор jemalloc перешёл на работу в компанию Facebook, в которой данная библиотека использовалась во внутренних проектах. В 2017 году автор jemalloc уволился из Facebook, а разработка была продолжена оставшейся командой из Facebook. После переименования в Meta приоритеты компании изменились, развитие библиотеки застопорилось и разработка сосредоточилась только на внутренних потребностях. Общедоступная кодовая база со временем деградировала и для устранения накопленного технического долга теперь требуется проведение значительного рефакторинга. Автор jemalloc не готов тратить своё время на подобный рефакторинг и поэтому решил свернуть разработку.
Опубликован выпуск пакета wayland-protocols 1.45, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
В состав Wayland-Protocols 1.45 включено 4 новых протокола (два в категории "staging" и два экспериментальных):
ext-background-effect - применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
pointer-warp - позволяет приложению мгновенно переместить указатель в указанную позицию.
xx-session-management - восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
xx-input-method - развитие нового протокола для использования методов ввода текста.
Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория "unstable") протокол помещается в ветку "staging" и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории "staging" уже можно применять в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории "unstable" в "staging" запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.
Для ускорения доведения протоколов до разработчиков и стимулирования ранней реализации протоколов в существующих проектах, начиная с позапрошлого выпуска дополнительно была добавлена фаза "experimental", в которой допускается внесение изменений, нарушающих совместимость, и добавление "сырых" протоколов, которые можно постепенно доводить до должного уровня. Если для попадания протокола в фазу "staging" требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования, то для попадания в "experimental" достаточно отсутствия возражений (NACK) в течение двухнедельного периода рецензирования.
В настоящее время в состав набора wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:
"viewporter" - позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
"xdg-shell" - интерфейс создания и взаимодействия с поверхностями как с окнами, позволяющий передвигать их по экрану, сворачивать, разворачивать, изменять размер и т.д.
"linux-dmabuf" - предоставляет возможности для создания wl_buffer-ов на базе DMA-BUF.
"tablet" - организация ввода с графических планшетов.
drm-lease - предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
"ext-session-lock" - определяет средства блокировки сеанса, например, во время работы хранителя экрана или вывода диалога аутентификации.
"single-pixel-buffer" - позволяет создавать однопиксельные буферы, включающие четыре 32-разрядных значения RGBA.
"xdg-activation" - позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое).
content-type - позволяет клиентам передать композитному серверу сведения об отображаемом содержимом, которые могут использоваться для оптимизации поведения с учётом содержимого, например, выставлении специфичных DRM-свойств, таких как "content type". Заявлена поддержка следующих типов контента: none (нет сведений о типе данных), photo (вывод цифровых фото, требующий минимальной обработки), video (видео или анимация, требуется более точная синхронизация, чтобы исключить подтормаживания) и game (запуск игр, требуется вывод с минимальной задержкой).
ext-idle-notify - даёт возможность композитным серверам передавать клиентам уведомления о неактивности пользователя, что может использоваться для активации дополнительных режимов энергосбережения после определённого времени неактивности.
tearing-control - позволяет отключить в полноэкранных приложениях вертикальную синхронизацию (VSync) с кадровым гасящим импульсом, применяемую для защиты от появления разрывов при выводе (tearing). В мультимедийных приложениях появление артефактов из-за разрывов является нежелательным эффектом, но в игровых программах с артефактами можно смириться, если борьба с ними приводит к дополнительным задержкам.
ext-foreign-toplevel-list - получение информации о поверхностях, размещённых на самом верхнем уровне (toplevel), которые позволяют организовать закрепление окон поверх другого содержимого, например, для подключения собственных панелей и переключателей окон.
security-context - позволяет идентифицировать клиентов, использующих sandbox-изоляцию. Клиент может зарегистрировать новое подключение к композитному серверу на базе Wayland и прикрепить к нему контекст безопасности, после чего в соответствии с указанным контекстом безопасности композитный менеджер ограничит возможности, доступные для установленного соединения.
cursor-shape - альтернативный способ настройки внешнего вида курсора, основанный на передаче серии изображений курсора вместо привязки к поверхности (wl_surface).
"ext-transient-seat" - предназначен для создания временных независимых сеансов (seat), рассчитанных на использование вместе с виртуальными устройствами ввода. Например, при реализации возможности подключения к удалённому рабочему столу протокол позволяет создать для каждого пользователя отдельный сеанс с виртуальными клавиатурой и мышью.
"xdg-toplevel-drag" - расширяет механизм "drag & drop" возможностью прикрепления окон верхнего уровня к операции перемещения, что может быть использовано, например, для организации перетаскивания мышью панелей инструментов или вкладок браузера. Новый протокол позволяет создавать отсоединяемые части окна, которые при перетаскивании из этого окна становятся новыми окнами и могут перемещаться поверх существующего окна перед повторным прикреплением.
"xdg-dialog" - позволяет назначать поверхностям верхнего уровня признаки, специфичные для диалоговых окон, например, можно создавать модальные диалоги, которые блокируют взаимодействие пользователя с остальной частью интерфейса.
"linux-drm-syncobj" - предоставляет инструменты для явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
alpha-modifier, позволяющий клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера, который в свою очередь может переадресовать эти операции KMS.
xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов. Форма вывода сигнала определяется на усмотрение композитного менеджера, это может быть не только звук, но визуальный отклик.
fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. С практической стороны протокол позволяет при выводе использовать ожидание завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).
ext-data-control - позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
ext-workspace - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов. Протокол может применяться для создания панелей и индикаторов, выводящих список доступных виртуальных рабочих столов и позволяющих переключаться между ними.
color-management - предоставляет возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.
xdg-toplevel-tag - позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения (например, приложение может выставить теги "main window" и "settings" для основного окна и окна с настройками). Подобная идентификация полезна для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
color-representation - определение цветового представления Wayland-поверхности. Wayland-клиенты могут передавать метаданные, необходимые для определения прозрачности, цветовой модели, субдискретизации и диапазона квантования, и применяемые при преобразовании буфера с данными, соответствующими цветовой модели YCbCr, в представление RGB.
"primary-selection" - по аналогии с X11 обеспечивает работу первичного буфера обмена (primary selection), вставка информации из которого обычно осуществляется средней кнопкой мыши.
"relative pointer events" - относительные события указателей.
"text-input" - организация ввода текста.
"xdg-foreign" - интерфейс взаимодействия с поверхностями "соседнего" клиента.
"xdg-decoration" - отрисовка декораций окон на стороне сервера.
"xdg-output" - дополнительные сведения о видеовыходе (используется для дробного масштабирования).
"xwayland-keyboard-grab" - захват ввода в приложениях XWayland.
Разработчики Android-прошивки CalyxOS, не привязанной к сервисам Google, обратили внимание на прекращение публикации компанией Google исходного кода, связанного с поддержкой устройств Pixel в платформе Android. В день релиза Android 16 компания Google разместила в репозитории AOSP (Android Open Source Project) исходный код нового выпуска, но в отличие от прошлых публикаций, на этот раз код охватывал только общие изменения в платформе и фреймворках, и не включалDeviceTree-спецификации и бинарные драйверы для поддержки устройств Google Pixel, а также полную историю изменений в применяемом в платформе варианте ядра Linux.
Отмечается, что отсутствие подобных компонентов существенно усложнит разработку альтернативных сборок Android. Если раньше разработчики альтернативных прошивок могли легко собрать и загрузить AOSP для устройств Pixel, то теперь им придётся выполнять обратный инжиниринг бинарных файлов из прошивок для определения изменений по сравнению с ранее опубликованными спецификациями DeviceTree. В текущем виде Android 16 не может быть собран из репозитория AOSP для смартфонов Pixel, используя только официально предоставляемые компоненты.
В AOSP продолжена публикация кода ядра Linux для поддержки оборудования, но теперь эти изменения доступны в форме среза без истории коммитов. AOSP также можно использовать для формирования общих сборок GSI (Generic System Image), но для их адаптации к конкретным устройствам требуются DeviceTree-файлы, которые теперь не публикуются для смартфонов Google Pixel. DeviceTree определяет спецификацию аппаратной начинки, используемые периферийные устройства и компоненты, необходимые для сборки образа прошивки для конкретного устройства.
Разработчики проекта GrapheneOS, развивающего редакцию Android с изменениями для усиления безопасности и обеспечения конфиденциальности, сообщили, что в апреле по неофициальным каналам до них дошли сведения о том, что в Google началась работа по урезанию AOSP, и первым шагом станет прекращение публикации кода для поддержки устройств в Android 16. На этом фоне появились спекуляции на тему прекращения поддержки репозитория AOSP.
Сэнг Чау (Seang Chau), вице-президент Google, отвечающий за платформу Android, ответил, что слухи относительно сворачивания репозитория AOSP не соответствуют действительности. Код продолжит публиковаться в AOSP и Android останется открытой платформой, пригодной для адаптации к новым устройствам, SoC и аппаратным архитектурам. При этом AOSP не хватает гибкого, настраиваемого и дешёвого эталонного устройства для тестирования системы, не привязанного к конкретным аппаратным устройствам, таким как Google Pixel. В качестве такого эталонного устройства для AOSP предлагается использовать открытое виртуальное устройство Cuttlefish. Кроме того, для тестирования и разработки Android оставлена возможность использования базовых образов GSI (Generic System Image), собранных из AOSP и не привязанных к конкретным устройствам.
Компания Apple представила инструментарий для создания, загрузки и выполнения Linux-контейнеров в macOS. Работа контейнеров в macOS обеспечивается с использованием легковесных виртуальных машин с ядром Linux, запускаемых при помощи гипервизора Virtualization.framework. Для работы с Linux-контейнерами предложено два пакета - containerization и container, написанных на языке Swift и открытых под лицензией Apache 2.0.
Пакет Containerization предоставляет низкоуровневый API для управления образами контейнеров в формате OCI, загрузки контейнеров из внешних репозиториев, создания корневой ФС Ext4, обеспечения сетевого взаимодействия, сборки быстрозагружаемых вариантов ядра Linux, создания виртуальных машин и запуска в них отдельных контейнеров. Контейнеры можно связывать с отдельными IP-адресами. Для организации работы виртуального сетевого стека, привязанного к каждому контейнеру, задействован фреймворк vmnet.
На запуск виртуальной машины тратится менее секунды, благодаря применению оптимизированной конфигурации ядра Linux и урезанного системного окружения с легковесным init-процессом vminitd. Взаимодействие с процессом инициализации в виртуальной машине осуществляется через API GRPC поверх vsock. Данный API позволяет настраивать параметры рабочего окружения и запускать поверх виртуальной машины контейнеры с выбранной пользователем начинкой или отдельными изолированными процессами.
Пакет Container представляет собой надстройку над API Containerization, реализующую высокоуровневый инструментарий в стиле Docker для создания, загрузки, запуска и остановки образов Linux-контейнеров в формате OCI.
Управление сервисами при запуске контейнеров осуществляется при помощи системного менеджера Launchd.
Инструментарий может использоваться в macOS 15, но для полноценной работы и исключения возникновения проблем рекомендуется использовать версию macOS 26 Beta 1. Например, в macOS 15 не работает прямое сетевое взаимодействие между контейнерами и ограничена привязка отдельных IP к контейнерам. Возможна работа на ARM-системах Apple Silicon Mac (M1/M2/M3/M4), компьютеры на базе процессоров Intel не поддерживаются.
Для запуска контейнеров, собранных для архитектуры x86_64, применяется транслятор процессорных инструкций Rosetta 2.
В день 20-летия публикации первого открытого релиза проекта представлена web-версия RTS-игры Warzone 2100, которая может быть запущена в любом браузере, поддерживающем WebAssembly и WebGL 2. Среди прочего, игра может быть запущена в браузере на планшетах iPad и устройствах на базе Android, оснащённых относительно большим экраном. В веб-версии доступен однопользовательский режим, включая оригинальную кампанию и сражение.
Для запуска на стационарных системах продолжают распространяться сборки для Linux, Windows, macOS и FreeBSD. Стационарные сборки отличаются более высоким качеством графики, поддержкой многопользовательской игры, возможностью использования дополнений и модов. Игра изначально разработана компанией Pumpkin Studios и выпущена на рынок в 1999 году. В 2004 году исходные тексты были открыты под лицензией GPLv2, а 11 июня 2005 года был сформирован первый открытый релиз.