From d7ce8aa93aef49cdbba676fe80afd480d15a2ff3 Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei.gherzan@huawei.com>
Date: Mon, 11 Jul 2022 15:23:11 +0200
Subject: [PATCH] oniro-image.bbclass: Add rootfs function for cleaning up
 subid backup files

Podman requires subids configuration[1] but when creating them, shadow
does it using backup files. Clean them up too if available.

[1] https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md#etcsubuid-and-etcsubgid-configuration

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
---
 meta-oniro-core/classes/oniro-image.bbclass | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/meta-oniro-core/classes/oniro-image.bbclass b/meta-oniro-core/classes/oniro-image.bbclass
index 8dfe0afc..7dcb5a1f 100644
--- a/meta-oniro-core/classes/oniro-image.bbclass
+++ b/meta-oniro-core/classes/oniro-image.bbclass
@@ -138,5 +138,17 @@ python deploy_boot_artifacts_to_rootfs() {
                          os.path.join(rootfs_dir, dst_path))
         run_cmd(install_cmd)
 }
-
 ROOTFS_POSTPROCESS_COMMAND += "deploy_boot_artifacts_to_rootfs;"
+
+python () {
+    d.appendVar('ROOTFS_POSTPROCESS_COMMAND', ' clean_backup_files; ')
+}
+python clean_backup_files () {
+    # Cleanup other backup files generated by shadow-utils not covered by the
+    # sort_passwd existing rootfs postcommand.
+    # https://gitlab.eclipse.org/eclipse/oniro-core/oniro/-/issues/772
+    import rootfspostcommands
+    for file in ['subuid', 'subgid']:
+        filename = os.path.join(d.expand('${IMAGE_ROOTFS}${sysconfdir}'), file)
+        rootfspostcommands.remove_backup(filename)
+}
-- 
GitLab