Опубликован выпуск СУБД DuckDB 1.2.0, ориентированной на выполнение аналитических запросов и концептуальной напоминающей SQLite. DuckDB сочетает такие свойства SQLite, как компактность, подключение в форме встраиваемой библиотеки, хранение БД в одном файле и CLI-интерфейс, с возможностями и оптимизациями для выполнения аналитических запросов, охватывающих значительную часть хранимых данных, например, выполняющих агрегирование всего содержимого таблиц или слияние нескольких больших таблиц. Код проекта написан на языке C++ и распространяется под лицензией MIT.
DuckDB предоставляет расширенный диалект языка SQL, включающий дополнительные возможности для обработки очень сложных и длительно выполняемых запросов. Возможно использование сложных типов (массивы, структуры, объединения), а также выполнение произвольных и вложенных коррелирующих подзапросов. Поддерживается одновременное выполнение нескольких запросов, выполнение запросов напрямую из файлов в форматах CSV и Parquet. Доступна поддержка импорта из СУБД PostgreSQL.
Проектом используется оболочка из SQLite, парсер из PostgreSQL, компонент Date Math из MonetDB, своя реализация оконных функций (на базе алгоритма Segment Tree Aggregation), обработчик регулярных выражений на основе библиотеки RE2, собственные оптимизатор запросов, MVCC-механизм управления одновременным выполнением заданий (Multi-Version Concurrency Control), а также векторизованный движок выполнения запросов на базе алгоритма Hyper-Pipelining Query Execution, позволяющий в одной операции разом обрабатывать большие наборы значений.
Реализована поддержка новых методов сжатия, которые не включены по умолчанию для сохранения совместимости БД-файлов с прошлыми версиями DuckDB. Для использования улучшенного формата БД-файлов предложена возможность привязки БД к номеру версии - при открытии файла при помощи параметра "STORAGE_VERSION" теперь можно задать минимально поддерживаемую версию БД ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). Для преобразования нового формата в старый можно использовать SQL-команду COPY, например:
ATTACH 'file1.db';
ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0');
COPY FROM DATABASE file1 TO converted_file;
Добавлена поддержка SQL-команды "ALTER TABLE ... ADD PRIMARY KEY" для добавления первичного ключа к существующей таблице.
Убрано ограничение, не позволявшее повторно добавлять идентификаторы, для которых присутствует индекс отслеживания уникальности, если данные идентификаторы были удалены в текущей транзакции. Например, нижеприведённый SQL-код теперь не приводит к ошибке:
CREATE TABLE students (id INTEGER PRIMARY KEY, name VARCHAR);
INSERT INTO students VALUES (1, 'John Doe');
BEGIN;
DELETE FROM students WHERE id = 1;
INSERT INTO students VALUES (1, 'Jane Doe');
Добавлена поддержка загрузки CSV-файлов в кодировках Latin-1 и UTF-16 (ранее поддерживалась только кодировка UTF-8).
FROM read_csv('cities-latin-1.csv', encoding = 'latin-1');
Добавлена поддержка использования в CSV-файлах многобайтовых разделителей (до 4 байт), что позволяет указывать emoji в качестве разделителя столбцов.
a🦆b
hello🦆world
FROM read_csv('example.dsv', sep = '🦆');
По умолчанию включён строгий режим разбора файлов CSV ("strict_mode = true"), проверяющий соответствие форматирования спецификации RFC 4180. В строгом режиме допускается использование только одного символа для разделения строк, что приведёт к ошибке при попытке разбора файлов, для разделения строк в которых используется не только символ перевода строки, но и символ возврата каретки ("\r\n").
В парсере CSV задействован новый алгоритм определения новой строки, поддерживающий распараллеливание операций. Использование нового алгоритма ускорило разбор CSV примерно на 15%.
Убрано ограничение на размер строки в CSV файлах (ранее строка не должна была превышать 8 МБ).
При экспорте данных в формате Parquet реализована поддержка хэшей (словарей) и индексов на базе фильтра Блума. Реализован метод сжатия DELTA_BINARY_PACKED, позволяющий существенно сократить размер Parquet-файлов.
В интерфейс командной строки добавлен безопасный режим,
активируемый при помощи опции "-safe" или команды ".safe_mode". В данном режиме разрешается доступ только к изначально указанному файлу БД, а попытка открытия других файлов приведёт к выводу ошибки.
В интерфейсе командной строки улучшено автодополнение ввода. Код для автодополнения переведён на использование PEG (Parsing Expression Grammar).
При выполнение команд в интерфейсе командной строки реализовано наглядное отображение больших чисел, например, при отображении числа
100000000, будет дополнительно приписано "(100 миллионов)".
В SQL добавлена поддержка синтаксиса, при котором сокращённые наименования таблиц и выражений можно указывать до значений на которые они указывают (вместо использования синтаксиса "выражение AS наименование"):
SELECT
e1: some_long_and_winding_expression,
e2: t2.a_column_name
FROM
t1: long_schema.some_long_table_name,
t2: short_s.tbl;
В команде "SELECT" реализована поддержка операции "RENAME" для переименования полей, выводимых при указании выражения "*":
SELECT * RENAME (col1 AS new_col1) FROM integers;
В команде "SELECT" разрешено использование операций "LIKE" и "SIMILAR TO" при выводе через "*" :
SELECT * LIKE 'val%' FROM key_val;
Повышено качество генерации псевдослучайных чисел.
Модернизирован оптимизатор запросов. Производительность при прохождении теста TPC-H SF100 увеличилась на 13%.
Предложен новый Си-подобный API для разработки дополнений, который можно использовать, например, для создания новых агрегатных или табличных функций.
Добавлена поддержка систем со стандартной Си-библиотекой Musl.
Леннарт Поттеринг (Lennart Poettering) предложил включить в системный менеджер systemd изменение, позволяющие загружать систему с использованием образа корневой ФС, получаемого c внешнего хоста по протоколу HTTP. Изменение сводится к расширению systemd возможностью не только скачивать дисковый образ по HTTP на начальной стадии загрузки, но и распаковывать загруженный образ, связывать с блочным устройством в loopback-режиме, монтировать блочное устройство как /sysroot и загружать с него систему.
Поддержка скачивания дисковых образов во время загрузки системы при помощи systemd-import-generator уже включена в состав systemd 257. Остальная функциональности пока находится на стадии рабочего прототипа, требующего доработки. В реализации пока не поддерживается полный цикл загрузки, но в дальнейшем функциональность планируют довести до загрузки через UEFI HTTP Boot универсальных образов ядра UKI (Unified Kernel Image), объединяющих в одном файле загрузчик для UEFI (UEFI boot stub), образ ядра Linux и загружаемое в память системное окружение initrd.
URL для загрузки системного образа планируют вычислять на основании URL, заданного для EFI-образа в настройках UEFI HTTP Boot (например, при загрузке через EFI HTTP Boot "http://example.com/somedir/myimage.efi", присутствующий в UKI initrd-обработчик загрузит образ rootfs как "http://example.com/somedir/myimage.raw.xz"). В дальнейшем помимо HTTP в качестве транспорта для получения образа планируется добавить поддержку технологии NVMe-over-TCP, позволяющей обращаться к NVMe-накопителям по сети (NVM Express over Fabrics), используя протокол TCP.
Предполагается, что загрузка с образов, получаемых с внешнего хоста, упростит организацию тестирования современных неизменяемых ("immutable") операционных систем на реальном оборудовании. Разработчик может на своём компьютере сформировать образ с системным окружением утилитой mkosi и сделать его доступным через HTTP командой "mkosi -f serve". На компьютере, на котором требуется протестировать работу системы, достаточно включить в EFI загрузку по HTTP и добавить URL загружаемого образа командой:
После чего можно просто перезагрузить компьютер и он загрузит типовой образ ядра UKI, который затем загрузит подготовленный разработчиком дисковый образ с корневой ФС. До отключения в EFI загрузки по HTTP каждая последующая перезагрузка компьютера будет приводить к загрузке свежего системного образа. При подобном тестировании никак не затрагиваются локальные диски.
После шести месяцев разработки представлен релиз языка программирования Go 1.24, развиваемого компанией Google при участии сообщества. Язык сочетает высокую производительность, свойственную компилируемым языкам, с такими достоинствами скриптовых языков, как простота написания кода, высокая скорость разработки и защита от ошибок. Код проекта распространяется под лицензией BSD.
Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Оберон. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно, без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.
Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах. Например, на уровне операторов реализованы средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за границы буфера и обеспечивает возможность использования сборщика мусора.
Обеспечена полная поддержка обобщённых псеводонимов типов (generic type alias) - псевдоним типа может быть параметризирован, как и впервые определяемый тип (при определении псевдонима типа теперь допускается указание параметров типа).
type set[P comparable] = map[P]bool
Внесены оптимизации в runtime, которые привели к снижению нагрузки на процессор на 2-3% при проведении типовых тестов производительности. Среди внесённых оптимизаций: новая встроенная реализация операции "map", основанная на использовании хэш-таблиц Swiss Table; повышение эффективности использования памяти при размещении мелких объектов; новая реализация mutex, встроенная в runtime.
В команду "go" для Go-модулей добавлен механизм отслеживания исполняемых зависимостей (вспомогательных инструментов, написанных на языке Go и используемых при разработке модуля, например, linter-ов или утилит для форматирования кода). Определение утилит в файле go.mod производится через директиву "tool", для добавления которой в текущий модуль предложена команда "go get -tool" (например, "go get -tool golang.org/x/tools/cmd/stringer"). Для запуска утилиты, указанной в директиве "tool", добавлена команда "go tool имя_утилиты".
В команды "go build" и "go install" добавлена опция "-json" для вывода в формате JSON.
Добавлена переменная окружения GOAUTH для задания параметров аутентификации, необходимых для извлечения модулей, доступ к которым ограничен.
В команде "go vet" реализован новый анализатор тестов (test analyzer), выявляющий типовые ошибки при включении тестов, fuzzing-инструментов, утилит проверки производительности и примеров приложений.
В стандартную библиотеку включены реализации криптоалгоритмов, одобренных в стандарте безопасности FIPS 140-3.
В пакет testing добавлен метод B.Loop для выполнения тестов производительности. Применение "for b.Loop() { ... }" вместо обычных циклов позволяет исключить выполнение компилятором полной оптимизации тела цикла и вынести из цикла стадии настройки и очистки теста.
Добавлен тип os.Root, позволяющий изолировать операции с файловой системой заданным каталогом.
В runtime добавлен новый механизм финализации runtime.AddCleanup, более гибкий и эффективный чем runtime.SetFinalizer.
Добавлен пакет weak c реализацией слабых указателей, которые не владеют объектом, не увеличивают счётчик ссылок и не препятствуют освобождению объекта.
Добавлены пакеты: crypto/mlkem с реализацией криптоалгортимов ML-KEM-768 и ML-KEM-1024 (Kyber), стойких для подбора на квантовом компьютере; crypto/hkdf c реализацией
функции формирования ключа на базе HMAC (RFC 5869); crypto/pbkdf2 c реализацией функции формирования ключа на базе пароля (PBKDF2, RFC 8018); crypto/sha3 c реализацией хэшей SHA-3.
Добавлен экспериментальный пакет testing/synctest с функциями для тестирования многопоточности.
Улучшена поддержка WebAssembly. Добавлена возможность сборки Go-приложений в форме библиотеки или обработчика WASI (WebAssembly System Interface). Реализована директива go:wasmexport для экспорта функций для использования в WebAssembly.
В утилиту objdump добавлена поддержка дизассемблирования для архитектур LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64) и S390X (GOARCH=s390x).
Сообщество Xiph.Org опубликовало обновление свободного звукового кодека FLAC 1.5.0, позволяющего сжимать звук без потери качества. FLAC использует только методы кодирования без отбрасывания данных (lossless), что гарантирует полную сохранность изначального качества звукового потока и его идентичность с эталонным вариантом, подвергнутым кодированию. При этом используемые методы сжатия без потерь позволяют уменьшить размер исходного звукового потока на 50-60%. FLAC является полностью свободным потоковым форматом, подразумевающим не только открытость библиотек с реализацией функций кодирования и декодирования, но и отсутствие ограничений по использованию спецификаций и созданию производных вариантов. Код библиотек распространяется под лицензией BSD.
Обеспечена работа кодировщика в многопоточном режиме. Многопоточный кодировщик можно использовать через libFLAC или через утилиту командной строки flac.
Добавлена возможность декодирования связанных (chained) Ogg-файлов, в которых в один файл упаковано несколько независимых аудиопотоков FLAC.
В libFLAC, libFLAC++ и metaflac реализована поддержка записи в новый файл при изменении метаданных, вместо перезаписи существующего файла. В libFLAC при изменении метаданных добавлена проверка указания символической ссылки в качестве входного файла и реализована защита от записи в подобные файлы при замене файла по месту.
Расширен API библиотек libFLAC и libFLAC++.
Адаптирована для многопоточной работы реализация режима LMS (Loose Mid-Side), раздельно кодирующего общую для стерео каналов информацию и разницу между левым и правым каналами.
Реализована поддержка компиляции в представление WebAssembly компилятором Emscripten.
Спецификация на формат FLAC зафиксирована в RFC 9639.
В утилите flac при перекодировании существующего FLAC-файла добавлена проверка совпадения MD5-хэшей. В режиме тестирования "flac -t" теперь разбираются все блоки метаданных и выводятся предупреждения при обнаружении метаданных ID3v1. Улучшена встроенная подсказка по доступным опциям. Документирован формат для хранения внешних метаданных, используемых утилитой flac.
Лицензия на документацию GFDL (GNU Free Documentation License) обновлена до версии 1.3 (была версия 1.2).
После четырёх месяцев разработки опубликован релиз среды рабочего стола KDE Plasma 6.3. Для оценки работы новых выпусков KDE можновоспользоваться сборками от проектов KDE Neon и openSUSE (Argon, основанный на openSUSE Leap, и Krypton, основанный на openSUSE Tumbleweed).
Основные изменения:
В композитном менеджере KWin переработана поддержка дробного масштабирования. Для сокращения размытости и повышения чёткости при увеличении масштаба обеспечена привязка к пиксельной сетке экрана.
Модернизирован эффект приближения, который при значительном изменении масштаба теперь показывает сетку для наглядного разделения отдельных пикселей.
В режиме ночной подсветки повышена точность отображения цветов, независимо от использования ICC-профилей. В KWin добавлен параметр для настройки точности отображения цветов.
Включена лёгкая прозрачность для виджетов, размещаемых на рабочем столе, и для всплывающих окон элементов панели.
В виджете, показывающем список открытых окон в панели (Task Manager), реализована возможность показа обычных текстовых всплывающих подсказок, в случае отключения в настройках показа эскизов содержимого окна.
Переработан интерфейс настройки графического планшета - содержимое страницы в конфигураторе разделено на три отдельные вкладки (Display, Pen и Pad). Реализована более привычная матрица калибровки графического планшета. При тестировании работы стилуса показана информация о наклоне и давлении. Добавлена возможность сопоставления поверхности графического планшета со всем экраном. Добавлены настройки диапазона давления стилуса, например, для игнорирования слишком лёгких или слишком сильных касаний. Добавлена опция, выделяющая цветом изменения настроек.
Добавлена настройка, автоматически отключающая тачпад при подсоединении мыши.
В настройках точки доступа обеспечена генерация случайного пароля для подключения к создаваемой беспроводной сети.
В главное меню добавлена новая категория "Help" и удалён раздел с настройками "Settings", который объединён с разделом "System".
В меню приложений Kickoff (Application Launcher) переключение категорий теперь производится только при явном щелчке мышью (как в боковых панелях). В настройки добавлена опция для возвращения старого поведения, при котором для переключения категории достаточно наведения курсора мыши.
В виджете "Часы" включено отображение всех предстоящих событий сегодняшнего дня, а не только первых пяти.
После выхода из режима "не беспокоить", обеспечен показ числа пропущенных уведомлений вместо показа разом всех накопившихся уведомлений.
При перемещении мышью файла из окна, частично перекрытого другими окнами, данное окно теперь не переносится на передний план, так как оно может закрыть собой содержимое, куда пользователь пытался переместить файл.
В контекстное меню, показываемое при щелчке правой кнопкой мыши на ярлыке с символической ссылкой, добавлена кнопка для показа файла, на который указывает ссылка.
В конфигуратор панели, вызываемый через контекстное меню при щелчке правой кнопкой мыши на панели, добавлена кнопка "Clone Panel", позволяющая клонировать выбранную панель, например, для дублирования нижней панели в верхней части экрана.
Предоставлена возможность отключения символьных пиктограмм в меню Kickoff, используя редактор меню (приложение KMenuEdit).
При попытке редактирования файлов с расширением ".desktop" через меню "Edit Application…" теперь запускается приложение KMenuEdit вместо диалога со свойствами файла.
В Widget Explorer предоставлена возможность удаления всех экземпляров виджета, включая те, что потеряны или привязаны к отключённым экранам.
При запуске приложений, которым предоставлены полномочия захвата устройств ввода и экрана, теперь выводится уведомление с подсказкой, как отключить захват и вернуть себе управление.
Сокращено потребление памяти при хранении большой истории работы с буфером обмена.
В конфигураторе на странице с настройками KWin предоставлена возможность временного отключения правил с переопределением атрибутов окон приложений (KWin Window Rules). Ранее для прекращения действия подобных правил их можно было только удалить.
В виджете "Power and Battery" реализован вывод уведомления о низком заряде аккумулятора беспроводных наушников, предоставляющих корректную информацию о состоянии аккумулятора.
В приложении System Monitor повышена точность отслеживания нагрузки на CPU, а также снижено потребление ресурсов при работе данного приложения. Добавлена поддержка сбора статистики о работе GPU во FreeBSD. В центре информации о системе (Info Center) предоставлены дополнительные сведения о всех GPU и показаны счётчики циклов зарядки аккумуляторов.
Упрощено отслеживание состояния принтеров - в виджете для каждого принтера теперь показывается очередь печати и индикатор, указывающий через какой принтер в данный момент осуществляется вывод на печать.
Добавлен сервис, определяющий когда ядро принудительно завершает приложение из-за нехватки памяти в системе, и выводящий соответствующее уведомление.
В менеджере приложений Discover разбивка на больших экранах ограничена двумя столбцами. Обеспечено выделение цветом изменений полномочий в новых версиях программ. Специальными индикаторами выделены пакеты, подготовленные разработчиками основного проекта или верифицированные уполномоченным лицом.
В KRunner добавлена возможность переключения между категориями при помощи комбинаций клавиш Page Up/Page Down и Ctrl+Up/Ctrl+Down. В полях поиска на базе KRunner доступна возможность преобразования единиц измерения длины.
Компания Citus Data, принадлежащая Microsoft, опубликовала распределённую СУБД Citus 13.0, реализованную в форме расширения к PostgreSQL 17. Citus обеспечивает горизонтальное масштабирование PostgreSQL в кластере на базе типового оборудования и позволяет разносить данные по узлам при помощи шардинга (sharding) с настройкой разделения на уровне столбцов и схемы хранения. Для приложений кластер Citus выглядит как один большой сервер PostgreSQL, объединяющий ресурсы образующих его узлов. Код написан на языке Си и распространяется под лицензией AGPLv3.
Шардинг позволяет организовать хранение очень большого объёма данных, суммарный размер которых существенно превышает локальные накопители каждого из узлов кластера. Отдельные таблицы могут принудительно реплицироваться на все узлы для ускорения выполнения операций слияния и работы с внешними ключами. Для экономии дискового пространства распределённые по разным узлам данные могут хранится в сжатом виде.
Распределённые запросы могут отправляться на любой из узлов кластера, но управление и изменение схемы данных должно производиться только через узел, координирующий работу кластера. Поступающие от клиентов запросы распределяются по необходимым узлам и, если они охватывают несколько узлов, то их обработка распараллеливается. Кластер можно расширять по мере роста размера хранимых данных, добавляя дополнительные узлы и инициируя ребалансировку.
В качестве типовых примеров использования Citus отмечается выполнение аналитических запросов и обработка больших массивов данных в форме временного ряда (например, логи или опрос состояния датчиков). Citus также подходит для модернизации имеющейся инфраструктуры на базе одиночного сервера PostgreSQL, производительности и накопителей на котором перестало хватать из-за увеличения нагрузки или объёма поступающих данных. При помощи инструментария Patroni можно создавать отказоустойчивые конфигурации с реплицированными запасными узлами, способными в случае сбоя занять место основных узлов.
Возможность использования в распределённых запросах функции JSON_TABLE() для преобразования данных из формата JSON в реляционное представление, с которым можно работать как с обычными таблицами PostgreSQL.
Поддержка синтаксиса "MERGE ... WHEN NOT MATCHED BY SOURCE".
Возможность определения метода доступа для распределённых секционированных таблиц при помощи выражения "CREATE TABLE ... USING", а также изменения метода доступа через "ALTER TABLE ... SET ACCESS METHOD".
Добавлена поддержка указания в распределённых секционированных таблицах автоматически генерируемых столбцов идентификации.
Решены проблемы с синхронизацией ролей между узлами.
Улучшено распределение данных для шардинга при добавлении новых узлов в кластер.
В команду "EXPLAIN" добавлены опции "MEMORY" и "SERIALIZE", при помощи которых можно определить размер использованной памяти и время, потраченное на преобразование данных для передачи по сети.
После пяти лет разработки организация Linux Foundation представила релиз платформы виртуализации SEAPATH 1.0, разработанной с учётом требований к информационным системам для цифровых подстанций в энергосетях. Платформа учитывает специфику энергосетей, но может применяться и в других областях, в которых требуется высокая надёжность. Код платформы опубликован под лицензией Apache 2.0. Выпуск SEAPATH 1.0 признан готовым для промышленного применения и использования в критически важных системах (mission-critical). Платформа уже задействована в рабочей инфраструктуре энергетической компании RTE и проходит тестовое внедрение в компаниях GE Vernova, Alliander, ABB, Red Hat и Enedis. В разработке платформы принимают участие компании RTE, Alliander, GE Vernova, Savoir-faire Linux, Welotec и Red Hat.
Для мониторинга, автоматизации, сопровождения и управления распределением энергопотоков на цифровых подстанциях в современных энергосетях задействованы специализированные приложения от различных поставщиков, которые предлагается запускать в отдельных изолированных виртуальных машинах. SEAPATH реализует платформу для организации работы подобных виртуальных машин, виртуализированные приложения (vPAC - Virtualized Protection, Automation and Control) в которых могут выполняться в режиме реального времени.
Для развёртывания узлов с хост-окружением SEAPATH предоставляется два дистрибутива на базе Debian GNU/Linux 12 и Yocto Scarthgap. Платформа не привязана к какому-то определённому оборудованию, не зависит от отдельных поставщиков и может использоваться на различных типах серверов и аппаратных архитектур. Допускается выполнение приложений для электроподстанций, поддерживающих стандарт МЭК-61850.
Отказоустойчивость обеспечивается благодаря применению кластерных конфигураций с резервированием оборудования, а также размещению данных и образов виртуальных машин в распределённом хранилище, реплицированном на разные узлы кластера. Обновления автоматически устанавливаются с внешнего сервера. Управление конфигурацией и администрирование осуществляется централизованно с использованием концепции инфраструктура как код.
Платформа построена с использованием уже существующих открытых проектов, для проверки надёжности которых подготовлен тестовый набор, включающий более 700 unit-тестов. Виртуализация реализована с использованием гипервизора KVM и ядра Linux, собранного с опцией PREEMPT_RT для работы в режиме реального времени. В качестве распределённого хранилища, охватывающего весь кластер, используется Ceph. Для виртуализации устройств применяется QEMU, а для виртуализации сети - Open vSwitch. Для управления виртуальными окружениями задействован инструментарий Libvirt. Для управления ресурсами в кластере, обеспечения отказоустойчивости и организации взаимодействия между узлами применяются Pacemaker и Corosync. Централизованное управление инфраструктурой и оркестровка виртуальных машин реализована при помощи Ansible.
Страховая компания GEICOопубликовала предварительный выпуск инструментария TuxTape, позволяющего развернуть собственную инфраструктуру для создания, сборки и доставки live-патчей для ядра Linux. Live-патчи позволяет применять исправления к ядру Linux на лету, без перезагрузки и остановки системы. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.
Live-патчи с устранением уязвимостей предоставляют для своих дистрибутивов такие компании, как Red Hat, Oracle, Canonical и SUSE, но открытым у них является лишь низкоуровневый инструментарий для работы с патчами, а сами патчи формируются за закрытыми дверями. Дистрибутивы Gentoo и Debian пытались развивать открытые проекты elivepatch и linux-livepatching, но первый уже 6 лет находится в заброшенном состоянии, а второй затормозил на стадии создания тестового прототипа.
TuxTape нацелен на организацию работы собственной системы для создания и доставки live-патчей, не зависящей от сторонних поставщиков и адаптируемой для любых ядер Linux, а не только для пакетов с ядром конкретных дистрибутивов. TuxTape может формировать live-патчи, совместимые с инструментарием kpatch, разработанным компанией Red Hat (помимо kpatch существуют похожие инструменты: kGraft от SUSE, Ksplice от Oracle и универсальный livepatch). Патчи формируются в виде загружаемых модулей ядра, которые заменяют функции в ядре, используя подсистему ftrace для перенаправления на новые функции, включённые в модуль.
TuxTape может отслеживать информацию об исправлении уязвимостей в ядре Linux, публикуемую в списке рассылки linux-cve-announce и в Git-репозитории, ранжировать уязвимости по степени опасности, определять применимость к обслуживаемым ядрам Linux и генерировать live-патчи на основе обычных патчей к LTS-веткам ядра. Применимость исходных патчей оценивается через профилирование сборок ядра. Патчи с не затрагивающими целевое ядро уязвимостями игнорируются.
TuxTape включает в себя систему для отслеживания новых уязвимостей в ядре, построитель БД патчей и уязвимостей, сервер для хранения метаданных, систему диспетчеризации сборки ядра, сборщик ядра, генератор патчей, архив патчей, клиент для получения патчей для конечных хостов и интерактивный интерфейс для управления формированием live-патчей.
Разработка находится на стадии экспериментального прототипа. Для начального тестирована предложены: tuxtape-cve-parser для разбора информации об уязвимостях и построения БД с патчами; tuxtape-server c реализацией интерфейса gRPC для сервисов генерирующих патчи; tuxtape-kernel-builder для сборки ядра в заданной конфигурации и формирования профиля сборки; tuxtape-dashboard - консольный интерфейс для рецензирования и создания live-патчей на основе исходных патчей, полученных из tuxtape-server.
Компания Intel опубликовала компилятор ISPC 1.26 (Implicit SPMD Program Compiler), предназначенный для сборки кода на языке Си с расширениями параллельного программирования SPMD (Single Program, Multiple Data), позволяющими добиться параллельного выполнения нескольких экземпляров одной программы с разными наборами входных данных. Код проекта написан на языке С++ и распространяется под лицензией BSD. Поддерживается работа в Linux, Windows, macOS и FreeBSD.
Си-программы с расширениями SPMD компилируются для выполнения на вычислительных блоках SIMD, предоставляемых CPU и GPU, что позволяет задействовать механизмы векторизации SIMD без низкоуровневых оптимизаций и явного применения в коде SIMD-инструкций. Для написания распараллеливаемых функций используется привычный синтаксис и идиомы языка Си - SPMD-функции напрямую взаимодействуют с функциями и структурами, написанными на C/C++. Для отладки программ могут применяться существующие отладчики.
В качестве бэкенда для генерации кода и оптимизации в ISPC используется инфраструктура LLVM. Поддерживаются векторные инструкции x86 (SSE2, SSE4, AVX, AVX2, AVX512) и ARM (NEON), а также вынос вычислений на сторону GPU (Intel Gen9 и Xe). На архитектурах с векторными блоками SSE, обрабатывающими по 4 элемента за раз, применение ISPC даёт возможность добиться ускорения выполнения программы в 3 или более раз, а на архитектурах с векторными блоками AVX, обрабатывающими по 8 элементов за раз, ускорение может достигать 5-6 раз. При этом помимо размера векторного блока, масштабирование также обеспечивается за счёт выполнения на разных процессорных ядрах.
Основные новшества, добавленные в версии ISPC 1.26:
Улучшена поддержка архитектуры ARM:
Изменено поведение флага "--arch=arm", который теперь связан с архитектурой ARMv8 (32-bit), а не
ARMv7 (для ARMv8 в 64-разрядном режиме как и раньше следует использовать флаг "--arch=aarch64").
Прекращена поддержка процессоров ARMv7 Cortex-a9 и Cortex-a15.
Добавлена поддержка процессоров Cortex-a55, Cortex-a78, Cortex-a510, Cortex-a520, а также новых ARM-процессоров Apple.
Добавлены новые сборочные цели: neon-i16x16 и neon-i8x32.
Добавлена поддержка операций на базе векторных инструкций ARM SDOT и UDOT.
Проведена оптимизация, производительность для ARMv8 в среднем увеличилась на 13%.
Добавлен новый вид сборочных целей - "generic", позволивший оптимизировать внутреннюю архитектуру компилятора и упростить добавление новых сборочных целей. Идея в том, чтобы поддерживать базовые цели для специфичных аппаратных возможностей, поверх которых легко можно создавать цели с частными оптимизациями. На использование generic-целей переведена поддержка архитектуры ARM.
В генераторе кода проведена корректировка развёртывания циклов и функций для сокращения размера результирующего кода в режиме оптимизации "-O1". Улучшена генерация кода для встроенных функций count_leading_zeros и count_trailing_zeros, а также при возвращении структур из функций и при сохранении или загрузки данных с типами int8/int16.
Расширена поддержка встроенных функций (intrinsics) LLVM, активируемая при указании флага "--enable-llvm-intrinsics".
Инструментарий LLVM обновлён до версии 18.1.8 с патчами. Добавлен макрос для определения используемой в ISPC версии LLVM.
Разрешено применение атрибута "__attribute__((deprecated))" к функциям для вывода предупреждения при вызове функции.
Удалена сборочная цель avx512knl-x16 (KNL).
Добавлена опция "--darwin-version-min" для указания минимально поддерживаемой версии целевой платформы для macOS и iOS.
Опубликован выпуск ONLYOFFICE DocumentServer 8.3 с реализацией сервера для online-редакторов ONLYOFFICE и организации совместной работы. Редакторы можно использовать для работы с текстовыми документами, таблицами и презентациями. Код проекта распространяется под свободной лицензией AGPLv3.
Одновременно сформирован выпуск продукта ONLYOFFICE DesktopEditors 8.3, построенного на единой кодовой базе с online-редакторами. Десктоп-редакторы оформлены в виде приложений для рабочего стола, которые написаны на JavaScript с использованием web-технологий, но объединяют в одном наборе клиентские и серверные компоненты, оформленные для самодостаточного использования на локальной системе пользователя, без обращения к внешнему сервису. Для совместной работы на своих мощностях также можно использовать платформу Nextcloud Hub, в которой обеспечена полная интеграция с ONLYOFFICE. Готовые сборки сформированы для Linux, Windows и macOS.
В ONLYOFFICE заявлена полная совместимость с форматами MS Office и OpenDocument. Среди поддерживаемых форматов: DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP. Предусмотрена возможность расширения функциональности редакторов через плагины, например, доступны плагины для создания шаблонов и добавления видео с YouTube. Готовые сборки сформированы для Windows и Linux (deb- и rpm-пакеты).
Добавлена поддержка файлов в форматах ".hwp" и ".hwpx", применяемых в пакете Hancom Office, а также форматов ".pages", ".key" (keynote) и ".numbers", используемых в Apple iWork. Указанные форматы теперь можно просмотреть в ONLYOFFICE. При необходимости сохранить изменения содержимое конвертируется в формат OOXML (DOCX, PPTX, XLSX).
Изменения в редакторе PDF-документов:
Добавлена поддержка выставления печатей, которые можно использовать для визирования или согласования документов, добавляя соответствующие метки.
В сеансе совместной работы над документом нескольких участников предоставлена возможность отмены внесённых изменений (undo).
Добавлена возможность выделения сразу нескольких страниц в боковой панели, например, для их удаления или переноса. Для выделения диапазона страниц следует использовать клавишу Shift, для добавления или удаления из числа выделенных - Ctrl.
Добавлена контекстная панель для редактирования аннотаций, позволяющая быстро изменить цвет, добавить комментарий или удалить аннотацию.
Добавлена возможность настройки уровня прозрачности при добавлении или редактировании аннотаций.
Изменения в табличном процессоре:
Реализована возможность отката действий (undo) при совместной работе над электронной таблицей нескольких участников.
Добавлена поддержка автоматического обновления данных, получаемых из привязанного внешнего источника.
Добавлена поддержка автозаполнения дней, дней недели, месяцев и лет в ячейках.
Добавлена поддержка открытия и сохранения вычисленных значений в сводных таблицах (Pivot Table).
В интерфейс выбора функций добавлена подсказка с описанием аргументов функций.
В диалоге открытия данных в формате CSV реализовано автоматическое определение символа-разделителя на основе содержимого текстового файла.
Добавлены опции для управления показом горизонтальных и вертикальных полос прокрутки.
Изменения в редакторе презентаций:
Добавлена новая вкладка "Design", предоставляющая инструменты для применения стилей, изменения цветовой схемы и корректировки размера слайда.
Предоставлена возможность рисования поверх слайда при нахождении в режиме слайд-шоу или презентации при помощи инструментов "ручка" и "маркер".
В панель быстрого доступа добавлена опция для показа с самого начала.
В режим слайдшоу добавлены кнопки для изменения режима курсора (перемещение/выделение).
Добавлено контекстное меню для управления окнами и вкладками, предоставляющее такие операции как закрытие, закрепление, перемещение вкладки в начало/конец, преобразование вкладки в окно и наоборот.
Во все редакторы добавлена операция слияния фигур (Merge shapes), поддерживающая режимы объединения, комбинирования, дробления, исключения и пересечения.
В редакторе документов расширены возможности, связанные с поддержкой языков, в которых набор текста производится справа-налево (RTL).
Добавлена поддержка объединения или сравнения текстовых документов на уровне слов или отдельных символов.
Улучшена работа с защищёнными текстовыми документами.
В правую панель и контекстное меню добавлена операция для сброса кадрирования изображений.
Кристоф Хелвиг (Christoph Hellwig), мэйнтейнер подсистем DMA, KVM, Slab Allocator и архитектуры PowerPC в ядре Linux, в своё время входивший в управляющий технический комитет организации Linux Foundation и выступавший истцом в связанном с GPL судебном разбирательстве с VMware, отказался подтверждать патчи, связанные с поддержкой разработки драйверов на языке Rust. Предложенные патчи добавляли обвязки над несколькими функциями подсистемы DMA, позволяющие использовать DMA в драйверах на языке Rust.
В качестве причины отказа упомянуто усложнение сопровождения кода при наличии обвязок на других языках и желание сохранить программные интерфейсы к DMA в читаемом виде на языке Си, без размазывания по непонятным обвязкам. Кристоф предложил напрямую обращаться к исходному Си API DMA в каждом драйвере на языке Rust, чтобы не создавать дополнительных абстракций, от которых вынуждены будут зависеть сопровождающие ядра.
Разработчики патчей указали, что они возьмут на себя всю работу по сопровождению кода на Rust, готовы сопровождать эти патчи самостоятельно и вынесли обвязки в отдельный подкаталог (rust/kernel/dma.rs). В ответ Кристоф наложил вето ("Nacked-by") на приём связанных с Rust патчей и указал, что ему не нужен ещё один сопровождающий. Кристоф заявил, что если разработчики обвязок хотят добиться невозможности сопровождения Linux из-за смешивания нескольких языков в одной кодовой базе, им следует делать это в своём драйвере, а не распространять эту раковую опухоль на основные подсистемы ядра.
При этом Кристоф уточнил, что не имеет ничего против языка Rust и считает его одним из лучших новых языков, но он против смешивания кода на разных языках. По словам Кристофа он за создание новых проектов на Rust, но против примешивания Rust к большим кодовым базам на Си, так как такое смешивание сильно снижает
удобство сопровождения ядра, как интегрированного проекта.
Суть проблем с сопровождением в том, что Rust-обвязки ставят сопровождающих в зависимость от кода на языке Rust. На первый взгляд кажется, что обвязки лишь надстройки над Си-структурами и функциями, которые никак не влияют на разработку и сопровождение кода на Си. Но это не так. При наличии подобных обвязок разработчики подсистем, написанных на Си, должны учитывать влияние их изменений на продолжение работоспособности обвязок. Любое изменение структур данных или внутренних функций на Си может привести к необходимости изменения кода обвязок, поэтому влияющие на обвязки изменения в Си коде нужно отслеживать и синхронизировать с кодом на Rust. Многие сопровождающие не готовы брать на себя дополнительную ответственность за исправление проблем, возникающих в коде на Rust, и не намерены тратить своё время на отслеживание состояния Rust-обвязок.
Ситуация с усложнением сопровождения не умозрительная. К дискуссии подключился Джейсон Ганторп (Jason Gunthorpe), мэйнтейнер TPM, VFIO и Infiniband из компании NVIDIA, который привёл пример отклонения Линусом Торвальдсом pull-запроса с изменениями в подсистеме управления памятью, так как данное изменение приводило к сбою при попытке сборки ядра с включением поддержки Rust. Сбой возник из-за того, что сопровождающие код на Rust не добавили необходимые изменения в генератор обвязок (bindgen). Таким образом, сопровождающие
подсистему управления памятью при продвижении изменения, полностью корректного с точки зрения кода на Си и ядра в целом, оказались зависимы от опционального стороннего кода в ядре, за который отвечают другие люди.
Отказ принимать код обвязки над вызовами DMA поставил разработчиков проекта Rust for Linux в тупик, так как без подобных обвязок разработка полноценных драйверов на языке Rust будет затруднена. Гектор Мартин (Hector Martin), мэйнтейнер кода для поддержи ARM-чипов Apple и лидер проекта Asahi Linux, в качестве варианта разрешения конфликта предложил добиться принятия обвязки напрямую через Линуса Торвальдса, в обход сопровождающего подсистему DMA. Если Линус согласится на подобное нарушение субординации и сложившейся практики, это может привести к кризису управления разработкой ядра, а если откажется - остановит продвижение Rust в ядро.
Как вариант, Гектор упомянул привлечение Кристофа к ответственности за нарушение кодекса поведения из-за комментария, в котором Кристоф сравнил Rust с раковой опухолью. Кроме того, Гектор написал, что устал от всех бюрократических проволочек, не готов просто довериться сложившимся процессам и намекнул на привлечение внимания к проблеме в социальных сетях. Дэйв Эйрли (Dave Airlie), мэйнтейнер подсистемы DRM, посоветовал не раздувать конфликт и понять, что токсичное поведение недопустимо с обеих сторон, независимо от того, прав или не прав участник дискуссии.
К обсуждению подключился Линус Торвальдс, который указал, что проблема возможно в самом Гекторе и его самоуверенности в том, что он знает что-то лучше других, а не в текущем процессе разработки ядра, который работает. У процесса разработки ядра есть проблемы, но это жизненная реальность - в жизни нет ничего идеального. Попытки травли через социальные сети - это то, что отбивает желание у Линуса иметь что-либо общее с подходом Гектора. Значение для Линуса имеют технические обсуждения и патчи, а не оказание давления через социальные сети.
В ответ Гектор отправил запрос на удаление себя из числа сопровождающих платформу ARM/Apple, так как он потерял веру в применяемый в ядре процесс разработки и подход к управлению сообществом. Он также заявил, что разработка платформы ARM/Apple будет продолжена вне основного ядра Linux. У платформы ARM/Apple в ядре остался ещё один мэйнтейнер - Свен Питер (Sven Peter), который намерен продолжить поддержание платформы в ядре своими силами.
Компания Google после шести лет работы над проектом объявила о начале производства чипа, построенного на базе открытой платформы OpenTitan. Чип выпускается компанией Nuvoton и отмечен как первая реализация OpenTitan, готовая для использования в рабочих проектах. В настоящее время для тестирования выпущена пробная партия, а запуск массового производства намечен на весну этого года.
OpenTitan представляет собой платформу для создания заслуживающих доверия аппаратных компонентов (RoT, Root of Trust), применяемых там, где нужно гарантировать целостное состояние аппаратных и программных элементов системы. Например, для того, чтобы удостоверить, что критически важные части системы не были подменены и основываются на проверенном и авторизированном производителем коде. Проект предоставляет готовый, проверенный и надёжный каркас, позволяющий повысить доверие к создаваемым решениям и снизить издержки при разработке специализированных чипов для обеспечения безопасности.
Чипы на базе OpenTitan могут использоваться в серверных материнских платах, сетевых картах, потребительских устройствах, маршрутизаторах и устройствах интернета вещей для верификации прошивок и загружаемых компонентов, для генерации криптографически уникальных идентификаторов системы (защита от подмены оборудования), для предоставления связанных с безопасностью сервисов, для защиты криптографических ключей (изоляция ключей в случае получения злоумышленником физического доступа к оборудованию) и для ведения изолированного лога аудита, который невозможно отредактировать или стереть.
OpenTitan включает логические блоки, востребованные в RoT-чипах, такие как открытый микропроцессор на базе архитектуры RISC-V (RV32IMCB Ibex), криптографические сопроцессоры, аппаратный генератор случайных чисел, менеджер ключей с поддержкой DICE, механизм защищённого хранения данных в постоянной и оперативной памяти, технологии защиты, блоки ввода/вывода и компоненты безопасной загрузки. Устройство также предоставляет блоки с реализацией типовых алгоритмов шифрования, таких как AES и HMAC-SHA256, и ускоритель математических операций, применяемых в алгоритмах для работы с цифровыми подписями на базе открытых ключей.
Проект основан компанией Google, но передан некоммерческой организации lowRISC, после чего к его разработке присоединились такие компании, как Western Digital, Seagate, Nuvoton Technology, Winbond, Rivos, zeroRISC и G+D Mobile Security. Связанный с проектом код и спецификации аппаратных компонентов опубликованы под лицензией Apache 2.0. В основу решений, применяемых в OpenTitan, заложены технологии уже используемые в криптографических USB-токенах Google Titan и TPM-чипах для обеспечения верифицированной загрузки, устанавливаемых на серверах в инфраструктуре Google, а также на устройствах Chromebook и Pixel.
В отличие от существующих реализаций Root of Trust, OpenTitan развивается в соответствии с концепцией "безопасность через прозрачность", подразумевающей доступность кода и схем, а также применение полностью открытого процесса разработки, не привязанного к конкретным поставщикам и производителям чипов. OpenTitan стал первой выпущенной на рынок открытой реализацией Root of Trust, в которой имеется поддержка постквантового механизма безопасной загрузки, основанного на использовании алгоритма формирования цифровых подписей SLH-DSA (Sphincs+), стойкого от подбора на квантовых компьютерах.
Несколько уязвимостей в беспроводных маршрутизаторах Zyxel, D-Link и Netgear, позволяющих получить удалённый доступ к устройству без аутентификации.
В беспроводных маршрутизаторах Zyxel выявлено (CVE-2025-0890) наличие учётных записей с предопределёнными паролями, позволяющих получить доступ к устройству. Анализ прошивки показал, что в файле /etc/default.cfg предопределены учётные записи supervisor:zyad1234, admin:1234 и zyuser:1234. Кроме того, на устройствах выявлены уязвимости (CVE-2024-40890, CVE-2024-40891), позволяющие осуществить подстановку системных команд при отправке специально оформленного POST-запроса к CGI-скриптам в web-интерфейсе или при запуске операций, предоставляемых через telnet. Производитель предоставляет через telnet ограниченный доступ, позволяющий выполнять лишь отдельные операции, такие как ping и tftp.
Выставленные ограничения оказалось можно обойти и получить полный shell-доступ с правами root, выполнив, например, "tftp -h || sh". Комбинация указанных проблем, даёт возможность удалённому неаутентифицированному атакующему подключиться к устройству по протоколу telnet или через web-интерфейс и выполнить свой код с правами root. В сети уже зафиксировано использования данных уязвимостей для установки на устройства вредоносного ПО Mirai.
Уязвимость затрагивает модели устройств VMG1312-B10*, VMG3313-B10A,
VMG3926-B10B, VMG4325-B10A, VMG4380-B10A, VMG8324-B10A, VMG8924-B10A, SBG3300 и SBG3500. Компания Zyxel сообщила, что не собирается выпускать обновление прошивки для устранения выявленных проблем, так как время сопровождения данных устройств истекло. Кроме того, утверждается, что доступ к web-интерфейсу и telnet на проблемных устройствах по умолчанию отключён для обращений из внешней сети.
При этом выявившие уязвимость исследователи смогли при помощи сервисов FOFA и Censys найти около 1500 уязвимых устройств, принимающих запросы через telnet из внешней сети.
В беспроводных маршрутизаторах D-Link серии DSL-3788 выявлена уязвимость (CVE-2024-57440), позволяющая без прохождения аутентификации удалённо выполнить код на устройстве. Для совершения атаки достаточно отправить на запрос к CGI-скрипту webproc с указанием в поле sessionid слишком большого значения, приводящего к переполнению буфера. Проблема вызвана отсутствием проверки размера входных данных в функции COMM_MakeCustomMsg. Компания D-Link устранила проблему в обновлении прошивки 1.01R1B037
В беспроводных маршрутизаторах Netgear выявлены две уязвимости. Первая уязвимость затрагивает модели Netgear XR1000, XR1000v2 и XR500, и позволяет без прохождения аутентификации удалённо выполнить код на устройстве. Вторая уязвимость проявляется в моделях Netgear WAX206,
WAX220 и WAX214v2, и даёт возможность получить доступ к устройству в обход процесса аутентификации. Детали об эксплуатации уязвимостей пока не раскрываются. Уязвимости устранены в февральских обновлениях прошивок.
Организация The Document Foundation опубликовала релиз офисного пакета LibreOffice 25.2. Готовые установочные пакеты подготовлены для различных дистрибутивов Linux, Windows и macOS. В подготовке выпуска приняли участие 176 разработчиков. 47% изменений внесены 50 сотрудниками курирующих проект компаний, таких как Collabora и Allotropia, 31% - семью работниками организации The Document Foundation, а 22% изменений - 119 независимыми энтузиастами.
Выпуск LibreOffice 25.2 снабжён меткой "Community", будет поддерживаться энтузиастами и не нацелен на применение на предприятиях. LibreOffice Community без ограничений доступен бесплатно всем без исключения, в том числе корпоративным пользователям. Для предприятий, нуждающихся в дополнительном сервисе, отдельно развиваются продукты семейства LibreOffice Enterprise, для которых партнёрскими компаниями будет предоставляться полноценная поддержка, возможность получать обновления длительное время (LTS) и дополнительные функции, такие как SLA (Service Level Agreements).
Добавлена поддержка чтения и записи документов в формате OpenDocument 1.4 (ODF), который пока не стандартизирован и находится на стадии тестирования первого чернового варианта спецификации.
Предоставлена возможность настройки темы оформления приложения,
независимо от темы оформления среды рабочего стола. Для изменения параметров темы оформления добавлена вкладка "Tools ▸ Options ▸ LibreOffice ▸ Appearance", в которой можно на свой вкус поменять цвета, в том числе переопределить цвета, заимствованные из системной темы, а также выбрать цветовой режим (тёмный, светлый или соответствующий режиму системной темы).
Добавлена поддержка размещения произвольного изображения в качестве фона окна с документом.
Для изменения настроек оформления предложено использовать расширения с темами, которые можно установить, нажав на кнопку "Больше тем" на странице выбора темы.
Реализована возможность отображения страниц помощи в тёмном режиме.
Предложен новый экспериментальный диалог для управления макросами (Tools ▸ Macros ▸ Macro Manager), в котором объединены пять ранее доступных диалогов, связанных с макросами.
Добавлена возможность показа в списке недавно используемых файлов ("File ▸ Recent Documents") только файлов, связанных с текущим модулем (например, только электронных таблиц в Calc). Для включения фильтра предложена опция "[x] Current Module Only" ("[x] Только текущий модуль").
В секцию со свойствами в боковой панели добавлены настройки автоматического переноса конца слов на другую строку.
Добавлена возможность автоматического подписания документов цифровой подписью, после определения сертификата по умолчанию.
Предоставлена возможность назначения клавиатурных комбинаций для активации команд установки цвета текста и фона.
Добавлена поддержка вставки из буфера обмена отформатированного текста, в котором для зачёркивания использованы HTML-теги <strike>, <s> или <del>.
Добавлена функция для удаления всей персональной информации, связанной с документом, такой как имена авторов, время создания и редактирования, название принтера, настройки, используемый шаблон, имена авторов комментариев и отслеживаемых изменений.
Изменения в Writer:
Обновлены значки, показываемые перед элементами в неупорядоченных списках.
Границы объектов теперь включаются через меню "View ▸ Boundaries" ("Вид ▸ Границы"), независимо от настроек значков форматирования, и настраиваются в секции "Tools ▸ Options ▸ Writer ▸ Formatting Aids" ("Сервис ▸ Параметры ▸ Writer ▸ Знаки форматирования").
Добавлена подсказка с числом слов и символов в разделе, показываемая при наведении курсора мыши на заголовок раздела в панели Навигатор.
В системе отслеживания изменений улучшено управление большим числом изменений в крупных документах. Обеспечена наглядная подсветка элементов в окне "Manage Changes" ("Управление изменениями") и боковой панели, при щелчках мышью на изменениях в документе. В диалог и боковую панель, связанные с отслеживанием изменений, добавлены настройки сортировки.
При импорте документов в формате DOCX улучшен откат на запасные шрифты и налажена корректная отрисовка линий.
Для открываемых документов добавлена опция для выставления уровня масштабирования по умолчанию, более приоритетного, чем уровень масштабирования, заданный в самом документе.
Добавлена поддержка преобразования ответа на комментарий в корневой комментарий.
В мастер нумерации страниц добавлена опция для помещения номера в существующие поля для исключения перенумерации страниц.
Добавлена возможность удаления определённого типа содержимого (например, всех изображений) через панель Навигатор (Navigator).
Предоставлена возможность настройки цветов непечатных символов и фона комментариев.
Добавлена возможность преобразования всех сносок внизу страниц в сноски в конце документа и наоборот.
Добавлена поддержка интеграции заголовков непосредственно в основной текст, без выноса в отдельную строку.
Изменения в табличном процессоре Calc:
В строку состояния добавлен индикатор отключения режима автоматического пересчёта формул при их вводе или изменении (Data ▸ Calculate ▸ AutoCalculate).
Добавлен диалог для выделения или удаления дублирующихся записей в выбранных ячейках.
Добавлена поддержка импорта и экспорта файла connections.xml (Power Query) для OOXML.
Улучшен интерфейс и расширены возможности поиска в диалоге "Мастер функций" (Function Wizard) и вкладки "Функции" (Functions) в боковой панели.
Изменено поведение операции "Выделить всё" - при нахождении в ячейке, выполнение данной операции приведёт к выделению всех соседних ячеек с данными при первом вызове, а при следующем вызове - выделению всего листа. Для отключения данного поведения добавлена настройка SelectRangeBeforeAll.
Добавлена возможность сохранения моделей решателя (Solver) в файле с электронной таблицей, а также генерации отчётов с анализом чувствительности (анализ степени влияния исходных параметров на результат).
Добавлена настройка WrapNextPrevSheetTab для управления поведением при навигации по листам электронной таблицы при помощи клавиатурных комбинаций "Ctrl + PgDn" и "Ctrl + PgUp".
В диалог "Промежуточные итоги" (Subtotals) добавлена опция "Итог под данными" (Summary below data) для отображения сводной информации внизу таблицы.
Добавлены настройки защиты листов электронной таблицы, связанные со сводными таблицами, сводными диаграммами и автоматическими фильтрами.
Изменения в системе создания презентаций Impress:
Диалог для выполнения действий при щелчке мышью на слайдах во время презентации переведён на работу в неблокирующем режиме.
Реализована возможность настройки полупрозрачного текста в привязке к отдельным абзацам при экспорте в формате SVG.
В оконном режиме добавлена поддержка активации автоматического повтора слайдов.
В объектах с текстом, обведённым рамкой, разрешены эффекты сглаживания краёв и свечения.
Добавлено множество небольших улучшений в шаблоны. В шаблонах Nature_Illustration, Pencil и Piano изображения заменены на фигуры, которые можно изменять. В шаблонах Blueprint Plans и Metropolis вместо фоновых растровых изображений задействованы векторные изображения в формате SVG. В шаблоне DNA улучшена отрисовка двойной спирали ДНК. В шаблонах "Blueprint Plans" и "Vintage" удалены финальные слайды. В режимах Master Notes и Handout теперь все шаблоны имеют видимые элементы. В диалог "File ▸ Properties" добавлена информация об авторах.
В элемент "Align" контекстного меню добавлена опция для центрирования объектов в слайде Impress или на странице Draw.
Устранена проблема с обрезкой выступающего текста примечаний при выводе презентации на печать.
В Draw реализована поддержка обрезания контуров объектов в импортированных PDF-документах.
В Base улучшен интерфейс диалога работы с SQL-запросами. Обеспечено сохранение пользовательского ввода в рамках сеанса и добавлен показ числа результатов. Добавлена поддержка ODBC-вызовов с Unicode.
В Math предоставлена возможность сохранения формул в категориях, определённых пользователем.
Улучшена совместимость с форматом OOXML, применяемым в MS Office.
Улучшена поддержка формата Microsoft Visio 5. Библиотека libvisio обновлена до версии 0.1.8.
Для платформы macOS предоставлено дополнение для быстрого предпросмотра документов c использованием механизма Quick Look.
На следующий выпуск LibreOffice 25.8 запланировано прекращение поддержки платформ Windows 7 и Windows 8/8.1.
После более года разработки представлен значительный выпуск дистрибутива OpenWrt 24.10.0, развиваемого для сетевых устройств, таких как маршрутизаторы, коммутаторы и точки доступа. OpenWrt поддерживает 1970 устройств и предлагает систему сборки, упрощающую кросс-компиляцию и создание собственных сборок. Подобные сборки позволяют формировать готовые прошивки с желаемым набором предустановленных пакетов, оптимизированные под конкретные задачи. Готовые сборки опубликованы для 39 целевых платформ (в прошлой ветке поддерживалось 36 платформ).
По умолчанию включена поддержка TLS 1.3, реализованная благодаря обновлению библиотеки mbedtls до версии 3.6.
Для устройств с большим размером Flash-памяти во всех файловых системах активирована поддержка ACL (POSIX Access Control List) и атрибутов безопасности. Изменение затрагивает устройства, для которых не выставлен флаг small_flash. В настоящее время small_flash указан для платформ ath79/tiny, bcm47xx/legacy, lantiq/ase, lantiq/xrx200_legacy, lantiq/xway_legacy, ramips/mt76x8, ramips/rt288x, ramips/rt305x и ramips/rt3883.
Для устройств с большим размером Flash-памяти в ядре включена поддержка MPTCP (MultiPath TCP), расширения протокола TCP для доставки TCP-пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы.
Улучшена поддержка Wi-Fi 6 (802.11ax) и добавлена начальная поддержка Wi-Fi 7 (802.11be).
Улучшена работа фонового процесса lldpd с реализацией протокола LLDP (Link Layer Discovery Protocol).
Добавлена поддержка более 100 новых устройств, среди которых выделяется собственный беспроводной маршрутизатор OpenWrt One, развиваемый сообществом OpenWrt. Общее число поддерживаемых устройств достигло 1970.
Добавлены платформы d1 и starfive для устройств на базе SoC AllWinner D1 и StarFive JH71x0 (7100/7110), использующих архитектуру RISC-V.
Добавлена платформа ixp4xx для SoC Intel XScale IXP4xx на базе архитектуры ARM.
Добавлена платформа loongarch64 для устройств с процессорами на базе архитектуры LoongArch.
Добавлена платформа stm32 для SoC STMicroelectronics STM32.
Удалены платформы ath25 (Atheros ieee80211g c 16 МБ ОЗУ), bcm63xx (Broadcom DSL MIPS, на смену пришла платформа bmips), octeontx (Octeon-TX CN80XX/CN81XX) и oxnas (PLXTECH/Oxford NAS782x/OX8xx). Платформа ipq807x переименована в qualcommax.
Сформированы готовые сборки для платформы qoriq (SoC NXP QorIQ на базе архитектуры PowerPC).
Продолжен перевод целевых платформ на использование подсистемы ядра DSA (Distributed Switch Architecture), предоставляющей средства для настройки и управления каскадами соединённых между собой Ethernet-коммутаторов, применяя механизмы для настройки обычных сетевых интерфейсов (iproute2, ifconfig). DSA может применяться для настройки портов и VLAN вместо ранее предлагаемого инструмента swconfig, но не все драйверы коммутаторов пока поддерживают DSA. В новом выпуске DSA задействован для платформы ipq806x (SoC Qualcomm Atheros IPQ806X). Добавлена поддержка DSA-коммутатора Airoha AN8855 (Xiaomi AX3000T, используется в коммутаторах Mediatek и Airoha).
Обновлены версии пакетов, включая musl 1.2.5, glibc 2.38, gcc 13.3.0, binutils 2.42, hostapd от сентября 2024 г., dnsmasq 2.90,
dropbear ssh 2024.86.
Ядро Linux обновлено до выпуска 6.6.73 с беспроводным стеком cfg80211/mac80211, портированным из ядра 6.12.6. (в прошлой ветке поставлялось ядро 5.15 с беспроводным стеком из ядра 6.1).
Несмотря на миграцию проекта на пакетный менеджер APK, ветка OpenWrt 24.10 продолжает использовать пакетный менеджер OPKG. Переход на APK пока осуществлён только в ветке "main", которая послужит основой для следующего значительного релиза OpenWrt.
При переходе с ветки OpenWrt 23.05 на устройствах Linksys E8450, Belkin RT3200 и Zyxel GS1900 возникают проблемы с обновлением. Пользователям данных устройств следует учесть отдельные рекомендации.
Поддержка Xiaomi AX3200 и Redmi AX6S сломана. Пользователям данных устройств следует подождать 24.10.1.