Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH V2 0/5] Read-only rootfs followup patches
@ 2013-02-20  5:55 Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 1/5] image.bbclass: add a hook funtion to support readonly rootfs Qi.Chen
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Qi.Chen @ 2013-02-20  5:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zhenfeng.Zhao

From: Chen Qi <Qi.Chen@windriver.com>

This patchset enables populate-volatile.sh script run at rootfs time.

For the purpose of easier review, changes for populate-volatile.sh script
have been divided into two parts.

This patchset has been tested with core-image-minimal, with and without
'read-only-rootfs' image feature.

V2 fixes some errors in V1 and remove the trailing whitespaces in populate-volatile.sh.

The following changes since commit c7b23ab68aafc04d9830ef318015912e5d4f0672:

  maintainers.inc: update ownership of recipes (2013-02-17 22:33:30 +0000)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib ChenQi/readonly-rootfs-followups
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/readonly-rootfs-followups

Chen Qi (5):
  image.bbclass: add a hook funtion to support readonly rootfs
  core-image.bbclass: support read-only rootfs
  populate-volatile.sh: add ROOT_DIR variable to support running at
    rootfs time
  populate-volatile.sh: improve the handling of link config items
  populate-volatile.sh: remove trailing whitespaces

 meta/classes/core-image.bbclass                    |    4 +
 meta/classes/image.bbclass                         |   18 ++++
 .../initscripts-1.0/populate-volatile.sh           |   89 ++++++++++++++------
 3 files changed, 83 insertions(+), 28 deletions(-)

-- 
1.7.9.5




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH V2 1/5] image.bbclass: add a hook funtion to support readonly rootfs
  2013-02-20  5:55 [PATCH V2 0/5] Read-only rootfs followup patches Qi.Chen
@ 2013-02-20  5:55 ` Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 2/5] core-image.bbclass: support read-only rootfs Qi.Chen
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Qi.Chen @ 2013-02-20  5:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zhenfeng.Zhao

From: Chen Qi <Qi.Chen@windriver.com>

read_only_rootfs_hook: this funtion is invoked only if 'read-only-rootfs'
is in IMAGE_FEATURES. It tweaks some basic files and makes populate-
volatile.sh script run at rootfs time.

For now, it has real effect only if the init system is sysvinit.

[YOCTO #3406]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 meta/classes/image.bbclass |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index dd78acb..c731f6b 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -233,6 +233,24 @@ run_intercept_scriptlets () {
 	fi
 }
 
+# A hook function to support read-only-rootfs IMAGE_FEATURES
+# Currently, it only supports sysvinit system.
+read_only_rootfs_hook () {
+	if ${@base_contains("DISTRO_FEATURES", "sysvinit", "true", "false", d)}; then
+	        # Tweak the mount option and fs_passno for rootfs in fstab
+		sed -i -e '/^[#[:space:]]*rootfs/{s/defaults/ro/;s/\([[:space:]]*[[:digit:]]\)\([[:space:]]*\)[[:digit:]]$/\1\20/}' ${IMAGE_ROOTFS}/etc/fstab
+	        # Change the value of ROOTFS_READ_ONLY in /etc/default/rcS to yes
+		if [ -e ${IMAGE_ROOTFS}/etc/default/rcS ]; then
+			sed -i 's/ROOTFS_READ_ONLY=no/ROOTFS_READ_ONLY=yes/' ${IMAGE_ROOTFS}/etc/default/rcS
+		fi
+	        # Run populate-volatile.sh at rootfs time to set up basic files
+	        # and directories to support read-only rootfs.
+		if [ -x ${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh ]; then
+			${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh
+		fi
+	fi
+}
+
 fakeroot do_rootfs () {
 	#set -x
 	# When use the rpm incremental image generation, don't remove the rootfs
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 2/5] core-image.bbclass: support read-only rootfs
  2013-02-20  5:55 [PATCH V2 0/5] Read-only rootfs followup patches Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 1/5] image.bbclass: add a hook funtion to support readonly rootfs Qi.Chen
@ 2013-02-20  5:55 ` Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 3/5] populate-volatile.sh: add ROOT_DIR variable to support running at rootfs time Qi.Chen
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Qi.Chen @ 2013-02-20  5:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zhenfeng.Zhao

