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, 11 Sep 2022 09:27:02 +0000 (11:27 +0200)
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>
include/host-build.mk
include/package.mk

index 7f76eb1a2f5f6978340cd075382209b9c71a3e46..f06dd802301327cbedda4c43a043114ae9cbd8b8 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 509ef61e08822ff422be8cb37be1f959d16fb6c3..5861533bf504627f3880c7b2f5475c968dadcbcc 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