Skip to contentSkip to conversation

Persistent /var/log support

PATCH New Chen Qi 1 participant 5 messages Aug 16, 2017

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

v4 cover Persistent /var/log support

Changes since V3:
Rebased against latest master.

The following changes since commit 6016ec177af2406cacfeb3276dfcb8bfc3df8fce:

poky.conf: Enable vulkan by default (2017-08-16 00:04:39 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/persistent-var-log
http://git.pokylinux.org/cgit.cgi/poky-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                             |  4 ++
 meta/files/fs-perms-persistent-log.txt             | 66 ++++++++++++++++++++++
 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, 76 insertions(+), 4 deletions(-)
 create mode 100644 meta/files/fs-perms-persistent-log.txt
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH v4 1/4 bitbake.conf: add VOLATILE_LOG_DIR variable

The default value is "yes" which results in the /var/log being a link pointing to /var/volatile/log which is on tmpfs.

Setting valid boolean false value ('no', 'n', 'false', 'f', '0') would make /var/log to be a directory on persistent storage.

[YOCTO #6132]

---
 meta/conf/bitbake.conf | 4 ++++
 1 file changed, 4 insertions(+)
meta/conf/bitbake.conf +4 -0
index 3110b9c..334ba23 100644
@@ -85,6 +85,10 @@ USRBINPATH_class-nativesdk = "/usr/bin"
 # Root home directory
 ROOT_HOME ??= "/home/root"
 
+# If set to boolean true ('yes', 'y', 'true', 't', '1'), /var/log links to /var/volatile/log.
+# If set to boolean false ('no', 'n', 'false', 'f', '0'), /var/log is on persistent storage.
+VOLATILE_LOG_DIR ?= "yes"
+
 ##################################################################
 # Architecture-dependent build variables.
 ##################################################################
Signature · 1 line
1.9.1
author
#2 lore raw

PATCH v4 2/4 base-files: respect VOLATILE_LOG_DIR

In reply to Chen Qi

Respect VOLATILE_LOG_DIR variable. In this way, if the user overrides this variable to be any valid boolean false value, /var/log on the final image would reside on persistent storage.

[YOCTO #6132]

---
 meta/recipes-core/base-files/base-files_3.0.14.bb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/base-files/base-files_3.0.14.bb +2 -2
index ca7bf06..1c0863b 100644
@@ -42,7 +42,7 @@ dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \
            ${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"
 
@@ -53,7 +53,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 \
Signature · 1 line
1.9.1
author
#3 lore raw

PATCH v4 3/4 initscripts: support persistent /var/log

In reply to Chen Qi

Respect VOLATILE_VAR_LOG variable so that if it's set to any valid boolean false value, we could have persistent /var/log on the final image.

[YOCTO #6132]

---
 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(-)
meta/recipes-core/initscripts/initscripts-1.0/volatiles +0 -1
index bc17c45..2011066 100644
@@ -27,7 +27,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
meta/recipes-core/initscripts/initscripts_1.0.bb +3 -0
index a65f1b2..7ab0d2b 100644
@@ -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}/
 
Signature · 1 line
1.9.1
author
#4 lore raw

PATCH v4 4/4 package.bbclass: support persistent /var/log

In reply to Chen Qi

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 set to boolean false value.

[YOCTO #6132]

---
 meta/classes/package.bbclass           |  2 +-
 meta/files/fs-perms-persistent-log.txt | 66 ++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 1 deletion(-)
 create mode 100644 meta/files/fs-perms-persistent-log.txt
meta/classes/package.bbclass +1 -1
index d2fa617..30fea5a 100644
@@ -739,7 +739,7 @@ python fixup_perms () {
         bbpath = d.getVar('BBPATH')
         fs_perms_tables = d.getVar('FILESYSTEM_PERMS_TABLES')
         if not fs_perms_tables:
-            fs_perms_tables = 'files/fs-perms.txt'
+            fs_perms_tables = 'files/fs-perms.txt' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR', True)) else 'files/fs-perms-persistent-log.txt'
         for conf_file in fs_perms_tables.split():
             str += " %s" % bb.utils.which(bbpath, conf_file)
         return str
meta/files/fs-perms-persistent-log.txt new file +66 -0

66 lines not on this page · raw message

Signature · 1 line
1.9.1