d93989a3ff
Now we don't dump all the gory details onto thee but rather log them handsomely and present only the most important details by default; use DEBUG=1 and/or BUILDLOG=/path/to/file to tweak. Also introduced IMAGEDIR and IMAGENAME. The rest: - ovz-smp is no more - base-l10n pkglist (suggested by Alexander Kuprin) - clean.mk: + fixed an oversight: the test result erroneously applied only to the first command of several ones that should be run iff build/ is a symlink + drop implicit rules (it's no C code) - Makefile: more reasonable iso names - image.in/Makefile: .disk/date too |
||
---|---|---|
bin | ||
doc | ||
features.in | ||
image.in | ||
pkg.in | ||
sub.in | ||
clean.mk | ||
distro.mk | ||
functions.mk | ||
iso.mk | ||
log.mk | ||
Makefile | ||
profile.mk | ||
README | ||
TODO |
see also http://www.altlinux.org/Mkimage/Profiles/next; quickstart: make distclean server-light.iso configurables: ~/.mkimage/metaconf.mk, see distro.mk Концепция: - метапрофиль служит репозиторием всего возможно нужного для построения индивидуального профиля, по которому создаётся итоговый дистрибутив - для одноразовых модификаций можно подправить сгенерированный профиль, для долгосрочной разработки стоит вливать правки в метапрофиль (что требует больше навыков и времени) Особенности: - метапрофиль может быть полностью read-only при сборке - для сборки подыскивается предпочтительно tmpfs - в профиль копируются только нужные объекты Стадии работы: - инициализация дистрибутивного профиля - сборка конфигурации дистрибутива - наполнение дистрибутивного профиля - сборка дистрибутива Объекты: - дистрибутивы: distro.mk, могут основываться один на другом; желательно избегать множественного наследования, используя вместо него блоки use/* - субпрофили (список собирается в $(SUBPROFILES)): + stage1: propagator (ожидается после syslinux) + install2: инсталятор + main: пакетная база к инсталяции (обязательная и дополнительная) + ... - блоки функциональности use/*: не являются самостоятельными (не путать с дистрибутивами), но законченными; могут жить в distro.mk (или сделать use.mk?), либо же в индивидуальных features.in/*/config.mk, если необходимо дополнить не только .config.mk, а и дерево формируемого профиля - фичи: законченные кусочки функциональности, могут зависеть друг от друга; сливаются с соответствующими субпрофилями при сборке $(BUILDDIR), могут нести с собой копируемые в один или несколько субпрофилей каталоги/файлы и могут выполнять необходимые действия во время сборки после копирования (generate.sh, generate.mk). NB: добавляем в $(FEATURES) (из того же config.mk, который будет включён в distro.mk)! - списки пакетов: большая человеческая просьба по возможности избегать дублирования и подумать над pkg/lists/tagged... NB: следует крайне осторожно пользоваться COMMON_PACKAGES, т.к. указанные пакеты попадут во все стадии (в т.ч. stage1 и install2, чувствительные к объёму). Результат: - при успешном завершении сборки образ называется сообразно дистрибутиву и укладывается в $(IMAGEDIR): + указанный явно, + либо ~/out/ (если возможно), + или $(BUILDDIR)/out/ иначе