forked from altcloud/mkimage-profiles
f47e09cff1
This commit is packing a bunch of changes that went into RELENG-e2k-workstation during its forked development; it covers three distinct things: - boot.conf preparation for firmware to load the image; - fixup of packages common for e2k images; - major cleanup of obsolete/unused cruft (unified kernel and reliable xorg autodetection allow us to move away from canned machine-specific configurations for the most part).
== features.in == Этот каталог содержит т.н. фичи (features, особенности). Фича -- отдельно подключаемая сущность, которая содержит повторно используемые конфигурацию/код и определяет одну из особенностей создаваемого образа. Может зависеть от других фич либо субпрофилей. Каждая фича должна содержать файл config.mk, включаемый в main.mk при построении конфигурации будущего профиля; он может описывать одну или более целей вида use/*, дополняющих конфигурацию, и обязан добавить имя фичи в $(FEATURES), для чего создана функция add_feature. На этапе генерации сборочного профиля фичи рассматриваются после инициализации профиля (см. image.in/) и копирования субпрофилей (см. sub.in/). Для каждой фичи, указанной в $(FEATURES), копируются подкаталоги сообразно включенным субпрофилям, а также lib/ и {image-,}scripts.d/; затем выполняются generate.sh и generate.mk при их наличии. Если фича дополняет хуками семейство целевых субпрофилей, построенных на одном базовом, можно воспользоваться подкаталогом с именем исходного базового субпрофиля (см. $src, $dst в Makefile). Рекомендуется давать несколько различающиеся имена скриптам, которые одна и та же фича может добавлять в различные стадии, чтобы они не выглядели одинаково в логе сборки. Наиболее востребованные цели можно снабжать "ярлычками" вроде "+icewm" с тем, чтобы сделать более краткими и выразительными использующие их правила. Просьба не злоупотреблять количеством, такие имена предполагается показывать в интерфейсе к профилю. Каталог lib/ является специфическим для фич, определяющих построение конкретного вида образа -- см. build-*/. Несложный пример содержится в 00example/, более близкий к жизни и нынешним пределам возможностей метапрофиля -- в syslinux/. См. тж. файлы README в каталогах фич (отсутствие -- баг!).