c2f70e5c10
- image.in/functions.mk: rework kpackage() + it takes two arguments explicitly now: this adds some noise for "generic" invocations but is rather less messy with recently introduced STAGE1_KFLAVOUR (which in its turn is rather cleaner than messing with KFLAVOURS, especially since soemthing changed in presumably apt and we can't rely on kernel packages being installed in the order formed). - BUILDDIR/DEBUG related fixes + Makefile: BUILDDIR initialization moved to distro.mk - build.log += git info |
||
---|---|---|
bin | ||
doc | ||
features.in | ||
image.in | ||
pkg.in | ||
sub.in | ||
.gitignore | ||
clean.mk | ||
distro.mk | ||
functions.mk | ||
iso.mk | ||
libdistro.mk | ||
log.mk | ||
Makefile | ||
profile.mk | ||
README |
see also http://www.altlinux.org/Mkimage/Profiles/next; quickstart: make distclean server-base.iso configurables: ~/.mkimage/profiles.mk, see libdistro.mk Концепция: - метапрофиль служит репозиторием всего возможно нужного для построения индивидуального профиля, по которому создаётся итоговый дистрибутив - для одноразовых модификаций можно подправить сгенерированный профиль, для долгосрочной разработки стоит вливать правки в метапрофиль (что требует больше навыков и времени) Особенности: - метапрофиль может быть полностью read-only при сборке - для сборки подыскивается предпочтительно tmpfs - в профиль копируются только нужные объекты; он автономен относительно метапрофиля Стадии работы: - инициализация дистрибутивного профиля - сборка конфигурации дистрибутива - наполнение дистрибутивного профиля - сборка дистрибутива Объекты: - дистрибутивы: distro.mk, могут основываться один на другом; желательно избегать множественного наследования, используя вместо него блоки use/* - субпрофили (список собирается в $(SUBPROFILES)): + stage1: propagator (ожидается после syslinux) + install2: инсталятор + main: пакетная база к инсталяции (обязательная и дополнительная) + ... - блоки функциональности use/*: не являются самостоятельными (не путать с дистрибутивами), но законченными; могут жить в distro.mk (или сделать use.mk?), либо же в индивидуальных features.in/*/config.mk, если необходимо дополнить не только distcfg.mk, а и дерево формируемого профиля - фичи: законченные кусочки функциональности, могут зависеть друг от друга; сливаются с соответствующими субпрофилями при сборке $(BUILDDIR), могут нести с собой копируемые в один или несколько субпрофилей каталоги/файлы и могут выполнять необходимые действия во время сборки после копирования (generate.sh, generate.mk). NB: добавляем в $(FEATURES) (из того же config.mk, который будет включён в distro.mk)! - списки пакетов: большая человеческая просьба по возможности избегать дублирования и подумать над pkg/lists/tagged... NB: следует крайне осторожно пользоваться COMMON_PACKAGES, т.к. указанные пакеты попадут во все стадии (в т.ч. stage1 и install2, чувствительные к объёму). Результат: - при успешном завершении сборки образ называется сообразно дистрибутиву и укладывается в $(IMAGEDIR): + указанный явно, + либо ~/out/ (если возможно), + или $(BUILDDIR)/out/ иначе