From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Machine dependencies validation with sstate
Date: Tue, 24 Jan 2012 17:22:09 +0000 [thread overview]
Message-ID: <1327425729.19643.113.camel@ted> (raw)
In the process of diving into the issues in bug 1916
(http://bugzilla.yoctoproject.org/show_bug.cgi?id=1916), I've come up
with a good way of detecting machine specific changes to generic
PACKAGE_ARCH packages.
The idea is to have two identical machines, qemux86 and qemux86copy.
These can be setup by:
$ cp meta/conf/machine/qemux86.conf meta/conf/machine/qemux86copy.conf
[Add SRCREV entry for qemux86copy to meta/recipes-kernel/linux/linux-yocto_3.0.bb]
$ cp -r meta/recipes-core/netbase/netbase-4.47/qemux86 meta/recipes-core/netbase/netbase-4.47/qemux86copy
[Add PACKAGE_ARCH_qemux86copy to meta/recipes-core/netbase/netbase_4.47.bb]
[Add RRECOMMENDS_${PN}_qemux86copy to meta/recipes-multimedia/gstreamer/gstreamer_0.10.35.bb]
You can then generate all of the sigdata files for two machine builds by
running the following commands. The nice thing about these is that you
don't have to run a complete build, it just writes out the data the
build would have generated:
rm tmp/stamps/*/*sigdata*
MACHINE=qemux86 bitbake core-image-sato -S
find tmp/stamps/i586-poky-linux/ -name \*sigdata* | sort > l1
find tmp/stamps/all-poky-linux/ -name \*sigdata* | sort >> l1
MACHINE=qemux86copy bitbake core-image-sato -S
find tmp/stamps/i586-poky-linux/ -name \*sigdata* | sort > l2
find tmp/stamps/all-poky-linux/ -name \*sigdata* | sort >> l2
and then comparing the files l1 and l2, you can see which sigdata files
differ. Running bitbake-diffsigs on the files, e.g.:
bitbake-diffsigs tmp/stamps/all-poky-linux/x11-common-0.1-r44.do_package_write_ipk.sigdata.*
can show what changed and you can then consider whether that is a valid
change and how it might be avoided if necessary. This is how some of the
patches I've just posted were developed.
Comparing qemux86 and qemux86copy as above with core-image-sato now
yields only two differences, in the package_write* tasks of iptables and
gstreamer. This is due to the dependencies these two recipes have on
kernel-module-* packages which in turn depend on linux-yocto which is
machine specific. As yet I can't find a good way to avoid the kernel
dependencies. If we could break debian.bbclass's hold in the
kernel-module case (which never get renamed), that would be one way to
avoid this problem.
I thought people might find this intersting and it was worth documenting
in the list archives if nothing else.
Cheers,
Richard
next reply other threads:[~2012-01-24 17:30 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-24 17:22 Richard Purdie [this message]
2012-01-30 16:48 ` Machine dependencies validation with sstate McClintock Matthew-B29882
2012-02-03 16:46 ` Richard Purdie
2012-02-16 13:44 ` Martin Jansa
2012-02-16 13:54 ` Martin Jansa
2012-02-16 14:22 ` Martin Jansa
2012-02-22 13:05 ` Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1327425729.19643.113.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.