From: Chen Qi <Qi.Chen@windriver.com>

The hook function is appended to ROOTFS_POSTPROCESS_COMMAND
properly to support the 'read-only-rootfs' image feature.

[YOCTO #3406]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 meta/classes/core-image.bbclass |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/classes/core-image.bbclass b/meta/classes/core-image.bbclass
index 657d5f2..4c70d32 100644
--- a/meta/classes/core-image.bbclass
+++ b/meta/classes/core-image.bbclass
@@ -29,6 +29,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3
 # - dev-pkgs            - development packages (headers, etc.) for all installed packages in the rootfs
 # - dbg-pkgs            - debug symbol packages for all installed packages in the rootfs
 # - doc-pkgs            - documentation packages for all installed packages in the rootfs
+# - read-only-rootfs    - tweaks an image to support read-only rootfs
 #
 PACKAGE_GROUP_x11 = "packagegroup-core-x11"
 PACKAGE_GROUP_x11-base = "packagegroup-core-x11-base"
@@ -80,3 +81,6 @@ ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp ; "
 
 # Zap the root password if debug-tweaks feature is not enabled
 ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "", "zap_root_password ; ",d)}'
+
+# Tweak the mount options for rootfs in /etc/fstab if read-only-rootfs is enabled
+ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("IMAGE_FEATURES", "read-only-rootfs", "read_only_rootfs_hook; ", "",d)}'
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 3/5] populate-volatile.sh: add ROOT_DIR variable to support running at rootfs time
  2013-02-20  5:55 [PATCH V2 0/5] Read-only rootfs followup patches Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 1/5] image.bbclass: add a hook funtion to support readonly rootfs Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 2/5] core-image.bbclass: support read-only rootfs Qi.Chen
