diff options
| author | Vyacheslav Yurkov <v.yurkov@precitec.de> | 2022-06-01 21:30:10 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-06-04 11:28:23 +0100 |
| commit | 5fc131c5a91b056a173eab4cd04148fdfc297b8c (patch) | |
| tree | cd7f97b5be4e991455819d69001e10f7ddefdc4d | |
| parent | 48bb4f6628e5419e54e18c8204961633dbad265b (diff) | |
| download | poky-5fc131c5a91b056a173eab4cd04148fdfc297b8c.tar.gz | |
files: rootfs-postcommands: move helper commands to script
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.
(From OE-Core rev: 86a457016e7f3fc7acacf86cd87f5d8d882132dd)
Signed-off-by: Vyacheslav Yurkov <v.yurkov@precitec.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/classes/rootfs-postcommands.bbclass | 13 | ||||
| -rw-r--r-- | meta/files/overlayfs-create-dirs.service.in | 3 | ||||
| -rw-r--r-- | meta/files/overlayfs-create-dirs.sh | 8 |
3 files changed, 21 insertions, 3 deletions
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" | |||
| 39 | 39 | ||
| 40 | ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' | 40 | ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' |
| 41 | 41 | ||
| 42 | ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs_qa_check;", "", d)}' | 42 | ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs_qa_check; overlayfs_postprocess;", "", d)}' |
| 43 | 43 | ||
| 44 | inherit image-artifact-names | 44 | inherit image-artifact-names |
| 45 | 45 | ||
| @@ -422,3 +422,14 @@ python overlayfs_qa_check() { | |||
| 422 | if not allUnitExist: | 422 | if not allUnitExist: |
| 423 | bb.fatal('Not all mount paths and units are installed in the image') | 423 | bb.fatal('Not all mount paths and units are installed in the image') |
| 424 | } | 424 | } |
| 425 | |||
| 426 | python overlayfs_postprocess() { | ||
| 427 | import shutil | ||
| 428 | |||
| 429 | # install helper script | ||
| 430 | helperScriptName = "overlayfs-create-dirs.sh" | ||
| 431 | helperScriptSource = oe.path.join(d.getVar("COREBASE"), "meta/files", helperScriptName) | ||
| 432 | helperScriptDest = oe.path.join(d.getVar("IMAGE_ROOTFS"), "/usr/sbin/", helperScriptName) | ||
| 433 | shutil.copyfile(helperScriptSource, helperScriptDest) | ||
| 434 | os.chmod(helperScriptDest, 0o755) | ||
| 435 | } | ||
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 | |||
| 6 | 6 | ||
| 7 | [Service] | 7 | [Service] |
| 8 | Type=oneshot | 8 | Type=oneshot |
| 9 | ExecStart=mkdir -p {DATA_MOUNT_POINT}/upper{LOWERDIR} | 9 | ExecStart=/usr/sbin/overlayfs-create-dirs.sh {LOWERDIR} {DATA_MOUNT_POINT} |
| 10 | ExecStart=mkdir -p {DATA_MOUNT_POINT}/workdir{LOWERDIR} | ||
| 11 | RemainAfterExit=true | 10 | RemainAfterExit=true |
| 12 | StandardOutput=journal | 11 | StandardOutput=journal |
| 13 | 12 | ||
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 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # This script is intended to be used sorely by overlayfs-create-dirs.service | ||
| 3 | # Usage: overlayfs-create-dirs.sh <LOWERDIR> <DATA_MOUNT_POINT> | ||
| 4 | |||
| 5 | lowerdir=$1 | ||
| 6 | datamountpoint=$2 | ||
| 7 | mkdir -p ${datamountpoint}/upper${lowerdir} | ||
| 8 | mkdir -p ${datamountpoint}/workdir${lowerdir} | ||
