Отчёт о состоянии работ FreeBSD за четвёртый квартал 2025
Здесь представлен четвёртый отчёт о состоянии дел за 2025 год, содержащий 28 записей.
Поскольку приём опоздавших материалов приводит к постоянным задержкам публикации отчётов на месяцы, было принято решение изменить этот процесс. Начиная со следующего квартала, крайний срок подачи отчётов устанавливается на 14-е число первого месяца после окончания квартала, и этот срок будет строго соблюдаться для всех, включая коммиттеров и команды. После этого полный отчёт о состоянии дел будет публиковаться сразу после его сборки (предположительно до конца месяца) и будет содержать только те записи, которые были поданы в установленный срок.
Отчёты больше не будут "выбиваться" из участников. Если вы пропустили крайний срок, просто представьте более обширный отчет в следующем квартале.
Эта новая стратегия должна помочь каждому отчёту оставаться свежим, актуальным и своевременным.
Для получения дополнительной информации, пожалуйста, обратитесь к https://docs.freebsd.org/ru/articles/freebsd-status-report-process/#_timeline.
Приятного чтения!
Лоренцо Сальвадоре (Lorenzo Salvadore), от имени команды по подготовке отчетов (Status Team)
- Отчёты команд FreeBSD
- Проекты
- Проект генеральной уборки Alpha-Omega (Alpha-Omega Beach Cleaning)
- Конвертация VuXML в базу данных уязвимостей открытого исходного кода (Open Source Vulnerability Database)
- Перечень компонентов программного обеспечения FreeBSD (FreeBSD Software Bill of Materials - SBOM)
- Полный контроль CPUID для bhyve
- Модернизация инфраструктуры (Infrastructure Modernization)
- Parthenope — Дизайн и идеи
- Поддержка акселератора VMM для QEMU
- Sylve — Унифицированная платформа управления системой для FreeBSD
- Ядро
- Улучшение функций системы приостановки/возобновления работы (Suspend/Resume)
- Улучшения звукового стека (Audio Stack Improvements)
- Обновление LinuxKPI 802.11 и нативного беспроводного стека (Native Wireless)
- Туннели GENEVE
- Поддержка Rust в ядре (Kernel Rust Support)
- Улучшения отладки ядра через USB (USB Kernel Debugging Improvements)
- Архитектуры
- Документация
- Порты
- Модернизация HPC-портов FreeBSD: Slurm 25.11 и выделенные PMIx/PRRTE (FreeBSD HPC Ports Modernization: Slurm 25.11 and Unbundled PMIx/PRRTE)
- GCC в FreeBSD
- Улучшение поддержки libvirt для гипервизора bhyve
- Улучшение OpenJDK в FreeBSD (Improve OpenJDK on FreeBSD)
- Сделать OpenJDK 21 версией JAVA, используемойпо умолчанию (Make OpenJDK 21 the default JAVA_VERSION)
- KDE в FreeBSD
- Использование Bazel в качестве инструмента сборки для MongoDB 8.0
- OpenVox (Puppet)
Отчёты команд FreeBSD
Отчёты различных официальных и полуофициальных команд, представленные на Странице администрации.
Фонд FreeBSD
Ссылки:
Фонд FreeBSD URL:
https://freebsdfoundation.org/
Технологическая
дорожная карта URL: https://freebsdfoundation.org/blog/technology-roadmap/
Пожертвовать
URL: https://freebsdfoundation.org/donate/
Программа партнерства с Фондом URL: https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
Журнал FreeBSD
URL: https://freebsdfoundation.org/journal/
Мероприятия
Фонда URL: https://freebsdfoundation.org/our-work/events/
Контакт: Deb Goodkin <deb@FreeBSDFoundation.org>
Фонд FreeBSD — это некоммерческая организация 501(c)(3), занимающаяся развитием FreeBSD как через техническую, так и через нетехническую поддержку. Полностью финансируемый за счет пожертвований, Фонд поддерживает разработку программного обеспечения, инфраструктуру, безопасность и совместные усилия; организует мероприятия и встречи разработчиков; предоставляет образовательные ресурсы; и также представляет проект FreeBSD в юридических вопросах.
Улучшения ОС
В течение квартала было совершено 346 коммитов в
src, 72 коммита в ports и 58 коммитов в
doc, спонсированных Фондом FreeBSD.
Обратитесь к следующим разделам отчёта, описывающим большую часть этой проделанной работы по разработке:
Другие ключевые моменты включают:
-
Новый механизм kqueue1(KQUEUE_CPONFORK) для копирования kqueue в дочерний процесс при fork
-
Инфраструктура exterror(9) для асинхронного ввода-вывода и GEOM
-
libuvmem(3) — пользовательский порт vmem(9)
-
Исправления повреждения анонимной памяти
-
Детальная поддержка групп и перенос (MFC) справочных страниц в ветку 14
-
Исправления ошибок
-
Ревизии системы MAC
-
Начало работ по поддержке S4 (спящий режим)
-
Фоновая работа над VFS (в частности, поддержка изменений unionfs)
Фонд также продолжил поддержку двух крупных инициатив: проекта поддержки ноутбуков и улучшения удобства использования (в сотрудничестве с Quantum Leap Research) и проекта модернизации инфраструктуры, заказанного Sovereign Tech Agency. Для получения справочной информации об обеих активностях см. ежеквартальный отчёт за 1 квартал 2025 года.
Мы начали подготовку к 22-му подряд участию FreeBSD в Google Summer of Code (GSoC). Тех, кто заинтересован в предоставлении идей для проектов или наставничестве, приглашают связаться по адресу soc-admins@FreeBSD.org.
Продвижение
В четвёртом квартале 2025 года наша работа по продвижению была сосредоточена на расширении нашего образовательного видеоконтента, охвате большей аудитории, чем когда-либо, объединении сообщества для продуктивного Саммита вендоров (Vendor Summit) и анализе работы, которая помогает поддерживать и увеличивать интерес к FreeBSD. Вот лишь некоторые из способов, которыми Фонд продвигал FreeBSD в 4 квартале 2025 года:
-
Саммит вендоров FreeBSD осенью 2025 года прошел 6–7 ноября 2025 года в Сан-Хосе, Калифорния. Вы можете посмотреть обзор Саммита на нашем канале FreeBSD Meetings здесь.
-
Обеспечено наше медиа-партнёрство и стенд на SCALE 23x
-
Обеспечено наше спонсорство в качестве Промо-партнёра для рабочего семинара Code and Compliance, проводимого совместно с FOSDEM, который состоится 29 января 2026 года в Брюсселе, Бельгия
-
Подана заявка на стенд на FOSDEM, который пройдёт с 31 января по 1 февраля 2026 года, и мы были приняты. Мы будем делить стенд с ребятами из Illumos.
-
Подписано спонсорство серебряного уровня для AsiaBSDCon26, который пройдет с 19 по 22 марта 2026 года в Тайбэе, Тайвань.
-
Опубликованы следующие статьи в блоге и видео для информирования и обучения сообщества:
-
2025: Поддержка разработки программного обеспечения и инфраструктуры
-
Модернизация инфраструктуры — заказано Sovereign Tech Agency
-
FreeBSD закрывает разрыв в поддержке ноутбуков: обновление за первый год проекта
-
Отчёты о поездках на EuroBSDcon 2025:
-
FreeBSD официально поддерживается в спецификации среды выполнения OCI v1.3
-
FreeBSD теперь собирается воспроизводимо и без использования полномочий администратора системы
-
NetActuate спонсирует выделенный сервер для усиления CI-инфраструктуры проекта FreeBSD
-
Опубликованы информационные бюллетени Фонда FreeBSD за сентябрь 2025, ноябрь 2025 и декабрь 2025.
-
Выпущен номер журнала FreeBSD за июль/август/сентябрь с HTML-версиями статей.
Непрерывная интеграция и улучшение рабочих процессов
Фонд оплачивает сотрудника на полной ставке, занимающегося улучшением системы непрерывной интеграции и тестовой инфраструктуры Проекта.
Юридические вопросы / Интеллектуальная собственность FreeBSD
Фонду принадлежат товарные знаки FreeBSD, и наша обязанность — защищать их. Мы также предоставляем юридическую поддержку Основной Команде (Core Team) для расследования возникающих вопросов.
Перейдите на https://freebsdfoundation.org, чтобы узнать больше о том, как мы поддерживаем FreeBSD и как мы можем помочь вам!
Команда подготовки релизов FreeBSD
Ссылки:
Анонс
FreeBSD 15.0-RELEASE URL: https://www.freebsd.org/releases/15.0R/announce/
График
подготовки релиза FreeBSD 14.4-RELEASE URL: https://www.freebsd.org/releases/14.4R/schedule/
Релизы
FreeBSD URL: https://download.freebsd.org/releases/ISO-IMAGES/
Экспериментальные
сборки FreeBSD URL: https://download.freebsd.org/snapshots/ISO-IMAGES/
Контакт: Команда подготовки релизов FreeBSD, <re@FreeBSD.org>
Команда подготовки релизов FreeBSD отвечает за формирование и публикацию графиков подготовки релизов для официальных выпусков проекта FreeBSD, анонсирование заморозок кода и поддержку соответствующих веток, кроме всего прочего.
Команда провела работу над 15.0-RELEASE, что привело к созданию официального релиза и его анонсу в декабре; это был первый релиз из новой ветки stable/15. В рамках этой работы были проделаны значительные усилия по настройке системы для безопасной сборки, подписания и распространения репозиториев пакетов для базовой системы 15.0-RELEASE.
Началось планирование предстоящего цикла 14.4-RELEASE.
Команда подготовки релизов продолжила выпускать еженедельные экспериментальные сборки для веток main, stable/14 и stable/13, а также начала публиковать еженедельные экспериментальные сборки для новой ветки stable/15.
Проекты
Проекты, охватывающие несколько категорий — от ядра и пользовательских инструментов до Коллекции портов или внешних проектов.
Проект генеральной уборки Alpha-Omega (Alpha-Omega Beach Cleaning)
Ссылки:
Alpha-Omega — Проект Linux
Foundation URL: https://alpha-omega.dev
Alpha-Omega на
GitHub URL: https://github.com/ossf/alpha-omega
Фонд FreeBSD URL:
https://freebsdfoundation.org
Репозиторий
проекта от Фонда FreeBSD URL: https://github.com/FreeBSDFoundation/alpha-omega-beach-cleaning
Контакт: Pierre Pronchery <pierre@freebsdfoundation.org>
Миссия Alpha-Omega — способствовать устойчивым улучшениям безопасности в критически важных проектах и экосистемах с открытым исходным кодом. После успешного проекта с Фондом FreeBSD в 2024 году — аудита гипервизора bhyve и фреймворка для изоляции Capsicum — Alpha-Omega снова выбрала FreeBSD, на этот раз для проекта генеральной уборки Alpha-Omega Beach Cleaning. Этот новый грант заключается в общем улучшении безопасности и сопровождения стороннего программного обеспечения в базовой системе FreeBSD. Фонд FreeBSD получил грант и занимается проектом и его исполнением.
Со времени предыдущего отчёта за 3 квартал 2025 года были выполнены следующие задачи:
-
Инвентаризация зависимостей
-
Оценка рисков безопасности
-
Предложение списка приоритетов
-
Планирование соответствующих действий
-
Формализация ответственных за код (code owners)
Глобальный файл базы данных содержит информацию, собранную для проекта в сотрудничестве с инициативой SBOM, спонсируемой немецким Sovereign Tech Agency. Его структура также была упрощена за последние несколько месяцев, но он остаётся в формате YAML. Он доступен, как и раньше, по ссылке database.yml.
Программа на Go aobc-generate в репозитории была переименована в aobc-tool. В дополнение к предыдущим результатам, теперь она способна формировать набор файлов SBOM. Это выполняется через промежуточные файлы в формате pkg-config, которые затем преобразуются в SPDX с помощью программы bomtool из проекта pkgconf:
Эта информация включает соответствующих ответственных за код, определённых для каждого стороннего компонента. Программа aobc-tool также способна предлагать известных ответственных за код для данной части дерева исходных текстов. Со всеми перечисленными ответственными за код связались в декабре 2025 года, чтобы проинформировать их о проекте и подтвердить их связь с компонентом.
Полученные на данный момент отзывы были исключительно положительными, включая предложение упаковать инструмент в порты FreeBSD. Однако на данный момент кажется более целесообразным переписать инструмент в виде, подходящем для включения в базовую систему, например, на Lua.
Наконец, оставшиеся задачи будут выполняться до конца первого квартала 2026 года:
-
Интеграция методологий рецензирования
-
Планирование выполнения и координации
-
Итоговый отчёт
Эта инициатива была представлена комитету srcmgr в ноябре. Их мнения и отзывы будут учтены на этом последнем этапе проекта.
Ежемесячные отчёты предоставляются Alpha-Omega и доступны, как и раньше, на GitHub за 2025 год, а также скоро появятся за 2026 год.
Спонсоры: Alpha-Omega, Фонд FreeBSD
Конвертация VuXML в базу данных уязвимостей открытого исходного кода (Open Source Vulnerability Database)
Ссылки:
База данных OSV FreeBSD для pkg URL: https://github.com/illuusio/freebsd-osv/blob/main/db/freebsd-osv.json
Уязвимости
FreeBSD за 2025 год в формате Markdown/Commonmark URL: https://github.com/illuusio/freebsd-osv/tree/main/md/2025
Инструмент OSV на Lua URL: https://github.com/illuusio/freebsd-osv/blob/main/bin/osvf-tool.lua
Инструмент конвертации VuXML в OSV на Python URL: https://github.com/illuusio/freebsd-osv/blob/main/bin/convert_vuxml.py
Pull request для
pkg по OSV URL: https://github.com/freebsd/pkg/pull/2558
Pull request
для схемы OSV URL: https://github.com/ossf/osv-schema/pull/237
Запрос в
OSV для отслеживания интеграции OSV в репозиторий Google OSV на
GitHub URL: https://github.com/google/osv.dev/issues/3901
Работа
над PURL для FreeBSD URL: https://github.com/package-url/purl-spec/pull/496
Контакт: Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
Работа над базой данных уязвимостей открытого исходного кода (OSV) ведётся с мая. Целью этой работы было создание базы данных OSV и отказ от старого формата базы данных VuXML.
В настоящее время существует тестовая база данных и предложенные изменения кода для pkg(8). Тестовую базу данных можно обновить из VuXML и конвертировать в формат JSON OSV. Необходимые инструменты для обновления и создания объединённого файла базы данных для pkg завершены. Также реализован экспорт в Commonmark, который хорошо отображается на GitHub.
Кроме того, была реализована поддержка FreeBSD в оригинальном проекте OSV Schema, что позволяет проверять файлы OSV на соответствие официальным источникам. Также ведётся работа по PURL, которая медленно продвигается вперед.
Если вы хотите помочь этому проекту, то вот несколько задач:
-
Проверить точность конвертации из VuXML в OSV
-
Проверить, может ли pkg использовать базу данных OSV и выдаёт ли он корректные результаты
Спонсор: Фонд FreeBSD
Перечень компонентов программного обеспечения FreeBSD (FreeBSD Software Bill of Materials - SBOM)
Ссылки:
pkgconf PR
429, добавляющий spdxtool URL: https://github.com/pkgconf/pkgconf/pull/429
Документация
SPDX Lite 3.0.1 URL: https://spdx.github.io/spdx-spec/v3.0.1/
FreeBSD SPDX 3.0.1 JSON-LD файл: FreeBSD.jsonld URL: https://github.com/FreeBSDFoundation/alpha-omega-beach-cleaning/blob/illuusio/update-licenses/json-ld/FreeBSD.jsonld
Исходные файлы для создания SBOM URL: https://github.com/illuusio/freebsd-src/tree/freebsd-sbom/share/sbom
Текущее состояние сбора лицензий для SBOM в файле Markdown URL:
https://github.com/FreeBSDFoundation/alpha-omega-beach-cleaning/blob/illuusio/update-licenses/license.md
Добавление цели sbom в
Makefile и необходимых Lua-скриптов URL: https://reviews.freebsd.org/D53318
Lua-функции для
обработки вывода команды make для определённых целей портов
FreeBSD URL: https://reviews.freebsd.org/D53317
Добавление модуля
протоколирования на Lua в дерево портов FreeBSD и внедрение функций
и модулей на языке Lua в порты URL: https://reviews.freebsd.org/D53316
Контакт: Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
Проект по созданию перечня компонентов программного обеспечения (SBOM) ведётся с мая, его целью является предоставление необходимых инструментов для создания SBOM из портов FreeBSD и базовой системы.
Одним из основных событий в IV квартале 2025 года стала передача spdxtool в вышестоящий (upstream) проект pkgconf. Переданный код гарантирует, что инструменты pkgconf будут включать в себя средство создания SBOM, совместимое с профилем SPDX Lite 3.0.1, в следующем релизе.
Ещё одной существенной активностью стал сбор информации о приложениях, являющихся частью базовой системы FreeBSD. Эти приложения в основном находятся в каталогах usr.bin, usr.sbin, sbin и bin внутри git-репозитория FreeBSD. Проект FreeBSD Alpha Omega Beach Cleaning сыграл важную роль, так как он собирает информацию о сторонних библиотеках и приложениях, и я внёс свой вклад в эти усилия. Теперь есть Lua-скрипты и файл, способные создавать необходимые файлы для spdxtool из pkgconf, которые можно экспортировать в формате SPDX JSON-LD.
Инструменты, использующие эту собранную информацию, и текущие необработанные данные можно найти в моём форке дерева исходных текстов FreeBSD (src). В основном, теперь собираются и обрабатываются все C-файлы и заголовочные файлы, содержащие SPDX-License-Identifier.
Также были предприняты усилия по передаче в вышестоящий проект (upstream) создания SBOM для каждого пакета из Коллекции портов FreeBSD, но эта работа застопорилась и требует обновления.
Если вы хотите помочь этим усилиям:
-
Добавьте заголовки SPDX-License-Identifier в C-файлы и заголовочные файлы в дереве исходных текстов FreeBSD (src).
-
Проверьте, корректен ли текущий SPDX-License-Identifier в файлах.
-
Проверьте точность собранной информации. В настоящее время добавляются все инструменты, имеющие справочную страницу (man page) для разделов 1, 7 и 8, с описаниями, взятыми со страницы Справочника с помощью скрипта. Они могут быть неверны.
Спонсор: Фонд FreeBSD
Полный контроль CPUID для bhyve
Контакт: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Введение
Ядра операционных систем, а также некоторые пользовательские библиотеки и программы часто должны знать, на какой модели CPU они работают и какие архитектурные возможности доступны для использования. На платформах на базе x86 для запроса всей этой информации у CPU можно использовать инструкцию CPUID.
В среде виртуальной машины не вся информация, сообщаемая хост-процессором, должна быть доступна гостевой ОС, некоторую другую информацию о CPU, например, о топологии системы, необходимо изменить в соответствии с конфигурацией ВМ, и также существует некоторая дополнительная информация, которую необходимо сообщать, но которую не поддерживает ни один реальный CPU, например, идентификация гипервизора.
Таким образом, в рамках своей обычной работы в качестве гипервизора bhyve эмулирует инструкцию x86 CPUID для своих гостевых ВМ. В настоящее время большая часть информации CPUID от хост-процессора передаётся гостевой ВМ с маскированием некоторых функций, а также сообщается синтетическая информация о гипервизоре, его возможностях и его конфигурации. Ничего из этого в настоящее время нельзя явно настроить в bhyve.
Мотивация
Полный контроль над информацией CPUID, эмулируемой для гостевой ВМ, имеет множество важных вариантов использования:
Миграция ВМ
Для миграции работающей или приостановленной ВМ между разными хост-системами ВМ обычно требуется, чтобы обе задействованные хост-системы работали на одном и том же или по крайней мере совместимом по функциям семействе, модели и степпинге хост-процессоров. Даже незначительные различия в модели и степпинге CPU могут привести к различиям в доступном наборе функций.
Контроль над информацией CPUID для гостевой ВМ позволяет администратору ограничить ВМ использованием общего подмножества функций CPU, разделяемого всеми хост-системами ВМ, на которых ВМ потенциально может работать, что также может быть основано на абстрактном уровне архитектуры x86, а не на реальной модели CPU.
В настоящее время это поддерживается QEMU/KVM на Linux, и эквивалентная поддержка в bhyve является ключевым шагом на пути к поддержке полнофункциональной живой миграции ВМ.
Фиксированная модель CPU
Некоторое программное обеспечение проверяет семейство/модель/степпинг CPU, а также строку бренда CPU по причинам совместимости ПО. Изменение этих параметров из-за миграции ВМ или изменения оборудования в хост-системе ВМ было бы обнаружено и могло бы считаться системным изменением, потенциально отключая лицензию на проприетарное ПО. Возможность использовать предопределённую модель CPU, будь то на основе реального CPU или архитектурного подмножества, полностью решила бы эту проблему.
Изменение сигнатуры гипервизора
Некоторое программное обеспечение, такое как драйверы Nvidia, проверяет сигнатуру гипервизора на соответствие определённым известным значениям. Bhyve идентифицирует себя как "bhyve bhyve ", в то время как KVM сообщает "KVMKVMKVM\0\0\0". Хотя реализация переключателя в командной строке для изменения сигнатуры гипервизора bhyve для каждой ВМ была бы возможна и без полного контроля CPUID, реализация этой функции с использованием полного контроля CPUID была бы более естественной и привела бы к более чистой архитектуре.
Маскирование функций и изменение архитектуры (даунгрейд / апгрейд)
Возможность легко понижать или повышать модель CPU или маскировать отдельные биты функций может предоставить преимущества для разработки и тестирования операционных систем и приложений.
Текущее состояние контроля CPUID для bhyve
Базовая реализация части ядра vmm для контроля CPUID доступна в bhyve на illumos уже несколько лет. Этот код был написан Oxide для использования со своим гипервизором Propolis, который основан на компонентах ядра FreeBSD/bhyve, перенесённых на illumos без использования какого-либо пользовательского кода bhyve.
Как и все улучшения bhyve, сделанные на illumos, код ядра vmm для контроля CPUID имеет двойную лицензию CDDL и BSD. Он был перенесён на bhyve во FreeBSD под лицензией BSD. В качестве доказательства концепции в пользовательском пространстве bhyve были реализованы новые параметры конфигурации для контроля CPUID, демонстрирующие потенциал полного контроля CPUID в bhyve.
Обзор проекта
Текущая работа над этим проектом направлена на интеграцию существующей концептуальной работы во FreeBSD и добавление следующих функций для удобства использования:
-
удобный метод конфигурации для переопределения отдельных битов, частей или даже целых функций CPUID по мере необходимости, сохраняя при этом остальную информацию CPUID хоста или предопределённую конфигурацию CPUID
-
удобный метод конфигурации для сигнатуры гипервизора, сообщаемой bhyve
-
набор предопределённых конфигураций CPUID на основе общих уровней архитектуры x86, возможно, также включающий набор данных CPUID для нескольких реальных моделей CPU, и удобный метод конфигурации для выбора одной из них для ВМ
Спонсор: Фонд FreeBSD
Модернизация инфраструктуры (Infrastructure Modernization)
Контакт: Ed Maste <emaste@FreeBSD.org>
Контакт: Alice Sowerby <alice@freebsdfoundation.org>
Проект начался в 3 квартале 2024 года и был заказан Sovereign Tech Agency с бюджетом в 745 000 долларов США, которые должны быть израсходованы до конца 2025 года. Основные цели — улучшить инструменты безопасности для базовой системы, портов и пакетов, обновить инфраструктуру проекта для ускорения разработки, повысить безопасность сборки и упростить начало работы для новых разработчиков.
Для получения более подробной информации и обновлений, пожалуйста, посетите новый репозиторий с информацией о проекте.
Обновление за 4 квартал
Все пять рабочих пакетов завершены к концу декабря 2025 года, и проект закрыт. На момент написания (середина декабря) некоторые элементы всё ещё находятся на рассмотрении, и они были переданы сотрудникам Фонда для надлежащего внедрения.
Рабочий пакет A: Сокращение технического долга (Technical Debt Reduction)
Этот рабочий пакет был завершён в сентябре 2025 года. Проект успешно выполнялся параллельно с созданием команды по управлению исходным кодом (Source Management team) проекта FreeBSD, поскольку они создавали и внедряли свои новые процессы, чтобы сделать управление ошибками более простым и устойчивым.
Объём работ был определён совместно с srcmgr@.
Элементы работы таковы:
-
Создать панель мониторинга для команды по управлению исходным кодом, чтобы получить более чёткую картину отставания по ошибкам (bug backlog) и того, насколько эффективно оно управляется (например, время до первого внимания для новых ошибок).
-
Результат: https://grimoire.freebsd.org/
-
-
Обновить Bugzilla до поддерживаемой версии для повышения безопасности и использования новых функций.
-
Результат: https://wiki.freebsd.org/Bugzilla/Roadmap
-
-
Создать метод для автоматического применения исправлений.
-
Результат: https://github.com/linimon/patchQA
-
-
Создать вышестоящую (upstream) документацию по запуску GrimoireLab (панель управления ошибками) на FreeBSD.
Рабочий пакет B: Сборки с нулевым доверием (Zero Trust Builds)
Этот рабочий пакет сделал возможным осуществлять воспроизводимую сборку FreeBSD без необходимости использования полномочий администратора системы.
Детальный объём работ был сформирован совместно с core@, srcmgr@, secteam@.
Элементы работы таковы:
-
Должны быть выполнены
-
Сборка без полномочий администратора системы для всех вариантов/артефактов релиза из исходных кодов (завершено)
-
Артефакты из исходных кодов собираются воспроизводимо (завершено)
-
Формализация и документирование make world и release.sh (на рассмотрении)
-
-
Желательны
-
Удаление привилегий из инструментов оркестрации (исключено из-за вероятного альтернативного решения в среднесрочной перспективе)
-
Перенос скриптов сборки в публичный репозиторий (на рассмотрении)
-
Решение проблем с зависимостями (завершено)
-
-
Возможны
-
Стандартизация окружения (на рассмотрении)
-
Воспроизводимая сборка портов (на рассмотрении)
-
CI для проверки воспроизводимости (на рассмотрении)
-
Документация, позволяющая третьим сторонам подтверждать воспроизводимость (на рассмотрении)
-
Рабочий пакет C: Автоматизация CI/CD
Этот рабочий пакет улучшил автоматизацию CI/CD для оптимизации доставки и эксплуатации программного обеспечения, как нового, так и существующего, посредством модернизации и повышения безопасности существующей системы CI/CD и её расширения для охвата сторонних пакетов в коллекции портов FreeBSD.
Детальный объём работ был сформирован совместно с core@, srcmgr@, portmgr@, doceng@.
Элементы работы таковы:
-
Должны быть выполнены
-
Повышение качества входящих коммитов (на рассмотрении)
-
CI перед слиянием (pre-merge CI) (завершено)
-
Метаданные окружения (завершено)
-
Расширение CI на дерево портов (на рассмотрении)
-
Модель угроз для CI (на рассмотрении)
-
Процесс управления CI (на рассмотрении)
-
Документация (на рассмотрении)
-
-
Желательны
-
Совместимость со сторонними системами (на рассмотрении)
-
Автоматизированный анализ в тестах (на рассмотрении)
-
Управление тестовыми сценариями (на рассмотрении)
-
-
Возможны
-
Детальная отладка (на рассмотрении)
-
Рабочий пакет D: Улучшения безопасности портов и пакетов
Этот рабочий пакет улучшил безопасность коллекции портов и пакетов FreeBSD несколькими способами. Мы добавили поддержку формата OSV (Open Source Vulnerability), который является стандартизированным способом описания уязвимостей безопасности. Мы также создали базовые инструменты для загрузки информации об уязвимостях из глобальных баз данных безопасности, с особым вниманием к словарю NIST Common Platform Enumeration (CPE).
Инструмент pkg(8) теперь может создавать и читать строки CPE, хотя он ещё не поддерживает формат JSON для CPE. Мы написали новые тестовые примеры для обработки CPE и OSV и обновили существующие тесты аудита безопасности pkg(8). Кроме того, мы создали тестовый репозиторий, который конвертирует данные об уязвимостях FreeBSD в формат OSV и работает с pkg(8). Этот тестовый репозиторий был проверен на точность, и процесс конвертации из старого формата VuXML FreeBSD в новый формат OSV теперь является простым.
Детальный объём работ был сформирован совместно с core@, portmgr@, pkgmgr@, secteam@.
Элементы работы таковы:
-
Должны быть выполнены
-
Новый формат базы данных (завершено)
-
Настройка 2+ экземпляров базы данных (исключено из-за нехватки времени)
-
Миграция данных из старой базы данных в новую (POC завершён)
-
Добавление поддержки нового формата в pkg(8) (завершено)
-
Взаимодействие с вышестоящими проектами (upstream engagement) (завершено)
-
SBOM по требованию (на рассмотрении)
-
Документирование настройки целей сборки и тестирования (на рассмотрении)
-
Интеграция сторонних тестовых целей (исключено из-за нехватки времени)
-
Непрерывное тестирование (на рассмотрении)
-
-
Возможны
-
Сделать артефакты CI доступными (исключено из-за нехватки времени)
-
Рабочий пакет E: Улучшения SBOM
Этот рабочий пакет дал фундаментальные улучшения инструментов и процессов для генерации спецификации программного обеспечения FreeBSD (SBOM).
Мы внесли изменения (в настоящее время на рассмотрении) для консолидации отдельных данных о происхождении как из базовой системы, так и из деревьев портов в единое, более высокоуровневое представление. Мы также создали инструментарий, который может сканировать дерево исходных текстов FreeBSD и генерировать отчёт SBOM, охватывающий весь стек программного обеспечения.
Дерево портов FreeBSD уже имело хорошие метаданные для создания SBOM и устоявшиеся инструменты для отслеживания зависимостей пакетов, поэтому наши решения SBOM для портов теперь являются зрелыми и находятся на стадии рассмотрения. Однако базовая система FreeBSD использует совершенно другую систему сборки, а информация для SBOM разбросана по всему репозиторию. Основная проблема здесь заключалась в сборе всех зависимостей и информации о пакетах в одном месте. В результате создание SBOM для базовой системы FreeBSD всё ещё находится на стадии технического предварительного просмотра, и в настоящее время доступны только примерные данные.
На начало 2026 года был заказан последующий проект, опирающийся на эти фундаментальные элементы и направленный на разработку полноценного, надёжного решения для SBOM.
Детальный объём работ был сформирован совместно с core@, portmgr@, pkgmgr@, secteam@, releng@.
Элементы работы таковы:
-
Должны быть выполнены
-
Оценка проектов/решений, доступных в более широкой экосистеме (завершено)
-
Предложение целевого решения для SBOM (на рассмотрении)
-
Создание SBOM в CI (например, еженедельные сборки) (исключено из-за нехватки времени)
-
Создание SBOM в качестве артефакта в рамках процесса релиза (частично завершено)
-
Артефакт SBOM по требованию (на рассмотрении)
-
Обобщение существующих данных (на рассмотрении)
-
Запись и объяснение принятых решений (на рассмотрении)
-
-
Возможны
-
Взаимодействие с другими подобными проектами (завершено)
-
Заказчик: Sovereign Tech Agency
Parthenope — Дизайн и идеи
Контакт: Alfonso Sabato Siciliano <asiciliano@FreeBSD.org>
Parthenope — это модульный двухэтапный установщик для операционной системы FreeBSD, написанный в основном на Lua. Процесс установки разделён на две фазы:
-
На первом этапе файлы конфигурации и команды установки генерируются с использованием различных интерактивных интерфейсов.
-
На втором этапе выполняется фактическая установка системы на основе ранее созданных файлов.
Проект является простым, расширяемым и гибким. Он разработан для поддержки нескольких внешних интерфейсов (frontend), языков, режимов установки ("Авто", "Легкий" и "Экспертный"), уровней интерактивности и возможностей ведения журнала.
Parthenope начинался как личный проект, чтобы ответить на простой вопрос: "Какие функции я хотел бы видеть при установке FreeBSD на свой ноутбук?" С тех пор он превратился в инструмент с открытым исходным кодом, который каждый может использовать, адаптировать или расширять в соответствии со своими требованиями.
В течение этого квартала:
-
Мотивация, концептуальное доказательство (proof of concept) и несколько предварительных скриншотов были представлены на EuroBSDCon 2025, слайды.
-
Была выполнена оптимизация скрипта генерации ISO-образа и подсистемы интернационализации.
-
Был создан публичный репозиторий.
На данный момент установить FreeBSD с его помощью ещё невозможно. Следующие шаги:
-
Оптимизация файла конфигурации.
-
Оптимизация подсистем: журналирование, режимы, фаза-2 и т.д.
-
Реализация компонентов установщика: разбивка диска на разделы (partitioner), менеджер сети, дата/время и т.д.
На начальном этапе единственным внешним интерфейсом (frontend) будет текстовый пользовательский интерфейс (TUI), очень похожий на bsdinstall, программу установки FreeBSD, используемую по умолчанию. Дополнительные внешние интерфейсы будут добавлены в будущем.
Поддержка акселератора VMM для QEMU
Ссылки:
Ссылка на проект URL: https://wiki.freebsd.org/SummerOfCode2025Projects/VMMAcceleratorSupportForQEMU
Код (форк
FreeBSD) URL: https://github.com/dumrich/freebsd-src
Код (форк QEMU)
URL: https://github.com/dumrich/qemu.git
Контакт: Abhinav Chavali <abhinavchavali12@gmail.com>
Описание
Этот проект направлен на реализацию бэкенда-акселератора vmm(4) для QEMU. Путем организации взаимодействия QEMU с нативной инфраструктурой гипервизора FreeBSD пользователи смогут запускать виртуальные машины с производительностью, близкой к нативной, используя аппаратные расширения виртуализации (VMX/SVM), аналогично тому, как KVM функционирует на Linux. Это сочетает обширную экосистему эмуляции устройств QEMU с производительностью гипервизора ядра FreeBSD.
Статус
Бэкенд теперь достаточно функционален для загрузки гостевой
системы FreeBSD с использованием одного виртуального CPU (vCPU).
Базовая инфраструктура для взаимодействия QEMU с
libvmmapi создана. Критически важно, что контроллеры
прерываний (8259 PIC, IOAPIC, LAPIC) теперь успешно используют
реализации из vmm ядра, а не эмуляцию в
пользовательском пространстве.
Открытые вопросы и призыв о помощи
Хотя основная работа завершена, есть ключевые области, где вклад сообщества был бы очень ценен для того, чтобы объединить эту работу с вышестоящим проектом (upstream):
-
Поддержка гостевых SMP: В настоящее время гостевая система ограничена 1 vCPU. Мы ищем помощь в отладке существующей обработки циклов/потоков в бэкенде для включения поддержки многопроцессорности.
-
Вынос устройств (Device Offloading): Таймеры RTC и HPET в настоящее время всё ещё эмулируются в пользовательском пространстве QEMU. Их необходимо переработать для использования внутриядерных версий из
vmmдля лучшей производительности и корректности. -
Общая стабильность: Как и для любого бэкенда гипервизора, нам нужна помощь в тестировании граничных случаев и стресс-тестировании с различными типами гостевых ОС.
Я хотел бы поблагодарить Google за спонсорство и проект FreeBSD за наставничество и возможность внести свой вклад в систему.
Спонсор: Google Summer of Code 2025
Sylve — Унифицированная платформа управления системой для FreeBSD
Ссылки:
GitHub URL:
https://github.com/AlchemillaHQ/Sylve
CI URL: https://sylve-ci.alchemilla.io
Discord URL: https://discord.gg/bJB826JvXK
Контакт: Hayzam Sherif <hayzam@alchemilla.io>
Sylve — это современная унифицированная платформа управления системой для FreeBSD, вдохновленная Proxmox. Она предоставляет интегрированный веб-интерфейс для управления виртуальными машинами (через Bhyve), клетками (Jails), хранилищем ZFS, сетью и межсетевым экраном.
Бэкенд реализован на Go, в то время как фронтенд построен с использованием SvelteKit, Tailwind CSS и компонентов UI ShadCN.
Проект делает акцент на минимализации места, занимаемого в системе. По умолчанию требуются только следующие пакеты:
Опциональные зависимости времени выполнения, требуемые только при использовании соответствующих функций, включают в себя:
-
devel/libvirt для виртуализации
-
devel/qemu-tools для управления образами дисков
-
net/samba419 для общего доступа к файлам по SMB
-
sysutils/swtpm для поддержки эмуляции TPM
-
net/dnsmasq для служб DHCP и DNS
Основные достижения за IV квартал
Хранилище
-
Управление ZFS: теперь мы используем GitHub - gzfs, обертку на Go для инструментария командной строки zfs/zpool/zdb, обеспечивающую полную поддержку создания и управления пулами и наборами данных ZFS. Это улучшило производительность и надёжность по сравнению с нашей предыдущей реализацией.
-
Управление хранилищем для ВМ и клеток: во время инициализации пользователь может выбрать пул(ы), в которых будут создаваться ВМ (диски/zvol’ы) и клетки (наборы данных), а всё создание дисков/наборов данных будет выполняться автоматически "под капотом".
Клетки (Jails)
-
Добавлена поддержка Linux-клеток с использованием Linuxulator во FreeBSD. Пользователи могут создавать, управлять и отслеживать Linux-клетки через веб-интерфейс. Это всё ещё считается экспериментальным, но мы провели обширное тестирование с Rocky Linux и Alpine.
-
Добавлен ряд улучшений для клеток, где теперь люди могут указать гораздо больше параметров при создании/редактировании/просмотре "толстых" клеток (thick jails).
Виртуальные машины
-
Поддержка Cloud-Init: Sylve теперь поддерживает Cloud-Init для автоматического предоставления ВМ. Пользователи могут предоставить конфигурацию Cloud-Init во время создания/редактирования ВМ.
-
Последовательная консоль (Serial Console): Реализована веб-консоль для ВМ, позволяющая пользователям получать доступ к консоли ВМ непосредственно из интерфейса Sylve.
Сеть
-
DHCP-сервер: Добавлен веб-интерфейс для net/dnsmasq, мы позволяем создавать диапазоны, резервирования и опции.
Утилиты
Загрузчик теперь поддерживает автоматическое извлечение различных форматов архивов, включая .tar.gz, .zip, .xz и .bz2, а также поддерживает автоматическое преобразование образов дисков в формат raw.
Общее
Sylve теперь требует FreeBSD версии 15.0 и выше, так как мы теперь зависим от таких функций, как метаданные клеток (Jail metadata) и ZFS v2.4.0+, которая включает вывод в формате JSON для многих команд, на которые мы полагаемся.
Мы также выполнили многочисленные улучшения пользовательского интерфейса и пользовательского опыта (UI/UX), оптимизации производительности и исправления ошибок по всей платформе, некоторые из них включают:
-
Улучшенное построение графиков с помощью библиотеки ECharts для лучшей производительности и интерактивности.
-
Улучшенные функции доступности для обеспечения соответствия стандартам WCAG.
-
Поддержка интернационализации (i18n) с помощью Wuchale, начиная с переводов интерфейса на хинди (hi).
-
Оптимизации бэкенда для более быстрого извлечения данных и сокращения времени загрузки.
-
Удалено несколько зависимостей фронтенда (в частности, tanstack) в пользу более лёгких альтернатив для уменьшения общего размера пакета и улучшения времени загрузки.
Обновление дорожной карты
Некоторая работа по кластеризации всё ещё продолжается. После её завершения мы выпустим полную документацию по проекту и начнём упаковывать Sylve для простой установки через pkg.
Мы также разрабатываем новую, высокоинтегрированную систему резервного копирования в рамках монорепозитория Sylve, обеспечивающую простое резервное копирование и восстановление ВМ, клеток и конфигураций.
Спонсор: Фонд FreeBSD
Ядро
Обновления подсистем/функций ядра, поддержки драйверов, файловых систем и другое.
Улучшение функций системы приостановки/возобновления работы (Suspend/Resume)
Ссылки:
Блог URL: https://obiw.ac/s0ix/
Доклад на BSDCan о
s2idle/S0ix URL: https://youtu.be/RCjPc4X2Edc
Образ для
тестирования режимов сна URL: https://people.freebsd.org/~obiwac/s0ix/
Ключевая часть стека
s2idle/S0ix + AMD SMU URL: https://reviews.freebsd.org/D48721
Контакт: obiwac <obiwac@FreeBSD.org>
В FreeBSD ведётся работа по добавлению поддержки режима "приостановка в бездействие" (suspend-to-idle) и сна S0ix.
Это позволит современным ноутбукам на Intel и AMD, некоторые из которых не поддерживают сон ACPI S3, переходить в состояния с низким энергопотреблением для увеличения времени автономной работы.
Вход в состояние S0i3 теперь работает с частичной надёжностью на ноутбуках Framework 13 с AMD Ryzen 7040 под управлением FreeBSD 15.
Код типа сна и sysctl был закоммичен, и было внесено исправление проблемы, которую он вызвал (D53909). Из-за некоторых существующих проблем в нашем коде D-state ACPI, из-за которых некоторые ранее работавшие устройства перестали входить в состояние S3, связанные коммиты изменений D-state, необходимых для S0ix, пришлось отменить, хотя, похоже, это не влияет на вход в S0i3 на вышеупомянутой машине. Проводилась работа по очистке и исправлению нашего кода D-state, но это не является большим приоритетом, если это не препятствует входу в S0i3 на целевой(ых) машине(ах).
Ревизии для s2idle и SPMC (D48734 и D48387 соответственно) были рассмотрены, и была проделана некоторая работа по подготовке их к коммиту. Были созданы новые исследовательские ревизии для реализации цикла s2idle (D54406 и D54410) и некоторых необходимых изменений в планировщике (D54407 и D54409).
Возникли некоторые проблемы при возобновлении работы из S0i3, по-видимому, только при загрузке драйвера USB4, которые были исследованы.
Доступен предварительно собранный образ для тестирования режимов сна, облегчающий проверку входа в S0i3 на машинах. Подробные инструкции находятся на веб-странице.
Что касается ссылок, запись в блоге все еще устарела.
Спонсор: Фонд FreeBSD
Улучшения звукового стека (Audio Stack Improvements)
Контакт: Christos Margiolis <christos@FreeBSD.org>
Я работаю над звуковым стеком с 1 квартала 2024 года. Ниже приведён список предыдущих отчётов о состоянии дел:
2024Q1 URL: https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements
2024Q2 URL: https://www.freebsd.org/status/report-2024-04-2024-06/#_audio_stack_improvements
2024Q3 URL: https://www.freebsd.org/status/report-2024-07-2024-09/#_audio_stack_improvements
2024Q4 URL: https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements
2025Q1 URL: https://www.freebsd.org/status/report-2025-01-2025-03/#_audio_stack_improvements
2025Q2 URL: https://www.freebsd.org/status/report-2025-04-2025-06/#_audio_stack_improvements
2025Q3 URL: https://www.freebsd.org/status/report-2025-07-2025-09/#_audio_stack_improvements
Важная работа со времени последнего отчета:
-
virtual_oss в базовой системе (обновление примечаний к релизу).
-
Автоматическое перенаправление звука в snd_hda(4) (первоначальный коммит).
-
Дополнительные чистки, исправления и улучшения sound(4).
-
Улучшенная поддержка ноутбуков "из коробки".
-
Написана статья о звуке для журнала FreeBSD Journal.
-
Расширен (и продолжает расширяться) каталог
/usr/share/examples/sound. -
Несколько переписываний, исправлений и чисток кода MIDI.
Вы также можете следить за процессом разработки в рассылке freebsd-multimedia@, куда я отправляю регулярные отчёты.
Спонсор: Фонд FreeBSD
Обновление LinuxKPI 802.11 и нативного беспроводного стека (Native Wireless)
Ссылки:
Поддержка
беспроводных карт MediaTek URL: https://github.com/FreeBSDFoundation/proj-laptop/issues/66
Поддержка
беспроводных карт Realtek URL: https://github.com/FreeBSDFoundation/proj-laptop/issues/99
Контакт: Bjoern A. Zeeb <bz@FreeBSD.org>
Контакт: Список рассылки FreeBSD по беспроводным технологиям
<wireless@FreeBSD.org>
Этот отчёт посвящён активностям по использованию беспроводных драйверов Linux с разрешающей это лицензией, в основном без изменений, на FreeBSD, а также подготовке нативного стека net80211 к поддержке новых стандартов.
Обновления драйверов
Поскольку обновление драйверов до версии на основе Linux v6.16 застопорилось в прошлом квартале из-за конфликта с drm-kmod, а позже из-за проблемы с nvidia-drm, мы обновились до драйверов на основе v6.17 прямо перед финальной датой выпуска 15.0-RELEASE в сентябре. К сожалению, несколько исправлений уже не успели попасть в релиз. Впоследствии нам также пришлось исправить graphics/drm-515-kmod и скорректировать код LinuxKPI, чтобы восстановить работу SR-IOV для mlx5en.
В декабре мы начали отслеживать Linux v6.18 для некоторых драйверов. Вероятно, последует и больше, или мы перейдём сразу на v6.19-rcN, чтобы воспользоваться улучшениями из вышестоящего проекта (upstream).
Прошивки (Firmware)
С обновлением драйверов до новых версий потребовалось обновить несколько файлов прошивок. Автоматизированный способ, который мы использовали для iwlwifi(4), больше не работает, поэтому теперь мы забираем всё, что можем, но всё ещё пытаемся классифицировать файлы по вариантам, пока это возможно. Фреймворк портов для wifi-firmware был полностью переключен на поставку только обычных файлов прошивок и больше никаких модулей ядра. Это означает, что обновления ядра больше не требуют обновления пакетов, и прошивки могут обновляться независимо (в большинстве случаев). Прошивки для всех других поддерживаемых (или неподдерживаемых) драйверов также были обновлены.
Поддержка Intel iwlwifi
Было реализовано несколько исправлений ошибок, в основном связанных с тем фактом, что поддрайвер mvm для iwlwifi(4) теперь официально разделён на mvm и mld в новых версиях. Также была исправлена поддержка карт с 1x1 антеннами, таких как AX101, которые приводили к сбою прошивки с 11n и 11ac.
Поддержка чипсетов Mediatek mt76
После того как мы наконец нашли ноутбук, в котором карта MT7922
могла использоваться для разработки (это был не основной слот WiFi
в моём ноутбуке, используемом для работы с этим фреймворком), мы
добились прохождения пакетов на базовых скоростях в течение 10
дней. Драйвер mt76 продолжает упираться в конфликт struct
page в LinuxKPI и дальнейшую работу над page
pool. Был открыт pull request для главной ветки (master)
drm-kmod, чтобы попытаться заранее решить возможные конфликты из-за
изменений struct page. Ведётся работа по поддержке
скоростей 11n и 11ac. Со временем будут добавлены другие
поддерживаемые чипсеты mt76, вероятно, следующим будет MT7925.
Поддержка Realtek rtw88 и rtw89 (11n и 11ac)
У некоторых чипсетов Realtek были/есть проблемы с работой или аварийным завершением работы из-за реализации совместимости с LinuxKPI. По крайней мере, один чипсет rtw88(4) не может ассоциироваться (или нормально сканировать), в то время как драйвер rtw89(4) иногда может вызывать аварийное завершение работы. Ведётся работа по улучшению этой ситуации. Кроме того, ведётся работа по поддержке скоростей 802.11n и 802.11ac с этими драйверами. Поддержка BlockACK была налажена, и rtw89(4), кажется, нормально работает с RX, но всё ещё застрял на базовых скоростях для TX. Последнее, вероятно, вызвано более новыми низкоуровневыми вызовами драйвера, которые мы теперь начинаем поддерживать в LinuxKPI для решения этой проблемы.
Спонсор: Фонд FreeBSD
Туннели GENEVE
Контакт: Seyed Pouria Mousavizadeh Tehrani <info@spmzt.net>
Я работал над реализацией туннелей GENEVE в течение трёх месяцев, и сейчас она находится на рассмотрении. GENEVE реализует обобщённый интерфейс сетевого туннеля для виртуализации, предназначенный для систем-арендаторов (tenant systems), поверх нижележащей L3 (IP/UDP) сети, предоставляя услуги уровня 2 (ethernet) или уровня 3 с использованием протокола GENEVE.
Вот что было сделано:
-
Поддержка одноадресной (unicast) и многоадресной (multicast) нижележащей сети как для IPv4, так и для IPv6.
-
Поддержка клеток (Jails) и туннелей geneve с привязкой к VNET.
-
Возможности разгрузки RXCSUM/TXCSUM/TSO.
-
Поддержка наследования и настройки значений ToS, TTL и DF.
-
Поддержка NETLINK/WITHOUT_NETLINK для if_geneve.
-
Обновлен ifconfig для поддержки создания и изменения туннелей с использованием NETLINK для if_geneve.
-
Написана справочная страница (man page) для geneve(4) и обновлена ifconfig(8) для включения параметров geneve.
-
Написаны тесты.
Зависимости и связанные рецензии, необходимые для поддержки реализации geneve:
Рецензия большая, потому что я реализовал функции, которые уже доступны на других платформах, перед отправкой. Вы можете помочь ускорить процесс, рецензируя и оставляя отзывы на phabricator.
Поддержка Rust в ядре (Kernel Rust Support)
Ссылки:
Репозиторий KPI
для Rust URL: https://github.com/ayrtonm/freebsd-kpi-rs
Звуковой
драйвер virtio на Rust URL: https://github.com/ayrtonm/freebsd-src/tree/virtio_snd
Контакт: Ayrton Muñoz <a.munoz3327@gmail.com>
Я занимаюсь добавлением поддержки использования Rust в ядре и написания драйверов устройств на нём. Rust — хороший инструмент для того, чтобы взять существующие правила использования указателей и обеспечить их соблюдение с помощью системы типов. Эти правила часто неявны в C, что означает дополнительную умственную нагрузку для разработчиков. Rust не предотвратит каждую ошибку, но позволяет разработчикам избегать некоторых из них и больше сосредотачиваться на реализации интересующей их функциональности.
KPI для Rust в настоящее время находятся в разработке и не очень стабильны, но нет зависимости от более широкой экосистемы Rust или нестабильных языковых функций/API. Это означает, что в конечном итоге они смогут обеспечивать такую же стабильность, как и эквивалентные KPI на C, а обновление до более новых инструментальных цепочек Rust не должно приводить к ошибкам. Это также обеспечивает такую же прозрачность, как и C, в отношении того, когда происходят выделения памяти, поскольку используется невыделяющее подмножество стандартной библиотеки Rust. Различные подсистемы ядра потребуют оберток на Rust, но они могут быть построены на основе базовой функциональности, предоставляемой в репозитории KPI для Rust.
Я экспериментировал с этим время от времени с конца 2024 года, и разработка в основном происходит в моём репозитории KPI для Rust. Этот репозиторий также содержит make-файлы и корректировки для интеграции с config(8)/системой сборки. Самый простой драйвер для разработчиков, чтобы собрать и попробовать самим, — это мой звуковой драйвер virtio. Некоторые интерфейсы, которые он использует, находятся в стадии изменения, но драйвер достаточно функционален для воспроизведения музыки в QEMU. Эта ветка также включает обертки на Rust, которые могут быть повторно использованы для других устройств virtio или звуковых/PCM драйверов.
В настоящее время поддерживаются только x86-64 и aarch64. Другие архитектуры, поддерживаемые LLVM, могут быть добавлены, если будет интерес, но я хотел изначально сосредоточиться лишь на нескольких вариантах использования. Помимо QEMU, я также тестировал драйверы на Rust на оборудовании с некоторыми драйверами для ARM64 машин Apple. Это был первоначальный вариант использования и включает в себя взятие некоторых незавершённых драйверов, с которыми я начал помогать в 2024 году, и портирование новых частей (greenfield parts) на Rust. Это в основном низкоуровневые драйверы, но также включает драйвер HID DockChannel для клавиатуры на MacBook M2.
В какой-то момент в начале 2026 года KPI для Rust должны стать достаточно стабильными, чтобы заинтересованные разработчики могли попробовать писать с их помощью новый код. Они не будут идеальными, но я хочу убедиться, что они работают примерно так, как ожидают существующие драйверы, а также соответствуют ожиданиям разработчиков на Rust, прежде чем запрашивать тестирование. Надеюсь, драйверы для Apple также снова достигнут паритета с первоначальной незавершённой версией на C в первой половине 2026 года.
Улучшения отладки ядра через USB (USB Kernel Debugging Improvements)
Контакт: Tom Jones <thj@FreeBSD.org>
Контроллеры XHCI USB предлагают режим, который позволяет использовать их в качестве интерфейса отладки системы. Отладка через XHCI использует специальный кабель стандарта USB 3 с отключенными VBUS, D+ и D-. Эта функция может использоваться для отладки ядра FreeBSD в режиме реального времени, позволяя исследовать проблемы, из-за которых видеоконсоль системы зависает, и нет альтернативы, такой как последовательная консоль. Это может произойти при отладке проблем с графическими драйверами.
Хироки Сато (Hiroki Sato) разработал поддержку интерфейса отладки XHCI и сделал её доступной в виде некоторых незавершённых git-веток. Эта реализация позволяет FreeBSD работать как в качестве хоста отладки (Debug Host), так и в качестве цели отладки (Debug Target) с поддержкой отладки от загрузчика до ядра.
В этом квартале была проведена была проведена существенная работа по устранению проблем интерфейсов отладки, связанных со стороной хоста xhci debug. Была спроектирована пользовательская плата для поддержки двух режимов отладки с USB-C: xhci debug и USB-C Debug Accessory Mode (DAM). DAM включает альтернативный режим для разъемов USB-C; на некоторых устройствах, таких как ноутбуки Framework 2025 года и настольные ПК, этот режим обеспечивает доступ к UART на SoC для отладки.
Для создания полноценного адаптера USB-C для xhci и более функционального адаптера DAM потребуются дальнейшие улучшения аппаратного обеспечения.
Некоторые изменения, относящиеся к загрузчику, были направлена на рецензирование, и несколько изменений были выбраны и включены в дерево исходных текстов.
Спонсор: Фонд FreeBSD
Архитектуры
Обновление специфичных платформенных функций и добавление поддержки новых аппаратных платформ.
Разработка драйверов FreeBSD для BananaPi-R64
Ссылки:
Вики URL:
https://wiki.freebsd.org/arm/Bananapi
Контакт: Martin Filla <freebsd@sysctl.cz>
Введение
Banana Pi R64 — это плата для разработки на базе MediaTek MT7622 (ARM Cortex-A53, двухъядерный ~1.35 ГГц), оснащенная 4× Gigabit LAN, 1× Gigabit WAN, Wi-Fi (4×4n), Bluetooth 5.0 и множеством периферийных интерфейсов (UART, SPI, I²C, GPIO, SATA, mini-PCIe, eMMC и т.д.).
Текущее состояние поддержки FreeBSD
На данный момент реализовано:
-
Драйвер UART
-
Управление тактированием (clocks)
-
Pinctrl
-
Драйвер контроллера хранилища (eMMC/SD/MMC)
-
Драйвер сетевого коммутатора mt7531
-
Драйвер Ethernet mt7622
-
Драйвер XHCI
-
Драйвер сторожевого таймера (Watchdog)
-
Драйвер RTC
-
Драйвер RNG
-
Драйвер Pciecfg
-
Драйвер SysIRQ
План разработки (Roadmap)
Реализовать недостающие драйверы:
-
USB3 / T-PHY
-
SATA / AHCI / T-PHY
-
Wi-Fi (вероятно, MediaTek MT7615)
-
Подсистемы GPIO
-
I2C
-
SPI
-
PWM
-
PCIE
Драйверы в работе:
-
T-PHY
Документация
Значительные изменения в дереве документации, страницах Справочника или новые внешние книги/документы.
Руководство по доступности (Accessibility Handbook)
Контакт: Список рассылки FreeBSD по доступности <freebsd-accessibility@FreeBSD.org>
Контакт: Alfonso Sabato Siciliano <asiciliano@FreeBSD.org>
В недавних отчётах было анонсировано новое Руководство по доступности и опубликованы его рецензии. Цель руководства — документировать вспомогательные технологии, доступные во FreeBSD как в базовой системе, так и в коллекции портов.
В течение этого квартала:
-
Книга была представлена на саммите разработчиков FreeBSD в Загребе в 2025 году, слайды доступны здесь.
-
Книга была опубликована и теперь доступна на веб-сайте FreeBSD в разделе Документация > Книги > Руководство по доступности.
В настоящее время руководство описывает вспомогательные технологии, связанные с нарушениями зрения. Оно является частью проекта по доступности для людей с нарушениями зрения (Vision Accessibility), спонсируемого Фондом FreeBSD. Руководство структурировано в две части и шесть глав:
-
Помощь (Help) — Описывает, как эффективно запрашивать помощь через соответствующие каналы связи FreeBSD.
-
Виртуальный терминал (Virtual Terminal) — Документирует функции доступности для людей с нарушениями зрения в виртуальной консоли FreeBSD (vt(4)).
-
Цвета (Colors) — Объясняет, как настраивать цветовые схемы, включая темы с высокой контрастностью и адаптацию цветов экрана под освещение.
-
Плохое зрение (Low Vision) — Описывает инструменты доступности в графических средах рабочего стола для пользователей с плохим зрением, такие как экранные лупы, читаемые шрифты и масштабирование.
-
Слепота (Blindness) — Описывает вспомогательные технологии для незрячих пользователей, фокусируясь в первую очередь на программах чтения содержимого экрана (screen readers) и совместимых с ними инструментах.
-
Разработка (Development) — Предоставляет ресурсы для разработчиков, чтобы сделать их программное обеспечение доступным, тестировать доступность и улучшить поддержку для пользователей с нарушениями зрения.
Руководство намеренно избегает изображений и минимизирует использование элементов, не являющихся обычным текстом, для улучшения совместимости со вспомогательными технологиями. Советы и новые идеи приветствуются. Если возможно, отправляйте отчёты в список рассылки FreeBSD по доступности, чтобы делиться и отслеживать обсуждения в публичном месте.
Спонсор: Фонд FreeBSD
FreeBSD Git Weekly (Еженедельные дайджесты Git)
Контакт: Graham Percival <gperciva@tarsnap.com>
Это еженедельные перечни коммитов в дерево исходных текстов FreeBSD, разбитые по категориям, таким как "документация", "поддержка оборудования", "тестирование" и "ядро". Мы также включаем ежеквартальные перечни категоризированных коммитов для тех, кто предпочитает видеть три месяца разработки сразу.
Наша цель — упростить разработчикам и пользователям отслеживание изменений в FreeBSD, которые имеют к ним отношение, без необходимости подписываться на список рассылки dev-commits-src-main и просматривать каждый коммит, попадающий в их почтовый ящик.
Существует список рассылки freebsd-git-weekly@tarsnap.com, который предоставляет анонсы о каждом отчёте.
Спонсор: Tarsnap Backup Inc.
Проект русскоязычной документации FreeBSD (The FreeBSD Russian Documentation Project)
Ссылки:
Официальный сайт FreeBSD на
русском URL: https://www.freebsd.org/ru/
FAQ URL:
https://docs.freebsd.org/ru/books/faq/
Сайт
проекта русскоязычной документации FreeBSD URL: https://github.com/freebsd-doc-ru/freebsd-doc/discussions
Контакт: Андрей Захватов (Andrey Zakhvatov) <andy@FreeBSD.org>
Контакт: Владлен Пополитов (Vladlen Popolitov) <vladlen@FreeBSD.org>
Текущая цель Проекта русскоязычной документации FreeBSD — предоставлять актуальные русские переводы наиболее важных частей документации FreeBSD (FAQ, Руководство, содержимое веб-сайта). Это необходимо для поддержки русскоязычных пользователей качественными официальными техническими материалами и для расширения распространённости операционной системы по всему миру. Мы надеемся, что эта инициатива получит поддержку в русскоязычном сообществе FreeBSD и приведёт к увеличению объёма переведённых материалов.
В течение последнего квартала:
-
Переведено 100% текста, находящегося в Weblate, включая последние изменения.
-
Завершён процесс рецензирования и обновления оставшейся документации. Все 47 документов (книги и статьи) теперь полностью синхронизированы на сайте русскоязычной документации.
-
Восстановлен русскоязычный раздел сайта www.FreeBSD.org/ru, обновлено примерно 90% его страниц.
-
Новости, анонсы событий и ссылки на прессу теперь переводятся и публикуются на русскоязычном сайте. Кроме того, начиная с января 2025 года, на русский язык переводятся Errata Notices (уведомления об ошибках) и Security Advisories (бюллетени безопасности).
-
Для релиза FreeBSD 15.0 полный комплект документации к релизу (примечания к релизу, errata и т.д.) был своевременно переведён на русский язык параллельно с оригинальными английскими текстами.
-
Инициирован проект по переводу справочных страниц (man pages) FreeBSD, который находится на самой ранней стадии. Предварительные примеры можно найти на GitHub.
Этот отчет с признательностью отмечает вклад следующих коллег, которые проводили рецензирование наших коммитов в течение квартала (в Phabricator или по электронной почте):
План на следующий квартал:
-
Завершить обновление всех оставшихся страниц на русскоязычном веб-сайте.
-
Наладить устойчивый рабочий процесс для поддержания переведённого контента (Новости, События, Пресса, Errata, Бюллетени безопасности) в актуальном состоянии и его публикации на сайте в кратчайшие сроки.
-
Перевести новое "Руководство по доступности FreeBSD" (FreeBSD Accessibility Handbook), как только оно станет доступно для перевода в Weblate.
-
Продолжить текущий проект по переводу страниц Справочника FreeBSD.
Ознакомьтесь с официальным руководством по переводу, если вы хотите помочь.
Мы будем признательны за вашу помощь в переводе следующих материалов:
-
Веб-страницы
-
Справочные страницы (man pages)
Порты
Изменения, затрагивающие Коллекцию портов, будь то массовые изменения, затрагивающие большую часть дерева, или отдельные порты.
Модернизация HPC-портов FreeBSD: Slurm 25.11 и выделенные PMIx/PRRTE (FreeBSD HPC Ports Modernization: Slurm 25.11 and Unbundled PMIx/PRRTE)
Ссылки:
sysutils/slurm-wlm: 23.11.7 → 25.11.0 URL: https://cgit.freebsd.org/ports/commit/?id=1536bac0dd26d81e315652929b8bfaff9c136089
net/pmix: Process
Management Interface for Exascale (PMIx) URL: https://www.freshports.org/net/pmix/
net/prrte: PMIx
Reference RunTime Environment (PRRTE) URL: https://www.freshports.org/net/prrte/
sysutils/py-clustershell:
Фреймворк на Python для эффективного администрирования
кластеров URL: https://www.freshports.org/sysutils/py-clustershell/
Ежемесячные отчеты о
состоянии Kavocado – Заметки о HPC на FreeBSD URL: https://kavocado.net/reports/
Контакт: Generic Rikka <rikka.goering@outlook.de>
В течение этого квартала была проделана значительная работа по превращению FreeBSD в более практичную платформу для современных HPC-кластеров за счёт обновления ключевых компонентов стека Slurm + PMIx + PRRTE и предоставления их в качестве первоклассных портов.
Завершённые работы
-
Обновлён sysutils/slurm-wlm с версии 23.11.7 до 25.11.0, что соответствует последней долгосрочной серии вышестоящего проекта и значительно сокращает количество локальных патчей, необходимых для FreeBSD.
-
Обновлены rc.d-скрипты Slurm, чтобы
slurmctldиslurmdлучше интегрировались со стандартной конфигурацией FreeBSD (настраиваемые каталоги конфигурации/логов, pid-файлы, помощники для проверки статуса и очистки). -
Введены net/pmix и net/prrte как самостоятельные порты, и net/openmpi переключён на использование этих выделенных сред выполнения вместо копий, поставляемых внутри дистрибутива OpenMPI. Это приближает FreeBSD к тому, как многие дистрибутивы Linux для HPC упаковывают стек среды выполнения MPI.
-
Добавлен sysutils/py-clustershell, фреймворк на Python, широко используемый для масштабируемого администрирования кластеров, предоставляющий пользователям FreeBSD знакомый инструмент, встречающийся на многих производственных HPC-системах.
Выполняемые работы
-
Итерации по дополнительным улучшениям интеграции Slurm (плагины, настройки по умолчанию, документация), чтобы упростить развертывание Slurm на FreeBSD в реальных кластерах.
-
Расширение пользовательского стека HPC дополнительными инструментами, такими как тестовые фреймворки и утилиты, ориентированные на задания, чтобы FreeBSD могла служить реальной платформой для разработки и валидации HPC-программного обеспечения.
-
Портирование sysutils/mpifileutils и его зависимостей (devel/libcircle, devel/lwgrp, devel/lwgrpd) для предоставления файловых утилит, параллельных с использованием MPI, обычно используемых в больших HPC-файловых системах (в настоящее время на рассмотрении).
-
Добавление и доработка HPC-ориентированных инструментов на Python, включая benchmarks/py-reframe (фреймворк для регрессионного тестирования HPC) и продолжение работы над sysutils/py-clustershell.
-
Начальная работа по переносу devel/spack на FreeBSD в качестве дополнительного инструмента для разработки и экспериментов с HPC-программным обеспечением, с целью улучшения совместимости с существующими HPC-рабочими процессами.
Планы на будущее
-
Продолжать внимательно отслеживать выпуски вышестоящих проектов Slurm, PMIx и PRRTE, чтобы FreeBSD оставалась жизнеспособной платформой для сайтов, ожидающих современный стек MPI/Slurm.
-
Документировать "эталонную" настройку Slurm + OpenMPI + PMIx + PRRTE на FreeBSD, чтобы снизить барьер для новых сайтов, желающих экспериментировать с FreeBSD в контексте HPC.
-
Выявлять и устранять специфичные для FreeBSD пробелы или регрессии, чтобы гарантировать полноту функциональности и надёжность программного стека в FreeBSD.
GCC в FreeBSD
Ссылки:
Проект GCC URL: https://gcc.gnu.org/
Серия релизов GCC 13 URL:
https://gcc.gnu.org/gcc-13/
Серия релизов GCC 14 URL:
https://gcc.gnu.org/gcc-14/
Серия релизов GCC 15 URL:
https://gcc.gnu.org/gcc-15/
Серия релизов GCC 16 URL:
https://gcc.gnu.org/gcc-16/
Контакт: Lorenzo Salvadore <salvadore@FreeBSD.org>
В этом квартале в отношении GCC в FreeBSD произошло совсем немного событий.
Главная новость заключается в том, что экспериментальный прогон (exp-run) для обновления версии GCC по умолчанию с 13 на 14 наконец-то завершён. Это заняло больше времени, чем ожидалось, из-за некоторых проблем с аварийным завершением работы, которые происходят в портах emacs только на самых последних версиях FreeBSD. Поскольку обновление GCC_DEFAULT уже давно назрело, было решено на время привязать порты emacs к GCC 13, чтобы эта единственная ошибка не мешала остальной части дерева портов получить преимущества от более новой версии GCC по умолчанию. Пожалуйста, обратитесь к PR 288303 для получения дополнительной информации.
GCC 15 уже есть в нашем дереве портов, и скоро начнётся процесс перевода GCC_DEFAULT на 15-ю версию.
Улучшение поддержки libvirt для гипервизора bhyve
Ссылки:
libvirt: Драйвер
Bhyve URL: https://libvirt.org/drvbhyve.html
Контакт: Roman Bogorodskiy <novel@FreeBSD.org>
Выполненная работа
-
Драйвер libvirt/bhyve:
-
Добавлена поддержка устройств NVMe.
-
Добавлена поддержка проброса PCI (PCI passthrough).
-
Добавлена поддержка сети SLIRP.
-
Добавлено больше опций конфигурации: SATA nmrr/RPM, очереди NVMe, ожидание VNC (VNC wait).
-
-
Включены тесты хуков (hooks) libvirt-tck.
Планы на следующий квартал
-
Добавить поддержку (целевая, но может перейти на следующий квартал) для:
-
Настройки порядка загрузки (boot order).
-
Устройств TPM.
-
Завершения поддержки приостановки/возобновления (suspend/resume).
-
Поддержки arm64.
-
Поддержки virtio-scsi.
-
Поддержки конфигурации NUMA для гостевых систем.
-
-
Улучшить поддержку virt-manager в FreeBSD.
Спонсор: Фонд FreeBSD
Улучшение OpenJDK в FreeBSD (Improve OpenJDK on FreeBSD)
Ссылки:
Описание проекта URL: https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/
Репозиторий
проекта URL: https://github.com/freebsd/openjdk
Контакт:
Harald Eilertsen <haraldei@FreeBSD.org>
Список рассылки FreeBSD по Java <freebsd-java@lists.freebsd.org>
Цель этого проекта — улучшить поддержку OpenJDK для FreeBSD/amd64 и FreeBSD/arm64.
Java — важная среда выполнения для многих высокопроизводительных критически важных корпоративных систем. Обеспечение корректной и эффективной работы приложений на базе Java на FreeBSD важно для того, чтобы FreeBSD продолжала оставаться жизнеспособной и привлекательной платформой для предприятий, а также для бизнеса и организаций любого размера.
В этом квартале были достигнуты следующие результаты/вехи:
-
Выпущен порт для OpenJDK 25, позже обновлен до OpenJDK 25.0.1. Спасибо Грегу Льюису (Greg Lewis) и Курту Миллеру (Kurt Miller) за помощь.
-
Добавлены FLAVORS
headlessиjreв порт OpenJDK 25. Это позволяет собирать и устанавливать только версию JDK без графического интерфейса (headless) или только среду выполнения Java (Java Runtime Environment, без компилятора или инструментов разработчика). Также возможно комбинировать их для установки только вариантаheadless-jre. Это полезно в серверных средах или других средах с ограниченными ресурсами, где полный JDK и инструменты не нужны. Планируется распространить эти FLAVORS и на остальные порты OpenJDK. -
Отправлено исправление в вышестоящий проект (upstream), которое исправляет недопустимое выравнивание памяти в системах, использующих
jemallocили другие аллокаторы, которые не используют строгую интерпретацию выравнивания требований стандарта C к выравниванию. Это вызывало проблемы при выделении небольших сегментов памяти вне кучи (off-heap) с использованием APIjava.lang.foreign.Arenaна FreeBSD. Это исправление будет включено в OpenJDK 26. -
Помечены как устаревшие порты OpenJDK, больше не поддерживаемые вышестоящим проектом. Порты будут объявлены устаревшими и удалены в течение первой половины 2026 года, после чего останутся только версии LTS и последние поддерживаемые порты.
Другие примечания:
-
Потратил некоторое время на изучение истории системного вызова
getrlimitusage(2), обнаружив, что он доступен начиная с версии 14.2, несмотря на то, что страница Справочника утверждает, что он впервые появился в версии 15. Смотрите также соответствующую рецензию от emaste. Это было важно, потому что улучшения производительности из предыдущего квартала полагаются на этот системный вызов. Знание того, что он доступен для всех текущих поддерживаемых версий FreeBSD, означает, что нам не нужно оставлять код для возврата к менее эффективным способам получения той же информации. -
Обновления, внесённые в реализацию отладочного средства Hotspot Serviceability Agent для Mac OS X, привели к неработоспособности реализации для BSD. По историческим соображениям эти реализации используют одни и те же исходные файлы и каталоги, несмотря на несколько разные реализации. Начата работа по перемещению кода OS X в отдельную реализацию, чтобы мы могли работать над реализацией для BSD, не мешая друг другу.
-
Возобновлена работа по изменению способа начальной загрузки сборок OpenJDK в системе портов. Эта работа снова стала более актуальной, поскольку объявление неподдерживаемых портов устаревшими нарушает предыдущее предположение о том, что для сборки текущей версии OpenJDK можно было полагаться на предыдущую версию. Новый механизм начальной загрузки должен быть внедрён до фактического удаления существующих портов.
-
В начале этого квартала я потерял доступ к своей тестовой системе на Aarch64, поэтому не мог тестировать на этой архитектуре так хорошо, как хотелось бы. Эта ситуация теперь исправлена, и я нахожусь в процессе настройки новой системы для сборки и тестирования.
Спонсор: Фонд FreeBSD
Сделать OpenJDK 21 версией JAVA, используемойпо умолчанию (Make OpenJDK 21 the default JAVA_VERSION)
Ссылки: Запрос
272855 URL: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272855
Таблица отслеживания текущей работы URL: https://docs.google.com/spreadsheets/d/17hmRQ0ShY4SHHVEkQBVxqK2G88fPZLriTzO26zXdjC4/edit?usp=sharing
Контакт: Ronald Klop <ronald@FreeBSD.org>
Версией Java, используемой по умолчанию (JAVA_VERSION) в портах FreeBSD, всё ещё является OpenJDK 8. Пришло время обновить её до более современной версии, такой как OpenJDK 21. Нам необходимо протестировать и исправить все порты, использующие Java для сборки или работы с JDK 21, либо закрепить (pin) за JAVA_VERSION, используемом в порту, последнюю поддерживаемую версию.
Работа отслеживается в PR 272855 и в Google Таблице для более подробной информации. Уже исправлено более половины портов, которые не прошли тестовый прогон.
Если у вас есть опыт работы с Java и системой портов, вас приглашают помочь. Я думаю, что вполне реально привести порты в порядок для установки JAVA_VERSION=21 в феврале 2026 года.
План:
-
Проверить последние 12 портов и создать PR или сделать коммит
-
Зафиксировать PR, по которым истёк срок ожидания ответа от мейнтейнера
-
Запросить ещё один экспериментальный прогон (exp-run)
-
Если всё готово, увеличить JAVA_VERSION
KDE в FreeBSD
Ссылки:
Инициатива KDE/FreeBSD URL:
https://freebsd.kde.org/
FreeBSD — Вики
сообщества KDE URL: https://community.kde.org/FreeBSD
Контакт: Список рассылки KDE в FreeBSD <kde@FreeBSD.org>
Проект KDE на FreeBSD занимается упаковкой CMake, Qt и программного обеспечения из сообщества KDE для дерева портов FreeBSD. Программное обеспечение включает в себя полноценную среду рабочего стола под названием KDE Plasma (как для X11, так и для Wayland) и сотни приложений, которые можно использовать на любой машине с FreeBSD. Команда KDE является частью desktop@, создавая стек программного обеспечения, чтобы сделать FreeBSD красивой и пригодной для использования в качестве ежедневно используемой графической рабочей станции.
Инфраструктура
CMake обновлён до версии 3.31.10. Ninja обновлён до версии 1.13.2.
Qt6, PyQt6 и PySide6 обновлены до версии 6.10.1.
Qt5 обновлён до коллекции патчей KDE для версии 5.15.18. Стандартная поддержка Qt5 вышестоящим проектом (upstream) официально прекращена. Возможно, это последнее обновление Qt5 для FreeBSD.
Стек KDE
Релизы KDE Frameworks, Plasma и Gear происходят очень регулярно. Команда KDE добавляет эти обновления вскоре после их выпуска вышестоящим проектом.
-
Порты KDE Frameworks обновлены до версии 6.21.0.
-
Среда рабочего стола KDE Plasma обновлена до версии 6.5.4.
-
KDE Gear обновлён до версии 25.12.0.
С выходом KDE Gear 25.12.0 последние два приложения были наконец портированы на Qt6, и теперь стек KDE избавлен от пакетов Qt5. Порт x11/kde был сокращён и больше не устанавливает плагины интеграции с Plasma 6 для приложений на Qt5 и GTK2. Они всё ещё доступны и могут быть установлены через порт x11/plasma6-plasma, если необходимо.
Поддержка Plasma/Wayland была улучшена. Её можно использовать как ежедневный драйвер вместо Plasma/X11.
Связанные порты
Команда KDE поддерживает почти 730 портов и обновляет их все по мере необходимости. Согласно portscout, только 1% портов устарели.
Команда KDE хотела бы поблагодарить Глеба Попова, Джейсона Хейла (Jason E. Hale), Лоика Бартолетти (Loïc Bartoletti) и Максима Бражникова за поддержание всего в актуальном состоянии. Команда KDE благодарна Харли (Harley, SponiX в IRC) за предоставление своей сборочной машины.
Использование Bazel в качестве инструмента сборки для MongoDB 8.0
Ссылки:
Порт
MongoDB 8.0 URL: https://www.freshports.org/databases/mongodb80/
PR для
Bazel 8 URL: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287546
Контакт: Ronald Klop <ronald@FreeBSD.org>
MongoDB — это NoSQL-база данных промышленного уровня. В наших портах уже много лет существует Community Edition MongoDB. MongoDB используется в портах различного программного обеспечения для контроллеров WiFi, таких как Unifi и Omada. Начиная с версии MongoDB 8.0.13, система сборки изменена с SCons на Bazel.
У нас есть версия 8 Bazel в Bugzilla (PR 287546). С этой версией сборка MongoDB 8.0 запускается. К сожалению, сборка довольно быстро завершается ошибкой.
Из-за проблем с безопасностью в порту MongoDB 8.0 становится важным обновить порт до последней версии.
Я ищу кого-нибудь с опытом сборки с помощью Bazel для помощи.
-
Свяжитесь со мной.
-
Настройте свою среду сборки с Bazel 8.
-
Скомпилируйте и исправьте.
-
Давайте закоммитим это!
OpenVox (Puppet)
Ссылки:
Vox Pupuli URL: https://voxpupuli.org/
Организация OpenVox на
GitHub URL: https://github.com/OpenVoxProject/
Организация Vox Pupuli на
GitHub URL: https://github.com/voxpupuli/
Контакт: Команда Puppet <puppet@FreeBSD.org>
OpenVox (Puppet) — это инструмент управления конфигурацией, распространяемый как свободное программное обеспечение (Free Software). Он состоит из источника доверия (OpenVox Server), который описывает ожидаемую конфигурацию машин с помощью доменно-специфичного языка, и агента (OpenVox Agent) на каждом узле, который обеспечивает соответствие фактической конфигурации ожидаемой. Может быть настроена опциональная база данных (OpenVoxDB) для отчетности и описания расширенных схем, где конфигурация одной машины зависит от конфигурации другой.
В мире Puppet в этом году произошло много событий. После того как Perforce анонсировала серьезные изменения в своем подходе к участию в Open-Source, они прекратили поддержку открытой версии Puppet (также известной как OSS Puppet), рекомендовав пользователям перейти на Puppet Enterprise (закрытая версия Puppet, существующая уже много лет) или Puppet Core (новая закрытая версия Puppet, не разрабатываемая открыто и доступная только после подписания лицензионного соглашения с конечным пользователем (EULA)). Сообщество Vox Pupuli пыталось договориться с Perforce, но безуспешно. Поэтому Vox Pupuli взял на себя поддержку кода Puppet, лицензированного под Apache-2.0, и продолжает его поддерживать, обновлять и предоставлять пакеты вместо Perforce. Поскольку название "Puppet" принадлежит Perforce, проект был переименован в "OpenVox", чтобы пользователи не путали старую не поддерживаемую открытую версию Puppet с новой версией, поддерживаемой OpenVoxProject, который является частью Vox Pupuli.
В связи с этими изменениями в дерево портов FreeBSD был добавлен ряд портов:
-
sysutils/openvox-agent8 заменяет sysutils/puppet8;
-
databases/openvoxdb8 заменяет databases/puppetdb8;
-
databases/openvoxdb-terminus8 заменяет databases/puppetdb-terminus8;
Они являются прямой заменой предыдущих портов: хотя пакеты называются "openvox", службы пока сохраняют свои прежние названия. Переход на них так же прост, как их установка и ответ "да", когда pkg предлагает удалить старые пакеты и установить новые. Никаких других действий не требуется: ожидается, что модули, которые вы использовали с Puppet, продолжат работать с OpenVox.
В течение этого года Puppet 7 также достиг конца жизненного цикла (End-of-Life), поэтому соответствующие порты были удалены из дерева портов FreeBSD. Puppet 7 был последней версией, которая позволяла выбирать между C и Ruby версиями facter, поэтому порт для C-версии (sysutils/facter) также был удален. Поскольку старые порты для Puppet 8 больше не будут обновляться, они скоро будут объявлены устаревшими и постигнут та же участь.
Дата последнего изменения: 24 февраля 2026 г. выполнил Vladlen Popolitov
