include/rootfs.mk: keep Require-User lines with CONFIG_CLEAN_IPKG
authorMatthias Schiffer <mschiffer@universe-factory.net>
Tue, 24 Jan 2017 16:00:43 +0000 (17:00 +0100)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Tue, 24 Jan 2017 16:18:36 +0000 (17:18 +0100)
Require-User is handled by /etc/uci-defaults/13_fix_group_user on first
boot, so we need to keep these when removing all opkg data with
CONFIG_CLEAN_IPKG.

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

index 90d70a1..c014b1d 100644 (file)
@@ -47,6 +47,14 @@ opkg = \
 
 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
+       -sed -i -ne '/^Require-User: /p' $(1)/usr/lib/opkg/info/*.control
+       -find $(1)/usr/lib/opkg -empty | $(XARGS) rm -rf
+  endef
+endif
+
 define prepare_rootfs
        @if [ -d $(TOPDIR)/files ]; then \
                $(call file_copy,$(TOPDIR)/files/.,$(1)); \
@@ -75,6 +83,6 @@ define prepare_rootfs
        rm -f $(1)/usr/lib/opkg/lists/*
        rm -f $(1)/usr/lib/opkg/info/*.postinst*
        rm -f $(1)/usr/lib/opkg/info/*.prerm*
-       $(if $(CONFIG_CLEAN_IPKG),rm -rf $(1)/usr/lib/opkg)
+       $(call clean_ipkg,$(1))
        $(call mklibs,$(1))
 endef