summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-06-20 21:02:06 +0200
committerJo-Philipp Wich <jo@mein.io>2019-06-21 12:03:43 +0200
commit27a4a71c240875e3fff868f26f723178bf94eb86 (patch)
tree6d61257cd6fd68fef08992ba9edfb01bbcf108a6 /include
parent3dc4f59eabaed5135cd4eed8d1846248d5f1b37c (diff)
downloadopenwrt-27a4a71c240875e3fff868f26f723178bf94eb86.tar.gz
openwrt-27a4a71c240875e3fff868f26f723178bf94eb86.tar.bz2
openwrt-27a4a71c240875e3fff868f26f723178bf94eb86.zip
metadata: handle ABI version rebuild tracking for transient dependencies
Extend the packageauxvars database to keep a list of possible package dependencies for each provider, then utilize this information in buildroot to resolve the ABI version dependencies of dependent packages up to five levels deep. This should properly trigger rebuilds for packages indirectly depending on other packages whose ABI_VERSION changed. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'include')
-rw-r--r--include/package.mk30
1 files changed, 21 insertions, 9 deletions
diff --git a/include/package.mk b/include/package.mk
index 569ad647d6..06ff21b0b0 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -53,14 +53,26 @@ endif
include $(INCLUDE_DIR)/quilt.mk
-find_library_dependencies = $(wildcard $(patsubst %,$(STAGING_DIR)/pkginfo/%.version, \
- $(filter-out $(BUILD_PACKAGES),$(foreach dep, \
- $(filter-out @%, $(patsubst +%,%,$(1))), \
- $(if $(findstring :,$(dep)), \
- $(word 2,$(subst :,$(space),$(dep))), \
- $(dep) \
- ) \
- ))))
+find_library_dependencies = \
+ $(wildcard $(patsubst %,$(STAGING_DIR)/pkginfo/%.version, \
+ $(sort $(foreach dep4, \
+ $(sort $(foreach dep3, \
+ $(sort $(foreach dep2, \
+ $(sort $(foreach dep1, \
+ $(sort $(foreach dep0, \
+ $(Package/$(1)/depends), \
+ $(Package/$(dep0)/depends) $(dep0) \
+ )), \
+ $(Package/$(dep1)/depends) $(dep1) \
+ )), \
+ $(Package/$(dep2)/depends) $(dep2) \
+ )), \
+ $(Package/$(dep3)/depends) $(dep3) \
+ )), \
+ $(Package/$(dep4)/depends) $(dep4) \
+ )), \
+ ))
+
PKG_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR)))
STAMP_NO_AUTOREBUILD=$(wildcard $(PKG_BUILD_DIR)/.no_autorebuild)
@@ -258,7 +270,7 @@ endef
endif
BUILD_PACKAGES += $(1)
- $(STAMP_PREPARED): $$(if $(QUILT)$(DUMP),,$(call find_library_dependencies,$(DEPENDS)))
+ $(STAMP_PREPARED): $$(if $(QUILT)$(DUMP),,$(call find_library_dependencies,$(1)))
$(foreach FIELD, TITLE CATEGORY SECTION VERSION,
ifeq ($($(FIELD)),)