build: handle directory with whitespace in AUTOREMOVE clean
authorChristian Marangi <ansuelsmth@gmail.com>
Wed, 7 Sep 2022 21:50:36 +0000 (23:50 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Sun, 4 Dec 2022 16:17:18 +0000 (17:17 +0100)
Package with whitespace in their build directory are not correctly
removed when CONFIG_AUTOREMOVE is enabled. This is caused by xargs that
use whitespace as delimiters. To handle this use \0 as the delimiter and
set find to use \0 as the delimiter.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit dccee21792b89031bcd801030de403f195d80278)

include/host-build.mk
include/package.mk

index c6f594be350103493353d97692d491685f1ebf7b..22fcc31f15c7586a52f208509a8ae2949f33b71a 100644 (file)
@@ -198,8 +198,8 @@ ifndef DUMP
 
     ifneq ($(CONFIG_AUTOREMOVE),)
       host-compile:
-               $(FIND) $(HOST_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' | \
-                       $(XARGS) rm -rf
+               $(FIND) $(HOST_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' -print0 | \
+                       $(XARGS) -0 rm -rf
     endif
   endef
 endif
index 4220f624ffacf772edad5dbf0d2e3878f69b71f9..368bf0d7cac1eff4b8ab33d62aa6b7f1e3c8bbc8 100644 (file)
@@ -259,8 +259,8 @@ define Build/CoreTargets
   ifneq ($(CONFIG_AUTOREMOVE),)
     compile:
                -touch -r $(PKG_BUILD_DIR)/.built $(PKG_BUILD_DIR)/.autoremove 2>/dev/null >/dev/null
-               $(FIND) $(PKG_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' -and -not -name '.pkgdir' | \
-                       $(XARGS) rm -rf
+               $(FIND) $(PKG_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' -and -not -name '.pkgdir'  -print0 | \
+                       $(XARGS) -0 rm -rf
   endif
 endef