[v4] image: make sure do_rootfs_finalize can run multiple times, v4

Message ID 20230106180257.3276801-1-roberto.foglietta@linuxteam.org
State Rejected, archived
Headers show
Series [v4] image: make sure do_rootfs_finalize can run multiple times, v4 | expand

Commit Message

roberto.foglietta@linuxteam.org Jan. 6, 2023, 6:02 p.m. UTC
From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>

image: make sure do_rootfs_finalize can run multiple times, v4

The rootfs_finalize task currently cannot be re-executed, as it moves
the sources-list into bootstrap.list. As this only has to be done once,
it is not required on subsequent executions. To fix the rebuild issue,
we simply ignore the return code of the mv statement.

v2: essential code, only

v3: code above the fix, rationalisation

v4: like v3 but with the description provided by Felix Moessbauer

Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
---
 meta/classes/image.bbclass | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

Patch

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 629a0c1..7a5ced5 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -419,15 +419,13 @@  do_rootfs_finalize() {
         mountpoint -q '${ROOTFSDIR}/sys' && \
             umount -l ${ROOTFSDIR}/sys
 
-        rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/isar-apt.list"
-        rm -f "${ROOTFSDIR}/etc/apt/preferences.d/isar-apt"
-        rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list"
-        rm -f "${ROOTFSDIR}/etc/apt/apt.conf.d/50isar"
-
-        mv "${ROOTFSDIR}/etc/apt/sources-list" \
-            "${ROOTFSDIR}/etc/apt/sources.list.d/bootstrap.list"
-
-        rm -f "${ROOTFSDIR}/etc/apt/sources-list"
+        aptdir="${ROOTFSDIR}/etc/apt"
+        rm -f "${aptdir}/apt.conf.d/50isar"
+        rm -f "${aptdir}/preferences.d/isar-apt"
+        rm -f "${aptdir}/sources.list.d/isar-apt.list"
+        rm -f "${aptdir}/sources.list.d/base-apt.list"
+        mv -f "${aptdir}/sources-list" \
+            "${aptdir}/sources.list.d/bootstrap.list" 2>/dev/null || :
 EOSUDO
 }
 addtask rootfs_finalize before do_rootfs after do_rootfs_postprocess