include/rootfs.mk: retain list of conffiles with CONFIG_CLEAN_IPKG
authorMatthias Schiffer <mschiffer@universe-factory.net>
Tue, 6 Mar 2018 13:29:46 +0000 (14:29 +0100)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Wed, 7 Mar 2018 08:58:50 +0000 (09:58 +0100)
/usr/lib/opkg/status must not be removed completely, otherwise the
packages' conffile lists will be missing. Replace it with a reduced version
only containing the conffile entries.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
include/rootfs.mk

index 541b54b451921cf6818557a7dc921f2710fbe19c..a3a08c2851cd0a377e36284c69e1518e94b694cc 100644 (file)
@@ -49,8 +49,15 @@ TARGET_DIR_ORIG := $(TARGET_ROOTFS_DIR)/root.orig-$(BOARD)
 
 ifdef CONFIG_CLEAN_IPKG
   define clean_ipkg
-       -find $(1)/usr/lib/opkg -type f -and -not -name '*.control' | $(XARGS) rm -rf
+       -find $(1)/usr/lib/opkg/info -type f -and -not -name '*.control' | $(XARGS) rm -rf
        -sed -i -ne '/^Require-User: /p' $(1)/usr/lib/opkg/info/*.control
+       awk ' \
+               BEGIN { conffiles = 0; print "Conffiles:" } \
+               /^Conffiles:/ { conffiles = 1; next } \
+               !/^ / { conffiles = 0; next } \
+               conffiles == 1 { print } \
+       ' $(1)/usr/lib/opkg/status >$(1)/usr/lib/opkg/status.new
+       mv $(1)/usr/lib/opkg/status.new $(1)/usr/lib/opkg/status
        -find $(1)/usr/lib/opkg -empty | $(XARGS) rm -rf
   endef
 endif