| # SPDX-License-Identifier: GPL-2.0-only |
| # This file contains common functions for overlayfs and its QA check |
| # this function is based on https://github.com/systemd/systemd/blob/main/src/basic/unit-name.c |
| def escapeSystemdUnitName(path): |
| return "".join([escapeMap.get(c, c) for c in path.strip('/')]) |
| return s.replace('\\', '\\\\') |
| return escapeSystemdUnitName(unit) + '.mount' |
| def helperUnitName(unit): |
| return escapeSystemdUnitName(unit) + '-create-upper-dir.service' |
| overlayMountPoints = d.getVarFlags("OVERLAYFS_MOUNT_POINT") |
| if not overlayMountPoints: |
| bb.fatal("A recipe uses overlayfs class but there is no OVERLAYFS_MOUNT_POINT set in your MACHINE configuration") |
| # check that we have required mount points set first |
| requiredMountPoints = d.getVarFlags('OVERLAYFS_WRITABLE_PATHS') |
| for mountPoint in requiredMountPoints: |
| if mountPoint not in overlayMountPoints: |
| bb.fatal("Missing required mount point for OVERLAYFS_MOUNT_POINT[%s] in your MACHINE configuration" % mountPoint) |
| for mountPoint in overlayMountPoints: |
| for path in d.getVarFlag('OVERLAYFS_WRITABLE_PATHS', mountPoint).split(): |
| fileList.append(mountUnitName(path)) |
| fileList.append(helperUnitName(path)) |