COSMIC развивается как универсальный проект, не привязанный к конкретному дистрибутиву и соответствующий спецификациям Freedesktop.
Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана.
Помимо использования языка Rust из особенностей COSMIC выделяются режимы гибридной мозаичной компоновки окон и стекового закрепления окон (группировка окон по аналогии со вкладками в браузере), которые могут включаться в привязке к виртуальным рабочим столам. Проектом также разрабатывается композитный сервер cosmic-comp на базе Wayland.
Реализована поддержка скругления углов для всех окон, а не только для приложений COSMIC. Добавлена возможность отображения теней для окон, среди прочего и при мозаичной компоновке. Для выбора вида углов и теней окон в настройки внешнего вида добавлена секция "Settings > Desktop > Appearance > Window shadow and corners".
В композитном сервере реализована активация окон X11-клиентами, работающими через XWayland, что позволяет индикаторам в системном лотке переключать фокус на окна в других виртуальных рабочих столах. Размер пиктограмм для X11-приложений адаптирован для выставленного уровня масштабирования.
В файловом менеджере добавлена функция открытия нескольких каталогов в отдельных вкладках. Добавлена опция для переноса времени создания и изменения файла при копировании. Реализована возможность ввода сетевых путей в панели. Добавлено автодополнение ввода пути в панели нажатием клавиши Tab или Shift-Tab. Добавлен диалог подтверждения операции очистки корзины.
В мультимедийном проигрывателе cosmic-player обеспечено отключение звука при показе миниатюр с изображением кадра, соответствующего выбранной позиции на полосе прокрутки.
В конфигураторе реализована функция быстрой активации поиска - начало набора на клавиатуре приводит к появлению строки поиска в любом разделе конфигуратора.
Добавлена возможность применения тем оформления в формате RON (Rusty Object Notation) через интерфейс командной строки.
На страницу настройки комбинаций клавиш добавлен подраздел с параметрами для людей с ограниченными возможностями. Добавлен комбинация Super+Alt+S для активации экранного ридера. Включена по умолчанию симуляция клика касанием к тачпаду. Добавлена поддержка VPN-соединений, требующих двухфакторной аутентификации.
В эмуляторе терминала реализована загрузка паролей в память только при открытии страницы работы с паролями и удаление паролей из памяти при её закрытии. Добавлена поддержка выделения содержимого кликом с удержанием клавиши Shift.
В интерфейсе начальной настройки (COSMIC Initial Setup) добавлена поддержка систем с несколькими мониторами и активирован по умолчанию экранный ридер.
В менеджере приложений (COSMIC Store) появилась опция для очистки данных Flatpak-приложений после их удаления.
В интерфейсе переключения виртуальных рабочих столов реализована зацикленная прокрутка при использовании колеса мыши, аналогичная поведению апплета переключения рабочих столов на панели. Улучшена скорость прокрутки эскизов рабочих столов при помощи тачпада.
В текстовом редакторе добавлена поддержка выделения текста комбинацией Shift+клик.
В программе для создания скриншотов обеспечено запоминание выделенной области экрана.
Компания Oracle сформировала новую ветку СУБД MySQL 9.6.0. Сборки MySQL Community Server 9.6.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. В соответствии с внедрённой в 2023 году моделью формирования релизов, MySQL 9.6 отнесён к веткам "Innovation". Innovation-ветки рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности, публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 9.6 прекращена поддержка ветки 9.5). В дальнейшем планируют сформировать LTS-релиз 9.7, рекомендованный для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. Следом за LTS-выпуском будет сформирована новая Innovation-ветка - MySQL 10.0.
Список значимых изменений в MySQL 9.6 полностью повторяет отчёт об изменениях в MySQL 9.5. В нём также упоминается отмеченное ранее изменение поведения
параметра "innodb_log_writer_threads", изменение значения по умолчанию парамтера "binlog_transaction_dependency_history_size", объявление устаревшим метода аутентификации SCRAM-SHA-1 и прекращение поддержки переменных "group_replication_allow_local_lower_version_join" и "replica_parallel_type". Общий список исправлений отличается и содержит следующие заметные изменения:
Переработана система аудита, в которой реализована модульная подсистема Audit Log, позволяющая отдельно устанавливать и управлять различными компонентами для ведения лога аудита, а также упрощающая настройку формата логов, размещения файлов аудита и параметров буферизации. Для изменения системной переменной audit_log_rotate_on_size system теперь требуются привилегии AUDIT_ADMIN.
Задействована новая структура данных и новая встроенная библиотека функций для работы с наборами глобальных идентификаторов транзакций (GTID, Global Transaction ID), используемых при репликации. Новая реализация отличается более высокой производительностью и упрощением кода.
В хранилище InnoDB повышена эффективность генерации уникальных идентификаторов rowid в таблицах без первичных ключей. Решена проблема с некорректным восстановлением состояния транзакций, которые на момент аварийного завершения имели статус "PREPARED".
Добавлена новая опция "--container_aware", во время запуска включающая определение выставленных в контейнере ограничений на CPU и память.
SQL-функции MD5() и SHA1() выделены в отдельный компонент "classic_hashing", который можно отключить при необходимости блокировать использование небезопасных алгоритмов хэширования.
Устранено 14 уязвимостей, из которых две могут быть эксплуатированы удалённо. Наиболее серьёзная проблема имеет критический уровень опасности (9.8), присутствует в официальном Docker-образе c MySQL и связана с уязвимостью в библиотеке SQLite (CVE-2025-6965), которая используется во вспомогательных инструментах для настройки и работы с MySQL. Вторая удалённо эксплуатируемая уязвимость имеет уровень опасности 7.5 и вызвана переполнением буфера (CVE-2025-9230) в библиотеке OpenSSL. Менее опасные уязвимости затрагивают OpenSSL, InnoDB, оптимизатор, DDL, парсер, Pluggable Auth и Thread Pooling. Детали пока не сообщаются.
Компания Oracle опубликовала плановый выпуск обновлений своих продуктов (Critical Patch Update), нацеленный на устранение критических проблем и уязвимостей. В январском обновлении устранено 337 уязвимостей.
Некоторые проблемы:
11 проблем с безопасностью в Java SE. Все уязвимости в Java SE могут быть эксплуатированы удалённо без проведения аутентификации и затрагивают окружения, допускающие выполнение не заслуживающего доверия кода. Наиболее опасные проблемы в Java SE имеют уровень опасности 7.5 и затрагивают JavaFX (WebKitGTK, libxslt), AWT и систему защиты. Уязвимости устранены в выпусках Java SE 25.0.2, 21.0.10, 17.0.18, 11.0.30, 8u481.
14 уязвимостей в сервере MySQL, из которых две могут быть эксплуатированы удалённо. Наиболее серьёзная проблема имеет критический уровень опасности (9.8), присутствует в официальном Docker-образе c MySQL и связана с уязвимостью в библиотеке SQLite (CVE-2025-6965), которая используется во вспомогательных инструментах для настройки и работы с MySQL. Вторая удалённо эксплуатируемая уязвимость имеет уровень опасности 7.5 и вызвана переполнением буфера (CVE-2025-9230) в библиотеке OpenSSL. Менее опасные уязвимости затрагивают OpenSSL, InnoDB, оптимизатор, DDL, парсер, Pluggable Auth и Thread Pooling.
Проблемы устранены в выпусках MySQL Community Server 9.6.0 и 8.0.45.
14 уязвимостей в VirtualBox, пять из которых помечены как опасные (8.2 из 10). Одна из уязвимостей может быть эксплуатирована удалённо. Детали о характере уязвимостей не раскрываются. Проблемы будут устранены в выпуске VirtualBox 7.2.6, который ожидается в течение дня.
4 уязвимости в Solaris, которые затрагивают драйверы, ядро и файловую систему (максимальный уровень опасности 5.8 из 10). Уязвимости устранены в обновлении Solaris 11.4 SRU89. В новой версии Solaris также обновлены версии пакетов
Wireshark 4.6.2,
Firefox 140.6.0esr,
Thunderbird 140.6.0esr,
Unbound 1.24.2,
Apache httpd 2.4.66,
OpenSSH 10.2,
Django 5.2.9 и
squid 7.3.
Опубликован релиз web-браузера Pale Moon 34.0.0, ответвившегося от кодовой базы Firefox для обеспечения более высокой эффективности работы, сохранения классического интерфейса, минимизации потребления памяти и предоставления дополнительных возможностей по настройке. Сборки Pale Moon формируются для Windows и Linux (x86_64). Код проекта распространяется под лицензией MPLv2 (Mozilla Public License).
Проект придерживается классической организации интерфейса, без перехода к интегрированным в Firefox 29 и 57 интерфейсам Australis и Photon, и с предоставлением широких возможностей кастомизации. Из удалённых компонентов можно отметить DRM, Social API, WebRTC, PDF-просмотрщик, Сrash Reporter, код для сбора статистики, средства для родительского контроля и людей с ограниченными возможностями. По сравнению с Firefox, в браузер возвращена поддержка расширений, использующих XUL, и сохранена возможность применения как полноценных, так и легковесных тем оформления.
Обновлена тема оформления, применяемая по умолчанию в Windows. Обеспечена интеграция оформления с Windows 11 и улучшена поддержка тёмных акцентных цветов.
Реализован объект WeakRef для определения слабых ссылок (weak reference) на объекты JavaScript, позволяющие сохранить ссылку на объект, но не блокирующие удаление связанного объекта сборщиком мусора.
Добавлен метод URL.canParse(), упрощающий разбор и проверку корректности URL.
Добавлены CSS-свойства inset-block и inset-inline.
Добавлена настройка "privacy.forgetaboutsite.clearPasswords" для очистки паролей при вызове функции очистки информации о сайте в менеджере полномочий.
Генератор псевдослучайных чисел в JavaScript переведён на алгоритм Xoroshiro128+.
Возвращена поддержка каскадных слоёв CSS (@layer) и CSS-функции color-mix.
Решена проблема с сайтами, использующими CSS-свойство "overflow-x: clip" без выставления "overflow-y".
Добавлена поддержка CSS-свойства "appearance".
Обновлены версии NSS 3.90.9, ICU 78.1, Unicode 17 и expat 2.7.3.
Добавлена поддержка сборки на оборудовании LoongArch64, Sparc64 и Mac PowerPC.
Добавлена поддержка запуска во FreeBSD 15.
Возвращена возможность выполнения NPAPI-плагинов внутри основного процесса.
Повышена стабильность JavaScript-движка IonMonkey на ARM и Mac SoC.
Linux-сборки с GTK теперь всегда собираются с gio, поддержка gconf удалена.
В сервере telnetd из набора GNU InetUtils выявлена уязвимость, позволяющая подключиться под любым пользователем, включая пользователя root, без проверки пароля. CVE-идентификатор пока не присвоен. Уязвимость проявляется начиная с версии InetUtils 1.9.3 (2015 год) и остаётся неисправленной в актуальном выпуске 2.7.0. Исправление доступно в форме патчей (1, 2).
Проблема вызвана тем, что для проверки пароля процесс telnetd вызывает утилиту "/usr/bin/login", передавая в качестве аргумента имя пользователя, указанного клиентом при подключении к серверу. Утилита "login" поддерживает опцию "-f", позволяющую осуществить вход без выполнения аутентификации (подразумевается, что эта опция используется, когда пользователь уже прошёл проверку). Таким образом, если добиться подстановки опции "-f" в имени пользователя, можно подключиться без проверки пароля.
При обычном подключении использовать имя пользователя вида "-f root" не получится, но в telnet имеется режим автоматического подключения, активируемый опцией "-a". В данном режиме имя пользователя берётся не из командной строки, а передаётся через переменную окружения USER (клиент передаёт переменные окружения на сервер при помощи опции ENVIRON). При вызове утилиты login значение данной переменной окружения подставлялось без дополнительной проверки и без экранирования спецсимволов. Таким образом, для подключения под пользователем root достаточно выставить в переменную окружения USER значение "-f root" и подключиться к telnet-серверу, указав опцию "-a":
$ USER='-f root' telnet -a имя_сервера
Приведшее к уязвимости изменение было добавлено в код telnetd в марте 2015 года и было связано с устранением проблемы, не позволявшей определить имя пользователя в режиме autologin без аутентификации в Kerberos. В качестве решения была добавлена поддержка передачи имени пользователя для режима autologin через переменную окружения, но проверку корректности имени пользователя из переменной окружения добавить забыли.
В 2007 году похожая проблема c передачей аргумента "-f" при вызове login была выявлена в telnet из состава Solaris, а в 1994 году в rlogin из AIX.
Представлен релиз платформы Electron 40.0.0, предоставляющей самодостаточный фреймворк для разработки многоплатформенных пользовательских приложений, использующий в качестве основы компоненты Chromium, V8 и Node.js.
Обновлены версии браузерного движка Chromium 144, платформы Node.js 24.11.1 и JavaScript-движка V8 14.4 (в прошлой ветке использовались Chromium 142, Node.js 22.20.0 и V8 14.2).
Добавлена поддержка признака завершения дочернего процесса "memory-eviction", применяемого при завершении процесса для предотвращения исчерпания свободной памяти в системе (OOM, out-of-memory).
В режиме отрисовки в буфер (Offscreen Rendering) появилась поддержка вывода в формате RGBAF16 с цветовым пространством scRGB HDR .
Добавлен метод app.isHardwareAccelerationEnabled() для проверки включения аппаратного ускорения.
В API net.request добавлена опция bypassCustomProtocolHandlers для игнорирования вызова дополнительных обработчиков протокола.
Добавлены методы для выборочного включения средств для людей с ограниченными возможностями.
Добавлена возможность импорта внешних текстур в виде объекта VideoFrame, представляющего видеокадр.
На платформе Linux появилась возможность использования свойства systemPreferences.getAccentColor для получения информации о системных
акцентных цветах, применяемых для выделения активных элементов, а также цвета границы активного окна.
Добавлена поддержка предоставления доступа к API File System, ограниченного текущим сеансом.
Добавлена поддержка динамической загрузки ESM-модулей в предварительно загружаемых скриптах (preload), для которых отключена изоляция контекста (contextIsolation = false).
Объявлена устаревшей возможность доступа к API Сlipboard из процессов, выполняющих отрисовку.
Платформа Electron позволяет создавать любые графические приложения с использованием браузерных технологий, логика работы которых определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, интеграции с системой вывода уведомлений, манипуляции окнами, взаимодействия с подсистемами Chromium.
В отличие от web-приложений, программы на базе Electron поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру. При этом разработчику не нужно заботиться о портировании приложения для различных платформ, Electron обеспечит возможность сборки для всех систем, поддерживаемых в Chromium. Electron также предоставляет средства для организации автоматической доставки и установки обновлений (обновления можно доставлять как с отдельного сервера, так и напрямую с GitHub).
Из программ, построенных на базе платформы Electron можно отметить редакторы Atom и Visual Studio Code, почтовый клиент Mailspring, инструментарий для работы с Git GitKraken, систему ведения блогов WordPress Desktop, BitTorrent-клиент WebTorrent Desktop, а также официальные клиенты к таким сервисам, как Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike и Discord. Всего в каталоге программ Electron представлено 612 приложений. Для упрощения разработки новых приложений подготовлен набор типовых демонстрационных приложений, включающих примеры кода для решения различных задач.
Опубликован релиз легковесного дистрибутива MX Linux 25.1, созданного в результате совместной работы сообществ, образовавшихся вокруг проектов antiX и MEPIS. Выпуск основан на пакетной базе Debian с улучшениями от проекта antiX и пакетами из собственного репозитория. В дистрибутиве на выбор можно использовать системы инициализации sysVinit и systemd. Поставляются собственные инструменты для настройки и развёртывания системы. Для загрузки доступны 64-разрядные сборки (x86_64) с рабочим столом Xfce (2.8 ГБ), а сборки с рабочим столом KDE (3.3 ГБ) и сборки (2.3 ГБ) с оконным менеджером Fluxbox.
В новом выпуске:
Осуществлена синхронизация с пакетной базой Debian 13.3. Ядро Linux обновлено до версии 6.12.
Обновлены сборки с расширенной поддержкой оборудования (AHS), которые поставляются с Xfce, ядром 6.18 c патчами от проекта liquorix и Мesa 25.3.3.
Возобновлено формирование совмещённых iso-образов, в которых на выбор доступны системы инициализации systemd и sysVinit. В Live-сборках пользователь может выбрать желаемую систему инициализации в загрузочном меню.
Доступен выпуск свободной PaaS-платформы Cozystack 0.40, построенной на базе Kubernetes. Проект нацелен на предоставление готовой платформы для хостинг-провайдеров и фреймворка для построения частных и публичных облаков. Платформа устанавливается напрямую на серверы и охватывает все аспекты подготовки инфраструктуры для предоставления управляемых сервисов. Cozystack позволяет запускать и предоставлять кластеры Kubernetes, базы данных и виртуальные машины. Код платформы доступен на GitHub и распространяется под лицензией Apache-2.0.
В качестве базового стека технологий используется Talos Linux и Flux CD. Образы с системой, ядром и необходимыми модулями формируются заранее, и обновляются атомарно, что позволяет обойтись без таких компонентов как dkms и пакетный менеджер, и гарантировать стабильную работу. Предоставляется простой метод установки в пустом дата-центре с помощью PXE и debian-подобного установщика talos-bootstrap. В рамках платформы можно по клику разворачивать Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics и другие сервисы.
Платформа включает свободную реализацию сетевой инфраструктуры (fabric) на базе Kube-OVN, и использует Cilium для организации сервисной сети, MetalLB для анонса сервисов наружу. Хранилище реализовано на LINSTOR, где предлагается использование ZFS в качестве базового слоя для хранилища и DRBD для репликации. Имеется преднастроенный стек мониторинга на базе VictoriaMetrics и Grafana. Для запуска виртуальных машин используется технология KubeVirt, которая позволяет запускать классические виртуальные машины прямо в контейнерах Kubernetes и уже имеет все необходимые интеграции с Cluster API для запуска управляемых Kubernetes-кластеров внутри "железного" Kubernetes-кластера.
Добавлен планировщик LINSTOR для оптимального размещения pod-ов.
Собственный "scheduler extender" для Kubernetes работает совместно со стандартным планировщиком Kubernetes и помогает оптимально размещать pod-ы на узлах с хранилищем LINSTOR. Когда pod запрашивает том LINSTOR, планировщик узнает у контроллера LINSTOR, на каких узлах есть локальные реплики нужных томов. Приоритет отдаётся узлам, где данные уже присутствуют, что минимизирует сетевой трафик и повышает I/O-производительность. Дополнительно реализован admission-вебхук, который автоматически направляет pod-ы, использующие CSI-тома LINSTOR, на собственный планировщик, обеспечивая бесшовную интеграцию без ручной настройки.
Хранилище SeaweedFS
SeaweedFS обновлено до версии 4.05, в которой проведена оптимизация S3-трафика (traffic locality): запросы теперь уходят на ближайшие серверы, что сокращает задержки и ускоряет работу хранилища. Также появился новый admin-компонент с веб-интерфейсом и поддержкой авторизации, и worker-ы для выполнения распределённых задач. В Grafana добавлены продвинутые дашборды, позволяющие следить за bucket-ами, вызовами API и производительностью. Добавлена поддержка TLS-сертификатов для компонентов admin и worker.
Механизм valuesFrom из FluxCD заменил lookup-функции в Helm-чартах. Такое архитектурное улучшение обеспечивает более чистую передачу параметров и устраняет необходимость в контроллерах принудительной синхронизации (reconciliation). Конфигурация из ConfigMaps и ссылок на сервисы теперь централизованно управляется через ключ cozystack-values в каждом пространстве имён.
В компонента для интеграции с LINSTOR реализована поддержка функции auto-diskful, переводящей бездисковые (diskless) узлы в дисковые (diskful), если те удерживают ресурсы DRBD в состоянии Primary более 30 минут.
Внедрены системы автоматического управления версиями для PostgreSQL, Kubernetes, MariaDB и Redis, которые отслеживают обновления в апстрим-репозиториях и предоставляют механизмы автоматического обновления версий.
Некоммерческая организация Open Quantum Design (OQD), учреждённая исследователями из Института квантовых вычислений университета Ватерлоо (Канада), разрабатывает первый открытый квантовый компьютер. Рабочий прототип открытого квантового компьютера развивается как совместный проект, аккумулирующий ресурсы, знания и опыт групп исследователей из различных университетов, некоммерческих организаций и частных компаний, специализирующихся на разработках в области квантовых вычислений.
Отмечается, что совместная работа даёт возможность ускорить достижение результата, способствует разностороннему рассмотрению путей решения проблем и позволяет принять участие в работе даже небольшим командам, не обладающим ресурсами для самостоятельных исследований в области квантовых систем. Все компоненты проекта, включая эмулятор квантового компьютера и стек для разработки приложений, распространяются на GitHub под лицензией Apache. Проектом также создан сайт с документацией.
Аппаратная реализация квантового компьютера находится на стадии сборки и тестирования. Схемы и проектные файлы, необходимые для сборки аналогичной системы, будут открыты в соответствии с принципами Open Hardware под лицензией близкой к Apache 2.0. При разработке задействованы наработки существующих открытых проектов в области квантовой физики, таких как платформа для проведения экспериментов с квантовыми системами ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) и аппаратные решения от сообщества Sinara.
Для работы над проектом сформировано шесть рабочих групп, занимающихся программным стеком (компилятор для квантового компьютера, трансляторы высокоуровневых алгоритмов, утилиты для оценки производительности и верификации корректности работы), методами коррекции ошибок и снижения влияния шумов в квантовых системах, разработкой моделей для симуляции, написанием обучающих материалов, разработкой AI-технологий для оптимизации и генерации квантовых алгоритмов, созданием интерфейса для удалённого проведения экспериментов с квантовым компьютером.
В аппаратной реализации развивается система квантовых вычислений на ионных ловушках (Ion Trap), в которой атомы выступают в роли кубитов.
В разрабатываемом квантовом компьютере ионы изолируются от внешней среды в вакууме при помощи электромагнитных полей и переводятся в квантовое состояние путём охлаждения до температур близких к абсолютному нулю. Состояние ионов меняется при помощи лазерных импульсов, а состояние кубита определяется по интенсивности свечения иона под воздействием лазерного луча. Развиваются прототипы на ионах
иттербия (171Yb+) и бария (138Ba+), в которых планируют реализовать 30-50 и 16 кубитов.
Для композитного менеджера KWin предложен экспериментальный плагин, превращающий KDE в среду рабочего стола для систем виртуальной реальности. Плагин позволяет формировать интерфейс не на физическом мониторе, а в форме виртуальных экранов в 3D-пространстве, работа с которым осуществляется через очки дополненной реальности или 3D-шлемы.
Поддерживается работа с плавающими окнами, совмещение физических и виртуальных экранов, произвольное позиционирование экранов в 3D-пространстве, управление при помощи клавиатуры без необходимости использования мыши или VR-контроллеров, режим отслеживания положения пользователя. Для отрисовки задействован модуль Qt Quick 3D Xr, завязанный на runtime OpenXR. В качестве runtime опробована платформа Monado в сочетании с очками дополненной реальности Rokid Max и HP G2, а также сервер WiVRn c 3D-шлемом Quest 3.
Для организации ввода реализовано устройство KwinVrInputDevice, позволяющее перемещать указатель по аналогии с мышью, но не ограничиваясь границами области вывода. Для размещения окон в 3D-пространстве задействованы штатные возможности KWin, немного изменённые для всплывающих окон и расширенные возможностью перемещать окна за пределы области вывода. Для работы требуется применение патчей к Qt и XWayland. Большинство патчей уже приняты в кодовую базу Qt и войдут в состав выпусков 6.10.2 и 6.11, не перенесёнными остаются только 4 патча.
20 лет назад, когда был выпущен gcc4, компилятор g77 был заменён на gfortran. Однако из-за некоторых возникших с ним проблем он был исключён из базового образа NetBSD. Благодаря недавно внесённым изменениям в NetBSD-current, gfortran теперь снова поставляется в базовом образе операционной системы. В скором будущем планируют добавить соответствующие переменные в pkgsrc для компиляции программ с использованием этого системного компилятора, без необходимости установки пакета gcc12 из репозитория pkgsrc.
Алан Поуп (Alan Pope), бывший менеджер по инжинирингу и взаимодействию с сообществом в компании Canonical, обратил внимание на новую волну атак на пользователей каталога приложений Snap Store. Вместо регистрации новых учётных записей злоумышленники начали выкупать просроченные домены, фигурирующие в email зарегистрированных разработчиков snap-пакетов. После перекупки домена злоумышленники перенаправляют почтовый трафик на свой сервер и, получив контроль над email, инициируют процесс восстановления забытого пароля для доступа к учётной записи.
Получив контроль над существующей учётной записью, атакующие могут разместить вредоносное обновление ранее опубликованных заслуживающих доверия приложений, обойдя расширенные проверки, применяемые к новым участникам, и избежав добавления предупреждающих меток о новых проектах. Алан Поуп выявил как минимум два домена (enstorewise.tech и vagueentertainment.com), выкупленных злоумышленниками для захвата учётных записей, но предполагается, что таких случаев намного больше.
В прошлом злоумышленники ограничивались регистрацией собственных учётных записей, под которыми публиковались вредоносные пакеты, выдающие себя за официальные сборки популярных программ, или использующие имена, похожие на уже существующие пакеты (тайпсквоттинг). В ответ компания Canonical ввела ручную проверку новых имён пакетов, впервые размещаемых в Snap Store. После этого основная активность распространителей вредоносного ПО сосредоточилась на размещении оригинальных пакетов, их рекламировании в социальных сетях и публикации через какое-то время вредоносного обновления, пытающегося обойти имеющиеся в Snap Store автоматизированные проверки и фильтры.
Теперь вектор атаки сместился в сторону перекупки просроченных доменов, так как в репозитории Snap Store не была реализована проверка актуальности доменных имён, используемых в email-адресах. В прошлом году с подобной проблемой столкнулся репозиторий PyPI (Python Package Index), который начал автоматически переводить email с просроченными доменами в состояние неподтверждённых. В PyPI было заблокировано более 1800 подобных email-адресов.
Компания Google опубликовала релиз web-браузера Chrome 144. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 145 запланирован на 10 февраля.
Отдельно можно отметить добавление в тестовую ветку Chrome Canary, на основе которой будет сформирован выпуск Chrome 147, настройки для отключения AI-возможностей в браузере, завязанных на выполнение AI-моделей на локальной системе пользователя. В конфигураторе в секции "System" появилась опция "On-device GenAI Enabled", обеспечивающая удаление всех локально выполняемых генеративных моделей и отключение связанных с ними возможностей, таких как определение вредоносного контента в режиме расширенной защиты.
В Chrome Canary также добавлена поддержка формата изображений JPEG XL, о готовности возвращения которого представители Google упоминали в ноябре. Для декодирования JPEG XL задействована (1, 2) библиотека jxl-rs с реализацией JPEG-XL на языке Rust. Для включения JPEG XL добавлен параметр "chrome://flags/#enable-jxl-image-format".
В ветку Chrome Beta, на основе которой будет сформирован релиз Chrome 145, добавлен режим вертикального отображения вкладок. Для замены верхней горизонтальной панели с кнопками вкладок на боковую панель с вертикальными вкладками предложена настройка "chrome://flags/#vertical-tabs". После активации данной опции в контекстном меню, показываемом при клике правой кнопкой мыши на пустой области в панели вкладок, появится кнопка "Show tabs on the side".
Продолжено развитие AI-режима, позволяющего взаимодействовать с AI-агентом из адресной строки или со страницы, показываемой при открытии новой вкладки. AI-режим даёт возможность задавать сложные вопросы на естественном языке и получать ответы на основе агрегирования информации из наиболее релевантных страниц на заданную тему. При необходимости пользователь может уточнять информацию наводящими вопросами. Режим также позволяет задавать вопросы о содержимом страницы прямо из адресной строки.
В Chrome 144 расширены возможности встроенного чат-бота Gemini, в котором появилась поддержка загрузки в Gemini изображений (через контекстное меню) и генерации на их основе новых изображений. Добавлена возможность применения AI-режима в контексте нескольких вкладок - AI может отвечать на вопросы о содержимом выбранных вкладок, сравнивать содержимое, резюмировать и искать информацию.
Ранее AI-режим был доступен только на платформах macOS и Windows, но теперь кнопка "AI Mode" и активация клавишей табуляция перед началом ввода в адресной строке появились и в сборах для Linux (судя по всему, пока не для всех пользователей). На странице "chrome://flags" можно управлять включением AI через опции "ai-mode").
Для части пользователей активировано новое упрощённое оформление страницы, показываемой при открытии новой вкладки. Новый вариант избавлен от визуальных излишеств и предоставляет больше настроек для управления внешним видом. Удалена поддержка скрытия отдельных блоков контента кнопкой "Dismiss", вместо которой теперь предлагается отключать целые категории (например, вместо скрытия конкретного рецепта предлагается скрыть показ всех рецептов).
В конфигурациях на базе ОС Windows, в которых применяется централизованное управление Chrome, реализована защита от неавторизированного изменения важных настроек, например, изменения вредоносным ПО поисковой системы. При выявлении фактов изменения настроек сторонним ПО подобные настройки теперь автоматически сбрасываются в состояние по умолчанию.
Реализована третья версия алгоритма Happy Eyeballs, применяемого для для выбора оптимального протокола при подключении к хостам, одновременно доступным по адресам IPv4 и IPv6. При использовании алгоритма Happy Eyeball клиент сразу резолвит адреса IPv4 и IPv6 для хоста и отправляет запрос на соединение по IPv6, а затем пытается параллельно подключиться по другим привязанным к хосту адресам, не дожидаясь результата предпринятых ранее попыток подключения. Активным оставляется соединение, которое было установлено первым, а остальные закрываются. Третья версия протокола помимо DNS-записей A (IPv4) и AAAA (IPv6) анализирует DNS-записи SVCB (Service Binding) и HTTPS для определения поддержки HTTP/3 и HTTPS. При доступности более приоритетными считаются протокол QUIC и расширение TLS ECH.
В API Direct Sockets, позволяющий устанавливать прямые TCP- и UDP-соединения с внешними системами, а также создавать слушающие сокеты для приёма соединений, добавлена поддержка многоадресной передачи (multicast). Изолированные web-приложения (IWA, Isolated Web Apps) теперь могут подписываться на multicast-группы и получать отправляемые в них многоадресные UDP-пакеты.
В CSS добавлен псевдо-элемент "::search-text", позволяющий менять цвет, фон и элементы декорирования текста, подсвеченного в результате локального поиска на странице, по аналогии с ранее доступными псевдо-элементами "::highlight", "::spelling-error" и "::grammar-error", позволяющими менять стиль выделения текста и пометки ошибок.
Добавлено CSS-свойство "caret-shape", позволяющее настраивать внешний вид курсора в редактируемых полях.
Добавлено событие "clipboardchange", генерируемое при изменении содержимого в буфере обмена и позволяющее обойтись от ресурсоёмкого периодического опроса изменений кодом на JavaScript.
Добавлен новый HTML-элемент <geolocation>, предназначенный для вставки на страницу кнопок и ссылок для вызова интерфейса подтверждения доступа к информации о местоположении пользователя, предоставляемой соответствующим JavaScrip API.
Добавлен JavaScript-объект Temporal, реализующий альтернативный набор метод для работы с датами и временем. Новый API позволяет манипулировать датами с учётом и без учёта часовых поясов, конвертировать время, форматировать вывод и выполнять арифметические операции со временем. Время может задаваться в независимом от часового пояса представлении (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), с привязкой к часовому поясу (Temporal.ZonedDateTime) и в эпохальном представлении (Temporal.Instant - число наносекунд с 1 января 1970 года).
Внесены улучшения в инструменты для web-разработчиков. На страницу инспектирования контента (chrome://inspect) добавлена опция для запуска сервера удалённой отладки, не требующая перезапуска браузера (ранее подобный сервер мог быть запущен только через опцию командной строки). В панели Styles разрешено редактирование CSS-правил "@font-face" и "@font-feature-values".
В интерфейсе инспектирования сети панель "Request blocking" переименована в "Request conditions" и теперь позволяет не только блокировать, но и ограничивать скорость отдельных сетевых запросов.
Кроме нововведений и исправления ошибок в новой версии устранены 10 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google учредила 10 премий и выплатила 18.5 тысяч долларов США (по одной премии в $8000, $4000, $3000, $2000, $1000 и $500). Размер 4 вознаграждений пока не определён.
После полутора лет разработки представлен выпуск проекта Synfig 1.5.4, развивающего редактор векторной 2D-анимации, используемый при производстве анимационного проекта "Моревна" (Morevna). Пакет разработан специально для анимации и позволяет создавать работы кинематографического качества без рутинной промежуточной прорисовки каждого кадра. Код проекта написан на С++ и распространяется под лицензией GPLv3. Сборки Synfig сформированы для Linux (AppImage), Windows и macOS.
Synfig примечателен наличием средств для композитинга на основе слоёв - в качестве слоёв можно использовать геометрические фигуры, градиенты, фильтры, искажения, преобразования, фракталы и т.п.). Редактор также поддерживает контурные градиенты, позволяющие добавлять мягкое затенение анимации без необходимости рисовать его на каждом кадре. Возможно рисование с использованием планшетов, среди прочего с изменением толщины линии в зависимости от интенсивности нажатия.
Плавность анимации достигается благодаря автоматической интерполяции изменений изображений между ключевыми кадрами. Для обеспечения корректной цветопередачи и большого диапазона яркости применяется технология HDRI (High Dynamic-Range Imaging) и вычисления с плавающей запятой. Поддерживается работа с импортированными растровыми изображениями и векторными объектами, позволяющими создавать работы не зависящие от экранных разрешений.
После почти 10 лет с момента публикации ветки 3.0 и спустя 20 лет после основания проекта состоялся релиз JavaScript-библиотеки jQuery 4.0, используемой по данным организации W3Techs на 70.9% из 10 млн наиболее посещаемых сайтов в сети. Код jQuery распространяется под лицензией MIT.
Выпуск jQuery 4.0 содержит изменения, нарушающие обратную совместимость, но по заверению разработчиков большинство пользователей смогут безболезненно перейти на новую версию с минимальными изменениями в своём коде. Для упрощения миграции можно использовать специальный плагин. Нарушения обратной совместимости связаны с удалением устаревшего кода, удалением некоторых внутренних недокументированных параметров, прекращением поддержки некоторого излишне усложнённого поведения и прекращением поддержки API, ранее объявленных устаревшими. Удаление устаревших API и браузеров позволило сократить размер gzip-архива с библиотекой на 3 КБ (slim-версия теперь занимает 19.5 КБ, а полная - 27.5 КБ).
Среди изменений:
Прекращена поддержка браузера IE 10 и более старых версий (поддержка IE 11 сохранена, но будет удалена в jQuery 5.0), а также других старых браузеров таких как Edge Legacy, Android Browser и Firefox до ветки 115.
Встроена поддержка API Trusted Types, развиваемого для защиты от манипуляций с DOM, приводящих к межсайтовому скриптингу (DOM XSS), например, при некорректной обработке полученных от пользователя данных в блоках eval() или вставках ".innerHTML", что может привести к выполнению JavaScript-кода в контексте определённой страницы. В методы
jQuery теперь может передаваться HTML-код в форме объектов TrustedHTML.
Код jQuery переведён на использование JavaScript-модулей ESM (ECMAScript Module) и может поставляться и импортироваться как модуль.
Удалены функции, ранее помеченные устаревшими: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps и jQuery.fx.interval. Вместо данных функций рекомендуется использовать штатные JavaScript-функции Array.isArray(), JSON.parse(), String.prototype.trim() и Date.now()
Удалены недокументированные внутренние методы объекта Array - push, sort и splice.
Порядок обработки событий смены фокуса приведён к соответствию спецификации W3C - blur, focusout, focus и focusin.
Размер урезанного варианта (slim), не содержащий модули ajax и effects, сокращён до 19.5k за счёт прекращения поставки объектов Deferred (рекомендуется использовать штатные Promises) и Callbacks.