Cookbook научился собирать один рецепт в несколько вариантов
03.12.2025В системе сборки Redox появилась секция необязательных компонентов пакета: одна конфигурация может собираться в несколько вариантов. В примере базовый пакет компилятора ужался с 892 МБ до 597 МБ, когда из него убрали поддержку C++.
Какую задачу это решает
Пакет — это не один файл, а набор программ и данных. Скажем, компилятор: без поддержки C++ он заметно меньше. Но ставить урезанный вариант на системы, где C++ нужен, нельзя.
Обычно это решают двумя пакетами с общим исходным кодом, и тогда правки приходится вносить дважды. Варианты внутри одного рецепта снимают это: правится одно место.
Как это выглядит
В описании рецепта появилась секция необязательных компонентов, а сборка запускается добавлением имени компонента к команде. В примере из сводки базовый gcc собирает вариант с поддержкой C++, причём он зависит от основного пакета — то есть общая часть не дублируется.
Указанный эффект: 892 МБ против 597 МБ.
Похоже на Cargo features
Действительно похоже на то, как в Cargo объявляются дополнительные возможности: одна кодовая база, набор переключателей, сборка варианта одной командой. Разница в масштабе: рецепт пакета собирает целую программу, а crate — модуль.
Для сборщиков приложений под Redox это способ управлять составом образа: не тянуть лишнее, когда часть зависимостей не требуется.
Оригинал
Коммит Implement support for optional package variants от 3 декабря 2025 года в репозитории redox-os/redox; сводка «This Month in Redox — December 2025», раздел «Optional Package Features»
Упоминаний: 1 · Просмотров: 2