Rebuild after cleaning does not work anymore, bugfix v2

Message ID CAJGKYO6pEV8njDjRYyUSCuTtP-e+nr9rnzYN3vgVCcy-jvUsqA@mail.gmail.com
State Rejected, archived
Headers show
Series Rebuild after cleaning does not work anymore, bugfix v2 | expand

Commit Message

Roberto A. Foglietta Dec. 6, 2022, 11:10 p.m. UTC
From 86db16c6fe44876ae63fa89c9f25b92f2d3cb34d Mon Sep 17 00:00:00 2001
From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Date: Tue, 6 Dec 2022 23:55:00 +0100
Subject: [PATCH] Rebuild after cleaning does not work anymore, bugfix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bugfix, image and rootfs classes, fails in rebuilding - rebuild after cleaning
does not work anymore but it is required to remove manually all the directories
and this would take longer to rebuild. This patch fixes this new wrong
behaviour which happens when the kernel is not compiled but installed.

Reproducibility: this sequence of commands does not work anymore

kcbuild
./kas-container --isar clean
     XOR/AND
sudo ./kas-container clean
kcbuild

It fails with error while the following still works

kcbuild
sudo rm -rf build/tmp build/sstate-cache
kcbuild

but it takes more time than the previous when it was working.

Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
---
 meta/classes/image.bbclass  | 9 +++++----
 meta/classes/rootfs.bbclass | 3 +++
 2 files changed, 8 insertions(+), 4 deletions(-)

Comments

Roberto A. Foglietta Dec. 7, 2022, 2:55 a.m. UTC | #1
On Wed, 7 Dec 2022 at 00:10, Roberto A. Foglietta
<roberto.foglietta@gmail.com> wrote:
>

Forget this, it was just a matter of dirty repositories

However, keep in consideration to append

--always --match || echo unknown

to ISAR_RELEASE_CMD_DEFAULT

Best Regards, R-

Patch

From 86db16c6fe44876ae63fa89c9f25b92f2d3cb34d Mon Sep 17 00:00:00 2001
From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Date: Tue, 6 Dec 2022 23:55:00 +0100
Subject: [PATCH] Rebuild after cleaning does not work anymore, bugfix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bugfix, image and rootfs classes, fails in rebuilding - rebuild after cleaning
does not work anymore but it is required to remove manually all the directories
and this would take longer to rebuild. This patch fixes this new wrong
behaviour which happens when the kernel is not compiled but installed.

Reproducibility: this sequence of commands does not work anymore

kcbuild
./kas-container --isar clean
     XOR/AND
sudo ./kas-container clean
kcbuild

It fails with error while the following still works

kcbuild
sudo rm -rf build/tmp build/sstate-cache
kcbuild

but it takes more time than the previous when it was working.

Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
---
 meta/classes/image.bbclass  | 9 +++++----
 meta/classes/rootfs.bbclass | 3 +++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 813e1f3..d5c173b 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -346,17 +346,18 @@  DTB_IMG = "${PP_DEPLOY}/${@(d.getVar('DTB_FILES').split() or [''])[0]}"
 do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}"
 do_copy_boot_files[lockfiles] += "${DEPLOY_DIR_IMAGE}/isar.lock"
 do_copy_boot_files() {
-    kernel="$(realpath -q '${IMAGE_ROOTFS}'/vmlinu[xz])"
+    set -x
+    kernel="$(realpath -q '${IMAGE_ROOTFS}'/vmlinu[xz] || true)"
     if [ ! -f "$kernel" ]; then
-        kernel="$(realpath -q '${IMAGE_ROOTFS}'/boot/vmlinu[xz])"
+        kernel="$(realpath -q '${IMAGE_ROOTFS}'/boot/vmlinu[xz] || true)"
     fi
     if [ -f "$kernel" ]; then
         sudo cat "$kernel" > "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE}"
     fi
 
-    initrd="$(realpath -q '${IMAGE_ROOTFS}/initrd.img')"
+    initrd="$(realpath -q '${IMAGE_ROOTFS}/initrd.img' || true)"
     if [ ! -f "$initrd" ]; then
-        initrd="$(realpath -q '${IMAGE_ROOTFS}/boot/initrd.img')"
+        initrd="$(realpath -q '${IMAGE_ROOTFS}/boot/initrd.img' || true)"
     fi
     if [ -f "$initrd" ]; then
         cp -f "$initrd" '${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE}'
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index d19ac03..0d16754 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -33,6 +33,9 @@  rootfs_do_mounts[weight] = "3"
 rootfs_do_mounts() {
     sudo -s <<'EOSUDO'
         set -e
+	for i in dev/shm dev/pts proc sys; do
+		mkdir -p '${ROOTFSDIR}/$i'
+	done
         mountpoint -q '${ROOTFSDIR}/dev' || \
             ( mount -o bind,private /dev '${ROOTFSDIR}/dev' &&
               mount -t tmpfs none '${ROOTFSDIR}/dev/shm' &&
-- 
2.34.1