build: introduce support to declare skip package
authorChristian Marangi <ansuelsmth@gmail.com>
Sat, 26 Oct 2024 20:57:46 +0000 (22:57 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Mon, 28 Oct 2024 23:07:54 +0000 (00:07 +0100)
It seems some target started declaring package in DEVICE_PACKAGES just
to call InstallDev and generate binary for the image firmware.

This is very much used by layerscape target where trusted-firmware-a and
dependency are called for final image generation.

This is problematic for APK since it's more sensible to non exisiting
package.

To handle this, introduce a prefix '~' for a package that will signal to
build the package but not install it in the final image.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
include/image.mk
scripts/target-metadata.pl

index 4c53247edaa91f4fa6066a361acd1509fc3a13a1..c476f6674f5876600926e8191da16a9d5f57ae35 100644 (file)
@@ -326,7 +326,7 @@ ifdef CONFIG_TARGET_ROOTFS_CPIOGZ
 endif
 
 mkfs_packages = $(filter-out @%,$(PACKAGES_$(call param_get,pkg,pkg=$(target_params))))
-mkfs_packages_add = $(foreach pkg,$(filter-out -%,$(mkfs_packages)),$(pkg)$(call GetABISuffix,$(pkg)))
+mkfs_packages_add = $(foreach pkg,$(filter-out -% ~%,$(mkfs_packages)),$(pkg)$(call GetABISuffix,$(pkg)))
 mkfs_packages_remove = $(foreach pkg,$(patsubst -%,%,$(filter -%,$(mkfs_packages))),$(pkg)$(call GetABISuffix,$(pkg)))
 mkfs_cur_target_dir = $(call mkfs_target_dir,pkg=$(target_params))
 
index e1d4ef242b865d8351ae3ad2d159a4e1eefded96..0c17e2e3273df6373d9529085502efeae56bc502 100755 (executable)
@@ -146,7 +146,7 @@ sub merge_package_lists($$) {
        my %pkgs;
 
        foreach my $pkg (@$list1, @$list2) {
-               $pkgs{$pkg} = 1;
+               $pkgs{$pkg =~ s/^~//r} = 1;
        }
        foreach my $pkg (keys %pkgs) {
                push @l, $pkg unless ($pkg =~ /^-/ or $pkgs{"-$pkg"});