target.mk: add support to early scan of default package configuration

There is currently a problem with how some option that modify default
package configuration are parsed.

When the DEFAULT_PACKAGES list is composed, DUMP is used. Using DUMP
disable the loading of .config to remove and modification done by the
user to prevent any kind of conflict or strange thing one creating all
the info for each target. Because of this, .config is never parsed and
any check to CONFIG doesn't work (for the first creation of .config).

Later image build will check what is set in .config and the default
package list won't be parsed anymore.

This is problematic for some config that are OK to parse, for example
SELINUX or USE_APK.

To better handle them add some logic when DUMP is used to selectively
parse these option if present in a to-be-init .config so that option are
correctly parsed and DEFAULT_PACKAGES is correctly set.

Link: https://github.com/openwrt/openwrt/pull/15543
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Christian Marangi 2024-05-24 12:49:15 +02:00
parent 2c769cff23
commit 98703bf458
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7
1 changed files with 10 additions and 1 deletions

View File

@ -6,6 +6,15 @@
ifneq ($(__target_inc),1)
__target_inc=1
ifneq ($(DUMP),)
# Parse generic config that might be set before a .config is generated to modify the
# default package configuration
GENERIC_CONFIG := CONFIG_USE_APK CONFIG_SELINUX CONFIG_SMALL_FLASH CONFIG_SECCOMP
$(foreach config, $(GENERIC_CONFIG), \
$(eval $(config) := $(shell grep "$(config)=y" $(TOPDIR)/.config 2>/dev/null)) \
)
endif
# default device type
DEVICE_TYPE?=router
@ -26,7 +35,7 @@ DEFAULT_PACKAGES:=\
urandom-seed \
urngd
ifdef CONFIG_USE_APK
ifneq ($(CONFIG_USE_APK),)
DEFAULT_PACKAGES+=apk-mbedtls
else
DEFAULT_PACKAGES+=opkg