diff --git a/README b/README index 3559b26a..75a6ed17 100644 --- a/README +++ b/README @@ -2,7 +2,8 @@ see also http://www.altlinux.org/Mkimage/Profiles/next; quickstart: make distclean server-base.iso -configurables: ~/.mkimage/profiles.mk, see libdistro.mk +configurables: ~/.mkimage/profiles.mk, +see doc/profiles.mk.sample and libdistro.mk Концепция: - метапрофиль служит репозиторием всего возможно нужного для @@ -29,8 +30,8 @@ configurables: ~/.mkimage/profiles.mk, see libdistro.mk желательно избегать множественного наследования, используя вместо него блоки use/* - субпрофили (список собирается в $(SUBPROFILES)): - + stage1: propagator (ожидается после syslinux) - + install2: инсталятор + + stage1: propagator и ядро инсталятора + + install2: сам инсталятор + main: пакетная база к инсталяции (обязательная и дополнительная) + ... - блоки функциональности use/*: не являются самостоятельными diff --git a/image.in/README b/image.in/README index a5b23ac1..33d920d1 100644 --- a/image.in/README +++ b/image.in/README @@ -11,3 +11,5 @@ Если требуется какая-либо иная обработка чрута, следует предпочитать scripts.d/. + +Результат -- готовый образ в $(IMAGEDIR)/. diff --git a/iso.mk b/iso.mk index ebaec042..3c2c303a 100644 --- a/iso.mk +++ b/iso.mk @@ -13,20 +13,19 @@ endif iso: @echo -n "** starting image build" @if test -n "$(DEBUG)"; then \ - echo ": see $(BUILDLOG)"; \ + echo ": tail -f $(BUILDLOG)" $(SHORTEN); \ else \ echo " (coffee time)"; \ fi - @if time $(ARCH) \ + @if time -f %E $(ARCH) \ $(MAKE) -C $(BUILDDIR)/ GLOBAL_BUILDDIR=$(BUILDDIR) $(LOG); \ then \ - echo "** build done (`tail -2 $(BUILDLOG) \ - | sed -n 's,^.* \([0-9:]\+\)\...elapsed.*$$,\1,p' \ + echo "** build done (`tail -1 $(BUILDLOG) | cut -f1 -d. \ || echo "no log"`)"; \ else \ - echo "** build failed, see log: $(BUILDLOG)"; \ + echo "** build failed, see log: $(BUILDLOG)" $(SHORTEN); \ if test -z "$(DEBUG)"; then \ echo " (you might want to re-run with DEBUG=1)"; \ fi; \ - tail -100 "$(BUILDLOG)" | grep "^E:"; \ + tail -100 "$(BUILDLOG)" | egrep "^E:|rror|arning"; \ fi diff --git a/libdistro.mk b/libdistro.mk index 49039a13..f0c32069 100644 --- a/libdistro.mk +++ b/libdistro.mk @@ -9,7 +9,7 @@ boot/%: distro/.init # initalize config from scratch, put some sane defaults in distro/.init: - @echo "** preparing distro configuration$${DEBUG:+: see $(CONFIG)}" + @echo "** preparing distro configuration$${DEBUG:+: see $(CONFIG)}" $(SHORTEN) @$(call try,MKIMAGE_PREFIX,/usr/share/mkimage) @$(call try,GLOBAL_VERBOSE,) @$(call try,IMAGEDIR,$(IMAGEDIR)) diff --git a/log.mk b/log.mk index 4a937bcf..0531fc2a 100644 --- a/log.mk +++ b/log.mk @@ -9,6 +9,7 @@ endif BUILDLOG ?= $(BUILDDIR)/build.log +# LOG holds a postprocessor ifdef DEBUG GLOBAL_VERBOSE ?= $(DEBUG) ifeq (2,$(DEBUG)) diff --git a/profile.mk b/profile.mk index 20dd04af..22aa22c8 100644 --- a/profile.mk +++ b/profile.mk @@ -9,6 +9,11 @@ BUILDDIR := $(shell [ -s build ] \ || bin/mktmpdir mkimage-profiles.build) endif +# holds a postprocessor; shell test executes in particular situation +# NB: not exported, for toplevel use only +SHORTEN = $(shell [ "$(DEBUG)" != 2 -a -s build ] \ + && echo "| sed 's,$(BUILDDIR),build,'") + # even smart caching only hurts when every build goes from scratch NO_CACHE ?= 1 diff --git a/sub.in/install2/README b/sub.in/install2/README index 90861f49..92103d71 100644 --- a/sub.in/install2/README +++ b/sub.in/install2/README @@ -3,6 +3,9 @@ При добавлении скриптов в image-scripts.d/ следует позаботиться, чтобы в компактном livecd, которым является инсталятор, оказались -нужные утилиты (INSTALL2_PACKAGES). Перегружать его не следует. +нужные утилиты (INSTALL2_PACKAGES). Перегружать его не следует, +поскольку это прямо влияет на требования по минимальному размеру +оперативной памяти для установки. -Результат -- squashfs-образ в файле altinst. +Результат -- squashfs в файле altinst, подлежащем копированию +в образ. diff --git a/sub.in/stage1/README b/sub.in/stage1/README index 57e7549c..7cbc6c24 100644 --- a/sub.in/stage1/README +++ b/sub.in/stage1/README @@ -6,4 +6,14 @@ т.е. это scripts.d/; следует крайне бережно относиться к составу STAGE1_PACKAGES и объёму этой стадии. +Обратите внимание: если не указать явно требуемый вариант +ядра посредством STAGE1_KFLAVOUR, будет взят последний из +перечисленных в KFLAVOURS; если не указать явно регэкс, +описывающий требуемые в инсталяторе модули, посредством +STAGE1_KMODULES_REGEXP -- будет только подмножество модулей +из kernel-image (упаковываются в syslinux/alt0/full.cz). + Требуется для инсталяционных, live- и rescue-образов. + +Результат -- каталог syslinux/, подлежащий копированию +в образ.