summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorClaudius Heine <ch@denx.de>2022-05-03 10:22:33 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-05-25 22:45:50 +0100
commitec7da0e068020efca55daf0e90acb8b4c5aa07a3 (patch)
tree26dcff981ff31021c1f40be3ae71a35951697713 /meta/classes
parentcf6699a5cbffd930d515f4476aea9d0bd2cf1e84 (diff)
downloadpoky-ec7da0e068020efca55daf0e90acb8b4c5aa07a3.tar.gz
classes: rootfs-postcommands: add skip option to overlayfs_qa_check
The overlayfs_qa_check checks if the current root file system has a mount configured for each overlayfs, when the overlayfs class is used. However there are certain instances where this mount point is created at runtime and not static in a fstab entry or systemd mount unit. One such case would be if overlayfs-etc is used, where the device is mounted in the preinit script and not via a mount unit or fstab entry. However there are other possibilities for this as well, like startup scripts that support a dynamic partition layout. For instance when systemd-repart is used. This adds the `OVERLAYFS_QA_SKIP` variable, which allows to define QA skips via its flags. In principle it supports multiple QA skip flags separated by whitespace, but only one (`mount-configured`) is implemented here. To skip this QA check simply add `mount-configured` to the flag of `OVERLAYFS_QA_SKIP` with the same name. For instance if a overlayfs is configured as: OVERLAYFS_MOUNT_POINT[data] = "/data" Skipping this QA check can be done by setting: OVERLAYFS_QA_SKIP[data] = "mount-configured" Also add a testcase and fix a typo (fstat -> fstab). (From OE-Core rev: 34b6d6b5f078c6948e53815af3c7b61de43d851c) Signed-off-by: Claudius Heine <ch@denx.de> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 2ce9173169a2a86392c4a85fe9be7fbbd7353b7f) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/rootfs-postcommands.bbclass10
1 files changed, 8 insertions, 2 deletions
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 63e716c955..d302c23cf4 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -400,6 +400,10 @@ python overlayfs_qa_check() {
400 400
401 allUnitExist = True; 401 allUnitExist = True;
402 for mountPoint in overlayMountPoints: 402 for mountPoint in overlayMountPoints:
403 qaSkip = (d.getVarFlag("OVERLAYFS_QA_SKIP", mountPoint) or "").split()
404 if "mount-configured" in qaSkip:
405 continue
406
403 mountPath = d.getVarFlag('OVERLAYFS_MOUNT_POINT', mountPoint) 407 mountPath = d.getVarFlag('OVERLAYFS_MOUNT_POINT', mountPoint)
404 if mountPath in fstabDevices: 408 if mountPath in fstabDevices:
405 continue 409 continue
@@ -409,8 +413,10 @@ python overlayfs_qa_check() {
409 for dirpath in searchpaths): 413 for dirpath in searchpaths):
410 continue 414 continue
411 415
412 bb.warn('Mount path %s not found in fstat and unit %s not found ' 416 bb.warn(f'Mount path {mountPath} not found in fstab and unit '
413 'in systemd unit directories' % (mountPath, mountUnit)) 417 f'{mountUnit} not found in systemd unit directories.')
418 bb.warn(f'Skip this check by setting OVERLAYFS_QA_SKIP[{mountPoint}] = '
419 '"mount-configured"')
414 allUnitExist = False; 420 allUnitExist = False;
415 421
416 if not allUnitExist: 422 if not allUnitExist: