Компания Базальт СПО представила мобильную платформу ALT Mobile 11.0 ("Альт Мобильный"), предназначенную для смартфонов, планшетов и встраиваемых устройств с сенсорным экраном, таких как считыватели штрихкодов, контрольно-кассовые аппараты и терминалы сбора данных. Платформа построена на пакетной базе репозитория Сизиф (p11) и укомплектована графической оболочной Phosh, основанной на технологиях GNOME и использующей композитный сервер Phoc.
Для загрузки подготовлены образы для архитектур x86_64 и ARM64, которые можно использовать для установки на устройства PinePhone, PinePhone Pro, PineTab 2 и планшеты "MIG" (на архитектуре x86-64), а также для запуска в QEMU. Платформа также портирована для работы на игровых приставках Anbernic, PowKiddy, Retroid на базе SoC Rockchip, Allwinner и Qualcomm.
Свободно использовать загруженную версию могут только физические лица, в том числе - индивидуальные предприниматели. Коммерческие и государственные организации могут скачивать и тестировать платформу, но для постоянной работы в корпоративной инфраструктуре юридическим лицам необходимо приобретать лицензии или заключать лицензионные договоры в письменной форме. При этом разработка ALT Mobile ведётся в соответствии с принципами свободного программного обеспечения и кодовая база полностью открыта.
Платформа предоставляет возможность работы с системой нескольких пользователей, для переключения между которыми задействован менеджер входа Phrog. При необходимости можно использовать Waydroid и Wine для запуска приложений, собранных для Android и Windows, а также открывать эмулятор терминала для работы в командной строке. Поддерживается полнодисковое шифрование на базе LUKS.
При подключении мобильного устройства с монитору, клавиатуре и мыши платформа позволяет использовать систему в качестве полноценной рабочей станции с GNOME-подобным окружением. Возможна установка приложений, имеющихся в репозиториях для десктоп-редакций ALT Linux, а также пакетов в формате flatpak.
Среди задействованных в платформе приложений:
Типовые приложения GNOME: конфигуратор GNOME Control Center 48.4,
центр приложений GNOME Software 49.2, эмулятор терминала GNOME Console 48.0.1, ведение списка дел Errands 46.2.9, переводчик Dialect 2.5.0, генератор кодов двухфакторной аутентификации GNOME Authenticator, Калькулятор, Календарь, Часы, Текстовый редактор, Погода, Камера, Файловый менеджер.
Программы, созданные командой ALT Linux Team: менеджер ярлыков в меню приложений Folder Manager 5.1, подсчёт хеш-сумм файлов Hashsum 4.0.9, дополнительные настройки ALT Tweaks 0.2.1, аутентификация в домене Mobile Auth 1.1.
Комитет ISO по стандартизации языка C++ утвердил финальный вариант спецификации, образующей международный стандарт "C++26". Представленные в спецификации возможности частично уже поддерживаются в компиляторах GCC, Clang и Microsoft Visual C++. Поддерживающие C++26 стандартные библиотеки реализованы в рамках проекта Boost.
В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2026.
Реализованы элементы контрактного программирования (Contracts), позволяющие определять формальные спецификации интерфейсов при помощи трёх новых операторов: pre (предусловие), post (постусловие) и contract_assert (проверка утверждения). Оператор "pre" определяет предварительные условия, которые должны быть выполнены перед вызовом (проверка входных данных); "post" - условия, которые должны соблюдаться после выполнения (требования к выходным данным); contract_assert - условия возникновения исключений. Возможность появится в GCC 16.
int f(const int x)
pre (x != 1) // требования ко входным данным
post (r : r == x && r != 2) // требования к результату; r - значение с результатом
{
contract_assert (x != 3);
return x;
}
Добавлена поддержка рефлексии (Reflection), позволяющей отслеживать и модифицировать элементы программы на стадии компиляции. Добавлены новые операторы "^^" для получения метаинформации о грамматической конструкции и "[:…:]" для выполнения обратного преобразования. Для преобразования и обработки полученной в ходе инспектирования информации предложена библиотека std::meta и доступны такие возможности, как вычисления с константами. Поддержка рефлексии будет добавлена в GCC 16.
constexpr int i = 42, j = 42;
constexpr std::meta::info r = ^^i, s = ^^i;
static_assert(r == r && r == s);
static_assert(^^i != ^^j); // 'i' и 'j' имеют различные значения.
static_assert(constant_of(^^i) == constant_of(^^j)); // 'i' и 'j' одинаковы
static_assert(^^i != std::meta::reflect_constant(42)); // отличается от значения 42
Добавлен оператор "template for" для перебора элементов, таких как пакеты параметров, похожие на кортежи объекты и результаты рефлексии (метаобъекты), на этапе компиляции в стиле обычного цикла. При выполнении "template for" тело цикла раскрывается для каждого элемента и каждая итерация обрабатывается в отдельной области видимости, в которой меняющаяся в цикле переменная является константой. В контексте рефлексии "template for" может применяться для обхода свойств классов или перечислений. Возможность появится в GCC 16.
void f() {
template for (constexpr int I : std::array{1, 2, 3}) {
static_assert(I < 4);
}
}
будет раскрыто в:
void f() {
{
constexpr auto&& __range = std::array{1, 2, 3};
constexpr auto __begin = __range.begin();
constexpr auto __expansion-size = __range.end() - __begin; // 3
{
constexpr int I = *(__begin + 0);
static_assert(I < 4);
}
{
constexpr int I = *(__begin + 1);
static_assert(I < 4);
}
{
constexpr int I = *(__begin + 2);
static_assert(I < 4);
}
}
}
Добавлен фреймворк std::execution для асинхронного и параллельного выполнения кода. Предоставляются объекты scheduler, определяющий планировщик выполнения работ (поток, пул потоков, GPU, event loop), sender, определяющий выполняемую работу, и receiver - обработчик результата.
using namespace std::execution;
scheduler auto sch = thread_pool.scheduler();
sender auto begin = schedule(sch);
sender auto hi = then(begin, []{
std::cout < "Hello world! Have an int.";
return 13;
});
sender auto add_42 = then(hi, [](int arg) { return arg + 42; });
auto [i] = this_thread::sync_wait(add_42).value();
Добавлена библиотека std::simd для распараллеливания выполнения операций над данными при помощи наборов инструкций SIMD, таких как AVX-512 и NEON, с использованием стандартной системы типов C++.
std::simd<float> a = {1.0f, 2.0f, 3.0f, 4.0f};
std::simd<float> b = {5.0f, 6.0f, 7.0f, 8.0f};
std::simd result = a + b;
Предложена реализация вектора (массива) переменного размера std::inplace_vector, размещаемого в стеке, размер которого определяется на этапе компиляции. API близок к std::vector, но элементы массива хранятся не в "куче", а внутри объекта.
Реализована структура данных std::hive для неупорядоченного хранения данных и обеспечения повторного использования памяти, освободившейся после удалённых элементов. Структура оптимизирована для нагрузок с высокой интенсивностью добавления и удаления элементов в произвольном порядке. В отличие от массивов, удаление элемента в std::hive не вызывает сдвига других элементов, а приводит к пометке удалённого элемента пустым с последующим заполнением освободившейся позиции при добавлении нового элемента.
Добавлена библиотека std::linalg c API для линейной алгебры, основанный на BLAS.
Добавлена поддержка механизма синхронизации Hazard pointer, позволяющего без выставления блокировок предотвратить освобождение памяти объектов, с которыми продолжается работа в других потоках. При удалении объекта, он лишь помечается удалённым, но занимаемая объектом память освобождается только когда все потоки снимут hazard-указатель, выставляемый во время работы с объектом.
Добавлена поддержка механизма синхронизации RCU (Read-Copy Update) - при операциях записи создаётся новый экземпляр объекта, а операции чтения не блокируются, а продолжают работать со старым экземпляром. После завершения изменения новый экземпляр становится активным и новые операции чтения уже производятся с ним, а старый экземпляр удаляется после завершения читающих его потоков.
Внесены изменения для усиления безопасности стандартной библиотеки, такие как проверки допустимых значений и выхода за границы буфера. Например, при доступе к элементу "constexpr reference operator[](size_type idx) const;" добавляется проверка условия "idx < size()".
Предоставлена возможность использования ключевого слова "constexpr" с разновидностью оператора "new" (placement new) для размещения объекта в заранее выделенной памяти во время компиляции.
Добавлена поддержка структурированных привязок (structured binding) в контексте "constexpr", т.е. ссылки на константные выражения теперь сами могут быть константными выражениями. Поддержка реализована для массивов и простых структур.
constexpr int arr[] = {1, 2};
constexpr auto [x, y] = arr;
В структурированные привязки добавлена возможность использования синтаксиса "..." для указания пакетов (pack), захватывающих оставшееся число элементов из присваиваемой последовательности.
auto [x,y,z] = f(); // в переменные x, y, z будут записаны три элемента, возвращённые f().
auto [...xs] = f(); // в пакет xs будут записаны все элементы, возвращённые f().
auto [x, ...rest] = f(); // В x будет записан первый элемент, а в rest - остальные.
auto [x, y, ...rest] = f(); // В x будет записан первый элемент, в y - второй, а в rest - третий.
auto [x, ...rest, z] = f(); // в x - первый, в rest - второй, в z - третий.
Добавлена поддержка "тривиальной перемещаемости" типов (Trivial Relocatability), позволяющей оптимизировать перемещения объектов заданного типа через их клонирование в памяти без вызова конструкторов или деструкторов. Для классов реализованы свойства memberwise_trivially_relocatable и memberwise_replaceable, а для низкоуровневого перемещения одного или нескольких объектов добавлены функции trivially_relocate_at и trivially_relocate.
Реализована поддержка прикрепления функции main() к глобальному модулю и определения функции main() в именованных модулях.
Предоставлена возможность применения структурированного связывания (structured binding) в качестве условия в операторах if и switch.
Добавлена возможность использования сразу нескольких переменных-заполнителей с именем "_" в одной области видимости, например, теперь являются корректными конструкции:
struct S {
int _, _;
};
void func() {
int _, _;
}
void other() {
int _; // ранее выводилось предупреждение в режиме -Wunused
}
Предоставлена возможность использования строковых литералов в контексте, в котором они не используются для инициализации массива символов и не попадают в результирующий код, а применяются только во время компиляции для диагностических сообщений и препроцессинга, например, в качестве параметров директив и атрибутов _Pragma, asm, extern, static_assert, [[deprecated]] и [[nodiscard]].
Добавлены встроенные функции: "__builtin_is_within_lifetime" для проверки активности альтернативы в объединениях (union) и "__builtin_is_virtual_base_of" для проверки является ли базовый класс виртуальным.
Обеспечен вывод ошибки при удалении указателя на неполный тип.
Объявлен устаревшим синтаксис определения вариативных параметров с многоточием без предшествующей запятой (например, когда указывается "void e(int...)" вместо "void e(int, ...)").
Запрещено использование макросов для объявления модулей.
Переведено в разряд устаревших выполнение неявных преобразований перечисляемых значений в арифметических вычислениях.
int main() {
enum E1 { e };
enum E2 { f };
bool b = e <= 3.7; // устарело
int k = f - e; // устарело
int x = +f - e; // OK
}
Прекращена поддержка прямого сравнения массивов.
int arr1[5];
int arr2[5];
bool same = arr1 == arr2;
Разработчики VoIP-платформы Telnyx предупредили пользователей о компрометации пакета telnyx в репозитории PyPI, насчитывающего 756 тысяч загрузок в месяц и предоставляющего SDK для обращения к API Telnyx из программ на языке Python. 27 марта атакующие смогли опубликовать два вредоносных выпуска telnyx 4.87.1 и 4.87.2, получив доступ к PyPI после захвата учётных данных сопровождающего. Вредоносные версии распространялись с 6:51 до 13:13 (MSK), после чего были заблокированы администрацией PyPI. Инфраструктура, API, голосовые сервисы и платформа Telnyx не пострадали.
Компрометация была произведена в ходе более масштабной supply chain атаки TeamPCP, в ходе которой на днях были скомпрометированы Python-пакеты LiteLLM и Trivy, а также интегрирован вредоносный код в OpenVSX-дополнение Checkmarx и внедрён вредоносный червь в 68 пакетов в репозитории NPM. Используемый для шифрования отправляемых данных RSA-ключ совпадал с ключами, применявшимися в других атаках группы TeamPCP.
В сформированные атакующими версии был
встроен вредоносный код, который был интегрирован в файл "_client.py" и активировался при импорте модуля. После активации с серверов атакующих загружался звуковой файл ringtone.wav для Unix-подобных систем и hangup.wav для Windows. Данные файлы успешно воспроизводились как звуковые, но содержали интегрированные при помощи стеганографии скрытые вредоносные обработчики.
На платформе Windows вредоносный обработчик сохранялся в систему как "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\msbuild.exe" и запускался при каждом входе.
В macOS и Linux осуществлялись поиск и отправка SSH-ключей, учётных данных, содержимого переменных окружения, токенов доступа к API, параметров подключения к облачным сервисам AWS, GCP, Azure и K8s, ключей от криптокошельков, паролей к СУБД и т.п. Обнаруженные данные шифровались с использованием алгоритмов AES-256-CBC + RSA-4096 и отправлялись HTTP POST-запросом на внешний хост.
Язык Swift сочетает лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти, контроля переполнения переменных и массивов, защитой от использования неинициализированных переменных и блокированием доступа к памяти после её освобождения, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, который по заявлению Apple до 2.6 раз быстрее Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий инструменты для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.
Предложен первый официальный релиз Swift SDK для платформы Android, позволяющий использовать язык Swift для разработки приложений для Android, а также встраивать отдельные компоненты на Swift в существующие Android-приложения, написанные на Java и Kotlin.
Добавлен атрибут "@c", позволяющий экспортировать написанные на Swift функции и перечисления (enum) для использования в коде на языке Си (генерируется заголовочный файл для Си с соответствующими объявлениями функций и определениями перечислений).
Реализованы селекторы модулей, позволяющие явно указывать, из какого модуля использовать API, если несколько импортированных модулей предоставляют API с одинаковым именем.
import ModuleA
import ModuleB
let x = ModuleA::getValue() // вызов 'getValue' из ModuleA
let y = ModuleB::getValue() // вызов 'getValue' из ModuleB
Добавлены новые атрибуты для управления оптимизациями, применяемыми компилятором: @specialize - специализация обобщённых (generic) API для часто используемых типов; @inline - inline-развёртывание функции по месту вызова; @export(implementation) - экспорт реализации функции в стабильный ABI библиотеки.
Предложена предварительная реализация варианта сборочной системы Swift Build, интегрированного в пакетный менеджер SwiftPM (Swift Package Manager).
Джон Сигер (Jon Seager), вице-президент компании Canonical по инжинирингу и технический лидер проекта Ubuntu, объявил о намерении интегрировать в осенний выпуск Ubuntu 26.10 NTP-сервер ntpd-rs, написанный на языке Rust и уже применяемый в инфраструктуре удостоверяющего центра Let's Encrypt. Проект ntpd-rs станет третьим компонентом, после Rust Coreutils и sudo-rs, интегрированным в Ubuntu в рамках инициативы по повышению качества системного окружения через поставку программ, изначально разрабатываемых с оглядкой на безопасность, надёжность и корректность.
На стадии обсуждения также находится замена библиотеки zlib на zlib-rs и задействование пакета Sequoia вместо GnuPG в пакетном менеджере APT. Пакет ntpd-rs намерены задействовать по умолчанию в качестве сервера и клиента синхронизации точного времени, который со временем заменит собой ныне применяемые пакеты chrony, linuxptp и возможно gpsd. Предложенный для внедрения план подразумевает поставку актуальной версии пакета ntpd-rs в репозитории Ubuntu 26.10 в качестве опции для тестирования. В Ubuntu 27.04 планируют задействовать ntpd-rs по умолчанию в качестве унифицированного сервера и клиента с поддержкой протоколов NTP, NTS и PTP.
Проект ntpd-rs развивается организацией Trifecta Tech Foundation, которая также отвечает за разработку уже интегрированной в Ubuntu утилиты sudo-rs. Компания Canonical профинансирует разработку новых возможностей и усиления безопасности в ntpd-rs. Среди прочего, в ntpd-rs намерены интегрировать наработки проекта Statime, развивающего реализацию протокола PTP (Precision Time Protocol) на языке Rust, чтобы унифицировать поддержку актуальных протоколов синхронизации времени в одном пакете и использовать ntpd-rs не только как замену chrony, но и linuxptp.
Из дополнительных возможностей, которые предстоит реализовать в ntpd-rs до внедрения, отмечается реализация протоколов gPTP и CSPTP, поддержка IP-сокета gpsd, многопоточный режим работы NTP-серверов, возможность использования в режиме multi-homed, создание профилей изоляции на базе AppArmor и seccomp, предоставление инструментария для тестирования и оценки производительности, внесение улучшений, связанных в ведением логов и настройкой, усовершенствование утилиты ntp-cli.
Помимо совместных проектов с организацией Trifecta Tech Foundation компания Canonical также вошла в число "золотых" участников организации Rust Foundation, занимающейся развитием и поддержкой языка Rust и связанной с ним экосистемы. Кроме компании Canonical, которая стала единственным золотым участником, ключевое финансирование разработки Rust оказывают 6 платиновых участников - Google, Microsoft, Amazon, ARM, Meta и Huawei. Размер взноса золотого участника составляет 150 тысяч долларов в год, платинового - 325 тысяч долларов.
Дополнительно можно отметить объявление Джулиана Андреса Клоде (Julian Andres Klode) из компании Canonical, сопровождающего проект APT, о намерении сокращения числа парсеров в загрузчике GRUB c целью снижения поверхности атаки. В Ubuntu 26.10 предложено удалить из заверенных цифровой подписью сборок GRUB поддержку форматов изображений jpeg и png, таблицы разделов part_appleа и возможности использования ФС btrfs, hfsplus, xfs и zfs для раздела /boot. Помимо этого, намерены удалить поддержку использования в /boot разделов LVM, md-raid (кроме raid1) и шифрованных разделов LUKS.
Отмечается, что в инсталляторе Ubuntu для /boot всегда используется только ФС ext4, а другие системы не тестируются и представляют угрозу обхода режима верифицированной загрузки на фоне периодического выявления уязвимостей в GRUB (1, 2, 3, 4, 5, 6, 7). Что касается удаления поддержки шифрования раздела /boot, то такая операция рассматривается как бесполезная (security by obscurity) - в данном контексте важно обеспечить проверку целостности в разделе /boot, что осуществляется при помощи TPM FDE, а не скрытие данных. В разделах, отличных от /boot, как и раньше можно будет использовать LUKS, LVM и MD-RAID. Ограничения также не будут применяться при загрузке не в режиме UEFI Secure Boot.
Группа независимых энтузиастов опубликовала проект Monogram, развивающий новый открытый клиент мессенджера Telegram для мобильной платформы Android. Проект написан на языке Kotlin с задействованием декларативного UI-фреймворка Jetpack Compose. Код открыт под лицензией GPLv3 (также у проекта есть свой Telegram-канал).
Основным мотивом для создания альтернативного приложения заявлена необходимость обеспечения прозрачности разработки и решение накопившихся проблем оригинального клиента. Авторы проекта отмечают, что кодовая база официального приложения Telegram для Android со временем превратилась в переусложнённый монолит, в запутанном коде которого сторонним разработчикам стало практически невозможно разобраться. Кроме того, критике подверглась текущая практика создателей мессенджера, выражающаяся в систематическом замедлении публикации исходных текстов, при которой изменения в открытых репозиториях появляются со значительной задержкой после выхода бинарных сборок в каталогах приложений.
Дополнительным катализатором для развития независимого проекта стала многочисленная критика недавнего редизайна официальной Android-версии, в которой разработчики начали агрессивно внедрять визуальные элементы, свойственные iOS (такие как эффекты размытия фона и полупрозрачность в стиле "Liquid Glass"), игнорируя при этом рекомендации по дизайну Android.
За сетевое взаимодействие, работу с протоколом MTProto и сквозное шифрование в новом клиенте отвечает официально поставляемая библиотека TDLib (Telegram Database Library), ядро которой реализовано на языке C++. Сама разработка клиентской части ведётся с упором на использование современных встроенных инструментов платформы, высокую производительность и минимизацию потребления системных ресурсов.
Среди ключевых особенностей проекта выделяются:
Пользовательский интерфейс, построенный в строгом соответствии с концепцией Material Design 3, выступающей стандартом нативного визуального оформления Android, в сочетании с использованием встроенных компонентов платформы для работы с медиафайлами, что позволяет добиться высокой плавности и ощутимо уменьшить потребление ресурсов телефона.
Интеграция свободного картографического стека MapLibre для отрисовки геоданных и работы с местоположениями.
Поддержка базовых средств защиты сессии, включая возможность блокировки приложения с использованием системной биометрии.
Доступен выпуск проекта MicroPythonOS 0.9.0, разрабатывающего операционную систему для микроконтроллеров, таких как ESP32, написанную с использованием инструментария MicroPython. Операционная система оснащена графическим интерфейсом, развиваемым с оглядкой на Android и iOS, и поддерживающим управления через сенсорные экраны. Из областей применения MicroPythonOS упоминаются устройства интернета вещей (IoT), системы управления домашней автоматизацией, интерактивные панели, роботы и умные носимые устройства с управлением экранными жестами. Проект также может применяться для быстрой разработки прототипов новых устройств. Код написан на языках Си и Python и распространяется под лицензий MIT.
MicroPythonOS предлагает минимальную базовую систему, отвечающую за инициализацию и взаимодействие с аппаратным обеспечением, монтирование накопителей, многозадачность и интерфейс пользователя. Вся остальная функциональность, такая как настройка Wi-Fi и установка обновлений, вынесена в приложения. В базовый набор входит меню приложений, конфигуратор, виджет для настройки Wi-Fi, программа установки и обновления приложений.
Для приложений предлагается использовать язык MicroPython (урезанная редакция Python 3) и подмножество библиотек Python. Возможна установки внешних приложений, распространяемых через централизованный каталог App Store (например, через App Store распространяются просмотрщик изображений и программа для работы с камерой). Обновления доставляются по сети в режиме OTA (over-the-air). Имеется поддержка Wi-Fi, Blutooth, датчиков IMU (Inertial Measurement Unit), сенсорных экранов и камер.
В новой версии
В конфигураторе подгруппы настроек вынесены в отдельные приложения (например, создано отдельное приложение для настройки Wi-Fi). Добавлены новые подгруппы с настройками беспроводной точки доступа (Hotspot) и web-сервера.
Улучшено воспроизведение и запись звуковых файлов - добавлено отображение прогресса операции и добавлена поддержка аппаратных кнопок изменения громкости.
Переработаны IMU-драйверы для датчиков, добавлен драйвер для магнитометра.
Добавлен инструменатрий для запуска web-сервера. Для плат ESP32 реализован компонент WebREPL (не активирован по умолчанию), предоставляющий оболочку для удалённого доступа к окружению MicroPython через браузер.
Реализована возможность создания беспроводных точек доступа.
Добавлена поддержка плат LilyGo T-Display-S3,
LilyGo T-Watch S3 Plus, M5Stack Fire, ODroid Go и unPhone 9.
Команда CLE (Community Linux Engineering Team), учреждённая в компании Red Hat для решения технических задач проектов Fedora и CentOS, таких как предоставление инфраструктуры, подготовка релизов и обеспечение качества, объявила о готовности к использованию платформы совместной разработки Fedora Forge, построенной на базе проекта Forgejo. Проект Fedora Forge создан для замены собственной платформы Pagure, применяемой в Fedora для совместной работы c кодом и метаданными пакетов. От Pagure решено отказаться, так как данная платформа требует больших ресурсов для сопровождения, находится в состоянии стагнации и не получила широкого распространения вне Fedora.
Командам, участвующим в разработке Fedora Linux, дано время на переход с pagure.io на Fedora Forge до июня 2026 года. После конференции Flock 2026, которая состоится 14-16 июня, содержимое pagure.io будет переведено в архивный режим, допускающий только чтение. После этого до релиза Fedora 46 в 2027 году планируют вывести из обихода и все остальные сервисы, использующие Pagure, включая репозитории с исходным кодом пакетов на src.fedoraproject.org.
В Fedora Forge будет выполняться работа, связанная с:
поддержанием инфраструктуры проекта (управление конфигурацией, разработка инструментов и скриптов развёртывания);
подготовкой релизов и поддержанием пакетов (инструменты, утилиты и шаблоны для сборки, формирования и распространения релизов Fedora);
организацией работы проекта (подготовка документации и спецификаций, совместная работа команд);
Разработка специфичных для Fedora приложений, таких как Fedora Badges, Bodhi и fedmsg.
В Fedora Forge запрещено развивать личные проекты, напрямую не связанные с Fedora. Fedora Forge также не должен применяться в качестве основной площадки для разработки сторонних проектов, даже если пакеты с ними распространяются в репозиториях Fedora.
Отмечается, что в Forgejo пока реализована не вся функциональность
Pagure. Например, отсутствуют необходимые средства для ведения конфиденциальных обсуждений в публичных репозиториях (приватные issue для обсуждения исправления уязвимостей до раскрытия информации). В настоящее время представители Fedora работают с разработчиками Forgejo над реализацией недостающих функций.
Платформа Forgejo является форком проекта Gitea, который в свою очередь ответвился от платформы Gogs. Ключевыми особенностями Forgejo является низкое потребление ресурсов (может использоваться в дешёвых VPS) и простой процесс установки. Предоставляются типовые возможности работы с проектами, такие как управление задачами, отслеживание проблем (issues), pull-запросы, wiki, средства для координации групп разработчиков, подготовка релизов, автоматизация размещения пакетов в репозиториях, управление правами доступа, сопряжение с платформами непрерывной интеграции, поиск кода, аутентификация через LDAP и OAuth, доступ к репозиторию по протоколам SSH и HTTP/HTTPS, подключение web-хуков для интеграции со Slack, Discord и другими сервисами, поддержка Git-хуков и Git LFS, инструменты для миграции и зеркалирования репозиториев.
На конференции KubeCon Europe издание The Register взяло интервью у Грега Кроа-Хартмана (Greg Kroah-Hartman), отвечающего за поддержку стабильной и "staging" веток ядра Linux, занимающего пост мэйнтейнера в 16 подсистемах ядра. В интервью обсуждается отношение Грега к отчётам об ошибках, которые находит AI. AI в ядре уже используется при рецензировании изменений в сетевой подсистеме, eBPF и DRM, плюс для проверки отправляемых изменений недавно интегрировали инструмент Sashiko от Google.
Некоторые из высказываний Грега:
"Несколько месяцев назад мы получали то, что мы называли AI-мусор - сгенерированные через AI отчёты о проблемах с безопасностью, которые были явно неверными или низкого качества. Это было даже забавно. Мы не особо об этом беспокоились... Месяц назад произошло нечто, и ситуация кардинально изменилась. Теперь у нас появляются корректные отчёты."
"Подобная ситуация наблюдается не только в Linux, - все открытые проекты получают подобные отчёты, составленные с помощью AI, но теперь они качественные и валидные. Команды, отвечающие за безопасность в крупнейших открытых проектах, в ходе неформального общения между собой фиксируют одну и ту же тенденцию."
На вопрос, чем это вызвано, Грег ответил: "Мы не знаем. Похоже, никто не знает. Либо многие инструменты стали намного лучше, либо люди начали говорить: 'Эй, давайте разберёмся с этим'. Похоже, это касается множества разных групп и компаний. Что касается ядра, мы с этим справимся. Наша команда стала намного больше, она очень разбросана по миру, и наш рост - это реальность, и он не замедляется. Это мелочи, ничего серьёзного, но помощь в этом вопросе может потребоваться для всех открытых проектов. У небольших проектов гораздо меньше возможностей справиться с внезапно возросшим потоком отчётов об ошибках и уязвимостях, сгенерированных AI, в которых упоминаются настоящие ошибки, а не мусор".
Грег рассказал, что когда он попросил AI найти ошибки из предложенного набора изменений - тот нашёл 60 и предоставил патчи для их исправления. Только треть найденных ошибок являлись таковыми, а из патчей лишь 2/3 оказались верными решениями, не требующими доработки, но всё это было далеко не бесполезно. По словам Грега, мэйнтенеры не могут это игнорировать, тем более, что результаты работы AI становятся всё лучше. Для пометки патчей, созданных с использованием AI, добавили тег "Co-developed-by:". При этом, несмотря на отдельные попытки применения AI для создания новой функциональности, в основном AI в ядре пока используется при рецензировании изменений.
Одним из самых заметных преимуществ AI называется сокращение времени обработки патчей. Когда AI-ассистент выявляет очевидные проблемы, авторы патчей получают отзыв задолго до того, как реальный мэйнтейнер успел бы прочитать патч: "Если я вижу, что система реагирует на что-то, она даёт отзыв автору быстрее, чем это смог бы сделать мэйнтейнер, и это здорово. У нас и так есть ряд ботов, которые проверяют патчи. Если я замечаю, что они выдают ошибку, я сразу понимаю, что мне как мэйнтейнеру даже не нужно на это смотреть. А разработчик думает 'О, я могу завтра сделать другую версию', что помогает немного улучшить обратную связь".
После года разработки опубликован релиз открытой системы параметрического 3D-моделирования FreeCAD 1.1, которая отличается гибкими возможностями кастомизации и наращивания функциональности через подключение дополнений. Интерфейс построен с использованием библиотеки Qt. Дополнения могут создаваться на языке Python. Поддерживается сохранение и загрузка моделей в различных форматах, в том числе в STEP, IGES и STL. Код FreeCAD распространяется под лицензией LGPLv2, в качестве моделирующего ядра используется Open CASCADE. Готовые сборки подготовлены для Linux (AppImage), macOS и Windows.
FreeCAD позволяет, меняя параметры модели, обыгрывать различные варианты проектирования и оценивать работу в различные моменты разработки модели. Проект может выступать свободной заменой коммерческим САПР, таким как CATIA, Solid Edge и SolidWorks. Несмотря на то, что основным назначением FreeCAD является машиностроение и разработка дизайна новых продуктов, система может использоваться и в других областях, таких как архитектурное проектирование.
В интерфейсе пользователя реализована поддержка трёхточечного освещения для повышения качества отрисовки 3D-моделей.
В систему настройки добавлена панель поиска.
Добавлен новый редактор тем оформления и расширены возможности для изменения таблицы стилей.
Расширены возможности диалога для добавления свойств, в котором появилась поддержка вычисляемых выражений, перечислений и единиц измерения. В редакторе свойств улучшено автодополнение табуляцией, работа с наборами переменных (VarSet) и масштабирование окна.
В окружении для создания заготовок (Part Design) реализованы опции для использования прозрачности и подсветки эскиза при предпросмотре для оценки скрытых поверхностей и структуры детали в объёме. Добавлены интерактивные элементы управления, позволяющие манипулировать параметрами в окне 3D-виде, перетаскивая элементы мышью. Переработана панель задач в инструменте проектирования отверстий (Hole Tool), в которой обеспечено скрытые нерелевантных и показ только актуальных элементов для текущей конфигурации.
Добавлен инструмент "Уточнить выбор" Clarify Selection, позволяющий уточнить выделение скрытых или внутренних элементов. Активация инструмента производится горячей клавишей, через контекстное меню или при удержании левой кнопки мыши, после чего геометрия модели становится прозрачной и показывается меню выбора перекрывающихся объектов.
В окружении CAM, применяемом для создания машинных инструкций к станкам с ЧПУ из 3D-моделей, предложена новая система управления инструментами. Компонент
CAM Tool Management заменён на пакет Better Tool Library, ранее развиваемый в форме внешнего плагина.
В CAM также добавлены новые интерфейсы для редактирования и выбора тулбитов (ToolBits), появилась возможность импорта из симулятора G-Code Camotics, предоставлены утилиты командной строки для импорта и экспорта, реализован режим Drag & Drop и возможность использования буфера обмена, добавлен браузер форм (shape browser), встроена функция поиска инструментов, для хранения библиотек инструментов задействован формат JSON.
Добавлены инструменты для создания опорных элементов (Core Datum), применяемых при проектировании моделей, таких как системы координат, опорные точки, вспомогательные плоскости и линии.
Полностью переработан инструмент трансформации (Transform). Добавлена возможность выравнивания перетаскивателя (Dragger) по центру масс объекта, а также учёта локальной (U, V, W) или глобальной системы координат. Добавлена функция перемещения объекта на целевую позицию в документе.
Расширены возможности окружений для проектирования работы сборных многокомпонентных конструкций (Assembly), моделирования строительных объектов (BIM, Building Information Modelling), двумерного рисования (Draft), анализа воздействий (FEM, Finite Element Module), работы с материалами (Material), создания деталей (Part), эскизов 2D-фигур (Sketcher), ведения электронных таблиц с параметрами моделей (Spreadsheet), 2D-моделирования и создания 2D-проекций 3D-моделей (TechDraw).
Улучшена работа в системах на базе Wayland.
Одновременно опубликован выпуск параметрической системы 2D- и 3D-моделирования SolveSpace 3.2. Система поддерживает различные методы моделирования 3D-деталей (выдавливанием, вращением и т.п.), может имитировать плоские и пространственные связи, использовать плоскую и объёмную геометрию при создании чертежей, экспортировать модели в двумерных и объёмных форматах, таких как PDF, SVG, HPGL, STEP, DXF и STL. Код проекта написан на языке С++ и распространяется под лицензией GPLv3.
В SolveSpace 3.2 в дополнение к интерфейсу на GTK предложен опциональный фронтэнд для Linux на базе Qt6. Добавлена экспериментальная версия, способная работать через Web, реализованная при помощи инструментария Emscripten. Предоставлена возможность применения ограничений к граням, а также расширен спектр объектов, к которым могут применяться ограничения. Изменено поведение при работе с эскизами. Добавлена поддержка кернинга в шрифтах TrueType.
Дополнительно можно отметить развитие параметрической системы 3D-проектирования Dune 3D, оптимизированной для создания корпусов электронных устройств, изготавливаемых при помощи 3D-печати. Система поддерживает создание и ограничение эскизов в двумерном и трёхмерном пространстве, добавление скосов и скруглений на рёбра 3D-модели, импорт эталонных моделей в формате STEP, экспорт в форматах STEP, STL и DXF. Код проекта написан на языках С/C++ с интерфейсом на GTK и распространяется под лицензией GPLv3.
После двух лет разработки доступен выпуск платформы LibreQoS 2.0, предназначенной для организации справедливого распределения имеющейся полосы пропускания между пользователями и снижения негативных эффектов, возникающих из-за промежуточной буферизации пакетов (Bufferbloat) сетевым оборудованием. Платформа может использоваться провайдерами или администраторами частных сетей для оптимизации потоков трафика, поддержания задержек на минимальном уровне и распределения полосы пропускания с учётом приоритетов. Код проекта написан на языках Си, JavaScript, Python и Rust, и распространяется под лицензией GPLv2. Платформа устанавливается на сервер, размещаемый между граничным маршрутизатором провайдера и базовым маршрутизатором локальной сети.
LibreQoS позволяет снизить задержки и повысить надёжность работы интерактивных сеансов, игр, платформ online-обучения, VoIP-трафика и видеовызовов в условиях большой нагрузки на сеть, например, из-за загрузки некоторыми пользователями фильмов в несколько потоков или активности любителей torrent-ов (LibreQoS решает проблему с заиканием видеовызовов, когда кто-то в той же сети начинает загружать 4K-видео). Применение LibreQoS снижает доступную одному пользователю пиковую пропускную способность, но зато даёт возможность значительно уменьшить задержки и справедливо распределить ресурсы между всеми участниками обмена данных.
LibreQoS базируется на применении системы управления сетевыми очередями CAKE (Common Applications Kept Enhanced) и планировщика пакетов fq_codel (Fair Queuing Controlled Delay), а также использует eBPF и XDP (Express Data Path) для выполнения обработчиков на уровне сетевого драйвера с возможностью прямого доступа к DMA-буферу пакетов. Алгоритм CAKE спроектирован для замены и упрощения сложной иерархии дисциплин обработки очередей пакетов, способен выжать максимально возможную пропускную способность и предоставить минимальный уровень задержек даже на самых медленных каналах связи с провайдером и при работе на маломощных устройствах.
Проект также предоставляет средства для отслеживания задержек между отправкой запроса и получением ответа (RTT, round-trip time), в привязке к отдельным пользователям, точкам доступа и сайтам. Для анализа состояния разработан web-интерфейс, дающий возможность наглядно оценить трафик в сети, проследить изменение нагрузки и задержек, выявить наиболее активных пользователей. Возможно создание гибких иерархических схем ограничения трафика и интеграция с
UISP и Splynx для маппинга топологий и клиентов.
Выпуск LibreQoS 2.0 посвящён Дэйву Тахту (Dave Taht), скоропостижно скончавшемуся год назад в возрасте 59 лет. Дэйв руководил разработкой LibreQoS и был сооснователем проекта Bufferbloat, создателем дистрибутива CeroWrt и автором многочисленных RFC, связанных с обработкой сетевых очередей.
Модернизирован web-интерфейс оператора, в котором расширены возможности диагностики сетевых проблем и добавлены новые отчёты и графики.
В режиме древовидного просмотра (Tree view) обеспечено отображение иерархической структуры сети, улучшена обработка топологии и детализировано поведение узлов.
Добавлены новые инструменты диагностики проблем, позволяющие анализировать состояние сетевых очередей, отслеживать потоки трафика, наглядно представлять трафик в виде диаграмм Санки, выполнять мониторинг повторных передач пакетов (retransmit) и визуализировать циклы приёма-передачи TCP (RTT).
Добавлены новые режимы визуализации карт и потоков трафика, добавлен анализатор автономных систем (ASN Analysis).
Улучшена интеграции с системами организации взаимодействия с клиентами (CRM) и системами управления сетью (NMS). Добавлена поддержка интеграции с UISP,
Splynx,
Netzur,
VISP,
WISPGate,
Powercode и
Sonar.
Улучшены возможности для ограничения пропускной способности (shaping), связанные с управлениям очередями и использованием TreeGuard и StormGuard для предотвращения перегрузок.
Улучшены мониторинг состояния планировщика и информирование о критических проблемах.
После двух с половиной лет разработки опубликованы релизы растрового графического редактора Krita 5.3.0 и 6.0.0, предназначенного для художников и иллюстраторов. Редактор поддерживает многослойную обработку изображений, предоставляет средства для работы с различными цветовыми моделями и предлагает инструменты для цифровой живописи, создания скетчей и формирования текстур. Для установки подготовлены самодостаточные образы в формате AppImage для Linux, APK-пакеты для Android, а также бинарные сборки для macOS и Windows. Проект написан на языке С++ с использованием библиотеки Qt и распространяется под лицензией GPLv3.
Ветки Krita 5.3 и 6.0 развивались параллельно, построены на одной кодовой базе и выпущены одновременно. Базовая функциональность у веток 5.3 и 6.0 совпадает, различия сводятся к переводу ветки 6.0 на использование библиотеки Qt6, в то время как в Krita 5.3 продолжает применяться Qt5. Помимо портирования на Qt6 ветка Krita 6.0 примечательна предоставлением поддержки Wayland, дробного масштабирования, 10-разрядного представления цвета и отображения содержимого с расширенным динамическим диапазоном (HDR), реализованного при помощи Wayland-протокола color-management-v1.
Полностью переработана и значительно расширена функциональность для работы с текстом. Появилась возможность редактирования текста прямо на холсте, используя привычную навигацию по тексту при помощи мыши и клавиатуры. Реализован отдельный режим типографики для редактирования на холсте свойств текста, таких как размер шрифта, методы выравнивания, высота строки и позиция каждого глифа, без вызова отдельного диалога с настройками.
Добавлена возможность автоматического обтекания текстом одной или нескольких векторных фигур, а также заполнения текстом определённой области и выравнивания текста по заданному контуру.
Реализована отдельная панель для настройки стиля текста, предоставляющая более 50 редактируемых свойств. Имеется возможность одновременного редактирования нескольких текстовых объектов, настройки видимости свойств и автоскрытия неиспользуемых свойств. Расширена панель выбора шрифтов, в которой обеспечено индексирование имеющихся шрифтов в системе, добавлена пометка шрифтов тегами, расширен поиск и обеспечен вывод примеров и названий с учётом выбранного языка. Добавлена возможность сохранения преднастроек стилей для быстрого применения сохранённых наборов свойств к текущему тексту.
Реализована полная поддержка формата OpenType и добавлена палитра грифов, позволяющая выбирать альтернативные глифы, доступные для текущего шрифта.
Добавлен инструмент редактирования комиксов, позволяющий быстро разделять и объединять векторные объекты для упрощения создания раскладки картинок в стиле комиксов.
В инструменте трансформации реализована возможность поворота рамки вокруг выделенной области независимо от ориентации пикселей для упрощения трансформации объектов, расположенных под углом. Заметно ускорена работа режима пластической деформации (liquify).
Реализовано адаптивное изменение степени сглаживания в зависимости от скорости рисования (при медленном движении для компенсации дрожания руки сглаживание усиливается, а при быстром - уменьшается). Добавлен отдельный режим стабилизации пиксельной графики, позволяющий повысить чёткость при рисовании однопиксельными линиями.
Реализована плавающая панель с инструментами для работы с выделенной областью, появляющаяся при наличии выделения.
Добавлена возможность рисования одновременно несколькими кистями с фиксированным интервалом между ними.
В инструмент заливки добавлена опция "Размыть выделение" ("Close Gaps"), позволяющая автоматически перекрывать небольшие разрывы в линиях при определении области заливки.
Добавлен фильтр "Выбрать цвет" ("Propagate Colors"), который расширяет цвета в прозрачные области, т.е. заполняет окружающие объект прозрачные пиксели соседними цветами, расширяя непрозрачную область на указанное расстояние. В дополнение добавлен фильтр "Сбросить прозрачность" ("Reset Transparent"), который принудительно обнуляет остаточные цветовые каналы для всех полностью прозрачных пикселей.
Добавлен фильтр "Наложение цвета" ("Fast Color Overlay Mask") для быстрой тонировки эскизов заданным цветом.
В командах трансформации зеркало, поворот, масштабирование, сдвиг и смещение реализована возможность работы одновременно с несколькими выделенными слоями.
В панели записи (Recorder Docker) реализован многопоточный захват кадров, позволяющий выполнять запись видео в реальном времени.
Реализована возможность добавлять панели (Docker) во всплывающую палитру и вплывающие окна с инструментами.
Для кистей реализован режим мягкого текстурирования, при котором сила нажатия контролирует интенсивность прорисовки текстуры кисти.
Обеспечено автоматическое инвертирование текстуры кисти в режиме ластика.
В редакторе кистей появился режим углов для кривых, позволяющий использовать заострённые переходы между кривыми.
Добавлен режим наложения "Marker", предотвращающий накопление непрозрачности при нанесении нескольких штрихов.
Добавлена поддержка форматов файлов Radiance RGBE (.hdr), многослойных и многостраничных изображений JPEG-XL, PSD-изображений с фигурами, текстом, направляющими и векторными масками.
Состоялся первый публичный релиз проекта VitruvianOS, c 2019 года развивающего операционную систему на базе Debian/Linux, которая переносит простоту, отзывчивость и гибкость BeOS на современное оборудование и реализует API-совместимость с приложениями, созданными для Haiku и BeOS. Код проекта написан на языке С++ и распространяется под лицензией GPLv2.
VitruvianOS использует компоненты пользовательского пространства из ОС Haiku. Вместо привычных оконных менеджеров X11 и композитных серверов Wayland для вывода графики в VitruvianOS применяется app_server - графический сервер из Haiku, адаптированный для работы поверх Linux KMS/DRM. В качестве графического тулкита используется реализация Interface Kit из Haiku. Вместо systemd в будущем планируется использовать систему инициализации janus_daemon, который будет работать как launch_daemon в Haiku.
Для реализации большей части BeAPI используется своя версия библиотеки libroot, которая оборачивает многие нестандартные функции Haiku/BeOS поверх Linux, что даёт возможность запускать приложения и использовать более высокоуровневые компоненты Haiku OS на стандартном ядре Linux. Для реализации специфичных функций Kernel Kit из BeAPI разработана подсистема ядра Nexus, реализующая API node_monitor, отслеживание устройств и обмен сообщениями в стиле BeOS, что позволяет реализовать все специфические технологии Haiku/BeOS поверх ядра Linux.
На данный момент реализовано:
Загрузка с файловых систем XFS и SquashFS с полной поддержкой расширенных атрибутов (xattr).
Модифицированное ядро Linux-rt для повышения отзывчивости при выполнении десктоп-задач.
Слой совместимости с API BeOS/Haiku c поддержкой нативных приложений.
Deskbar, Tracker и основные компоненты рабочего стола Vitruvian.
Система ввода с поддержкой мыши, жестов, планшетов и многого другого.
Специально разработанный графический слой (без использования X11 и Wayland).
Планируется:
В версии 0.3.1 будут включены многие недостающие компоненты и исправлены ошибки, основанные на первых отзывах пользователей.
В версии 0.3.2 ожидается создание самодостаточной системы, в которой VitruvianOS сможет собираться самостоятельно.
В версии 0.4 будет проведена стабилизация и расширена поддержка аппаратного обеспечения, включая продолжающуюся разработку ARM-версии (arm32 и aarch64).
Разработчики Python-библиотеки LiteLLM, насчитывающей 95 млн загрузок в месяц и 3.5 млн за последние сутки, сообщили о компрометации проекта. Атакующие смогли перехватить учётные данные сопровождающего и опубликовать в PyPI два вредоносных выпуска - 1.82.7 и 1.82.8, содержащих код для кражи ключей и паролей с систем пользователей. В настоящее время вредоносные версии удалены из PyPI, а проект временно заморожен до окончания разбирательства.
Токен доступа к учётной записи LiteLLM в PyPI попал в руки атакующих из-за использования в системе непрерывной интеграции сканера безопасности зависимостей trivvy. До этого в конце февраля атакующие смогли получить доступ к инфраструктуре проекта Trivy, воспользовавшись уязвимостью в обработчике pull_request_target, запускаемом в системе непрерывной интеграции Trivy. После компрометации атакующие опубликовали вредоносные выпуски Trivy 0.69-0.69, подменили GitHub Action обработчик trivy-action и разместили модифицированный Docker-образ с Trivy.
24 марта в 11:30 (MSK) перехваченные учётные данные сопровождающего LiteLLM (krrishdholakia) были использованы для прямой публикации вредоносных релизов LiteLLM 1.82.7 и 1.82.8 в PyPI в обход официального GitHub CI/CD. Репозиторий проекта на GitHub не пострадал - вредоносная активность наблюдалась только в PyPI. В выпуске LiteLLM 1.82.7 вредоносный код был встроен в файл litellm/proxy/proxy_server.py и активировался при импорте litellm.proxy. В выпуске 1.82.8 в состав был включён файл site-packages/litellm_init.pth, а в файл proxy_server.py был добавлен обработчик, упакованный в формате base64 и активируемый при любом запуске.
Добавленный вредоносный код осуществлял сканирование и отправку конфиденциальных данных. Отправлялись найденные в системе ключи SSH и SSL/TLS, содержимое переменных окружения, учётные данные к AWS, GCP, Azure и K8s, ключи от криптокошельков, пароли к СУБД, история операций в командном интерпретаторе, файлы конфигурации от Git, CI/CD, пакетных менеджеров и Docker. Обнаруженные данные шифровались с использованием алгоритмов AES-256-CBC + RSA-4096 и отправлялись HTTP POST-запросом на сайт "https://models.litellm.cloud/" (домен litellm.cloud был зарегистрирован за несколько часов до публикации вредоносных релизов).
Пользователям LiteLLM рекомендовано убедиться в отсутствии в каталоге site-packages файла litellm_init.pth, обновить все ключи и учётные данные в случае установки версии 1.82.7 или 1.82.8, закрепить конкретные версии LiteLLM в параметрах загрузки зависимостей и сверить используемые выпуски LiteLLM с кодом релизов на GitHub.
Включена поддержка режима Split View, позволяющего бок о бок в одном окне просмотреть содержимое двух вкладок. Режим активируется через кнопку "Add Split View" в контекстном меню, показываемом при клике правой кнопкой мыши на вкладках. При нажатии данной кнопки содержимое окна разделяется на две части и в правой части открывается содержимое страницы новой вкладки. Если выбрать опцию для группы из двух вкладок, указанные вкладки сразу будут раскрыты рядом с друг другом. Допускается произвольное изменение размера правой и левой области просмотра через перетаскивание мышью полосы-разделителя. Активная вкладка при одновременном просмотре выделяется красной рамкой.
В состав интегрирован бесплатный VPN-сервис Firefox VPN (не путать с Mozilla VPN), позволяющий обращаться к сайтам не напрямую, а через промежуточные прокси-серверы в разных странах, скрывающие IP-адрес пользователя. Имеется возможность включать VPN только для выбранных сайтов. Для активации VPN необходима регистрация учётной записи в Mozilla. На первом этапе VPN-сервис доступен пользователям из США, Франции, Германии и Великобритании. В VPN-сервисе действует ограничение в 50 гигабайт трафика в месяц.
Добавлена функция Tab Notes для прикрепления произвольных примечаний к вкладкам. Кнопка для добавления заметок помещена в контекстное меню и также показывается на эскизе, появляющемся при наведении курсора на вкладке. Для включения можно использовать настройку "browser.tabs.notes.enabled" на странице about:config или опцию в секции Firefox Labs на странице с настройками (about:preferences#experimental).
Предложена панель TrustPanel, вызываемая при нажатии на пиктограмму с изображением щита перед адресной строкой и комбинирующая ранее выводимые раздельно панели c параметрами приватности и безопасности.
Добавлена защита от отправки нечистыми на руку сайтами фоновых уведомлений для рекламы, спама и фишинга. Уведомления теперь автоматически блокируются, а предоставленные полномочия отзываются для любых сайтов, помеченных вредоносными сервисом SafeBrowsing.
Для ускорения вывода PDF-файлов задействовано аппаратное ускорение.
В конфигуратор панели (Customize Toolbar) добавлена возможность добавления на панель кнопки Share для отправки текущей вкладки другим пользователями и на другие устройства при помощи предоставляемых платформами Windows и macOS системных сервисов обмена информацией.
Для уменьшения поверхности атаки ужесточены требования к JavaScript-файлам, которые могут запускаться в родительском процессе, отвечающим за запуск дочерних процессов и базовую функциональность браузера, такую как интерфейс, профили, управление процессами и навигация.
Переделано оформление страниц, показываемых при возникновении ошибок при попытке открытия сайтов.
На платформе Linux вместо диалога GTK3 по умолчанию теперь используется XDG-портал org.freedesktop.portal.FileChooser, предоставляющий более функциональный интерфейс для выбора файлов.
Повышена надёжность загрузки с использованием протокола HTTP/3 при нестабильном сетевом соединении.
На платформе Windows для доступа к информации о местоположении задействован API Windows.Devices.Geolocation вместо старого API времён Windows 7.
Реализация декодировщика формата изображений JPEG XL переведена на использование библиотеки jxl-rs, написанной на языке Rust. Поддержка JPEG XL пока отключена по умолчанию и требует активации параметра "image.jxl.enabled" на странице about:config.
В инструментах для web-разработчиков в панель инспектирования хранилища добавлена кнопка для удаления всех записей в выбранном хранилище. В панели работы со стилями рядом с каждым CSS-элементом, связанным с показываемым в секции "Computed" вычисляемым значением, добавлена пиктограмма для перехода к этому элементу в секции "Rules".
Добавлена возможность вызова предоставляемой браузером реализации выпадающего меню при помощи метода showPicker() для
показа рекомендаций автозаполнения текстового поля <input type="text"> на основе вариантов, определённых в блоке <datalist>.
В CSS-свойство "shape-outside" добавлена поддержка функций rect() и xywh() для формирования области обтекания текста. Ранее данные функции поддерживались только в CSS-свойствах clip-path и offset-path.
Для выбора шрифта с дополнительными математическими символами в CSS-свойство "font-family" добавлена поддержка значения "math", которое также используется по умолчанию для шрифта при выводе содержимого элемента <math>.
В HTML-элементы добавлена поддержка атрибута 'popover="hint"', позволяющего отображать автоматически скрываемые всплывающие подсказки, не приводящие к скрытию других типов всплывающих popover-блоков.
Для мультимедийных элементов (<audio>, <video>)
включена поддержка псевдо-классов
":playing",
":paused",
":seeking",
":muted",
":buffering",
":stalled" и ":volume-locked".
Включена соответствующая требованиям спецификации реализация API HTMLMediaElement.captureStream(), позволяющего захватывать содержимое, отрисовываемое при помощи HTMLMediaElements (например, контент, выводимый через теги video и audio).
Добавлен API Reporting для получения информации о различных возможностях и проблемах, таких как нарушении правил CSP (Content Security Policy), Permissions-Policy, Integrity-Policy, Cross-Origin-Embedder-Policy, а также использовании устаревшей функциональности.
Реализован API CloseWatcher, позволяющий отслеживать в web-приложениях Close-запросы и реагировать на их поступление (например, можно создать обработчик нажатия кнопки "назад" на Android-смартфоне). Close-запросы формируются при попытке закрытия модальных (<dialog>) и всплывающих диалогов (popover="") через нажатие клавиши Esc, использование кнопки "назад" или экранный жест на смартфонах.
В версии
Firefox для Android проведена работа по улучшению навигации и обновлены панель инструментов, список вкладок и меню. Добавлена возможность закрытия всплывающих popover-элементов и диалогов системной кнопкой "назад". Добавлена настройка "media.peerconnection.ice.obfuscate_host_addresses" для обфускации имён хостов, определяемых через mDNS, что позволяет скрыть информацию о внутренних адресах при использовании WebRTC.
Кроме новшеств и исправления ошибок в Firefox 149 устранено 70 уязвимостей. 55 уязвимостей вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.