There's a particular problem with lazy evaluation in case of BOOT_LANG: mkimage uses internal variable, BOOT_LANG = $(GLOBAL_BOOT_LANG) (note the lack of immediate assignment there), and if we set up export GLOBAL_BOOT_LANG = $(BOOT_LANG) in the same namespace we end up with recursively defined pair of variables; a ":=" in either place would save the day _but_ it's not there in m-p due to accumulator variables, e.g. USERS, which are defined and exported by a corresponding feature and then get populated *after* having been declared for export, _and_ it's not in mkimage as of 0.2.16 for some reason that might even be good (I don't know yet).
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 m-p! ==
*Brief summary*
Configurables: ~/.mkimage/profiles.mk;
see doc/params.txt and conf.d/README
License: GPLv2+, see COPYING
Most docs are in Russian, welcome to learn it or ask for English.
Задача:
* конфигурирование и создание образов на базе ALT Linux
Концепция:
* конфигурация, как и образ -- объект постадийной сборки
* метапрофиль служит репозиторием для построения индивидуального
профиля, по которому создаётся итоговый образ
Особенности:
* метапрофиль при сборке может быть доступен только на чтение
* для сборки подыскивается предпочтительно tmpfs
* в профиль копируются только нужные объекты;
он автономен относительно метапрофиля
Стадии работы:
* инициализация сборочного профиля
* сборка конфигурации образа
* наполнение сборочного профиля
* сборка образа
Объекты:
* дистрибутивы и виртуальные среды/машины:
** описываются в conf.d/*.mk
** могут основываться на предшественниках, расширяя их
** дистрибутивы также включают один или более субпрофилей по надобности
** желательно избегать множественного наследования, см. тж. фичи
* субпрофили:
** список собирается в $(SUBPROFILES)
** базовые комплекты помещены в подкаталогах под sub.in/;
их наборы скриптов могут расширяться фичами
* фичи:
** законченные блоки функциональности (или наборы таковых)
** описываются в индивидуальных features.in/*/config.mk
** могут требовать другие фичи, а также субпрофили
** накопительный список собирается в $(FEATURES)
** при сборке $(BUILDDIR) содержимое фич добавляется в профиль
* списки пакетов (*_LISTS):
** просьба по возможности избегать дублирования (см. bin/pkgdups)
* индивидуальные пакеты (*_PACKAGES): см. тж. conf.d/README
Результат:
* при успешном завершении сборки образ называется по имени цели
и укладывается в $(IMAGEDIR):
** указанный явно,
** либо ~/out/ (если возможно),
** или $(BUILDDIR)/out/ иначе
* формируются отчёты, если запрошены (REPORT)
См. тж.:
* http://altlinux.org/m-p: обзорная документация, в т.ч. howto
* doc/:
** params.txt: переменные, указываемые при запуске сборки
** pkglists.txt: формирование состава образа
** features.txt: обзор подключаемых особенностей
Примечание: пути в документации задаются от каталога верхнего уровня,
если не указаны как относительные в явном виде (./) или по смыслу.
Удачи; что не так -- пишите.
Michael Shigorin <mike@altlinux.org>
Description
Languages
Makefile
63.8%
Shell
36.1%