Commit 774169c6 authored by Michael Shigorin's avatar Michael Shigorin

COMMON_PACKAGES and SYSTEM_PACKAGES

It was clear that "common" isn't very apt for packages that will get *everywhere*, and became apparent when the need for a "base+live packages" variable arrived with powerbutton feature. So: - the former COMMON_PACKAGES are now SYSTEM_PACKAGES; - COMMON_PACKAGES act as "BASE+LIVE_PACKAGES". Note that SYSTEM_PACKAGES also got factored out from stage2 based features into stage2 subprofile itself; cleanups were due as well.
parent fba30e06
...@@ -57,10 +57,10 @@ license: GPLv2+, see COPYING ...@@ -57,10 +57,10 @@ license: GPLv2+, see COPYING
NB: перечисленные в этих переменных файлы автоматически копируются NB: перечисленные в этих переменных файлы автоматически копируются
в порождаемый профиль => не следует указывать пакаджлисты напрямую в порождаемый профиль => не следует указывать пакаджлисты напрямую
- индивидуальные пакеты (*_PACKAGES): следует крайне осторожно пользоваться - индивидуальные пакеты (*_PACKAGES): следует крайне осторожно пользоваться
COMMON_PACKAGES -- эти пакеты попадут во все стадии, в том числе в образ SYSTEM_PACKAGES -- эти пакеты попадут во все стадии, в том числе в образ
чувствительной к объёму install2 (в stage1 -- только в инструментальный чувствительной к объёму install2 (в stage1 -- только в инструментальный
чрут); применяйте для того, что обязано быть и в инсталяторе, и в готовой чрут); применяйте для того, что обязано быть и в инсталяторе, и в готовой
системе системе -- и не путайте с COMMON_PACKAGES (main, live, rescue)
Результат: Результат:
- при успешном завершении сборки образ называется сообразно - при успешном завершении сборки образ называется сообразно
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
# for mkmodpack to use # for mkmodpack to use
use/firmware: use/firmware:
@$(call add,COMMON_PACKAGES,firmware-linux) @$(call add,SYSTEM_PACKAGES,firmware-linux)
use/firmware/server: use/firmware use/firmware/server: use/firmware
@$(call add,COMMON_PACKAGES,firmware-aic94xx-seq) @$(call add,SYSTEM_PACKAGES,firmware-aic94xx-seq)
@$(call add,MAIN_PACKAGES_REGEXP,firmware-ql.*) @$(call add,MAIN_PACKAGES_REGEXP,firmware-ql.*)
use/firmware/desktop: use/firmware use/firmware/desktop: use/firmware
@$(call add,COMMON_PACKAGES,firmware-psb) @$(call add,SYSTEM_PACKAGES,firmware-psb)
use/firmware/wireless: use/firmware use/firmware/wireless: use/firmware
@$(call add,MAIN_PACKAGES,firmware-acx100) @$(call add,MAIN_PACKAGES,firmware-acx100)
......
# stage2 mod: build install2 subprofile (installer "live" part) # stage2 mod: build install2 subprofile (installer "live" part)
IMAGE_PACKAGES = $(COMMON_PACKAGES) \ IMAGE_PACKAGES = $(INSTALL2_PACKAGES) \
$(INSTALL2_PACKAGES) \
udev e2fsprogs glibc-nss udev e2fsprogs glibc-nss
MKI_PACK_RESULTS = squash:altinst MKI_PACK_RESULTS = squash:altinst
......
use/memtest: use/syslinux use/memtest: use/syslinux
@$(call add,FEATURES,memtest) @$(call add,FEATURES,memtest)
@$(call add,COMMON_PACKAGES,memtest86+) @$(call add,SYSTEM_PACKAGES,memtest86+)
@$(call add,SYSLINUX_CFG,memtest) @$(call add,SYSLINUX_CFG,memtest)
...@@ -54,11 +54,13 @@ metadata: dot-base ...@@ -54,11 +54,13 @@ metadata: dot-base
| sed 's,$(PKGDIR)/*,,g') | sed 's,$(PKGDIR)/*,,g')
dot-base: dot-base:
@echo -e "# auto-added in image.in/Makefile" >> $(call list,.base) @{ \
@echo "$(call kpackages,$(KMODULES),$(KFLAVOURS))" >> $(call list,.base) echo -e "\n## added by image.in/Makefile"; \
echo "$(call kpackages,$(KMODULES),$(KFLAVOURS))"; \
} >> $(call list,.base)
$(IMAGEDIR): $(IMAGEDIR):
mkdir -p "$(IMAGEDIR)" @mkdir -p "$(IMAGEDIR)"
# specified only for the final image, not for the subparts # specified only for the final image, not for the subparts
pack-image: OUTDIR = $(IMAGEDIR) pack-image: OUTDIR = $(IMAGEDIR)
...@@ -73,7 +75,8 @@ dot-disk: ...@@ -73,7 +75,8 @@ dot-disk:
@echo "ALT Linux based" >files/.disk/info @echo "ALT Linux based" >files/.disk/info
@echo "$(ARCH)" >files/.disk/arch @echo "$(ARCH)" >files/.disk/arch
@echo "$(DATE)" >files/.disk/date @echo "$(DATE)" >files/.disk/date
@type -t git >&/dev/null && ( \ @if type -t git >&/dev/null; then \
cd $(TOPDIR) && \ ( cd $(TOPDIR) && \
git show-ref --head -d -s -- HEAD 2>/dev/null; \ git show-ref --head -ds -- HEAD ) \
) >files/.disk/commit >files/.disk/commit 2>/dev/null; \
fi
...@@ -10,36 +10,39 @@ SUFFIX := pkg/lists ...@@ -10,36 +10,39 @@ SUFFIX := pkg/lists
TARGET := $(BUILDDIR)/$(SUFFIX) TARGET := $(BUILDDIR)/$(SUFFIX)
all: $(TARGET) $(GLOBAL_DEBUG) all: $(TARGET) $(GLOBAL_DEBUG)
# env | sort -u | grep _LISTS | xargs cp @# env | sort -u | grep _LISTS | xargs cp
@$(foreach V, \ @$(foreach V, \
$(filter %_LISTS,$(sort $(.VARIABLES))), \ $(filter %_LISTS,$(sort $(.VARIABLES))), \
$(if $(filter environment% file,$(origin $V)),\ $(if $(filter environment% file,$(origin $V)),\
$(shell cp --parents -at $(TARGET) \ $(shell cp --parents -at $(TARGET) \
-- $(value $V)))) -- $(value $V))))
# construct .base packagelist for alterator-pkg @# construct .base packagelist for alterator-pkg
@( \ @{ \
echo "## generated via pkg.in/lists/Makefile"; \ echo "## generated by pkg.in/lists/Makefile"; \
[ -n "$(BRANDING)" ] && { \ if [ -n "$(BRANDING)" ]; then \
echo "branding-$(BRANDING)-release"; \ echo "branding-$(BRANDING)-release"; \
}; \ fi; \
[ -n "$(BASE_LISTS)" ] && { \ if [ -n "$(SYSTEM_PACKAGES)" ]; then \
echo "### BASE_LISTS"; \ echo -e "\n## SYSTEM_PACKAGES\n$(SYSTEM_PACKAGES)"; \
cat $(BASE_LISTS); \ fi; \
}; \ if [ -n "$(COMMON_PACKAGES)" ]; then \
[ -n "$(COMMON_PACKAGES)" ] && { \ echo -e "\n## COMMON_PACKAGES\n$(COMMON_PACKAGES)"; \
echo "## COMMON_PACKAGES"; \ fi; \
echo "$(COMMON_PACKAGES)"; \ if [ -n "$(BASE_PACKAGES)" ]; then \
}; \ echo -e "\n## BASE_PACKAGES\n$(BASE_PACKAGES)"; \
[ -n "$(BASE_PACKAGES)" ] && { \ fi; \
echo "## BASE_PACKAGES"; \ if [ -n "$(BASE_LISTS)" ]; then \
echo "$(BASE_PACKAGES)"; \ echo -e "\n## BASE_LISTS"; cat $(BASE_LISTS); \
}; \ fi; \
) | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' >$(TARGET)/.base } | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' >$(TARGET)/.base
@[ -z "$(MAIN_GROUPS)" ] || cp -at $(TARGET) $(MAIN_GROUPS) @if [ -n "$(MAIN_GROUPS)" ]; then \
@type -t git >&/dev/null && \ cp -at $(TARGET) -- $(MAIN_GROUPS); \
cd $(TARGET) && \ fi
git add . && \ @if type -t git >&/dev/null; then \
git commit -qam "requested $(SUFFIX) copied over" ||: cd $(TARGET) && \
git add . && \
git commit -qam "requested $(SUFFIX) copied over"; \
fi
# do beforehand as foreach gets expanded before recipe execution # do beforehand as foreach gets expanded before recipe execution
$(TARGET): $(TARGET):
......
...@@ -16,6 +16,7 @@ IMAGE_PACKAGES_REGEXP = $(call kpackages,$(KMODULES),$(KFLAVOURS)) \ ...@@ -16,6 +16,7 @@ IMAGE_PACKAGES_REGEXP = $(call kpackages,$(KMODULES),$(KFLAVOURS)) \
$(MAIN_PACKAGES_REGEXP) $(MAIN_PACKAGES_REGEXP)
IMAGE_PACKAGES = $(call map,list,$(BASE_LISTS) $(MAIN_LISTS) $(MAIN_GROUPS)) \ IMAGE_PACKAGES = $(call map,list,$(BASE_LISTS) $(MAIN_LISTS) $(MAIN_GROUPS)) \
$(SYSTEM_PACKAGES) \
$(COMMON_PACKAGES) \ $(COMMON_PACKAGES) \
$(BASE_PACKAGES) \ $(BASE_PACKAGES) \
$(MAIN_PACKAGES) $(MAIN_PACKAGES)
......
Этот каталог содержит субпрофиль main, собирающий пакетную базу, Этот каталог содержит субпрофиль main, собирающий пакетную базу
которая затем укладывается в образ. для локальной инсталяции системы и возможности установки дополнений.
Подбирает: Подбирает:
- COMMON_PACKAGES, BASE_PACKAGES, BASE_LISTS: в установку по умолчанию; - SYSTEM_PACKAGES, COMMON_PACKAGES, BASE_PACKAGES, BASE_LISTS:
в установку по умолчанию;
- MAIN_PACKAGES, MAIN_LISTS: дополнительные пакеты. - MAIN_PACKAGES, MAIN_LISTS: дополнительные пакеты.
В image-scripts.d/* смысла нет, только scripts.d/* -- В image-scripts.d/* смысла нет, только scripts.d/* --
рабочий чрут не содержит исполняемых файлов. рабочий чрут не содержит исполняемых файлов.
Результат -- каталог ALTLinux/RPMS.main, подлежащий копированию Результат -- каталог ALTLinux/RPMS.main для копирования в образ.
в образ.
...@@ -34,7 +34,7 @@ INFO_STAGE1_KFLAVOUR := $(STAGE1_KFLAVOUR) ...@@ -34,7 +34,7 @@ INFO_STAGE1_KFLAVOUR := $(STAGE1_KFLAVOUR)
endif endif
CHROOT_PACKAGES_REGEXP += $(STAGE1_PACKAGES_REGEXP) CHROOT_PACKAGES_REGEXP += $(STAGE1_PACKAGES_REGEXP)
CHROOT_PACKAGES = $(STAGE1_PACKAGES) $(COMMON_PACKAGES) CHROOT_PACKAGES = $(STAGE1_PACKAGES) $(SYSTEM_PACKAGES)
# scripts prepare bootloader configuration, too # scripts prepare bootloader configuration, too
# NB: we pass tested squashfs options for ../install2/Makefile # NB: we pass tested squashfs options for ../install2/Makefile
......
...@@ -19,6 +19,9 @@ include $(MKIMAGE_PREFIX)/config.mk ...@@ -19,6 +19,9 @@ include $(MKIMAGE_PREFIX)/config.mk
# this should be brought in by corresponding specific stage2 feature # this should be brought in by corresponding specific stage2 feature
include stage2cfg.mk include stage2cfg.mk
# requisite stuff
IMAGE_PACKAGES += $(SYSTEM_PACKAGES)
# here we also try and come up with the stage1 kernel/modules, if any; # here we also try and come up with the stage1 kernel/modules, if any;
# no kernel flavour specified will result in no modules for stage1 vmlinuz # no kernel flavour specified will result in no modules for stage1 vmlinuz
STAGE1_KFLAVOUR ?= $(lastword $(KFLAVOURS)) STAGE1_KFLAVOUR ?= $(lastword $(KFLAVOURS))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment