Skip to contentSkip to conversation

Fixes backported from master

PATCH In review Paul Eggleton 2 participants 6 messages Apr 4, 2014 – Apr 10, 2014

lore
Share & tools
lore
#1 lore raw

PATCH 1/4 sstatesig.py: Fix image regeneration issue

In reply to Paul Eggleton

From: Richard Purdie <[email protected]>

With the "ABI safe" recipes, we've been excluding those from signatures. This is fine in the general case but in the specific case of image recipes it breaks.

A good test case is the interfaces file. Editting this causes init-ifupdown to rebuild but not an image containing it (e.g. core-image-minimal).

We need to ensure the checksums are added to the image recipes and this change does that.

(From OE-Core master rev: fd085f15e7cd093953f974f69277e130174d551d)

---
 meta/lib/oe/sstatesig.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/lib/oe/sstatesig.py +3 -1
index 852fb7e..1bcaacf 100644
@@ -11,6 +11,8 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
     def isKernel(fn):
         inherits = " ".join(dataCache.inherits[fn])
         return inherits.find("module-base.bbclass") != -1 or inherits.find("linux-kernel-base.bbclass") != -1
+    def isImage(fn):
+        return "image.bbclass" in " ".join(dataCache.inherits[fn])
 
     # Always include our own inter-task dependencies
     if recipename == depname:
@@ -32,7 +34,7 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
         return False
 
     # Exclude well defined machine specific configurations which don't change ABI
-    if depname in siggen.abisaferecipes:
+    if depname in siggen.abisaferecipes and not isImage(fn):
         return False
 
     # Exclude well defined recipe->dependency
Signature · 1 line
1.9.0
#3 lore raw

PATCH 3/4 classes/image: ignore modules.* changing during multilib image construction

In reply to Paul Eggleton

Since we now run depmod when building images (as the postinst that does this is now on kernel-base instead of kernel-image) it is possible to have module file differences between the two halves of the multilib image, and the code that checks for such differences detects this and fails. Whitelist this file to avoid the failure.

Specifically, modules.alias, modules.dep and modules.symbol can differ along with their .bin counterparts.

Related to fix for [YOCTO #5392].

(From OE-Core master rev: 0a315804bf991664c0948e3024b8e8b9e9085808)

---
 meta/classes/image.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/image.bbclass +1 -1
index 0986858..aaaa224 100644
@@ -410,7 +410,7 @@ log_check() {
 	done
 }
 
-MULTILIBRE_ALLOW_REP =. "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${libexecdir}|"
+MULTILIBRE_ALLOW_REP =. "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${libexecdir}|/lib/modules/[^/]*/modules.*|"
 MULTILIB_CHECK_FILE = "${WORKDIR}/multilib_check.py"
 MULTILIB_TEMP_ROOTFS = "${WORKDIR}/multilib"
 
Signature · 1 line
1.9.0
#4 lore raw

PATCH 4/4 sstatesig: Anchor inherits class tests

In reply to Paul Eggleton

From: Richard Purdie <[email protected]>

This avoids a nasty sstate hash corruption issue where the fact the testimage bbclass was inherited meant that the checksum changed due to testimage.bbclass being confused with image.bbclass.

This patch anchors the bbclass names to avoid this confusion.

(From OE-Core master rev: 943a75a4f3b6877e4092dae14b59b7afef8cad3d)

---
 meta/lib/oe/sstatesig.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/lib/oe/sstatesig.py +2 -2
index 1bcaacf..a1efc7b 100644
@@ -10,9 +10,9 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
         return x.startswith("nativesdk-")
     def isKernel(fn):
         inherits = " ".join(dataCache.inherits[fn])
-        return inherits.find("module-base.bbclass") != -1 or inherits.find("linux-kernel-base.bbclass") != -1
+        return inherits.find("/module-base.bbclass") != -1 or inherits.find("/linux-kernel-base.bbclass") != -1
     def isImage(fn):
-        return "image.bbclass" in " ".join(dataCache.inherits[fn])
+        return "/image.bbclass" in " ".join(dataCache.inherits[fn])
 
     # Always include our own inter-task dependencies
     if recipename == depname:
Signature · 1 line
1.9.0
#0 lore raw

cover Fixes backported from master

The following changes since commit 590c2135858bb5d0cfc375c0d82ca610550ccd4a:

Revert "buildhistory_analysis: fix error when comparing image contents" (2014-04-04 16:16:39 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/dora-next
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/dora-next

Paul Eggleton (2):
classes/kernel: move module postinst commands to kernel-base classes/image: ignore modules.* changing during multilib image
construction

Richard Purdie (2):
sstatesig.py: Fix image regeneration issue
sstatesig: Anchor inherits class tests

 meta/classes/image.bbclass  | 2 +-
 meta/classes/kernel.bbclass | 7 +++++--
 meta/lib/oe/sstatesig.py    | 6 ++++--
 3 files changed, 10 insertions(+), 5 deletions(-)
Signature · 1 line
1.9.0
#2 lore raw

PATCH 2/4 classes/kernel: move module postinst commands to kernel-base

Since kernel-base is the package that contains the files that depmod needs to run, we should be running depmod from the kernel-base postinstall rather than kernel-image.

Fixes [YOCTO #5392].

(From OE-Core master rev: f7d2cb383281ec8dfa90950ba04d87dd29ffc676)

---
 meta/classes/kernel.bbclass | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
meta/classes/kernel.bbclass +5 -2
index e639bd5..925aed1 100644
@@ -337,8 +337,7 @@ ALLOW_EMPTY_kernel-image = "1"
 ALLOW_EMPTY_kernel-modules = "1"
 DESCRIPTION_kernel-modules = "Kernel modules meta package"
 
-pkg_postinst_kernel-image () {
-	update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
+pkg_postinst_kernel-base () {
 	if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
 		mkdir -p $D/lib/modules/${KERNEL_VERSION}
 	fi
@@ -349,6 +348,10 @@ pkg_postinst_kernel-image () {
 	fi
 }
 
+pkg_postinst_kernel-image () {
+	update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
+}
+
 pkg_postrm_kernel-image () {
 	update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true
 }
Signature · 1 line
1.9.0
#5 lore raw
In reply to Paul Eggleton

Reviewed and Tested by Robert Yang <[email protected]>

// Robert

Quoted 23 lines · Paul Eggleton

The following changes since commit 590c2135858bb5d0cfc375c0d82ca610550ccd4a:

Revert "buildhistory_analysis: fix error when comparing image contents" (2014-04-04 16:16:39 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/dora-next
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/dora-next

Paul Eggleton (2):
classes/kernel: move module postinst commands to kernel-base classes/image: ignore modules.* changing during multilib image
construction

Richard Purdie (2):
sstatesig.py: Fix image regeneration issue
sstatesig: Anchor inherits class tests

  meta/classes/image.bbclass  | 2 +-
  meta/classes/kernel.bbclass | 7 +++++--
  meta/lib/oe/sstatesig.py    | 6 ++++--
  3 files changed, 10 insertions(+), 5 deletions(-)