Different shells can have different behaviours when it comes to globbing
patterns. The dash shell (/bin/sh) on Debian testing switched to a
different fnmatch/glob implementation that results in this new behaviour:
Using bash:
$ mkdir /tmp/foo
$ echo /tmp/foo/.[^.]*
/tmp/foo/.[^.]*
Using dash:
$ mkdir /tmp/foo
$ echo /tmp/foo/.[^.]*
/tmp/foo/..
The current FAKEROOT script uses this shell glob pattern which now fails
on recent Debian testing systems:
rm: refusing to remove '.' or '..' directory: skipping '/build/buildroot-fs/cpio/target/run/..'
rm: refusing to remove '.' or '..' directory: skipping '/build/buildroot-fs/cpio/target/tmp/..'
Additionally, the glob will miss files which have at least two leading
dots, like ..foo ...bar or ......buz (highly improbable, but still).
It seems safer to use `find | xargs rm` here instead of relying on shell
globbing patterns.
Signed-off-by: Mathieu Mirmont <mat@parad0x.org>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
(cherry picked from commit
|
||
---|---|---|
.. | ||
axfs | ||
btrfs | ||
cloop | ||
cpio | ||
cramfs | ||
erofs | ||
ext2 | ||
f2fs | ||
initramfs | ||
iso9660 | ||
jffs2 | ||
oci | ||
romfs | ||
squashfs | ||
tar | ||
ubi | ||
ubifs | ||
yaffs2 | ||
common.mk | ||
Config.in |