Persistent /var/log support
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
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
@@ -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
PATCH v4 2/4 base-files: respect VOLATILE_LOG_DIR
In reply to Chen QiRespect 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
@@ -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
PATCH v4 3/4 initscripts: support persistent /var/log
In reply to Chen QiRespect 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
@@ -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
@@ -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
PATCH v4 4/4 package.bbclass: support persistent /var/log
In reply to Chen QiAdd 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
@@ -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