* [PATCH V2 0/4] Persistent /var/log support
@ 2016-12-13 8:04 Chen Qi
2016-12-13 8:04 ` [PATCH V2 1/4] bitbake.conf: add VOLATILE_LOG_DIR variable Chen Qi
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Chen Qi @ 2016-12-13 8:04 UTC (permalink / raw)
To: openembedded-core
The following changes since commit d62f18c39bc0ed3b0f5ac8465b393c15f2143ecf:
targetloader.py: drop test for ClassType (2016-12-12 15:16:39 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib ChenQi/persistent-var-log
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/persistent-var-log
Chen Qi (4):
bitbake.conf: add VOLATILE_LOG_DIR variable
base-files: respect VOLATILE_LOG_DIR
initscripts: support persistent /var/log
package.bbclass: support persistent /var/log
meta/classes/package.bbclass | 2 +-
meta/conf/bitbake.conf | 3 +
meta/files/fs-perms-persistent-log.txt | 69 ++++++++++++++++++++++
meta/recipes-core/base-files/base-files_3.0.14.bb | 4 +-
.../initscripts/initscripts-1.0/volatiles | 1 -
meta/recipes-core/initscripts/initscripts_1.0.bb | 3 +
6 files changed, 78 insertions(+), 4 deletions(-)
create mode 100644 meta/files/fs-perms-persistent-log.txt
--
1.9.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH V2 1/4] bitbake.conf: add VOLATILE_LOG_DIR variable
2016-12-13 8:04 [PATCH V2 0/4] Persistent /var/log support Chen Qi
@ 2016-12-13 8:04 ` Chen Qi
2016-12-13 8:04 ` [PATCH V2 2/4] base-files: respect VOLATILE_LOG_DIR Chen Qi
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2016-12-13 8:04 UTC (permalink / raw)
To: openembedded-core
The default value is "yes" which results in the /var/log being a link
pointing to /var/volatile/log which is on tmpfs.
The user could override this value to "no" which causes /var/log to be
a directory on persistent storage.
[YOCTO #6132]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/conf/bitbake.conf | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 1472e8f..794f422 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -83,6 +83,9 @@ USRBINPATH_class-nativesdk = "/usr/bin"
# Root home directory
ROOT_HOME ??= "/home/root"
+# If set to "yes", /var/log links to /var/volatile/log; otherwise, /var/log is on persistent storage.
+VOLATILE_LOG_DIR ?= "yes"
+
##################################################################
# Architecture-dependent build variables.
##################################################################
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH V2 2/4] base-files: respect VOLATILE_LOG_DIR
2016-12-13 8:04 [PATCH V2 0/4] Persistent /var/log support Chen Qi
2016-12-13 8:04 ` [PATCH V2 1/4] bitbake.conf: add VOLATILE_LOG_DIR variable Chen Qi
@ 2016-12-13 8:04 ` Chen Qi
2016-12-13 8:04 ` [PATCH V2 3/4] initscripts: support persistent /var/log Chen Qi
2016-12-13 8:04 ` [PATCH V2 4/4] package.bbclass: " Chen Qi
3 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2016-12-13 8:04 UTC (permalink / raw)
To: openembedded-core
Respect VOLATILE_LOG_DIR variable. In this way, if the user overrides
this variable to be "no", /var/log on the final image would reside on
persistent storage.
[YOCTO #6132]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-core/base-files/base-files_3.0.14.bb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index 5333110..c065499 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -41,7 +41,7 @@ dirs755 = "/bin /boot /dev ${sysconfdir} ${sysconfdir}/default \
${localstatedir}/backups ${localstatedir}/lib \
/sys ${localstatedir}/lib/misc ${localstatedir}/spool \
${localstatedir}/volatile \
- ${localstatedir}/volatile/log \
+ ${localstatedir}/${@'volatile/' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''}log \
/home ${prefix}/src ${localstatedir}/local \
/media"
@@ -52,7 +52,7 @@ dirs755-lsb = "/srv \
${prefix}/lib/locale"
dirs2775-lsb = "/var/mail"
-volatiles = "log tmp"
+volatiles = "${@'log' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''} tmp"
conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
${sysconfdir}/issue /${sysconfdir}/issue.net \
${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH V2 3/4] initscripts: support persistent /var/log
2016-12-13 8:04 [PATCH V2 0/4] Persistent /var/log support Chen Qi
2016-12-13 8:04 ` [PATCH V2 1/4] bitbake.conf: add VOLATILE_LOG_DIR variable Chen Qi
2016-12-13 8:04 ` [PATCH V2 2/4] base-files: respect VOLATILE_LOG_DIR Chen Qi
@ 2016-12-13 8:04 ` Chen Qi
2016-12-13 8:04 ` [PATCH V2 4/4] package.bbclass: " Chen Qi
3 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2016-12-13 8:04 UTC (permalink / raw)
To: openembedded-core
Respect VOLATILE_VAR_LOG variable so that if it's set to "no", we could
have persistent /var/log on the final image.
[YOCTO #6132]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-core/initscripts/initscripts-1.0/volatiles | 1 -
meta/recipes-core/initscripts/initscripts_1.0.bb | 3 +++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/volatiles b/meta/recipes-core/initscripts/initscripts-1.0/volatiles
index 297245d..6cccab7 100644
--- a/meta/recipes-core/initscripts/initscripts-1.0/volatiles
+++ b/meta/recipes-core/initscripts/initscripts-1.0/volatiles
@@ -25,7 +25,6 @@ d root root 1777 /run/lock none
d root root 0755 /var/volatile/log none
d root root 1777 /var/volatile/tmp none
l root root 1777 /var/lock /run/lock
-l root root 0755 /var/log /var/volatile/log
l root root 0755 /var/run /run
l root root 1777 /var/tmp /var/volatile/tmp
l root root 1777 /tmp /var/tmp
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index 8f110b0..453116c 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -102,6 +102,9 @@ do_install () {
install -m 0755 ${WORKDIR}/read-only-rootfs-hook.sh ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/save-rtc.sh ${D}${sysconfdir}/init.d
install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core
+ if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then
+ echo "l root root 0755 /var/log /var/volatile/log" >> ${D}${sysconfdir}/default/volatiles/00_core
+ fi
install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d
install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH V2 4/4] package.bbclass: support persistent /var/log
2016-12-13 8:04 [PATCH V2 0/4] Persistent /var/log support Chen Qi
` (2 preceding siblings ...)
2016-12-13 8:04 ` [PATCH V2 3/4] initscripts: support persistent /var/log Chen Qi
@ 2016-12-13 8:04 ` Chen Qi
2016-12-13 8:38 ` Patrick Ohly
3 siblings, 1 reply; 6+ messages in thread
From: Chen Qi @ 2016-12-13 8:04 UTC (permalink / raw)
To: openembedded-core
Add a new file, fs-perms-persistent-log.txt, which treats /var/log
as a directory instead of a link.
Modify package.bbclass to use this file if VOLATILE_LOG_DIR is not set to "yes".
[YOCTO #6132]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/classes/package.bbclass | 2 +-
meta/files/fs-perms-persistent-log.txt | 69 ++++++++++++++++++++++++++++++++++
2 files changed, 70 insertions(+), 1 deletion(-)
create mode 100644 meta/files/fs-perms-persistent-log.txt
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index a6f0a7a..9a423f8 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -733,7 +733,7 @@ python fixup_perms () {
bbpath = d.getVar('BBPATH', True)
fs_perms_tables = d.getVar('FILESYSTEM_PERMS_TABLES', True)
if not fs_perms_tables:
- fs_perms_tables = 'files/fs-perms.txt'
+ fs_perms_tables = ['files/fs-perms-persistent-log.txt', 'files/fs-perms.txt'][d.getVar('VOLATILE_LOG_DIR', True) == 'yes']
for conf_file in fs_perms_tables.split():
str += " %s" % bb.utils.which(bbpath, conf_file)
return str
diff --git a/meta/files/fs-perms-persistent-log.txt b/meta/files/fs-perms-persistent-log.txt
new file mode 100644
index 0000000..2487a68
--- /dev/null
+++ b/meta/files/fs-perms-persistent-log.txt
@@ -0,0 +1,69 @@
+# This file contains a list of files and directories with known permissions.
+# It is used by the packaging class to ensure that the permissions, owners and
+# group of listed files and directories are in sync across the system.
+#
+# The format of this file
+#
+#<path> <mode> <uid> <gid> <walk> <fmode> <fuid> <fgid>
+#
+# or
+#
+#<path> link <target>
+#
+# <path>: directory path
+# <mode>: mode for directory
+# <uid>: uid for directory
+# <gid>: gid for directory
+# <walk>: recursively walk the directory? true or false
+# <fmode>: if walking, new mode for files
+# <fuid>: if walking, new uid for files
+# <fgid>: if walking, new gid for files
+# <target>: turn the directory into a symlink point to target
+#
+# in mode, uid or gid, a "-" means don't change any existing values
+#
+# /usr/src 0755 root root false - - -
+# /usr/share/man 0755 root root true 0644 root root
+
+# Note: all standard config directories are automatically assigned "0755 root root false - - -"
+
+# Documentation should always be corrected
+${mandir} 0755 root root true 0644 root root
+${infodir} 0755 root root true 0644 root root
+${docdir} 0755 root root true 0644 root root
+${datadir}/gtk-doc 0755 root root true 0644 root root
+
+# Fixup locales
+${datadir}/locale 0755 root root true 0644 root root
+
+# Cleanup headers
+${includedir} 0755 root root true 0644 root root
+${oldincludedir} 0755 root root true 0644 root root
+
+# Cleanup debug src
+/usr/src/debug 0755 root root true - root root
+
+# Items from base-files
+# Links
+${localstatedir}/run link /run
+${localstatedir}/lock link /run/lock
+${localstatedir}/tmp link volatile/tmp
+
+/home 0755 root root false - - -
+/srv 0755 root root false - - -
+${prefix}/src 0755 root root false - - -
+${localstatedir}/local 0755 root root false - - -
+
+# Special permissions from base-files
+# Set 1777
+/tmp 01777 root root false - - -
+${localstatedir}/volatile/tmp 01777 root root false - - -
+
+# Set 0700
+${ROOT_HOME} 0700 root root false - - -
+
+# Set 755-lsb
+/srv 0755 root root false - - -
+
+# Set 2775-lsb
+/var/mail 02775 root mail false - - -
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH V2 4/4] package.bbclass: support persistent /var/log
2016-12-13 8:04 ` [PATCH V2 4/4] package.bbclass: " Chen Qi
@ 2016-12-13 8:38 ` Patrick Ohly
0 siblings, 0 replies; 6+ messages in thread
From: Patrick Ohly @ 2016-12-13 8:38 UTC (permalink / raw)
To: Chen Qi; +Cc: openembedded-core
On Tue, 2016-12-13 at 16:04 +0800, Chen Qi wrote:
> - fs_perms_tables = 'files/fs-perms.txt'
> + fs_perms_tables = ['files/fs-perms-persistent-log.txt',
> 'files/fs-perms.txt'][d.getVar('VOLATILE_LOG_DIR', True) == 'yes']
Now that the rest of the changes treat VOLATILE_LOG_DIR as a boolean,
this code here also needs to be changed. Otherwise VOLATILE_LOG_DIR=1 or
VOLATILE_LOG_DIR=y won't work correctly.
You might also want to change the description of the variable in the
first patch to mention those other values.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-12-13 8:38 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-13 8:04 [PATCH V2 0/4] Persistent /var/log support Chen Qi
2016-12-13 8:04 ` [PATCH V2 1/4] bitbake.conf: add VOLATILE_LOG_DIR variable Chen Qi
2016-12-13 8:04 ` [PATCH V2 2/4] base-files: respect VOLATILE_LOG_DIR Chen Qi
2016-12-13 8:04 ` [PATCH V2 3/4] initscripts: support persistent /var/log Chen Qi
2016-12-13 8:04 ` [PATCH V2 4/4] package.bbclass: " Chen Qi
2016-12-13 8:38 ` Patrick Ohly
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox