summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Limbouris <james@digitalmatter.com.au>2012-02-29 09:13:46 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-03-02 15:22:54 +0000
commit348ea458a4481a857777d5cd4b9784e085a4e3d5 (patch)
tree38ce333108ac5a92d702d484ffe9b3c1f4a31c90
parent6c959b13e7d6793d105ecfe0cef14991684873c1 (diff)
downloadpoky-348ea458a4481a857777d5cd4b9784e085a4e3d5.tar.gz
initscripts: Create the volatiles cache atomically.
If a machine loses power while building the volatiles cache, it will continue to operate with an incomplete set of volatiles. Fix this by updating atomically. (From OE-Core rev: a60432ff4588390f5f955a6da234298e958546e6) Signed-off-by: James Limbouris <james@digitalmatter.com.au> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh10
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb2
2 files changed, 7 insertions, 5 deletions
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
index 1813fd1240..4a99aff6a4 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -22,7 +22,7 @@ create_file() {
22 chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; 22 chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
23 chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " 23 chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
24 24
25 test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache 25 test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build
26 26
27 [ -e "$1" ] && { 27 [ -e "$1" ] && {
28 [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." 28 [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
@@ -37,7 +37,7 @@ mk_dir() {
37 chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; 37 chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
38 chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " 38 chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
39 39
40 test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache 40 test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build
41 41
42 [ -e "$1" ] && { 42 [ -e "$1" ] && {
43 [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." 43 [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
@@ -49,7 +49,7 @@ mk_dir() {
49link_file() { 49link_file() {
50 EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1" 50 EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1"
51 51
52 test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache 52 test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache.build
53 53
54 [ -e "$2" ] && { 54 [ -e "$2" ] && {
55 echo "Cannot create link over existing -${TNAME}-." >&2 55 echo "Cannot create link over existing -${TNAME}-." >&2
@@ -185,10 +185,12 @@ if test -e /etc/volatile.cache -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != "
185then 185then
186 sh /etc/volatile.cache 186 sh /etc/volatile.cache
187else 187else
188 rm -f /etc/volatile.cache 188 rm -f /etc/volatile.cache /etc/volatile.cache.build
189 for file in `ls -1 "${CFGDIR}" | sort`; do 189 for file in `ls -1 "${CFGDIR}" | sort`; do
190 apply_cfgfile "${CFGDIR}/${file}" 190 apply_cfgfile "${CFGDIR}/${file}"
191 done 191 done
192
193 [ -e /etc/volatile.cache.build ] && sync && mv /etc/volatile.cache.build /etc/volatile.cache
192fi 194fi
193 195
194if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache 196if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index 68701cee39..f3dc852624 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Initscripts provide the basic system startup initialization scrip
3SECTION = "base" 3SECTION = "base"
4LICENSE = "GPLv2" 4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" 5LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
6PR = "r132" 6PR = "r133"
7 7
8INHIBIT_DEFAULT_DEPS = "1" 8INHIBIT_DEFAULT_DEPS = "1"
9 9