3f547e2504
This change is done to reduce ambiguity in some cases; the previous intention has been to ease navigation when staying in a particular directory, now it's been changed in favour of convenient toplevel `git grep' in fact. Both variants have their pros and cons, I just find myself leaning to this one by now hence the commit. Feel free to provide constructive criticism :) Some path-related bitrot has also been fixed while at that. |
||
---|---|---|
.. | ||
main/scripts.d | ||
config.mk | ||
generate.mk | ||
generate.sh | ||
README |
Этот каталог содержит "заготовку" фичи в качестве примера и должен дать представление о том, какой код _может_ быть включён в настоящую фичу: статические файлы, два makefile для создания конфигурации и генерирования части профиля, а также шелл-скрипт для такого генерирования. Вовсе не требуется втягивать всё в свою фичу: лучше постараться сделать её минимальной, самодостаточной и полезной в качестве "кирпичика". Единственной обязательной частью фичи является файл config.mk, который включается в distro.mk верхнего уровня и предоставляет цель вида use/*, специфичную для данной фичи, а также добавляет её в переменную FEATURES. Если название фичи не упоминается в списке, содержащемся в этой переменной, то она не задействуется при построении профиля, а только при сборке конфигурации. Для наиболее ходовых целей use/*, особенно если их много, можно создавать цели-алиасы +* (например, +power). Просьба относиться вдумчиво, т.к. в дальнейшем предполагается визуализировать такие цели в UI конфигурирования образа. Остальное содержимое является дополнительным и используется в таком порядке (см. features.in/Makefile): * сперва в $(BUILDDIR)/image/ копируются все подкаталоги, соответствующие итоговым именам субпрофилей, запрошенных для профиля образа; при этом они сливаются с деревом, которое уже сформировано субпрофилями (sub.in/*) и уже скопированными фичами; если какие-либо файлы перекрылись по именам, rsync должен оставить резервные копии (*~), которые должны просигнализировать о беспорядке; * запускается generate.sh, если существует и исполнимый; * применяется generate.mk, если существует и непустой. Например, если используются субпрофили stage1, stage2/install2 и main, можно решить собрать специфические для фичи скрипты инсталятора в install2/image-scripts.d/ (или необходимые для операций с пакетной базой -- в main/scripts.d/, смотря чего надо добиться; загляните также в документацию mkimage). А если требуются нетривиальные действия по конфигурированию (как при сборке syslinux.cfg из кусочков, в зависимости от того, что из запрошенных модулей оказалось в наличии) -- то их можно произвести из generate.sh и generate.mk. Пожалуйста, присылайте отзывы о (бес)полезности кода в этом каталоге mike@altlinux.org.