@ 2013-02-20  5:55 ` Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items Qi.Chen
  2013-02-20  5:55 ` [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces Qi.Chen
  4 siblings, 0 replies; 13+ messages in thread
From: Qi.Chen @ 2013-02-20  5:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zhenfeng.Zhao

From: Chen Qi <Qi.Chen@windriver.com>

For populate-volatile.sh script to run correctly both at rootfs time and
at system boot time, it needs to be aware of which situation it is now in.

We use the ROOT_DIR variable to indicate whether it is run at rootfs time or
not. ROOT_DIR being "/" indicates that this script is run at system boot time,
otherwise, it is run at rootfs time.

Also, we ignore failures when running this script at rootfs time.
For example, if ${ROOT_DIR}/var/dir1 is symlink to /var/volatile/dir1, it's
possible that the link is a dead link. So if we're going to create some file
under ${ROOT_DIR}/var/dir1, it will fail. But the failure does no harm,
because this script will always run at system boot time to set up the correct
files and directories.

[YOCTO #3406]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 .../initscripts-1.0/populate-volatile.sh           |   62 ++++++++++++++------
 1 file changed, 45 insertions(+), 17 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 ab3af70..c4bf70e 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -8,10 +8,18 @@
 # Short-Description:  Populate the volatile filesystem
 ### END INIT INFO
 
-. /etc/default/rcS
-
-CFGDIR="/etc/default/volatiles"
-TMPROOT="/var/tmp"
+# Get ROOT_DIR
+DIRNAME=`dirname $0`
+ROOT_DIR=`echo $DIRNAME | sed -ne 's:etc/.*::p'`
+
+[ -e ${ROOT_DIR}/etc/default/rcS ] && . ${ROOT_DIR}/etc/default/rcS
+# When running populate-volatile.sh at rootfs time, disable cache.
+[ "$ROOT_DIR" != "/" ] && VOLATILE_ENABLE_CACHE=no
+# If rootfs is read-only, disable cache.
+[ "$ROOTFS_READ_ONLY" = "yes" ] && VOLATILE_ENABLE_CACHE=no
+
+CFGDIR="${ROOT_DIR}/etc/default/volatiles"
+TMPROOT="${ROOT_DIR}/var/tmp"
 COREDEF="00_core"
 
 [ "${VERBOSE}" != "no" ] && echo "Populating volatile Filesystems."
@@ -27,7 +35,15 @@ create_file() {
 	[ -e "$1" ] && {
 		[ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
 	} || {
-		eval $EXEC &
+		if [ "$ROOT_DIR" = "/" ]; then
+			eval $EXEC &
+		else
+			# Creating some files at rootfs time may fail and should fail,
+			# but these failures should not be logged to make sure the do_rootfs
+			# process doesn't fail. This does no harm, as this script will
+			# run on target to set up the correct files and directories.
+			eval $EXEC > /dev/null 2>&1 &
+		fi
 	}
 }
 
@@ -41,7 +57,13 @@ mk_dir() {
 	[ -e "$1" ] && {
 		[ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
 	} || {
-		eval $EXEC
+		if [ "$ROOT_DIR" = "/" ]; then
+			eval $EXEC
+		else
+			# For the same reason with create_file(), failures should
+			# not be logged.
+			eval $EXEC > /dev/null 2>&1
+		fi
 	}
 }
 
@@ -49,11 +71,16 @@ link_file() {
 	EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1" 
 
 	test "$VOLATILE_ENABLE_CACHE" = yes && echo "	$EXEC" >> /etc/volatile.cache.build
-	
 	[ -e "$2" ] && {
 		echo "Cannot create link over existing -${TNAME}-." >&2
 	} || {
-		eval $EXEC &
+		if [ "$ROOT_DIR" = "/" ]; then
+			eval $EXEC &
+		else
+			# For the same reason with create_file(), failures should
+			# not be logged.
+			eval $EXEC > /dev/null 2>&1 &
+		fi
 	}
 }
 
@@ -63,7 +90,7 @@ check_requirements() {
 		rm "${TMP_DEFINED}"
 		rm "${TMP_COMBINED}"
 	}
-	
+
 	CFGFILE="$1"
 	[ `basename "${CFGFILE}"` = "${COREDEF}" ] && return 0
 
@@ -71,7 +98,7 @@ check_requirements() {
 	TMP_DEFINED="${TMPROOT}/tmpdefined.$$"
 	TMP_COMBINED="${TMPROOT}/tmpcombined.$$"
 
-	cat /etc/passwd | sed 's@\(^:\)*:.*@\1@' | sort | uniq > "${TMP_DEFINED}"
+	cat ${ROOT_DIR}/etc/passwd | sed 's@\(^:\)*:.*@\1@' | sort | uniq > "${TMP_DEFINED}"
 	cat ${CFGFILE} | grep -v "^#" | cut -d " " -f 2 > "${TMP_INTERMED}"
 	cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}"
 	NR_DEFINED_USERS="`cat "${TMP_DEFINED}" | wc -l`"
@@ -85,7 +112,7 @@ check_requirements() {
 	}
 
 
-	cat /etc/group | sed 's@\(^:\)*:.*@\1@' | sort | uniq > "${TMP_DEFINED}"
+	cat ${ROOT_DIR}/etc/group | sed 's@\(^:\)*:.*@\1@' | sort | uniq > "${TMP_DEFINED}"
 	cat ${CFGFILE} | grep -v "^#" | cut -d " " -f 3 > "${TMP_INTERMED}"
 	cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}"
 
@@ -116,6 +143,7 @@ apply_cfgfile() {
 	cat ${CFGFILE} | grep -v "^#" | \
 		while read LINE; do
 		eval `echo "$LINE" | sed -n "s/\(.*\)\ \(.*\) \(.*\)\ \(.*\)\ \(.*\)\ \(.*\)/TTYPE=\1 ; TUSER=\2; TGROUP=\3; TMODE=\4; TNAME=\5 TLTARGET=\6/p"`
+		TNAME=${ROOT_DIR}/${TNAME}
 		[ "${VERBOSE}" != "no" ] && echo "Checking for -${TNAME}-."
 
 		[ "${TTYPE}" = "l" ] && {
@@ -168,19 +196,19 @@ do
 done
 exec 9>&-
 
-if test -e /etc/volatile.cache -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != "xupdate" -a "x$clearcache" = "x0"
+if test -e ${ROOT_DIR}/etc/volatile.cache -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != "xupdate" -a "x$clearcache" = "x0"
 then
-	sh /etc/volatile.cache
-else	
-	rm -f /etc/volatile.cache /etc/volatile.cache.build
+	sh ${ROOT_DIR}/etc/volatile.cache
+else
+	rm -f ${ROOT_DIR}/etc/volatile.cache ${ROOT_DIR}/etc/volatile.cache.build
 	for file in `ls -1 "${CFGDIR}" | sort`; do
 		apply_cfgfile "${CFGDIR}/${file}"
 	done
 
-	[ -e /etc/volatile.cache.build ] && sync && mv /etc/volatile.cache.build /etc/volatile.cache
+	[ -e ${ROOT_DIR}/etc/volatile.cache.build ] && sync && mv ${ROOT_DIR}/etc/volatile.cache.build ${ROOT_DIR}/etc/volatile.cache
 fi
 
-if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache
+if [ "${ROOT_DIR}" = "/" ] && [ -f /etc/ld.so.cache ] && [ ! -f /var/run/ld.so.cache ]
 then
 	ln -s /etc/ld.so.cache /var/run/ld.so.cache
 fi
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items
  2013-02-20  5:55 [PATCH V2 0/5] Read-only rootfs followup patches Qi.Chen
                   ` (2 preceding siblings ...)
  2013-02-20  5:55 ` [PATCH V2 3/5] populate-volatile.sh: add ROOT_DIR variable to support running at rootfs time Qi.Chen
@ 2013-02-20  5:55 ` Qi.Chen
  2013-02-20  7:10   ` Bernhard Reutner-Fischer
  2013-02-20  5:55 ` [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces Qi.Chen
  4 siblings, 1 reply; 13+ messages in thread
From: Qi.Chen @ 2013-02-20  5:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zhenfeng.Zhao

From: Chen Qi <Qi.Chen@windriver.com>

Previously, if there's a link config item in the config file like

	    l root root 1777 /tmp /var/tmp

and /tmp has existed, the symlink will not be created correctly.

Another example is the /run directory. If /run directory has been
created by some recipe or script before populate-volatile.sh runs,
the symlink of /run to /var/run will not be created correctly.

This patch ensures that the system creates symlinks exactly as the
config file tells it.

[YOCTO #3404]
[YOCTO #3406]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 .../initscripts-1.0/populate-volatile.sh           |   37 +++++++++++---------
 1 file changed, 21 insertions(+), 16 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 c4bf70e..24daeb4 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -68,20 +68,27 @@ mk_dir() {
 }
 
 link_file() {
-	EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1" 
+	EXEC="
+	if [ -L \"$2\" ]; then
+		[ \"\$(readlink -f \"$2\")\" != \"\$(readlink -f \"$1\")\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; };
+	elif [ -d \"$2\" ]; then
+		for f in $2/* $2/.[^.]*; do [ -e \$f ] && cp -rf \$f $1; done;
+		rm -rf \"$2\";
+		ln -sf \"$1\" \"$2\";
+	else
+		ln -sf \"$1\" \"$2\";
+	fi
+        "
 
 	test "$VOLATILE_ENABLE_CACHE" = yes && echo "	$EXEC" >> /etc/volatile.cache.build
-	[ -e "$2" ] && {
-		echo "Cannot create link over existing -${TNAME}-." >&2
-	} || {
-		if [ "$ROOT_DIR" = "/" ]; then
-			eval $EXEC &
-		else
-			# For the same reason with create_file(), failures should
-			# not be logged.
-			eval $EXEC > /dev/null 2>&1 &
-		fi
-	}
+
+	if [ "$ROOT_DIR" = "/" ]; then
+		eval $EXEC &
+	else
+		# For the same reason with create_file(), failures should
+		# not be logged.
+		eval $EXEC > /dev/null 2>&1 &
+	fi
 }
 
 check_requirements() {
@@ -148,10 +155,8 @@ apply_cfgfile() {
 
 		[ "${TTYPE}" = "l" ] && {
 			TSOURCE="$TLTARGET"
-			[ -L "${TNAME}" ] || {
-				[ "${VERBOSE}" != "no" ] && echo "Creating link -${TNAME}- pointing to -${TSOURCE}-."
-				link_file "${TSOURCE}" "${TNAME}" &
-			}
+			[ "${VERBOSE}" != "no" ] && echo "Creating link -${TNAME}- pointing to -${TSOURCE}-."
+			link_file "${TSOURCE}" "${TNAME}"
 			continue
 		}
 
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces
  2013-02-20  5:55 [PATCH V2 0/5] Read-only rootfs followup patches Qi.Chen
                   ` (3 preceding siblings ...)
  2013-02-20  5:55 ` [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items Qi.Chen
@ 2013-02-20  5:55 ` Qi.Chen
  2013-02-20 14:19   ` Bernhard Reutner-Fischer
  4 siblings, 1 reply; 13+ messages in thread
From: Qi.Chen @ 2013-02-20  5:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zhenfeng.Zhao

From: Chen Qi <Qi.Chen@windriver.com>

Remove trailing whitespaces.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 .../initscripts-1.0/populate-volatile.sh           |    6 +++---
 1 file changed, 3 insertions(+), 3 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 24daeb4..d7937b4 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -48,9 +48,9 @@ create_file() {
 }
 
 mk_dir() {
-	EXEC=" 
-	mkdir -p \"$1\"; 
-	chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; 
+	EXEC="
+	mkdir -p \"$1\";
+	chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
 	chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
 
 	test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items
  2013-02-20  5:55 ` [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items Qi.Chen
@ 2013-02-20  7:10   ` Bernhard Reutner-Fischer
  2013-02-20  7:16     ` ChenQi
  0 siblings, 1 reply; 13+ messages in thread
From: Bernhard Reutner-Fischer @ 2013-02-20  7:10 UTC (permalink / raw)
  To: Qi.Chen, openembedded-core; +Cc: Zhenfeng.Zhao

On 20 February 2013 06:55:33 <Qi.Chen@windriver.com> wrote:
> From: Chen Qi <Qi.Chen@windriver.com>
>
> Previously, if there's a link config item in the config file like
>
> 	    l root root 1777 /tmp /var/tmp
>
> and /tmp has existed, the symlink will not be created correctly.
>
> Another example is the /run directory. If /run directory has been
> created by some recipe or script before populate-volatile.sh runs,
> the symlink of /run to /var/run will not be created correctly.
>
> This patch ensures that the system creates symlinks exactly as the
> config file tells it.

This one also has bugs in background handling, it seems.
Can't you massage stderr redirection when setting EXIT instead?
>
> [YOCTO #3404]
> [YOCTO #3406]
>


Sent with AquaMail for Android
http://www.aqua-mail.com





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items
  2013-02-20  7:10   ` Bernhard Reutner-Fischer
@ 2013-02-20  7:16     ` ChenQi
  2013-02-20  9:18       ` Bernhard Reutner-Fischer
  0 siblings, 1 reply; 13+ messages in thread
From: ChenQi @ 2013-02-20  7:16 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: Zhenfeng.Zhao, openembedded-core

On 02/20/2013 03:10 PM, Bernhard Reutner-Fischer wrote:
> On 20 February 2013 06:55:33 <Qi.Chen@windriver.com> wrote:
>> From: Chen Qi <Qi.Chen@windriver.com>
>>
>> Previously, if there's a link config item in the config file like
>>
>>         l root root 1777 /tmp /var/tmp
>>
>> and /tmp has existed, the symlink will not be created correctly.
>>
>> Another example is the /run directory. If /run directory has been
>> created by some recipe or script before populate-volatile.sh runs,
>> the symlink of /run to /var/run will not be created correctly.
>>
>> This patch ensures that the system creates symlinks exactly as the
>> config file tells it.
>
> This one also has bugs in background handling, it seems.

What's the bug?

> Can't you massage stderr redirection when setting EXIT instead?

Could you please be more specific?

>>
>> [YOCTO #3404]
>> [YOCTO #3406]
>>
>
>
> Sent with AquaMail for Android
> http://www.aqua-mail.com
>
>
>
>




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items
  2013-02-20  7:16     ` ChenQi
@ 2013-02-20  9:18       ` Bernhard Reutner-Fischer
  2013-02-20  9:28         ` ChenQi
  0 siblings, 1 reply; 13+ messages in thread
From: Bernhard Reutner-Fischer @ 2013-02-20  9:18 UTC (permalink / raw)
  To: ChenQi; +Cc: Zhenfeng.Zhao, openembedded-core

On 20 February 2013 08:16, ChenQi <Qi.Chen@windriver.com> wrote:
> On 02/20/2013 03:10 PM, Bernhard Reutner-Fischer wrote:
>>
>> On 20 February 2013 06:55:33 <Qi.Chen@windriver.com> wrote:
>>>
>>> From: Chen Qi <Qi.Chen@windriver.com>
>>>
>>> Previously, if there's a link config item in the config file like
>>>
>>>         l root root 1777 /tmp /var/tmp
>>>
>>> and /tmp has existed, the symlink will not be created correctly.
>>>
>>> Another example is the /run directory. If /run directory has been
>>> created by some recipe or script before populate-volatile.sh runs,
>>> the symlink of /run to /var/run will not be created correctly.
>>>
>>> This patch ensures that the system creates symlinks exactly as the
>>> config file tells it.
>>
>>
>> This one also has bugs in background handling, it seems.
>
>
> What's the bug?

-                               link_file "${TSOURCE}" "${TNAME}" &
-                       }
+                       [ "${VERBOSE}" != "no" ] && echo "Creating
link -${TNAME}- pointing to -${TSOURCE}-."
+                       link_file "${TSOURCE}" "${TNAME}"

missing '&' after the link_file.
>
>
>> Can't you massage stderr redirection when setting EXIT instead?
>
>
> Could you please be more specific?
I meant EXEC.
Can't you put the > /dev/null 2>&1 into the relevant parts of _all_
the EXEC instead, in the whole series?


>>> [YOCTO #3404]
>>> [YOCTO #3406]



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items
  2013-02-20  9:18       ` Bernhard Reutner-Fischer
@ 2013-02-20  9:28         ` ChenQi
  0 siblings, 0 replies; 13+ messages in thread
From: ChenQi @ 2013-02-20  9:28 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: Zhenfeng.Zhao, openembedded-core

On 02/20/2013 05:18 PM, Bernhard Reutner-Fischer wrote:
> On 20 February 2013 08:16, ChenQi <Qi.Chen@windriver.com> wrote:
>> On 02/20/2013 03:10 PM, Bernhard Reutner-Fischer wrote:
>>> On 20 February 2013 06:55:33 <Qi.Chen@windriver.com> wrote:
>>>> From: Chen Qi <Qi.Chen@windriver.com>
>>>>
>>>> Previously, if there's a link config item in the config file like
>>>>
>>>>          l root root 1777 /tmp /var/tmp
>>>>
>>>> and /tmp has existed, the symlink will not be created correctly.
>>>>
>>>> Another example is the /run directory. If /run directory has been
>>>> created by some recipe or script before populate-volatile.sh runs,
>>>> the symlink of /run to /var/run will not be created correctly.
>>>>
>>>> This patch ensures that the system creates symlinks exactly as the
>>>> config file tells it.
>>>
>>> This one also has bugs in background handling, it seems.
>>
>> What's the bug?
> -                               link_file "${TSOURCE}" "${TNAME}" &
> -                       }
> +                       [ "${VERBOSE}" != "no" ] && echo "Creating
> link -${TNAME}- pointing to -${TSOURCE}-."
> +                       link_file "${TSOURCE}" "${TNAME}"
>
> missing '&' after the link_file.
Thanks. I'll resend out this patch.

>>
>>> Can't you massage stderr redirection when setting EXIT instead?
>>
>> Could you please be more specific?
> I meant EXEC.
> Can't you put the > /dev/null 2>&1 into the relevant parts of _all_
> the EXEC instead, in the whole series?
>
I don't think so :(
Only in case of running at rootfs time can we ignore the errors.

Best Regards,
Chen Qi

>>>> [YOCTO #3404]
>>>> [YOCTO #3406]
>




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces
  2013-02-20  5:55 ` [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces Qi.Chen
@ 2013-02-20 14:19   ` Bernhard Reutner-Fischer
  2013-02-21  2:31     ` ChenQi
  0 siblings, 1 reply; 13+ messages in thread
From: Bernhard Reutner-Fischer @ 2013-02-20 14:19 UTC (permalink / raw)
  To: Qi.Chen; +Cc: Zhenfeng.Zhao, openembedded-core

On 20 February 2013 06:55,  <Qi.Chen@windriver.com> wrote:
> From: Chen Qi <Qi.Chen@windriver.com>
>
> Remove trailing whitespaces.
>
> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ---
>  .../initscripts-1.0/populate-volatile.sh           |    6 +++---
>  1 file changed, 3 insertions(+), 3 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 24daeb4..d7937b4 100755
> --- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
> +++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
> @@ -48,9 +48,9 @@ create_file() {
>  }
>
>  mk_dir() {
> -       EXEC="
> -       mkdir -p \"$1\";
> -       chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
> +       EXEC="
> +       mkdir -p \"$1\";
> +       chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
>         chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
>
>         test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build

Don't you need ${ROOT_DIR}/etc/volatile.cache.build here (and
everywhere else if there are other cases), too?



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces
  2013-02-20 14:19   ` Bernhard Reutner-Fischer
@ 2013-02-21  2:31     ` ChenQi
  2013-02-21  7:20       ` Bernhard Reutner-Fischer
  0 siblings, 1 reply; 13+ messages in thread
From: ChenQi @ 2013-02-21  2:31 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: Zhenfeng.Zhao, openembedded-core

On 02/20/2013 10:19 PM, Bernhard Reutner-Fischer wrote:
> On 20 February 2013 06:55,  <Qi.Chen@windriver.com> wrote:
>> From: Chen Qi <Qi.Chen@windriver.com>
>>
>> Remove trailing whitespaces.
>>
>> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
>> ---
>>   .../initscripts-1.0/populate-volatile.sh           |    6 +++---
>>   1 file changed, 3 insertions(+), 3 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 24daeb4..d7937b4 100755
>> --- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
>> +++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
>> @@ -48,9 +48,9 @@ create_file() {
>>   }
>>
>>   mk_dir() {
>> -       EXEC="
>> -       mkdir -p \"$1\";
>> -       chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
>> +       EXEC="
>> +       mkdir -p \"$1\";
>> +       chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
>>          chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
>>
>>          test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build
> Don't you need ${ROOT_DIR}/etc/volatile.cache.build here (and
> everywhere else if there are other cases), too?
>
>
Actually no.

The cache is only enabled when ROOT_DIR is "/".
That is, the cache is disabled if populate-volatile.sh is run at rootfs 
time.

Best Regards,
Chen Qi



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces
  2013-02-21  2:31     ` ChenQi
@ 2013-02-21  7:20       ` Bernhard Reutner-Fischer
  0 siblings, 0 replies; 13+ messages in thread
From: Bernhard Reutner-Fischer @ 2013-02-21  7:20 UTC (permalink / raw)
  To: ChenQi; +Cc: Zhenfeng.Zhao, openembedded-core

On 21 February 2013 03:31:26 ChenQi <Qi.Chen@windriver.com> wrote:

> >>          test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> 
> /etc/volatile.cache.build
> > Don't you need ${ROOT_DIR}/etc/volatile.cache.build here (and
> > everywhere else if there are other cases), too?
> >
> >
> Actually no.
>
> The cache is only enabled when ROOT_DIR is "/".
> That is, the cache is disabled if populate-volatile.sh is run at rootfs
> time.

Thanks for the explanation.
Cheers,


Sent with AquaMail for Android
http://www.aqua-mail.com





^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2013-02-21  7:34 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-20  5:55 [PATCH V2 0/5] Read-only rootfs followup patches Qi.Chen
2013-02-20  5:55 ` [PATCH V2 1/5] image.bbclass: add a hook funtion to support readonly rootfs Qi.Chen
2013-02-20  5:55 ` [PATCH V2 2/5] core-image.bbclass: support read-only rootfs Qi.Chen
2013-02-20  5:55 ` [PATCH V2 3/5] populate-volatile.sh: add ROOT_DIR variable to support running at rootfs time Qi.Chen
2013-02-20  5:55 ` [PATCH V2 4/5] populate-volatile.sh: improve the handling of link config items Qi.Chen
2013-02-20  7:10   ` Bernhard Reutner-Fischer
2013-02-20  7:16     ` ChenQi
2013-02-20  9:18       ` Bernhard Reutner-Fischer
2013-02-20  9:28         ` ChenQi
2013-02-20  5:55 ` [PATCH V2 5/5] populate-volatile.sh: remove trailing whitespaces Qi.Chen
2013-02-20 14:19   ` Bernhard Reutner-Fischer
2013-02-21  2:31     ` ChenQi
2013-02-21  7:20       ` Bernhard Reutner-Fischer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox