Michael Shigorin
30b1aa9be6
toplevel build report now timestamped
Thanks torabora@ for yet again seemingly obvious feature request which strangely managed to evade implementation before. On an afterthought, mass builds would suggest too much coffee instead of a progress indicator -- so implemented the latter. NB: the actual downstream-make-calling rule would expand the "naive" $(shell date) too early: the rule is evaluated before starting its execution, and as it's the time consuming one the shell evaluation was in need, not make's. The result is less generally available (needs to be double quoted and won't work inside e.g. awk programs) but way more precise.
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.
Welcome to mkimage-profiles! English quickstart: make distro/server-base.iso; see http://en.altlinux.org/Hasher (and a large tmpfs). Configurables: ~/.mkimage/profiles.mk; see doc/profiles.mk.sample and libdistro.mk License: GPLv2+, see COPYING. Most docs in Russian, welcome to learn it or ask for English. См. тж. http://www.altlinux.org/Mkimage/Profiles/next Концепция: - метапрофиль служит репозиторием для построения индивидуального профиля, по которому создаётся итоговый дистрибутив - для одноразовых модификаций можно подправить сгенерированный профиль, для долгосрочной разработки стоит вливать правки в метапрофиль (что требует больше навыков и времени) Особенности: - метапрофиль может быть полностью read-only при сборке - для сборки подыскивается предпочтительно tmpfs - в профиль копируются только нужные объекты; он автономен относительно метапрофиля Стадии работы: - инициализация дистрибутивного профиля - сборка конфигурации дистрибутива - наполнение дистрибутивного профиля - сборка дистрибутива Объекты: - виртуальные окружения: + описываются в lib/ve.mk + могут основываться одно на другом - дистрибутивы: + описываются в lib/distro.mk + могут основываться один на другом + включают один или более субпрофилей по надобности + желательно избегать множественного наследования, см. тж. фичи - субпрофили: + список собирается в $(SUBPROFILES) + базовые комплекты помещены в подкаталогах под sub.in/; их наборы скриптов могут расширяться фичами - stage1: propagator, ядро инсталятора и initrd в т.ч. с firmware - stage2: базовый live-образ (и модули ядра, соответствующие stage1); используется только с модификаторами (см. соответствующие фичи): + stage2/install2: инсталятор + stage2/live: LiveCD + stage2/rescue: спасательная система - main: пакетная база к инсталяции (обязательная и дополнительная) - фичи: + список собирается в $(FEATURES) + законченные блоки функциональности (или наборы таковых) + описываются в индивидуальных features.in/*/config.mk + могут требовать другие фичи, а также субпрофили + при сборке $(BUILDDIR) содержимое указанных в $(FEATURES) фич (подкаталоги, соответствующие входящим в дистрибутив субпрофилям под их итоговыми названиями -- например, live, а не stage2/live) добавляется в профиль; затем выполняются generate.sh, generate.mk - списки пакетов (*_LISTS): просьба по возможности избегать дублирования; NB: перечисленные в этих переменных файлы автоматически копируются в порождаемый профиль => не следует указывать пакаджлисты напрямую - индивидуальные пакеты (*_PACKAGES): следует крайне осторожно пользоваться SYSTEM_PACKAGES -- эти пакеты попадут во все стадии, в том числе в образ чувствительной к объёму install2 (в stage1 -- только в инструментальный чрут); применяйте для того, что обязано быть и в инсталяторе, и в готовой системе -- и не путайте с COMMON_PACKAGES (main, live, rescue) Результат: - при успешном завершении сборки образ называется сообразно дистрибутиву и укладывается в $(IMAGEDIR): + указанный явно, + либо ~/out/ (если возможно), + или $(BUILDDIR)/out/ иначе
Description
Languages
Makefile
59.2%
Shell
31.5%
RPM Spec
9%
HAProxy
0.2%