mkimage-profiles/conf.d
Michael Shigorin 5205364a6e regular.mk, p7.mk: builder image
So ALT Linux has got decent build tools but no one even knows
about those, right?  And starting to use those is somewhat tedious
as it requires ALT installation with a specially crafted user account?

live-builder.iso has been useful enough to consider including its
relative into starterkits skipping regular builds for roughly the
same reasons as those for installers: we're better off helping users
to get onto the stable platform bandwagon than having them excited
with Sisyphus just to hit some wall down the road (even if we warn
of these walls well in advance most of the time), and while packages
tend to get into branches via sisyphus repo it's still better to stay
on the safe side with what we make easily available.
2014-12-12 01:34:35 +03:00
..
armh.mk exterminate fonts-ttf-dejavu all over the place 2014-08-19 20:42:45 +04:00
desktop.mk desktop.mk: refactor net-eth usage with +net-eth 2014-08-26 22:38:45 +04:00
homeros.mk speech-*: refactored and unified 2013-11-22 21:28:37 +04:00
live.mk dev, live.mk: refactor live-builder bits 2014-12-12 00:37:20 +03:00
p7.mk regular.mk, p7.mk: builder image 2014-12-12 01:34:35 +03:00
README conf.d: updated README to mention mixin/* 2014-03-24 21:54:46 +04:00
regular.mk regular.mk, p7.mk: builder image 2014-12-12 01:34:35 +03:00
server.mk server.mk: amend net-eth usage either 2014-08-26 23:12:02 +04:00
simply.mk simply: fix installer boot (go sysvinit) 2012-12-17 14:40:45 +04:00
t7.mk t7.mk: added altlinux-t7-gnustep-systemd.iso 2014-03-31 23:44:23 +04:00
test.mk test.mk: several test PID 1 images 2014-09-19 20:54:25 +04:00
ve.mk ve.mk: add ve/docker 2014-05-05 13:16:26 +04:00
vm.mk vm.mk: fix vm/net to handle ROOTPW 2014-12-04 21:04:49 +03:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== conf.d ==

Этот каталог содержит включаемые фрагменты конфигурации образов с тем,
чтобы было удобнее параллельно разрабатывать специфические образы
без излишних merge conflict'ов.

Следует понимать, что основная цель появления mkimage-profiles на свет
-- это уменьшение "форков" внутри семейства дистрибутивных профилей.
Поэтому при возможности следует всё-таки работать над общей базовой
частью, включая скриптовые хуки и списки пакетов, а также оптимизировать
граф зависимостей между конфигурациями образов.

Попросту говоря, copy-paste -- тревожный признак.

Вместо него нередко может помочь выделение кусочков конфигурации
в пределах включаемого файла в цели mixin/*, которые не являются
самостоятельными или даже промежуточными, но включают полезные
группы настроек, нужных в различных образах, не наследующих
друг другу -- посмотрите существующие примеры использования.

По переменным (см. тж. doc/pkglists.txt):

* для пользовательского окружения (live, main) предназначены
  THE_PACKAGES, THE_LISTS, THE_GROUPS, THE_PACKAGES_REGEXP

* для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
  (NB: тоже попадают в базовую установку)

* SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
  во все стадии, в том числе в образ чувствительной к объёму install2
  (в stage1 -- только в инструментальный чрут); применяйте для того,
  что обязано быть и в инсталяторе, и в готовой системе

* для направленного действия служат:
** STAGE1_PACKAGES, STAGE1_PACKAGES_REGEXP (первая стадия загрузки)
** STAGE2_PACKAGES (инсталятор и спасательная/"живая" система)
** INSTALL2_PACKAGES (инсталятор)
** BASE_PACKAGES, BASE_LISTS, BASE_PACKAGES_REGEXP (базовая система)
** MAIN_PACKAGES, MAIN_LISTS, MAIN_PACKAGES_REGEXP (дополнительные пакеты)
** LIVE_PACKAGES, LIVE_LISTS, LIVE_PACKAGES_REGEXP ("живая" система)

* аналогично по модулям ядра:
** THE_KMODULES попадут в "пользовательскую" среду (live, main)
** STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
** BASE_KMODULES попадут в установку по умолчанию
** MAIN_KMODULES будут доступны для установки с носителя
** LIVE_KMODULES предназначены для LiveCD/LiveFlash

Не стоит бояться такого разнообразия, для большинства задач достаточно THE_*.

По подстановкам:

* $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
* $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
  значений; в этом случае их значения могут изменяться до окончания
  конфигурации, а также зависеть от значений других переменных

По спискам пакетов:

* на этапе экспериментирования можно забивать прямо в описание образа
* при фиксации состояния стоит воспользоваться существующими списками,
  а дополнительные оформить как можно более чётко обособленными по тем
  задачам, для решения которых они и подобраны
* повторяющиеся логически связанные группы списков может иметь смысл
  выделить в фичу (см., например, power или x11)
* если явной фичи не наблюдается, но у группы дистрибутивов намечается
  заметная общая часть -- её можно выделить в промежуточную цель вида
  distro/.name, не являющуюся самостоятельно собираемой