introduced THE_{KMODULES,PACKAGES,LISTS,GROUPS}
As too many things started duplicating between distros proper and (e.g. corresponding) LiveCDs, it became apparent that a class of entities which end up working for THE_USER (not a sysadmin, and not a developer, just a Linux user) is in need. So THE_KMODULES will power installed basesystem and live image, while THE_PACKAGES, THE_LISTS and THE_GROUPS will participate in building those.
This commit is contained in:
parent
dbed41bf81
commit
d6972a39bf
@ -11,15 +11,24 @@
|
||||
Попросту говоря, copy-paste -- тревожный признак.
|
||||
|
||||
По переменным:
|
||||
* SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
|
||||
- SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
|
||||
во все стадии, в том числе в образ чувствительной к объёму install2
|
||||
(в stage1 -- только в инструментальный чрут); применяйте для того,
|
||||
что обязано быть и в инсталяторе, и в готовой системе;
|
||||
* для "обычного общего" (main, live, rescue) есть COMMON_PACKAGES
|
||||
(NB: попадают в базовую систему).
|
||||
что обязано быть и в инсталяторе, и в готовой системе
|
||||
- для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
|
||||
(NB: попадают в базовую систему)
|
||||
- для "пользовательского" (live, main) есть THE_GROUPS, THE_LISTS
|
||||
и THE_PACKAGES
|
||||
- аналогично по модулям ядра:
|
||||
+ STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
|
||||
+ BASE_KMODULES попадут в установку по умолчанию
|
||||
+ MAIN_KMODULES будут доступны для установки с носителя
|
||||
+ LIVE_KMODULES предназначены для LiveCD/LiveFlash
|
||||
+ THE_KMODULES попадут в "пользовательские" окружения
|
||||
(live и установленную систему)
|
||||
|
||||
По подстановкам:
|
||||
* $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk;
|
||||
* $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
|
||||
значений -- таким образом их значения могут изменяться до окончания
|
||||
конфигурации, а также зависеть от значений других переменных;
|
||||
- $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
|
||||
- $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
|
||||
значений; в этом случае их значения могут изменяться до окончания
|
||||
конфигурации, а также зависеть от значений других переменных
|
||||
|
@ -7,7 +7,8 @@ distro/server-base: distro/installer use/repo/main \
|
||||
|
||||
distro/server-mini: distro/server-base use/cleanup/x11-alterator
|
||||
@$(call set,KFLAVOURS,el-smp)
|
||||
@$(call add,KMODULES,e1000e igb)
|
||||
@$(call add,THE_KMODULES,e1000e igb)
|
||||
@$(call add,STAGE1_KMODULES,e1000e igb)
|
||||
@$(call add,BASE_LISTS,\
|
||||
$(call tags,base && (server || network || security || pkg)))
|
||||
@$(call add,BASE_LISTS,$(call tags,extra network))
|
||||
@ -18,9 +19,10 @@ distro/server-ovz: distro/server-mini \
|
||||
use/hdt use/rescue use/firmware/server use/power/acpi/button
|
||||
@$(call set,STAGE1_KFLAVOUR,std-def)
|
||||
@$(call set,KFLAVOURS,std-def ovz-el)
|
||||
@$(call add,KMODULES,bcmwl ndiswrapper rtl8168 rtl8192)
|
||||
@$(call add,KMODULES,ipset ipt-netflow opendpi pf_ring xtables-addons)
|
||||
@$(call add,KMODULES,drbd83 kvm)
|
||||
@$(call add,BASE_KMODULES,rtl8168 rtl8192)
|
||||
@$(call add,MAIN_KMODULES,bcmwl ndiswrapper)
|
||||
@$(call add,MAIN_KMODULES,ipset ipt-netflow opendpi pf_ring xtables-addons)
|
||||
@$(call add,MAIN_KMODULES,drbd83 kvm)
|
||||
@$(call add,INSTALL2_PACKAGES,curl) ### should become curl-mini
|
||||
@$(call add,BASE_LISTS,ovz-server)
|
||||
@$(call add,MAIN_LISTS,kernel-wifi)
|
||||
|
@ -28,10 +28,8 @@ metadata: dot-base
|
||||
| sed 's,$(PKGDIR)/*,,g')
|
||||
|
||||
dot-base:
|
||||
@{ \
|
||||
echo -e "\n## added by build-distro.mk"; \
|
||||
echo "$(call kpackages,$(KMODULES),$(KFLAVOURS))"; \
|
||||
} >> $(call list,.base)
|
||||
@p="$(call kpackages,$(THE_KMODULES) $(BASE_KMODULES),$(KFLAVOURS))"; \
|
||||
echo -e "\n## added by build-distro.mk\n$$p" >> $(call list,.base)
|
||||
|
||||
dot-disk:
|
||||
@mkdir -p files/.disk
|
||||
|
@ -2,5 +2,5 @@ use/install2: use/stage2 sub/stage2/install2 use/cleanup/installer
|
||||
@$(call add_feature)
|
||||
@$(call set,INSTALL2_PACKAGES,installer-distro-$$(INSTALLER)-stage2)
|
||||
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator)
|
||||
@$(call add,MAIN_PACKAGES,branding-$$(BRANDING)-release)
|
||||
@$(call add,BASE_PACKAGES,branding-$$(BRANDING)-release)
|
||||
@$(call add,BASE_LISTS,$(call tags,basesystem))
|
||||
|
@ -1,8 +1,11 @@
|
||||
# stage2 mod: livecd
|
||||
|
||||
IMAGE_PACKAGES = $(COMMON_PACKAGES) \
|
||||
$(LIVE_PACKAGES) \
|
||||
$(call map,list,$(LIVE_LISTS) $(LIVE_GROUPS)) \
|
||||
STAGE2_KMODULES = $(THE_KMODULES) $(LIVE_KMODULES)
|
||||
|
||||
IMAGE_PACKAGES = $(COMMON_PACKAGES) $(THE_PACKAGES) $(LIVE_PACKAGES) \
|
||||
$(call map,list, \
|
||||
$(THE_LISTS) $(THE_GROUPS) \
|
||||
$(LIVE_LISTS) $(LIVE_GROUPS)) \
|
||||
interactivesystem
|
||||
|
||||
MKI_PACK_RESULTS = squash:live
|
||||
|
@ -1,4 +1,4 @@
|
||||
use/virtualbox/guest:
|
||||
@$(call add_feature)
|
||||
@$(call add,KMODULES,virtualbox-addition)
|
||||
@$(call add,BASE_PACKAGES,virtualbox-guest-additions)
|
||||
@$(call add,THE_KMODULES,virtualbox-addition)
|
||||
@$(call add,THE_PACKAGES,virtualbox-guest-additions)
|
||||
|
@ -1,10 +1,11 @@
|
||||
use/x11/xorg:
|
||||
@$(call add,BASE_LISTS,xorg)
|
||||
@$(call add,THE_LISTS,xorg)
|
||||
@$(call add,THE_KMODULES,drm)
|
||||
|
||||
### strictly speaking, runlevel5 should require a *dm, not vice versa
|
||||
use/x11/runlevel5: use/x11/xorg
|
||||
@$(call add,BASE_PACKAGES,installer-feature-runlevel5-stage3)
|
||||
@$(call add,THE_PACKAGES,installer-feature-runlevel5-stage3)
|
||||
|
||||
### xdm: see also #23108
|
||||
use/x11/xdm: use/x11/runlevel5
|
||||
@$(call add,BASE_PACKAGES,xdm installer-feature-no-xconsole)
|
||||
@$(call add,THE_PACKAGES,xdm installer-feature-no-xconsole)
|
||||
|
@ -10,9 +10,10 @@ SUFFIX := pkg/groups
|
||||
TARGET := $(BUILDDIR)/$(SUFFIX)
|
||||
|
||||
all: $(GLOBAL_DEBUG)
|
||||
@if [ -n "$(MAIN_GROUPS)" ]; then \
|
||||
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
|
||||
mkdir -p $(TARGET) && \
|
||||
cp -at $(TARGET) -- $(addsuffix .directory,$(MAIN_GROUPS)); \
|
||||
cp -at $(TARGET) -- \
|
||||
$(addsuffix .directory,$(THE_GROUPS) $(MAIN_GROUPS)); \
|
||||
if type -t git >&/dev/null && cd $(TARGET); then \
|
||||
if [ -n "`git status -s`" ]; then \
|
||||
git add . && \
|
||||
@ -23,4 +24,5 @@ all: $(GLOBAL_DEBUG)
|
||||
fi
|
||||
|
||||
debug:
|
||||
@echo "** THE_GROUPS: $(THE_GROUPS)"
|
||||
@echo "** MAIN_GROUPS: $(MAIN_GROUPS)"
|
||||
|
@ -24,6 +24,7 @@ all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE)
|
||||
$(shell cp --parents -at $(TARGET) \
|
||||
-- $(value $V))))
|
||||
|
||||
### FIXME: move to iterator/static pattern rule
|
||||
dot-base:
|
||||
@# construct .base packagelist for alterator-pkg
|
||||
@{ \
|
||||
@ -37,15 +38,21 @@ dot-base:
|
||||
if [ -n "$(COMMON_PACKAGES)" ]; then \
|
||||
echo -e "\n## COMMON_PACKAGES\n$(COMMON_PACKAGES)"; \
|
||||
fi; \
|
||||
if [ -n "$(THE_PACKAGES)" ]; then \
|
||||
echo -e "\n## THE_PACKAGES\n$(THE_PACKAGES)"; \
|
||||
fi; \
|
||||
if [ -n "$(BASE_PACKAGES)" ]; then \
|
||||
echo -e "\n## BASE_PACKAGES\n$(BASE_PACKAGES)"; \
|
||||
fi; \
|
||||
if [ -n "$(THE_LISTS)" ]; then \
|
||||
echo -e "\n## THE_LISTS"; cat $(THE_LISTS); \
|
||||
fi; \
|
||||
if [ -n "$(BASE_LISTS)" ]; then \
|
||||
echo -e "\n## BASE_LISTS"; cat $(BASE_LISTS); \
|
||||
fi; \
|
||||
} | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' >$(TARGET)/.base
|
||||
@if [ -n "$(MAIN_GROUPS)" ]; then \
|
||||
cp -at $(TARGET) -- $(MAIN_GROUPS); \
|
||||
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
|
||||
cp -at $(TARGET) -- $(THE_GROUPS) $(MAIN_GROUPS); \
|
||||
fi
|
||||
@if type -t git >&/dev/null && cd $(TARGET); then \
|
||||
if [ -n "`git status -s`" ]; then \
|
||||
|
@ -12,14 +12,19 @@ include $(MKIMAGE_PREFIX)/config.mk
|
||||
|
||||
CHROOT_PACKAGES = apt-utils rsync
|
||||
|
||||
IMAGE_PACKAGES_REGEXP = $(call kpackages,$(KMODULES),$(KFLAVOURS)) \
|
||||
$(MAIN_PACKAGES_REGEXP)
|
||||
IMAGE_PACKAGES_REGEXP = $(MAIN_PACKAGES_REGEXP) \
|
||||
$(call kpackages, \
|
||||
$(THE_KMODULES) \
|
||||
$(BASE_KMODULES) \
|
||||
$(MAIN_KMODULES), \
|
||||
$(KFLAVOURS))
|
||||
|
||||
IMAGE_PACKAGES = $(call map,list,$(BASE_LISTS) $(MAIN_LISTS) $(MAIN_GROUPS)) \
|
||||
$(SYSTEM_PACKAGES) \
|
||||
$(COMMON_PACKAGES) \
|
||||
$(BASE_PACKAGES) \
|
||||
$(MAIN_PACKAGES)
|
||||
IMAGE_PACKAGES = $(call map,list, \
|
||||
$(THE_LISTS) $(THE_GROUPS) \
|
||||
$(BASE_LISTS) \
|
||||
$(MAIN_LISTS) $(MAIN_GROUPS)) \
|
||||
$(SYSTEM_PACKAGES) $(COMMON_PACKAGES) \
|
||||
$(THE_PACKAGES) $(BASE_PACKAGES) $(MAIN_PACKAGES)
|
||||
|
||||
MKI_DESTDIR = ALTLinux/RPMS.main
|
||||
MKI_PACK_RESULTS = data
|
||||
|
@ -29,8 +29,9 @@ STAGE1_KFLAVOUR ?= $(lastword $(KFLAVOURS))
|
||||
# propagator needed iff stage1 kernel installed (not for e.g. syslinux.iso)
|
||||
ifneq "$(STAGE1_KFLAVOUR)" ""
|
||||
BUILD_PROPAGATOR = build-propagator
|
||||
CHROOT_PACKAGES_REGEXP := $(call kpackages,$(STAGE1_KMODULES_REGEXP),$(STAGE1_KFLAVOUR))
|
||||
INFO_STAGE1_KFLAVOUR := $(STAGE1_KFLAVOUR)
|
||||
CHROOT_PACKAGES_REGEXP := $(call kpackages, \
|
||||
$(STAGE1_KMODULES_REGEXP),$(STAGE1_KFLAVOUR))
|
||||
endif
|
||||
|
||||
CHROOT_PACKAGES_REGEXP += $(STAGE1_PACKAGES_REGEXP)
|
||||
|
@ -32,7 +32,9 @@ endif
|
||||
|
||||
# need kernel modules only (which require corresponding kernel-image);
|
||||
# these go into work chroot; NB: no vmlinuz there
|
||||
IMAGE_PACKAGES_REGEXP = $(call kpackages,$(STAGE1_KMODULES),$(STAGE1_KFLAVOUR))
|
||||
IMAGE_PACKAGES_REGEXP = $(call kpackages, \
|
||||
$(STAGE1_KMODULES) $(STAGE2_KMODULES), \
|
||||
$(STAGE1_KFLAVOUR))
|
||||
|
||||
include $(MKIMAGE_PREFIX)/targets.mk
|
||||
|
||||
|
@ -5,6 +5,9 @@
|
||||
Зависимость на него стоит прописывать в таких фичах;
|
||||
сама по себе (без нужного stage2cfg.mk) смысла не имеет.
|
||||
|
||||
Обратите внимание, что набор потенциально доступных в stage1
|
||||
модулей ядра для stage2 может быть расширен (STAGE2_KMODULES).
|
||||
|
||||
Результат -- соответственно названный файл со squashfs,
|
||||
подлежащий копированию в итоговый образ.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user