Fixes backported from master
PATCH 1/4 sstatesig.py: Fix image regeneration issue
In reply to Paul EggletonFrom: 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
@@ -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
PATCH 3/4 classes/image: ignore modules.* changing during multilib image construction
In reply to Paul EggletonSince 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
@@ -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
PATCH 4/4 sstatesig: Anchor inherits class tests
In reply to Paul EggletonFrom: 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
@@ -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
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
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
@@ -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
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-contribpaule/dora-next
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/dora-nextPaul Eggleton (2):
classes/kernel: move module postinst commands to kernel-base classes/image: ignore modules.* changing during multilib image
constructionRichard Purdie (2):
sstatesig.py: Fix image regeneration issue
sstatesig: Anchor inherits class testsmeta/classes/image.bbclass | 2 +- meta/classes/kernel.bbclass | 7 +++++-- meta/lib/oe/sstatesig.py | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-)