From patchwork Fri Nov 19 06:15:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vyacheslav Yurkov X-Patchwork-Id: 250 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C291BC433F5 for ; Fri, 19 Nov 2021 06:15:28 +0000 (UTC) Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mx.groups.io with SMTP id smtpd.web09.5283.1637302527995285611 for ; Thu, 18 Nov 2021 22:15:28 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=YXr5sUbI; spf=pass (domain: gmail.com, ip: 209.85.221.43, mailfrom: uvv.mail@gmail.com) Received: by mail-wr1-f43.google.com with SMTP id c4so16147495wrd.9 for ; Thu, 18 Nov 2021 22:15:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=vJTK79rcDMcexnQPOZaVW/ko9GLoSXsAaLOETHEKYUE=; b=YXr5sUbIVgi5Fmb4BbbwjzzmzPO+ewJFKT4HL3aeUjQH9sVV7CeJz1En9O3REtbzEq gagOtFMsWm+AK7mF71upPG8Blj/LBAf7tfc3rxCerqPoge1flqxRlNjG8GGsN9UwZhdK irLJo6FY78FuDOcE3K0dWfHJg5LPMibiKx9PNfywLYR2ZolsswJVR1RSF7oHulRr+bhd NYKWgFpHhPnQAWXT9lOJugU18njwiS0r64QIHd8cpdlepA5H1pXLlQNvXmxQG26ttJ34 hf7Tvr0gVIWeyOJmIqBoCZKciyIBWDdV2aEsVPJ3dCZaKFVs64Z7F/xXl7/ubjKoD9Ev WWQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vJTK79rcDMcexnQPOZaVW/ko9GLoSXsAaLOETHEKYUE=; b=AM1PU/o0KHap5dBtBN1T/CTjcbmqNioWCYQLlTh+c1N/2RIXg+N7V5aSzMuzd99tpN nv6E42K681nD50Bfmt82ZV796IbpGZi3ZCXJhc1J+q+lyQLRidRMuws4ieGx+Bm0Mg2l xt7uK630KGJ2OBkeHkSOz6DnCpV+j2j6Fijle21VBSpniA3qmJWmYiMMqA1txEuOXNOc ZKAMSOY1mxY+nVaL9hSGx+AuI+BnGWjgLLcj68ETsLN063/zSID65a+t4HXLDwbagxHP rme0A284HdUNhANu4UkKTpWbAl1d4O61TVDjcHhe4Pr/2PWNbsg+GhlauUXe0gK92Gig kmEQ== X-Gm-Message-State: AOAM531Q2t4uE/c9C0sq9HdtqSTod3PPTLQLPBmR1mHNrlnVlQl/FeL1 kj0ecVdD8cuEUNwV42QRHpjPmwSIG8t17Q== X-Google-Smtp-Source: ABdhPJyUTM1/pPHZR/bqzrV72oVdDNfKNx+DxwiLHjHqiqT9jGffxw7YfTi4yo6c/yw5S5TSbHspuA== X-Received: by 2002:a5d:4d81:: with SMTP id b1mr4467539wru.366.1637302526128; Thu, 18 Nov 2021 22:15:26 -0800 (PST) Received: from slackware.local (dslb-002-205-007-197.002.205.pools.vodafone-ip.de. [2.205.7.197]) by smtp.gmail.com with ESMTPSA id z14sm2039249wrp.70.2021.11.18.22.15.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 22:15:25 -0800 (PST) From: Vyacheslav Yurkov To: openembedded-core@lists.openembedded.org Subject: [PATCH 1/6] overlayfs-etc: mount etc as overlayfs Date: Fri, 19 Nov 2021 07:15:02 +0100 Message-Id: <83e41a0b7b5e1dc41fa89ffb4d3a8105299f7b1c.1637301667.git.uvv.mail@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Nov 2021 06:15:28 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/158493 This class provides an image feature that mounts /etc as an overlayfs file system. This is an extension for existing overlayfs class, which doesn't support /etc Signed-off-by: Alfred Schapansky Signed-off-by: Vyacheslav Yurkov --- meta/classes/overlayfs-etc.bbclass | 93 ++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 meta/classes/overlayfs-etc.bbclass diff --git a/meta/classes/overlayfs-etc.bbclass b/meta/classes/overlayfs-etc.bbclass new file mode 100644 index 0000000000..78caf0211b --- /dev/null +++ b/meta/classes/overlayfs-etc.bbclass @@ -0,0 +1,93 @@ +# Class for setting up /etc in overlayfs +# +# In order to have /etc directory in overlayfs a special handling at early boot stage is required +# The idea is to supply a custom init script that mounts /etc before launching actual init program, +# because the latter already requires /etc to be mounted +# +# The configuration must be machine specific. You should at least set these two variables if you +# are not happy with default values: +# OVERLAYFS_ETC_MOUNT_POINT ?= "/data" +# OVERLAYFS_ETC_DEVICE ?= "/dev/mmcblk0p2" +# +# To control more mount options you should consider also setting file system type and mount options: +# OVERLAYFS_ETC_FSTYPE ?= "ext4" +# OVERLAYFS_ETC_MOUNT_OPTIONS ?= "defaults" +# +# The class provides two options for /sbin/init generation +# 1. Default option is to rename original /sbin/init to /sbin/init.orig and place generated init under +# original name, i.e. /sbin/init. It has an advantage that you won't need to change any kernel +# parameters in order to make it work, but it poses a restriction that package-management can't +# be used, becaause updating init manager would remove generated script +# 2. If you are would like to keep original init as is, you can set +# OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "0" +# Then generated init will be named /sbin/preinit and you would need to extend you kernel parameters +# manually in your bootloader configuration. +# +# Regardless which mode you choose, update and migration strategy of configuration files under /etc +# overlay is out of scope of this class + +ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "overlayfs-etc", "create_overlayfs_etc_preinit;", "", d)}' +IMAGE_FEATURES_CONFLICTS_overlayfs-etc = "package-management" + +OVERLAYFS_ETC_MOUNT_POINT ?= "/data" +OVERLAYFS_ETC_FSTYPE ?= "ext4" +OVERLAYFS_ETC_DEVICE ?= "/dev/mmcblk0p2" +OVERLAYFS_ETC_USE_ORIG_INIT_NAME ?= "1" +OVERLAYFS_ETC_MOUNT_OPTIONS ?= "defaults" + +python create_overlayfs_etc_preinit() { + PreinitTemplate = """#!/bin/sh + +echo "PREINIT: Start" + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +mount -o remount,rw / + +mkdir -p /proc +mkdir -p /sys +mkdir -p /run +mkdir -p /var/run + +mount -t proc proc /proc +mount -t sysfs sysfs /sys + +[ -z "$CONSOLE" ] && CONSOLE="/dev/console" + +mkdir -p {OVERLAYFS_ETC_MOUNT_POINT} +if mount -n -t {OVERLAYFS_ETC_FSTYPE} -o {OVERLAYFS_ETC_MOUNT_OPTIONS} {OVERLAYFS_ETC_DEVICE} {OVERLAYFS_ETC_MOUNT_POINT} +then + mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper + mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work + mount -n -t overlay -o upperdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper,lowerdir=/etc,workdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper /etc || echo "PREINIT: Mounting etc-overlay failed!" +else + echo "PREINIT: Mounting failed!" +fi + +echo "PREINIT: done; starting " +exec {SBIN_INIT_NAME} +""" + + useOrigInit = oe.types.boolean(d.getVar('OVERLAYFS_ETC_USE_ORIG_INIT_NAME')) + preinitPath = oe.path.join(d.getVar("IMAGE_ROOTFS"), d.getVar("base_sbindir"), "preinit") + initBaseName = oe.path.join(d.getVar("base_sbindir"), "init") + origInitNameSuffix = ".orig" + + args = { + 'OVERLAYFS_ETC_MOUNT_POINT': d.getVar('OVERLAYFS_ETC_MOUNT_POINT'), + 'OVERLAYFS_ETC_MOUNT_OPTIONS': d.getVar('OVERLAYFS_ETC_MOUNT_OPTIONS'), + 'OVERLAYFS_ETC_FSTYPE': d.getVar('OVERLAYFS_ETC_FSTYPE'), + 'OVERLAYFS_ETC_DEVICE': d.getVar('OVERLAYFS_ETC_DEVICE'), + 'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName + } + + if useOrigInit: + # rename original /sbin/init + origInit = oe.path.join(d.getVar("IMAGE_ROOTFS"), initBaseName) + bb.debug(1, "rootfs path %s, init path %s, test %s" % (d.getVar('IMAGE_ROOTFS'), origInit, d.getVar("IMAGE_ROOTFS"))) + bb.utils.rename(origInit, origInit + origInitNameSuffix) + preinitPath = origInit + + with open(preinitPath, 'w') as f: + f.write(PreinitTemplate.format(**args)) + os.chmod(preinitPath, 0o755) +} From patchwork Fri Nov 19 06:15:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vyacheslav Yurkov X-Patchwork-Id: 251 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB11EC433EF for ; Fri, 19 Nov 2021 06:15:29 +0000 (UTC) Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by mx.groups.io with SMTP id smtpd.web12.5204.1637302528592752569 for ; Thu, 18 Nov 2021 22:15:28 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=WfChZ3Hp; spf=pass (domain: gmail.com, ip: 209.85.221.41, mailfrom: uvv.mail@gmail.com) Received: by mail-wr1-f41.google.com with SMTP id n29so16137283wra.11 for ; Thu, 18 Nov 2021 22:15:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=I4idqnW/TYwYOWQCVJv928jk9dIIkPOXyCnEJijf0tc=; b=WfChZ3Hp4balTEQUkdn12tb0fmrcDsZFbBl2pygNuCTNn+FOdMTlcTc5uIckwEaXY3 D3HiW2FuqkNto0NfAwa5qIbQYNG/FGLKZzCZnWCgAvdJ/SkldupyDN/AKLV+JOVNC3Ew DkWDzM2rSmMaHrjR5laWPOm1kQsPMEjllVbAvGIDgVjg/0ZE0bfZ10HIscqGMXOuzHxl qpD1n7n8VYMQlujilDCky0ms3z/tE9ny1v9YR57UvJASest89X4bO6To6t/EyNeoAH1n F+sG6hnewaXtqwQB7URt9bXJw629n9iBNH9c/Z35gyGoa7Q/V+FCFfRKgxTueRIioZpo Tx2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=I4idqnW/TYwYOWQCVJv928jk9dIIkPOXyCnEJijf0tc=; b=UOOwdQGqYp3Dijd+aTdNjnOHFZ8y3pr+RIrEFPdY9Q+5xDzayeTaP32ufqGTLbKzuz xbhjyLbpdH+IVhx9YWn+PhlDxK5JwGsYeQdh/DOfIqY7NbmIntlpnKlLPf3fgF+hqMyP aGcjocBnOAnD/zlVLgbym1Obc953y1f7zTWyxlPZ+dd4xNhMit7ARCCYJa4JxjydnqSP o1suUMRX21oj6cUJKcwJwZoftNP/uq/MCcpF0F7mL3bCkafC9d+bwNThp0LXiakBPM+u y63pBGD4R8Vir62nZ7Wdrdexc+yCqZMKAQfd2UEMXNnHfobhjNe1T/ePQSrDmCfZaO7q Ha4g== X-Gm-Message-State: AOAM531rzYtlzNIq7rLlpMW6Nj/uipsQRpE0RNow3595f4I7Tpth8OMX OpBXkio5UPYr1vVtYoGa9csaSTdkoXVL5w== X-Google-Smtp-Source: ABdhPJxM9MEmZav+TbGgjJSScQWih3xBxDZ2KjtXb7t68xEpfoone8kKcwuMeQ+KhUEZfK+96WBrVg== X-Received: by 2002:adf:ce08:: with SMTP id p8mr4252593wrn.154.1637302526824; Thu, 18 Nov 2021 22:15:26 -0800 (PST) Received: from slackware.local (dslb-002-205-007-197.002.205.pools.vodafone-ip.de. [2.205.7.197]) by smtp.gmail.com with ESMTPSA id z14sm2039249wrp.70.2021.11.18.22.15.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 22:15:26 -0800 (PST) From: Vyacheslav Yurkov To: openembedded-core@lists.openembedded.org Subject: [PATCH 2/6] wic: image for overlayfs-etc tests Date: Fri, 19 Nov 2021 07:15:03 +0100 Message-Id: <08bae4440a8de2f4c678c304bc3841ca300548e6.1637301667.git.uvv.mail@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Nov 2021 06:15:29 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/158494 Introduce wic image for overlayfs-etc tests with a dedicated /data partition and configurable kernel parameters Signed-off-by: Vyacheslav Yurkov --- meta-selftest/wic/overlayfs_etc.wks.in | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 meta-selftest/wic/overlayfs_etc.wks.in diff --git a/meta-selftest/wic/overlayfs_etc.wks.in b/meta-selftest/wic/overlayfs_etc.wks.in new file mode 100644 index 0000000000..1e1e5836e7 --- /dev/null +++ b/meta-selftest/wic/overlayfs_etc.wks.in @@ -0,0 +1,4 @@ +part /boot --active --source bootimg-biosplusefi --ondisk sda --sourceparams="loader=grub-efi" --align 1024 +part / --source rootfs --ondisk sda --fstype=ext4 --use-uuid --align 1024 +part --ondisk sda --fstype=ext4 --size=5 --align 1024 +bootloader --ptable gpt --timeout=1 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0 ${OVERLAYFS_INIT_OPTION}" From patchwork Fri Nov 19 06:15:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vyacheslav Yurkov X-Patchwork-Id: 253 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B06C9C433FE for ; Fri, 19 Nov 2021 06:15:30 +0000 (UTC) Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by mx.groups.io with SMTP id smtpd.web12.5205.1637302529328476005 for ; Thu, 18 Nov 2021 22:15:29 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=MmO+/9JD; spf=pass (domain: gmail.com, ip: 209.85.221.46, mailfrom: uvv.mail@gmail.com) Received: by mail-wr1-f46.google.com with SMTP id d27so16188490wrb.6 for ; Thu, 18 Nov 2021 22:15:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Vc7WK/fmUaK7hXIq3jyebUEyNQa1MDhwzyI2SYMvLCY=; b=MmO+/9JDzaXF8ekR3Z8OV0T0+RQwN1PVGWTUoBjNYqX89yeo2DP07LkDR5tZvc/3uD 9CmjuFeq2TywKwLPWORoy2m8nJ3U76NNJ1Pm4m/P08TAGzT90Sm0YndnSlpOgzRpF1s4 UGVHfNC7oEfPA4P2xLczY942nlYifOcyt8AQZY00c7ewx15o8HQusBBduGciNmoz6id8 XxPor8O31LDkfspPkUQT90bALOz6h+pykGovFabgO8PH9b8Rct6kLuNfWsOLdXVTYRT3 z+Nl+pFHdf0f3vVcFYMHs1hpJ9dxO60mKLnVlYStSCUVLz9SOsmYecrsV/6gt5/R1AZN anyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Vc7WK/fmUaK7hXIq3jyebUEyNQa1MDhwzyI2SYMvLCY=; b=amGxakmy4GIWOKf+6d5ho0F/tBHXcd++WoVzP+zvVX2Gwr2Dz1u4hwptrvN5vLKFj9 gsO/MdSj6/oo79o1dj8oaSqVrXgnVbcBvjqmcxED2+vTbSia8MyqGL+2nzqzzNZ0ULvq sx2vPh3+oDsBedRuFVW2wfYimO+NJKygVJ0OjNWJPuoJ1j+mN5H/d/c6yBH7sUkSpcRO pEzo/7O6TaZ9ijeMwW8qJYoK610efOnwxwHhT/TCcfMzWJv5F9Nd+TceNpy8KoYCa7DX oUmd1JU3GXloqxC66TLVSqUFOELAQZ9elZu2UrDBpYrJiF68y1ciVwx0GT21Y08sSUrI uk2A== X-Gm-Message-State: AOAM531EizrwENEyMDsOsoIyygulv4uP7XRsHaXdSBPaKAJjW5Pxv7K4 7LcX87rbHiKB04YZHB3W84gOsouKK1iQow== X-Google-Smtp-Source: ABdhPJzFboiX/Oo8ZQegVXzr99oDrvXVk/SXqXrpLHwVTX3Ob2Tn/O/JC7fTPY9nw+mkzSpNR7PEAA== X-Received: by 2002:adf:a389:: with SMTP id l9mr4309642wrb.121.1637302527613; Thu, 18 Nov 2021 22:15:27 -0800 (PST) Received: from slackware.local (dslb-002-205-007-197.002.205.pools.vodafone-ip.de. [2.205.7.197]) by smtp.gmail.com with ESMTPSA id z14sm2039249wrp.70.2021.11.18.22.15.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 22:15:27 -0800 (PST) From: Vyacheslav Yurkov To: openembedded-core@lists.openembedded.org Subject: [PATCH 3/6] image: add overlayfs-etc image feature Date: Fri, 19 Nov 2021 07:15:04 +0100 Message-Id: <74a23ab9213378623cb76f6ad9fe4aa661b472ac.1637301667.git.uvv.mail@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Nov 2021 06:15:30 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/158495 Signed-off-by: Vyacheslav Yurkov --- meta/classes/image.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 6c759fdf70..e198f041b1 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -15,6 +15,7 @@ IMGCLASSES += "${@bb.utils.contains('IMAGE_FSTYPES', 'container', 'image-contain IMGCLASSES += "image_types_wic" IMGCLASSES += "rootfs-postcommands" IMGCLASSES += "image-postinst-intercepts" +IMGCLASSES += "overlayfs-etc" inherit ${IMGCLASSES} TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}" @@ -33,7 +34,7 @@ INHIBIT_DEFAULT_DEPS = "1" # IMAGE_FEATURES may contain any available package group IMAGE_FEATURES ?= "" IMAGE_FEATURES[type] = "list" -IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging" +IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging overlayfs-etc" # Generate companion debugfs? IMAGE_GEN_DEBUGFS ?= "0" From patchwork Fri Nov 19 06:15:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vyacheslav Yurkov X-Patchwork-Id: 252 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFE2CC433F5 for ; Fri, 19 Nov 2021 06:15:30 +0000 (UTC) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.groups.io with SMTP id smtpd.web08.5082.1637302530115232481 for ; Thu, 18 Nov 2021 22:15:30 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=X9qwGlsT; spf=pass (domain: gmail.com, ip: 209.85.128.43, mailfrom: uvv.mail@gmail.com) Received: by mail-wm1-f43.google.com with SMTP id d72-20020a1c1d4b000000b00331140f3dc8so6638421wmd.1 for ; Thu, 18 Nov 2021 22:15:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=3UJuFGvbVcponM0v30fZJsSx0M5YKuiVTs5mv4eTRt4=; b=X9qwGlsTqqtTDW+f1ZSFnXEToFaMfqmtXDZglvwRGUTOwQPXKl3IYUO9htfq+b6sr5 9Zy/V8NFgEqDgacKe5vRd/jJQhOVR1AQU5liDuF/amrdEanri/orVEJhvyK8JDij9jnX cF0be9jxxtfl/us3iPli2L68T+jbmeDJjqfifTeKX4qoSMynedc7HFJSRWQCtVnDHUMe 3RxttZotyETrk5JSTtkfTccBAr/twAvPwpzmUuENNaCDqMAmzMhKRrM+At557aAc0uIx PgUP9flASsRQNrmFSzeBB8GkVUKlU/9mGj52EVZQsnKRQfJhs4RmVh8+vFqF0g9uvvzW pD5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3UJuFGvbVcponM0v30fZJsSx0M5YKuiVTs5mv4eTRt4=; b=LzM8lARHwPPoW9CtPm4l73XrjC5NEvW92SkauQyvEbecX6qVDvLthaFWRBKK5qDgf3 yk+/gnwVeOl9qeyZUVpyZkunyTS3JsupFBX9xJFDHWxt2KlDB0VQswsmwbVOSK+MjjLk Hm6WYoDIFdHx2VDxI7TcRGfWZeUvKz4nKff0NQrsu5Ow/3U002bHH9hqpY0Hk+hiyvnm lPEUA0FBYxtegHb5c+NGzMTyPLwMuZSCA9lik8Z3OW7aCbxg2ONjPv+Lt/20/J99quK6 osY+M/SSj0fru7cjxLs9fdOALjUDkvlnSkVDKCPK9HnT4hU9Um2e1Ijbzf07J6f5G+Fm Ly6w== X-Gm-Message-State: AOAM532e2UhOPtQGmWk3B5YKiW5W9+Xj6LkX8sAVKR6hNArDcirSMdCt QhRLpBup58O99DWJC9eieLAw+K6+Kpyypw== X-Google-Smtp-Source: ABdhPJwZ3Opn5x6OFMN4ikyq3PDUG3TG7Hh+cDqD7mSPq6wwPExkN4UkWHmtwH41z77/ROAIq+bVnA== X-Received: by 2002:a05:600c:6006:: with SMTP id az6mr3915304wmb.5.1637302528437; Thu, 18 Nov 2021 22:15:28 -0800 (PST) Received: from slackware.local (dslb-002-205-007-197.002.205.pools.vodafone-ip.de. [2.205.7.197]) by smtp.gmail.com with ESMTPSA id z14sm2039249wrp.70.2021.11.18.22.15.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 22:15:28 -0800 (PST) From: Vyacheslav Yurkov To: openembedded-core@lists.openembedded.org Subject: [PATCH 4/6] oeqa/selftest: overlayfs helper function Date: Fri, 19 Nov 2021 07:15:05 +0100 Message-Id: <203b7bf770d9e77ca870d943113cd7066cbb0a3e.1637301667.git.uvv.mail@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Nov 2021 06:15:30 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/158496 Move helper functions out of class scope so they can be used in other tests Signed-off-by: Vyacheslav Yurkov --- meta/lib/oeqa/selftest/cases/overlayfs.py | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py index 84242a1605..43415778ce 100644 --- a/meta/lib/oeqa/selftest/cases/overlayfs.py +++ b/meta/lib/oeqa/selftest/cases/overlayfs.py @@ -5,16 +5,16 @@ from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu -class OverlayFSTests(OESelftestTestCase): - """Overlayfs class usage tests""" +def getline_qemu(out, line): + for l in out.split('\n'): + if line in l: + return l - def getline_qemu(self, out, line): - for l in out.split('\n'): - if line in l: - return l +def getline(res, line): + return getline_qemu(res.output, line) - def getline(self, res, line): - return self.getline_qemu(res.output, line) +class OverlayFSTests(OESelftestTestCase): + """Overlayfs class usage tests""" def add_overlay_conf_to_machine(self): machine_inc = """ @@ -40,7 +40,7 @@ inherit overlayfs self.write_recipeinc('overlayfs-user', overlayfs_recipe_append) res = bitbake('core-image-minimal', ignore_status=True) - line = self.getline(res, "overlayfs-user was skipped: missing required distro features") + line = getline(res, "overlayfs-user was skipped: missing required distro features") self.assertTrue("overlayfs" in res.output, msg=res.output) self.assertTrue("systemd" in res.output, msg=res.output) self.assertTrue("ERROR: Required build target 'core-image-minimal' has no buildable providers." in res.output, msg=res.output) @@ -61,9 +61,9 @@ DISTRO_FEATURES += "systemd overlayfs" self.add_overlay_conf_to_machine() res = bitbake('core-image-minimal', ignore_status=True) - line = self.getline(res, "Unit name mnt-overlay.mount not found in systemd unit directories") + line = getline(res, "Unit name mnt-overlay.mount not found in systemd unit directories") self.assertTrue(line and line.startswith("WARNING:"), msg=res.output) - line = self.getline(res, "Not all mount units are installed by the BSP") + line = getline(res, "Not all mount units are installed by the BSP") self.assertTrue(line and line.startswith("ERROR:"), msg=res.output) def test_mount_unit_not_set(self): @@ -81,7 +81,7 @@ DISTRO_FEATURES += "systemd overlayfs" self.write_config(config) res = bitbake('core-image-minimal', ignore_status=True) - line = self.getline(res, "A recipe uses overlayfs class but there is no OVERLAYFS_MOUNT_POINT set in your MACHINE configuration") + line = getline(res, "A recipe uses overlayfs class but there is no OVERLAYFS_MOUNT_POINT set in your MACHINE configuration") self.assertTrue(line and line.startswith("Parsing recipes...ERROR:"), msg=res.output) def test_wrong_mount_unit_set(self): @@ -104,7 +104,7 @@ OVERLAYFS_MOUNT_POINT[usr-share-overlay] = "/usr/share/overlay" self.set_machine_config(wrong_machine_config) res = bitbake('core-image-minimal', ignore_status=True) - line = self.getline(res, "Missing required mount point for OVERLAYFS_MOUNT_POINT[mnt-overlay] in your MACHINE configuration") + line = getline(res, "Missing required mount point for OVERLAYFS_MOUNT_POINT[mnt-overlay] in your MACHINE configuration") self.assertTrue(line and line.startswith("Parsing recipes...ERROR:"), msg=res.output) def test_correct_image(self): @@ -201,11 +201,11 @@ EOT # /usr/share/my-application as an overlay (see overlayfs-user recipe) status, output = qemu.run_serial("/bin/mount -t tmpfs,overlay") - line = self.getline_qemu(output, "on /mnt/overlay") + line = getline_qemu(output, "on /mnt/overlay") self.assertTrue(line and line.startswith("tmpfs"), msg=output) - line = self.getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/my-application") + line = getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/my-application") self.assertTrue(line and line.startswith("overlay"), msg=output) - line = self.getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/another-overlay-mount") + line = getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/another-overlay-mount") self.assertTrue(line and line.startswith("overlay"), msg=output) From patchwork Fri Nov 19 06:15:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vyacheslav Yurkov X-Patchwork-Id: 254 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFA3FC4332F for ; Fri, 19 Nov 2021 06:15:31 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.web10.5177.1637302530891536442 for ; Thu, 18 Nov 2021 22:15:31 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=OZn//D8E; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: uvv.mail@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id s13so16206502wrb.3 for ; Thu, 18 Nov 2021 22:15:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=fWboX58baEUT6E0sAVqxpg4pDLBLCns5vd1QI1g+wsA=; b=OZn//D8EKcsbwOfKLqIhHMDGC7YusQQAgx6W5r1WQOmXVUWELuRvL3F6LMbCrOMrhe RYH5j+Ue0LqLdzDwiZDeSnIah+q+FH1Yps8j2KnYl2gIpfw/kRLqxNWdB5dgkrCizL4w iS5XTDtPKOX+QCKJbTXPRqoffklpAzTGfD4Eqv1CQjANkz/F+rLrqAzfAAI/NfCJi8Y9 /WQlIJgC8JRDfaDL4oljOtOf7itme2JEYdDyXVBlfnQhSzvZaQD2N7SSdcSCSzMiue8s R+nV1UB0j7g7ymfm30Yfz2pFV+X7LbjXcjs7TkYOEM0iTyOVQFJ0KTqA+RQlO7BaeovL i4tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fWboX58baEUT6E0sAVqxpg4pDLBLCns5vd1QI1g+wsA=; b=A5wDwP8GPhsl4Dk99H9sZQpt70/e2t32mwvmL1hntRnOROnyj0nWKoIgqpW+9syI1x cKnQBMxtCpftEwr5/aDhs056l3Qabh+v2Q8zKG0QBt7OeP92DZ6ppL6qdV0Hb2D9XbZ/ UGE7UcjB0SG/ojHlWAPvhvBjMN/S8r1OMRTE9/+FDgtEFgJaAtX918yF1bQDBPy2a98V CAC9zeeJWQHxgbWJTl6hCkDcUqAiD75CLdN2O2Vmu+8p0dyUXNmgZQ9BEWfTR2eOT9F8 gKrgF/D6G1nezENRoww8Tvg5Wf6/TtUsd7ppRA+g1mKxWqhZXX+EXQOZdeuajsOTOuIR bk5A== X-Gm-Message-State: AOAM5339DCdN1E6XlcJcwE3jGW3dXb+iFhC5R4JhEICFOeuU0LpH2mnQ mGbJrsU7bSqROqyhrTQArk4YJDRBFKDHXQ== X-Google-Smtp-Source: ABdhPJw0orZQlSFav6dJJkilq/iIXWw2w3iUqpJ9pr0OWvUQ/kgn2nQJwHQtgJI58JWm8fpLm4oXkQ== X-Received: by 2002:a05:6000:1acd:: with SMTP id i13mr4421745wry.398.1637302529230; Thu, 18 Nov 2021 22:15:29 -0800 (PST) Received: from slackware.local (dslb-002-205-007-197.002.205.pools.vodafone-ip.de. [2.205.7.197]) by smtp.gmail.com with ESMTPSA id z14sm2039249wrp.70.2021.11.18.22.15.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 22:15:28 -0800 (PST) From: Vyacheslav Yurkov To: openembedded-core@lists.openembedded.org Subject: [PATCH 5/6] oeqa/selftest: unit tests for overlayfs-etc Date: Fri, 19 Nov 2021 07:15:06 +0100 Message-Id: <6ba6a5dc23e5224d5b3f23938c8bb8aad5fef9fe.1637301667.git.uvv.mail@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Nov 2021 06:15:31 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/158497 Signed-off-by: Vyacheslav Yurkov --- meta/lib/oeqa/selftest/cases/overlayfs.py | 141 ++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py index 43415778ce..4623215a47 100644 --- a/meta/lib/oeqa/selftest/cases/overlayfs.py +++ b/meta/lib/oeqa/selftest/cases/overlayfs.py @@ -209,3 +209,144 @@ EOT line = getline_qemu(output, "upperdir=/mnt/overlay/upper/usr/share/another-overlay-mount") self.assertTrue(line and line.startswith("overlay"), msg=output) + +class OverlayFSEtcRunTimeTests(OESelftestTestCase): + """overlayfs-etc class tests""" + + def test_image_feature_conflict(self): + """ + Summary: Overlayfs-etc is not allowed to be used with package-management + Expected: Feature conflict + Author: Vyacheslav Yurkov + """ + + config = """ +DISTRO_FEATURES += "systemd" + +# Use systemd as init manager +VIRTUAL-RUNTIME_init_manager = "systemd" + +# enable overlayfs in the kernel +KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc" +EXTRA_IMAGE_FEATURES += "overlayfs-etc" +EXTRA_IMAGE_FEATURES += "package-management" +""" + + self.write_config(config) + + res = bitbake('core-image-minimal', ignore_status=True) + line = getline(res, "contains conflicting IMAGE_FEATURES") + self.assertTrue("overlayfs-etc" in res.output, msg=res.output) + self.assertTrue("package-management" in res.output, msg=res.output) + + def test_image_feature_is_missing_class_included(self): + configAppend = """ +INHERIT += "overlayfs-etc" +""" + self.run_check_image_feature(configAppend) + + def test_image_feature_is_missing(self): + self.run_check_image_feature() + + def run_check_image_feature(self, appendToConfig=""): + """ + Summary: Overlayfs-etc class is not applied when image feature is not set + even if we inherit it directly, + Expected: Image is created successfully but /etc is not an overlay + Author: Vyacheslav Yurkov + """ + + config = f""" +DISTRO_FEATURES += "systemd" + +# Use systemd as init manager +VIRTUAL-RUNTIME_init_manager = "systemd" + +# enable overlayfs in the kernel +KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc" + +IMAGE_FSTYPES += "wic" +WKS_FILE = "overlayfs_etc.wks.in" + +EXTRA_IMAGE_FEATURES += "read-only-rootfs" +# Image configuration for overlayfs-etc +OVERLAYFS_ETC_MOUNT_POINT = "/data" +OVERLAYFS_ETC_DEVICE = "/dev/sda3" +{appendToConfig} +""" + + self.write_config(config) + + bitbake('core-image-minimal') + + with runqemu('core-image-minimal', image_fstype='wic') as qemu: + status, output = qemu.run_serial("/bin/mount") + + line = getline_qemu(output, "upperdir=/data/overlay-etc/upper") + self.assertFalse(line, msg=output) + + def test_sbin_init_preinit(self): + self.run_sbin_init(False) + + def test_sbin_init_original(self): + self.run_sbin_init(True) + + def run_sbin_init(self, origInit): + """ + Summary: Confirm we can replace original init and mount overlay on top of /etc + Expected: Image is created successfully and /etc is mounted as an overlay + Author: Vyacheslav Yurkov + """ + + config = """ +DISTRO_FEATURES += "systemd" + +# Use systemd as init manager +VIRTUAL-RUNTIME_init_manager = "systemd" + +# enable overlayfs in the kernel +KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc" + +IMAGE_FSTYPES += "wic" +OVERLAYFS_INIT_OPTION = "{OVERLAYFS_INIT_OPTION}" +WKS_FILE = "overlayfs_etc.wks.in" + +EXTRA_IMAGE_FEATURES += "read-only-rootfs" +# Image configuration for overlayfs-etc +EXTRA_IMAGE_FEATURES += "overlayfs-etc" +IMAGE_FEATURES:remove = "package-management" +OVERLAYFS_ETC_MOUNT_POINT = "/data" +OVERLAYFS_ETC_DEVICE = "/dev/sda3" +OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}" +""" + + args = { + 'OVERLAYFS_INIT_OPTION': "" if origInit else "init=/sbin/preinit", + 'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': int(origInit == True) + } + + self.write_config(config.format(**args)) + + bitbake('core-image-minimal') + testFile = "/etc/my-test-data" + + with runqemu('core-image-minimal', image_fstype='wic', discard_writes=False) as qemu: + status, output = qemu.run_serial("/bin/mount") + + line = getline_qemu(output, "/dev/sda3") + self.assertTrue("/data" in output, msg=output) + + line = getline_qemu(output, "upperdir=/data/overlay-etc/upper") + self.assertTrue(line and line.startswith("/data/overlay-etc/upper on /etc type overlay"), msg=output) + + status, output = qemu.run_serial("touch " + testFile) + status, output = qemu.run_serial("sync") + status, output = qemu.run_serial("ls -1 " + testFile) + line = getline_qemu(output, testFile) + self.assertTrue(line and line.startswith(testFile), msg=output) + + # Check that file exists in /etc after reboot + with runqemu('core-image-minimal', image_fstype='wic') as qemu: + status, output = qemu.run_serial("ls -1 " + testFile) + line = getline_qemu(output, testFile) + self.assertTrue(line and line.startswith(testFile), msg=output) From patchwork Fri Nov 19 06:15:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vyacheslav Yurkov X-Patchwork-Id: 255 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1FDBC433F5 for ; Fri, 19 Nov 2021 06:15:32 +0000 (UTC) Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mx.groups.io with SMTP id smtpd.web09.5284.1637302531463779164 for ; Thu, 18 Nov 2021 22:15:31 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=SfjYl01Y; spf=pass (domain: gmail.com, ip: 209.85.128.51, mailfrom: uvv.mail@gmail.com) Received: by mail-wm1-f51.google.com with SMTP id b184-20020a1c1bc1000000b0033140bf8dd5so6616663wmb.5 for ; Thu, 18 Nov 2021 22:15:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=pvKfVOTcbU397aBsNGOgQSy4hE0CveVv9ErsYglMtQY=; b=SfjYl01YvPm8U/xPnEg3XXJVTtbqEnZVA6Sbvzzd1x8rvy2xCJirddvdPEgJ1rzNPt TQSZF4O2AfJhmb6eS7t2jaNNQBe2wpddEPekgDPg19+aoHfUn/bc0vpO0sPjNBD6UMbm YYV/iBfxdkPZUwHJHu6HZEEmq5eTfki4Fjg7ZgaQ9wJGMAChyeJH5W5cwFxOQwJZFSJ2 Re3VlW5vgZ8f2sluSEu2Abtp8utjMN3eIGpxJGEWOvglnXwpBMR5NxeuFxEDVwiGMDrq vKo3zLjwg9AZrsjN1y5fiXhGaOZjTRX8nHoP2QjhhBXHGEZnz3mHT9cPOWzDy3gieFs7 YmTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pvKfVOTcbU397aBsNGOgQSy4hE0CveVv9ErsYglMtQY=; b=LPqqmxCUZUSCrPrmDIZALZK1toWCTeLugfza5onYEDZQvEB192LSjflpVQ3PsAdUB+ w9scwvznpaadzKf6rEOKHH4LOifRaWbv1rhc6ivIvzZTN4deREJcaX3hqAT69DNmM7Xu ZyCraEjEPzEg2AxuvF9xSpPo3Am2BmW++WEHxN81GVSwJdl62Wb432agsWELpdoIA2uP ANT51ZbwA229MhA8g/370bHZIYTB/NDmiUyXVLfkuUI03QbEOylaezXkKpUysSBRicD1 TBezSn+ARzEeL2rxeb+KYbQwB93TMv7XK8j61EO/l6FkarLUwjePfYJG13THTakb98A2 h3CA== X-Gm-Message-State: AOAM531JML0rYF+/CAgIkzS/BlRXb2PuRH8t3kQtS0203hE7TBoc8758 R4kd1QwTBwDxP2Bi2tjvguQiuleTHhKQrg== X-Google-Smtp-Source: ABdhPJwTXbrMI4ll9lRsYf9g8EMhojDSq61yFjsad+bZJPbT34atj2xdBcJFoKbP6huvKHnVt5duhA== X-Received: by 2002:a1c:448b:: with SMTP id r133mr3797000wma.85.1637302529824; Thu, 18 Nov 2021 22:15:29 -0800 (PST) Received: from slackware.local (dslb-002-205-007-197.002.205.pools.vodafone-ip.de. [2.205.7.197]) by smtp.gmail.com with ESMTPSA id z14sm2039249wrp.70.2021.11.18.22.15.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 22:15:29 -0800 (PST) From: Vyacheslav Yurkov To: openembedded-core@lists.openembedded.org Subject: [PATCH 6/6] overlayfs: update notes on /etc Date: Fri, 19 Nov 2021 07:15:07 +0100 Message-Id: <0aa5133f3ef72680b8d4cd181db4b9ca07dbe8a8.1637301667.git.uvv.mail@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Nov 2021 06:15:32 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/158498 Signed-off-by: Vyacheslav Yurkov --- meta/classes/overlayfs.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/classes/overlayfs.bbclass b/meta/classes/overlayfs.bbclass index 3c0f4dc882..f1b8086ea8 100644 --- a/meta/classes/overlayfs.bbclass +++ b/meta/classes/overlayfs.bbclass @@ -31,6 +31,7 @@ # OVERLAYFS_WRITABLE_PATHS[mnt-overlay] = "/usr/share/another-application" # # Note: the class does not support /etc directory itself, because systemd depends on it +# For /etc directory use overlayfs-etc class REQUIRED_DISTRO_FEATURES += "systemd overlayfs"