udev-cache: strip timestamps on extract

Under normal udev operation, device nodes are obviously timestamped
based on the system time at current boot. However, when using
udev-cache, they are timestamped from a previous boot.

The existence of machines lacking RTCs makes this more than a cosmetic
issue: if the current time is set further on in the boot, so that the
system time is still 1970 by the time the cache is extracted, tar will
print a timestamp warning for every extracted file (potentially hundreds
of them).

To fix, use -m on extract.

If using busybox `tar`, this commit requires
CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y.

(From OE-Core rev: b31f8f1f053cdfa9428e3f667c05e7e2c600061e)

Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Tollerton
2014-08-22 16:30:51 -05:00
committed by Richard Purdie
parent 4f597a81f3
commit 79f5a3bc58

View File

@@ -69,7 +69,7 @@ case "$1" in
readfiles /etc/udev/cache.data
OLDDATA="$READDATA"
if [ "$OLDDATA" = "$NEWDATA" ]; then
(cd /; tar xf $DEVCACHE > /dev/null 2>&1)
(cd /; tar xmf $DEVCACHE > /dev/null 2>&1)
not_first_boot=1
[ "$VERBOSE" != "no" ] && echo "udev: using cache file $DEVCACHE"
[ -e /dev/shm/udev.cache ] && rm -f /dev/shm/udev.cache