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} | ||