build: remove broken dependency of metadata on toplevel .config variables

Instead of relying on .config symbols for metadata, alter the DEFAULT
variable of affected packages. Fixes enabling opkg vs apk among others.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 44598c233d)
This commit is contained in:
Felix Fietkau 2024-11-11 19:52:14 +01:00
parent 85d1d03cab
commit 83afb428b0
5 changed files with 9 additions and 38 deletions

View File

@ -90,45 +90,9 @@ else
endif endif
endif endif
ifneq ($(DUMP),)
# Parse generic config that might be set before a .config is generated to modify the
# default package configuration
# Keep DYNAMIC_DEF_PKG_CONF in sync with toplevel.mk to reflect the same configs
DYNAMIC_DEF_PKG_CONF := CONFIG_USE_APK CONFIG_SELINUX CONFIG_SMALL_FLASH CONFIG_SECCOMP
$(foreach config, $(DYNAMIC_DEF_PKG_CONF), \
$(eval $(config) := $(shell grep "$(config)=y" $(TOPDIR)/.config 2>/dev/null)) \
)
# The config options that are enabled by default and where other default
# packages depends on needs to be set if they are missing in the .config.
ifeq ($(shell grep "CONFIG_SECCOMP" $(TOPDIR)/.config 2>/dev/null),)
ifeq ($(filter $(BOARD), uml),)
ifneq ($(filter $(ARCH), aarch64 arm armeb mips mipsel mips64 mips64el i386 powerpc x86_64),)
CONFIG_SECCOMP := y
endif
endif
endif
endif
ifneq ($(CONFIG_USE_APK),)
DEFAULT_PACKAGES+=apk-mbedtls
else
DEFAULT_PACKAGES+=opkg
endif
ifneq ($(CONFIG_SELINUX),)
DEFAULT_PACKAGES+=busybox-selinux procd-selinux
else
DEFAULT_PACKAGES+=busybox procd
endif
# include ujail on systems with enough storage # include ujail on systems with enough storage
ifeq ($(CONFIG_SMALL_FLASH),) ifeq ($(filter small_flash,$(FEATURES)),)
DEFAULT_PACKAGES+=procd-ujail DEFAULT_PACKAGES+=procd-ujail
endif
# include seccomp ld-preload hooks if kernel supports it
ifneq ($(CONFIG_SECCOMP),)
DEFAULT_PACKAGES+=procd-seccomp
endif endif
# Add device specific packages (here below to allow device type set from subtarget) # Add device specific packages (here below to allow device type set from subtarget)

View File

@ -36,6 +36,7 @@ define Package/apk-mbedtls
$(Package/apk/default) $(Package/apk/default)
TITLE += (mbedtls) TITLE += (mbedtls)
DEPENDS +=+libmbedtls DEPENDS +=+libmbedtls
DEFAULT:=y if USE_APK
VARIANT:=mbedtls VARIANT:=mbedtls
DEFAULT_VARIANT:=1 DEFAULT_VARIANT:=1
CONFLICTS:=apk-openssl CONFLICTS:=apk-openssl

View File

@ -39,6 +39,7 @@ define Package/opkg
CATEGORY:=Base system CATEGORY:=Base system
TITLE:=opkg package manager TITLE:=opkg package manager
DEPENDS:=+uclient-fetch +libpthread +libubox DEPENDS:=+uclient-fetch +libpthread +libubox
DEFAULT:=y if !USE_APK
URL:=$(PKG_SOURCE_URL) URL:=$(PKG_SOURCE_URL)
MENU:=1 MENU:=1
endef endef

View File

@ -50,6 +50,7 @@ define Package/procd
$(call Package/procd/Default) $(call Package/procd/Default)
VARIANT:=default VARIANT:=default
CONFLICTS:=procd-selinux CONFLICTS:=procd-selinux
DEFAULT:=y if !SELINUX
endef endef
define Package/procd-selinux define Package/procd-selinux
@ -58,6 +59,7 @@ define Package/procd-selinux
TITLE += with SELinux support TITLE += with SELinux support
PROVIDES:=procd PROVIDES:=procd
VARIANT:=selinux VARIANT:=selinux
DEFAULT:=y if SELINUX
endef endef
define Package/procd-ujail define Package/procd-ujail
@ -73,6 +75,7 @@ define Package/procd-seccomp
CATEGORY:=Base system CATEGORY:=Base system
DEPENDS:=@SECCOMP +libubox +libblobmsg-json DEPENDS:=@SECCOMP +libubox +libblobmsg-json
TITLE:=OpenWrt process seccomp helper + utrace TITLE:=OpenWrt process seccomp helper + utrace
DEFAULT:=y if SECCOMP
endef endef
define Package/uxc define Package/uxc

View File

@ -56,6 +56,7 @@ define Package/busybox
$(call Package/busybox/Default) $(call Package/busybox/Default)
CONFLICTS:=busybox-selinux CONFLICTS:=busybox-selinux
VARIANT:=default VARIANT:=default
DEFAULT:=y if !SELINUX
endef endef
define Package/busybox-selinux define Package/busybox-selinux
@ -64,6 +65,7 @@ define Package/busybox-selinux
DEPENDS += +libselinux DEPENDS += +libselinux
VARIANT:=selinux VARIANT:=selinux
PROVIDES:=busybox PROVIDES:=busybox
DEFAULT:=y if SELINUX
endef endef
define Package/busybox/description define Package/busybox/description