summaryrefslogtreecommitdiff
path: root/include/package-ipkg.mk
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-10-05 19:20:27 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-10-05 19:20:27 +0000
commitf3a5085903f770bf0b569d3b94ca1cc4d7bab53f (patch)
tree56be6223304b6a00449e8e075c2801ce9bc3a464 /include/package-ipkg.mk
parent3341e1ece73734ce966aa613718af0f24d54f2f9 (diff)
downloadmtk-20170518-f3a5085903f770bf0b569d3b94ca1cc4d7bab53f.zip
mtk-20170518-f3a5085903f770bf0b569d3b94ca1cc4d7bab53f.tar.gz
mtk-20170518-f3a5085903f770bf0b569d3b94ca1cc4d7bab53f.tar.bz2
package-ipkg.mk: build sysupgrade keepfile hints out of conffiles not yet present in the package. This applies to config directories or files that do not exist but may be created by the user after package installation.
SVN-Revision: 23257
Diffstat (limited to 'include/package-ipkg.mk')
-rw-r--r--include/package-ipkg.mk15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index a07c5cc..512e401 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -49,6 +49,7 @@ ifeq ($(DUMP),)
IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list
+ KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
ifeq ($(if $(VARIANT),$(BUILD_VARIANT)),$(VARIANT))
ifdef Package/$(1)/install
@@ -112,6 +113,20 @@ ifeq ($(DUMP),)
(cd $$(IDIR_$(1))/CONTROL; \
$($(1)_COMMANDS) \
)
+
+ ifneq ($$(KEEP_$(1)),)
+ @( \
+ keepfiles=""; \
+ for x in $$(KEEP_$(1)); do \
+ [ -f "$$(IDIR_$(1))/$$$$x" ] || keepfiles="$$$${keepfiles:+$$$$keepfiles }$$$$x"; \
+ done; \
+ [ -z "$keepfiles" ] || { \
+ mkdir -p $$(IDIR_$(1))/lib/upgrade/keep.d; \
+ for x in $$$$keepfiles; do echo $$$$x >> $$(IDIR_$(1))/lib/upgrade/keep.d/$(1); done; \
+ }; \
+ )
+ endif
+
$(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR)
@[ -f $$(IPKG_$(1)) ]