From: Vyacheslav Yurkov Date: Wed, 24 Dec 2025 14:16:57 +0000 (+0000) Subject: overlayfs: Remove helper unit X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=623c20ff1e989730138c3fbe6e8247eaada20707;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git overlayfs: Remove helper unit Since systemd v256 workdir and upperdir are automatically created if they don't exist, so we don't need an additional helper unit anymore. Ref: https://github.com/systemd/systemd/commit/6c75eff6afd90596d09a33a9275be292db4e3380 Signed-off-by: Vyacheslav Yurkov Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/overlayfs.bbclass b/meta/classes-recipe/overlayfs.bbclass index a82763ec10..07cc68ad7b 100644 --- a/meta/classes-recipe/overlayfs.bbclass +++ b/meta/classes-recipe/overlayfs.bbclass @@ -55,27 +55,21 @@ REQUIRED_DISTRO_FEATURES += "systemd overlayfs" inherit systemd features_check -OVERLAYFS_CREATE_DIRS_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-create-dirs.service.in" OVERLAYFS_MOUNT_UNIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-unit.mount.in" OVERLAYFS_ALL_OVERLAYS_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-all-overlays.service.in" python do_create_overlayfs_units() { from oe.overlayfs import mountUnitName - with open(d.getVar("OVERLAYFS_CREATE_DIRS_TEMPLATE"), "r") as f: - CreateDirsUnitTemplate = f.read() with open(d.getVar("OVERLAYFS_MOUNT_UNIT_TEMPLATE"), "r") as f: MountUnitTemplate = f.read() with open(d.getVar("OVERLAYFS_ALL_OVERLAYS_TEMPLATE"), "r") as f: AllOverlaysTemplate = f.read() def prepareUnits(data, lower): - from oe.overlayfs import helperUnitName - args = { 'DATA_MOUNT_POINT': data, 'DATA_MOUNT_UNIT': mountUnitName(data), - 'CREATE_DIRS_SERVICE': helperUnitName(lower), 'LOWERDIR': lower, } @@ -83,10 +77,6 @@ python do_create_overlayfs_units() { with open(os.path.join(d.getVar('WORKDIR'), mountUnitName(lower)), 'w') as f: f.write(MountUnitTemplate.format(**args)) - bb.debug(1, "Generate helper systemd unit %s" % helperUnitName(lower)) - with open(os.path.join(d.getVar('WORKDIR'), helperUnitName(lower)), 'w') as f: - f.write(CreateDirsUnitTemplate.format(**args)) - def prepareGlobalUnit(dependentUnits): from oe.overlayfs import allOverlaysUnitName args = { diff --git a/meta/classes-recipe/rootfs-postcommands.bbclass b/meta/classes-recipe/rootfs-postcommands.bbclass index 2a36840f29..f0c7ee658d 100644 --- a/meta/classes-recipe/rootfs-postcommands.bbclass +++ b/meta/classes-recipe/rootfs-postcommands.bbclass @@ -47,7 +47,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd" ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile' -ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs_qa_check overlayfs_postprocess", "", d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "overlayfs", "overlayfs_qa_check", "", d)}' inherit image-artifact-names @@ -570,14 +570,3 @@ python overlayfs_qa_check() { if not allUnitExist: bb.fatal('Not all mount paths and units are installed in the image') } - -python overlayfs_postprocess() { - import shutil - - # install helper script - helperScriptName = "overlayfs-create-dirs.sh" - helperScriptSource = oe.path.join(d.getVar("COREBASE"), "meta/files", helperScriptName) - helperScriptDest = oe.path.join(d.getVar("IMAGE_ROOTFS"), "/usr/sbin/", helperScriptName) - shutil.copyfile(helperScriptSource, helperScriptDest) - os.chmod(helperScriptDest, 0o755) -} diff --git a/meta/files/overlayfs-create-dirs.service.in b/meta/files/overlayfs-create-dirs.service.in deleted file mode 100644 index c8431548d7..0000000000 --- a/meta/files/overlayfs-create-dirs.service.in +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Overlayfs directories setup {LOWERDIR} -RequiresMountsFor={DATA_MOUNT_POINT} -DefaultDependencies=no - -[Service] -Type=oneshot -ExecStart=/usr/sbin/overlayfs-create-dirs.sh {LOWERDIR} {DATA_MOUNT_POINT} -RemainAfterExit=true -StandardOutput=journal - -[Install] -WantedBy=multi-user.target diff --git a/meta/files/overlayfs-create-dirs.sh b/meta/files/overlayfs-create-dirs.sh deleted file mode 100644 index 9954c34352..0000000000 --- a/meta/files/overlayfs-create-dirs.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# This script is intended to be used sorely by overlayfs-create-dirs.service -# Usage: overlayfs-create-dirs.sh - -lowerdir=$1 -datamountpoint=$2 -mkdir -p ${datamountpoint}/upper${lowerdir} -mkdir -p ${datamountpoint}/workdir${lowerdir} -if [ -d "$lowerdir" ]; then - chown $(stat -c "%U:%G" ${lowerdir}) ${datamountpoint}/upper${lowerdir} -fi diff --git a/meta/files/overlayfs-unit.mount.in b/meta/files/overlayfs-unit.mount.in index 9c117f2c52..eb78d2cb4f 100644 --- a/meta/files/overlayfs-unit.mount.in +++ b/meta/files/overlayfs-unit.mount.in @@ -1,7 +1,6 @@ [Unit] Description=Overlayfs mount unit {LOWERDIR} -Requires={CREATE_DIRS_SERVICE} -After={CREATE_DIRS_SERVICE} +RequiresMountsFor={DATA_MOUNT_POINT} [Mount] What=overlay diff --git a/meta/lib/oe/overlayfs.py b/meta/lib/oe/overlayfs.py index 8b88900f71..5a5ea03d45 100644 --- a/meta/lib/oe/overlayfs.py +++ b/meta/lib/oe/overlayfs.py @@ -23,9 +23,6 @@ def allOverlaysUnitName(d): def mountUnitName(unit): return escapeSystemdUnitName(unit) + '.mount' -def helperUnitName(unit): - return escapeSystemdUnitName(unit) + '-create-upper-dir.service' - def unitFileList(d): fileList = [] overlayMountPoints = d.getVarFlags("OVERLAYFS_MOUNT_POINT") @@ -46,7 +43,6 @@ def unitFileList(d): continue for path in mountPointList.split(): fileList.append(mountUnitName(path)) - fileList.append(helperUnitName(path)) fileList.append(allOverlaysUnitName(d))