mkimage-profiles/conf.d
Michael Shigorin f47e09cff1 e2k, e2k.mk: merge boot, fixup and x11 bits
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).
2020-08-31 14:23:22 +03:00
..
alt-server.mk alt-server.mk: Not setup plymoth for not X86 Arches 2020-08-30 21:30:05 +07:00
armh.mk armh.mk: Drop broken targets 2020-08-27 15:06:49 +07:00
basealt.mk basealt.mk: Fix availability vm profile for ARCHES 2020-08-27 15:06:49 +07:00
desktop.mk desktop.mk, live.mk, live: Get rid of acpi 2020-05-22 13:34:35 +07:00
e2k.mk e2k, e2k.mk: merge boot, fixup and x11 bits 2020-08-31 14:23:22 +03:00
education.mk education.mk: Fix availability vm profile for ARCHES, added installer-features 2020-08-27 15:06:49 +07:00
homeros.mk speech-*: refactored and unified 2013-11-22 21:28:37 +04:00
live.mk Revert "install2, live, live.mk: drop use/syslinux/localboot.cfg" 2020-07-16 02:41:01 +07:00
Makefile check-recipe: generalize dependency control 2017-01-29 15:50:58 +03:00
mixin-alt-server.mk conf.d/mixin-alt-server.mk: version in meta-info fixed 2020-08-02 02:20:31 +07:00
mixin-basealt.mk cleanup CLEANUP_PACKAGES 2020-05-22 20:11:07 +03:00
mixin.mk mixin.mk: Added apt-repo, eepm into regular-builder 2020-08-05 19:17:32 +07:00
p9.mk p9.mk: Drop target vm/alt-p9-lxde-tegra (vm/regular-lxde-tegra not exist) 2020-08-27 15:06:49 +07:00
README conf.d/README: be more concise 2015-12-05 22:12:01 +03:00
realtime.mk engineering, realtime.mk: added engineering/misc list 2020-05-22 13:34:35 +07:00
regular-vm.mk regular-vm.mk: Fix availability vm profile for ARCHES 2020-08-27 15:06:49 +07:00
regular.mk regular.mk: Fix build regular-server-hyperv 2020-08-26 17:03:32 +07:00
server-v.mk server-v: move pve-storage-linstor to arch condition 2020-08-23 21:00:27 +07:00
server.mk add distro/server-mini-systemd-networkd 2016-03-02 07:20:22 +03:00
slinux.mk slinux.mk: Fix availability vm profile for ARCHES 2020-08-27 15:06:49 +07:00
test.mk rework isoboot support beyond x86 2018-07-25 16:49:01 +03:00
ve.mk Add 3 templates for OpenVZ 7 containers: 2020-08-23 21:00:27 +07:00
vm.mk vm.mk: vagrant available for i586, x86_64 only 2020-08-27 23:38:36 +07: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 -- только в инструментальный чрут); применяйте для того,
  что обязано быть и в инсталяторе, и в готовой системе (но не в rescue)

* для направленного действия служат:
** 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 ("живая" система)

* аналогично по kernel-modules-*:
** 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, не являющуюся самостоятельно собираемой