From: Vyacheslav Yurkov <v.yur...@precitec.de> OverlayFS systemd helper unit might require more pre-processing commands. It gets more complicated to embed them in a unit file, because systemd shell subset is limited and might require additional escaping. Move the command to a separate script, thus simplifying systemd unit.
Signed-off-by: Vyacheslav Yurkov <v.yur...@precitec.de> --- meta/classes/rootfs-postcommands.bbclass | 13 ++++++++++++- meta/files/overlayfs-create-dirs.service.in | 3 +-- meta/files/overlayfs-create-dirs.sh | 8 ++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 meta/files/overlayfs-create-dirs.sh diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass index d302c23cf4..3f9fdb602d 100644 --- a/meta/classes/rootfs-postcommands.bbclass +++ b/meta/classes/rootfs-postcommands.bbclass @@ -39,7 +39,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd" ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' -ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs_qa_check;", "", d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs_qa_check; overlayfs_postprocess;", "", d)}' inherit image-artifact-names @@ -422,3 +422,14 @@ python overlayfs_qa_check() { if not allUnitExist: bb.fatal('Not all mount paths and units are installed in the image') } + +python overlayfs_postprocess() { + import shutil + + # install helper script + helperScriptName = "overlayfs-create-dirs.sh" + helperScriptSource = oe.path.join(d.getVar("COREBASE"), "meta/files", helperScriptName) + helperScriptDest = oe.path.join(d.getVar("IMAGE_ROOTFS"), "/usr/sbin/", helperScriptName) + shutil.copyfile(helperScriptSource, helperScriptDest) + os.chmod(helperScriptDest, 0o755) +} diff --git a/meta/files/overlayfs-create-dirs.service.in b/meta/files/overlayfs-create-dirs.service.in index 61b2b9321b..c949a6dc73 100644 --- a/meta/files/overlayfs-create-dirs.service.in +++ b/meta/files/overlayfs-create-dirs.service.in @@ -6,8 +6,7 @@ DefaultDependencies=no [Service] Type=oneshot -ExecStart=mkdir -p {DATA_MOUNT_POINT}/upper{LOWERDIR} -ExecStart=mkdir -p {DATA_MOUNT_POINT}/workdir{LOWERDIR} +ExecStart=/usr/sbin/overlayfs-create-dirs.sh {LOWERDIR} {DATA_MOUNT_POINT} RemainAfterExit=true StandardOutput=journal diff --git a/meta/files/overlayfs-create-dirs.sh b/meta/files/overlayfs-create-dirs.sh new file mode 100644 index 0000000000..06c7587a6b --- /dev/null +++ b/meta/files/overlayfs-create-dirs.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# This script is intended to be used sorely by overlayfs-create-dirs.service +# Usage: overlayfs-create-dirs.sh <LOWERDIR> <DATA_MOUNT_POINT> + +lowerdir=$1 +datamountpoint=$2 +mkdir -p ${datamountpoint}/upper${lowerdir} +mkdir -p ${datamountpoint}/workdir${lowerdir} -- 2.30.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#166439): https://lists.openembedded.org/g/openembedded-core/message/166439 Mute This Topic: https://lists.openembedded.org/mt/91484585/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-