Пример плохих последствий: На диск(GLOBAL_DISK_PACKAGE_LISTS) помещен пакет, зависящий от конкретно gcc4.1, после чего никакой более новый gcc в дистрибутив не попадает, т.к. в GLOBAL_PKG_GROUPS пакеты зависят правильно на просто gcc. Нужно, чтоб пакеты GLOBAL_DISK_PACKAGE_LISTS обсчитывались в последнюю очередь, чтоб и gcc4.7 и gcc4.1 попали.
JFYI -- проверил на mkimage-profiles-0.9.10, порядок: $ head -20 pkg.in/{lists,groups}/build* ==> pkg.in/lists/build <== rpm-build ==> pkg.in/groups/build.directory <== [Desktop Entry] Encoding=UTF-8 Type=Directory Name=Build tools X-Alterator-PackageList=build X-Alterator-Required=no Categories=Server; $ grep -A3 server-test conf.d/test.mk distro/server-test: distro/server-mini use/relname @$(call set,RELNAME,Test-Server) @$(call add,MAIN_PACKAGES,gcc4.1) @$(call add,MAIN_GROUPS,build) $ make DEBUG=1 REPORT=1 server-test.iso [...] $ grep gcc4.[17].*RPMS.main ~/out/server-test-20130320-x86_64.iso.log \ | head -2 | cut -f1 -d' ' './gcc4.7-4.7.2-alt7.x86_64.rpm' './gcc4.1-4.1.2-alt11.x86_64.rpm' Обработка списков для main выполнена вот так: http://git.altlinux.org/people/mike/packages/?p=mkimage-profiles.git;a=blob;f=sub.in/main/Makefile;hb=HEAD
Речь о "DISK_PACKAGES"
Да-да, понимаю. Это его эквивалент, т.к. RPMS.disk давно нет и смысла оставлять неассоциативное название было немного.
Ща проверю, видимо, тут порядок неправильный: IMAGE_PACKAGES = .base \ $(call list,$(LOCAL_BASE_PACKAGE_LISTS)) \ $(call list,$(GLOBAL_BASE_PACKAGE_LISTS)) \ $(call list,$(GLOBAL_DISK_PACKAGE_LISTS)) \ $(GLOBAL_DISK_PACKAGES) \ $(call list,$(shell grep X-Alterator-PackageList /dev/null $(call group,$(GLOBAL_PKG_GROUPS)) | cut -d= -f2)) \ $(call tagged,$(GLOBAL_BASE_TAGS)) \ $(call tagged,$(GLOBAL_DISK_TAGS))
Помогло http://git.altlinux.org/people/zerg/packages/?p=mkimage-profiles-desktop.git;a=commitdiff;h=980bb56628c4a257853fb4a40f99e7158937a98a