README 3.78 KB
Newer Older
Michael Shigorin's avatar
Michael Shigorin committed
1 2 3 4
Этот каталог содержит "заготовку" фичи в качестве примера
и должен дать представление о том, какой код _может_ быть
включён в настоящую фичу: статические файлы, два makefile
для создания конфигурации и генерирования части профиля,
Michael Shigorin's avatar
Michael Shigorin committed
5
а также шелл-скрипт для такого генерирования.
Michael Shigorin's avatar
Michael Shigorin committed
6

Michael Shigorin's avatar
Michael Shigorin committed
7
Вовсе не требуется втягивать всё в свою фичу: лучше постараться
Michael Shigorin's avatar
Michael Shigorin committed
8 9 10
сделать её минимальной, самодостаточной и полезной в качестве
"кирпичика".

Michael Shigorin's avatar
Michael Shigorin committed
11
Единственной обязательной частью фичи является файл config.mk,
Michael Shigorin's avatar
Michael Shigorin committed
12
который включается в distro.mk верхнего уровня и предоставляет
Michael Shigorin's avatar
Michael Shigorin committed
13 14 15 16
цель вида use/*, специфичную для данной фичи, а также добавляет
её в переменную FEATURES.  Если название фичи не упоминается
в списке, содержащемся в этой переменной, то она не задействуется
при построении профиля, а только при сборке конфигурации.
Michael Shigorin's avatar
Michael Shigorin committed
17

Michael Shigorin's avatar
Michael Shigorin committed
18 19 20 21 22
Для наиболее ходовых целей use/*, особенно если их много, можно
создавать цели-алиасы +* (например, +power).  Просьба относиться
вдумчиво, т.к. в дальнейшем предполагается визуализировать такие
цели в UI конфигурирования образа.

Michael Shigorin's avatar
Michael Shigorin committed
23
Остальное содержимое является дополнительным и используется
24
в таком порядке (см. features.in/Makefile):
Michael Shigorin's avatar
Michael Shigorin committed
25

Michael Shigorin's avatar
Michael Shigorin committed
26
* сперва в $(BUILDDIR)/image/ копируются все подкаталоги,
Michael Shigorin's avatar
Michael Shigorin committed
27 28
  соответствующие итоговым именам субпрофилей, запрошенных
  для профиля образа; при этом они сливаются с деревом,
29
  которое уже сформировано субпрофилями (sub.in/*) и уже
Michael Shigorin's avatar
Michael Shigorin committed
30 31 32
  скопированными фичами; если какие-либо файлы перекрылись
  по именам, rsync должен оставить резервные копии (*~),
  которые должны просигнализировать о беспорядке;
Michael Shigorin's avatar
Michael Shigorin committed
33 34
* запускается generate.sh, если существует и исполнимый;
* применяется generate.mk, если существует и непустой.
Michael Shigorin's avatar
Michael Shigorin committed
35

Michael Shigorin's avatar
Michael Shigorin committed
36
Например, если используются субпрофили stage1, stage2/install2
Michael Shigorin's avatar
Michael Shigorin committed
37
и main, можно решить собрать специфические для фичи скрипты
Michael Shigorin's avatar
Michael Shigorin committed
38
инсталятора в install2/image-scripts.d/ (или необходимые для
Michael Shigorin's avatar
Michael Shigorin committed
39 40
операций с пакетной базой -- в main/scripts.d/, смотря чего
надо добиться; загляните также в документацию mkimage).
Michael Shigorin's avatar
Michael Shigorin committed
41 42 43 44 45 46 47

А если требуются нетривиальные действия по конфигурированию
(как при сборке syslinux.cfg из кусочков, в зависимости от того,
что из запрошенных модулей оказалось в наличии) -- то их можно
произвести из generate.sh и generate.mk.

Пожалуйста, присылайте отзывы о (бес)полезности кода в этом каталоге
48
mike@altlinux.org.