udev-cache: strip timestamps on extract
authorRichard Tollerton <rich.tollerton@ni.com>
Fri, 22 Aug 2014 21:30:51 +0000 (16:30 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 23 Aug 2014 22:01:59 +0000 (23:01 +0100)
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>
meta/recipes-core/udev/udev/init

index a442c74..7b1a676 100644 (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