diff options
| author | Claudius Heine <ch@denx.de> | 2022-05-03 10:22:33 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-05-25 22:45:50 +0100 |
| commit | ec7da0e068020efca55daf0e90acb8b4c5aa07a3 (patch) | |
| tree | 26dcff981ff31021c1f40be3ae71a35951697713 /meta/classes | |
| parent | cf6699a5cbffd930d515f4476aea9d0bd2cf1e84 (diff) | |
| download | poky-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.bbclass | 10 |
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: |
