From 2f46b6f27dfa3a9d5ad177900fcecfe64c3536f1 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Tue, 27 Aug 2024 18:40:41 +0800 Subject: [PATCH] bitbake.conf: drop VOLATILE_TMP_DIR, use FILESYSTEM_PERMS_TABLES instead * Drop VOLATILE_TMP_DIR, use FILESYSTEM_PERMS_TABLES instead. By default, FILESYSTEM_PERMS_TABLES ?= "files/fs-perms.txt \ files/fs-perms-volatile-log.txt \ files/fs-perms-volatile-tmp.txt" it contains 'files/fs-perms-volatile-tmp.txt', which means volatile tmp is enabled. User can disable volatile tmp by remove 'files/fs-perms-volatile-tmp.txt' from FILESYSTEM_PERMS_TABLES. * If volatile tmp is disabled, both /tmp and /var/tmp are persistent (From OE-Core rev: 8d1ae67b89c45f78162e070228086c7ef88c3264) Signed-off-by: Changqing Li Signed-off-by: Richard Purdie --- meta/conf/bitbake.conf | 7 +--- meta/files/fs-perms-volatile-tmp.txt | 38 +++++++++++++++++++ meta/files/fs-perms.txt | 2 - .../base-files/base-files_3.0.14.bb | 5 ++- .../initscripts/initscripts_1.0.bb | 2 +- meta/recipes-core/systemd/systemd_256.5.bb | 2 +- 6 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 meta/files/fs-perms-volatile-tmp.txt diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 76ae17e644..d8252c5b82 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -86,10 +86,6 @@ USRBINPATH:class-nativesdk = "/usr/bin" # Root home directory ROOT_HOME ??= "/home/root" -# if set to 'yes': /tmp links to /var/tmp which links to /var/volatile/tmp -# otherwise: /tmp is on persistent storage -VOLATILE_TMP_DIR ?= "yes" - BB_RENAMED_VARIABLES[PNBLACKLIST] = "SKIP_RECIPE" BB_RENAMED_VARIABLES[CVE_CHECK_PN_WHITELIST] = "CVE_CHECK_SKIP_RECIPE" BB_RENAMED_VARIABLES[CVE_CHECK_WHITELIST] = "CVE_CHECK_IGNORE" @@ -381,7 +377,8 @@ FILESEXTRAPATHS ?= "__default:" # datadir, sysconfdir, servicedir, sharedstatedir, localstatedir, infodir, # mandir, docdir, bindir, sbindir, libexecdir, libdir and includedir FILESYSTEM_PERMS_TABLES ?= "files/fs-perms.txt \ - files/fs-perms-volatile-log.txt" + files/fs-perms-volatile-log.txt \ + files/fs-perms-volatile-tmp.txt" ################################################################## # General work and output directories for the build system. diff --git a/meta/files/fs-perms-volatile-tmp.txt b/meta/files/fs-perms-volatile-tmp.txt new file mode 100644 index 0000000000..26247acda8 --- /dev/null +++ b/meta/files/fs-perms-volatile-tmp.txt @@ -0,0 +1,38 @@ +# 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 +# +# +# +# or +# +# link +# +# : directory path +# : mode for directory +# : uid for directory +# : gid for directory +# : recursively walk the directory? true or false +# : if walking, new mode for files +# : if walking, new uid for files +# : if walking, new gid for files +# : 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 + +# Items from base-files +# Links +${localstatedir}/tmp link volatile/tmp + +# Special permissions from base-files +# Set 1777 +${localstatedir}/volatile/tmp 01777 root root false - - - diff --git a/meta/files/fs-perms.txt b/meta/files/fs-perms.txt index 61f0a6e26a..d2266c1b26 100644 --- a/meta/files/fs-perms.txt +++ b/meta/files/fs-perms.txt @@ -46,7 +46,6 @@ ${includedir} 0755 root root true 0644 root root # 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 - - - @@ -56,7 +55,6 @@ ${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 - - - 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 dc1292ae55..8bcd91e699 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 @@ -31,7 +31,7 @@ UNPACKDIR = "${S}" INHIBIT_DEFAULT_DEPS = "1" docdir:append = "/${P}" -dirs1777 = "/tmp ${localstatedir}/volatile/tmp" +dirs1777 = "/tmp ${localstatedir}/${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'volatile/', '', d)}tmp" dirs2775 = "" dirs555 = "/sys /proc" dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \ @@ -55,7 +55,8 @@ dirs755-lsb = "/srv \ ${prefix}/lib/locale" dirs2775-lsb = "/var/mail" -volatiles = "${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-log.txt', 'log', '', d)} tmp" +volatiles = "${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-log.txt', 'log', '', d)} \ + ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'tmp', '', d)}" conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \ ${sysconfdir}/issue /${sysconfdir}/issue.net \ ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \ diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb index 0879b30623..98693fa66e 100644 --- a/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/meta/recipes-core/initscripts/initscripts_1.0.bb @@ -110,7 +110,7 @@ do_install () { sed -i -e '\@^d root root 0755 /var/volatile/log none$@ a\l root root 0755 /var/log /var/volatile/log' \ ${D}${sysconfdir}/default/volatiles/00_core fi - if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then + if ! ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'true', 'false', d)}; then sed -i -e "/\/d" ${D}${sysconfdir}/default/volatiles/00_core fi install -m 0755 ${S}/dmesg.sh ${D}${sysconfdir}/init.d diff --git a/meta/recipes-core/systemd/systemd_256.5.bb b/meta/recipes-core/systemd/systemd_256.5.bb index 7f66c921ab..1485614c71 100644 --- a/meta/recipes-core/systemd/systemd_256.5.bb +++ b/meta/recipes-core/systemd/systemd_256.5.bb @@ -327,7 +327,7 @@ do_install() { # if the user requests /tmp be on persistent storage (i.e. not volatile) # then don't use a tmpfs for /tmp - if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then + if ! ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'true', 'false', d)}; then rm -f ${D}${rootlibexecdir}/systemd/system/tmp.mount rm -f ${D}${rootlibexecdir}/systemd/system/local-fs.target.wants/tmp.mount fi