


24 октября в основной код systemd приняли изменения, позволяющие собирать новые компоненты на Rust. Это изменение инфраструктуры разработки, а не отдельный выпуск systemd. На Mentoring.digital разбираем, что решение меняет для разработчиков и сопровождающих Linux-пакеты.
В принятом запросе на изменение обозначены границы: Rust предназначен для новых конечных компонентов, от которых не зависят другие части проекта. Переписывать существующие программы на C в рамках этого решения не планируют. Поэтому формулировка «systemd перевели на Rust» была бы неверной.
Сборка остаётся на Meson, без Cargo. Для Rust-кода выбран режим no_std; связь с общей библиотекой на C организована отдельно. Это задаёт ограничения на привычный для Rust-проекта набор инструментов и библиотек.
Изменения предусматривают rustc не ниже 1.85, bindgen не ниже 0.71.1 и Meson не ниже 1.4 для включения поддержки Rust. Параметр rust по умолчанию имеет значение auto. При сборке с принудительным включением всех возможностей понадобятся соответствующие зависимости либо явное отключение Rust.
Для сопровождающего пакета это повод проверить конфигурацию сборочного окружения. Для администратора установленной системы принятие изменений в репозиторий само по себе не означает, что уже нужно менять службы или конфигурацию работающего сервера.
Для понимания последствий полезно уметь читать unit-файлы, зависимости и журналы служб. Эти основы можно разобрать с наставником по Linux. Редакция проверила принятый запрос на изменение; собственную сборку systemd с Rust в рамках этой новости не выполняла.