1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 05:09:24 +00:00
Markus Lehtonen bbfc210051 externalsrc: do not use do_configure[nostamp] for git srctrees
Be a bit more intelligent than mindlessly re-compiling every time.
Instead of always using 'nostamp' flag for do_compile run a python
function to get a list of files to add as 'file-checksums' flag. The
intention is to only re-run do_compile if something in the source tree
content changes.

This python function, srctree_hash_files(), works differently, depending
if the source tree is a git repository clone or not. If the source tree
is a git repository, the function runs 'git add .' and 'git write tree'
to get a hash of the working tree and writes this hash into a file under
the .git directory. This file containing the hash is then returned as
the file for the task to depend on. Hash is changed if any changes are
made in the source tree causing the task to be re-run. A trick is used
to parse the recipe every time so that the hash file gets updated.

If the source tree is not a git repository behaviour remains the same.
In this case srctree_hash_files() currently sets the 'nostamp' flag for
do_compile causing it to be re-run every time.

This method of tracking changes source tree changes to determine if
re-build is needed does not work perofectly, though. Many packages are
built under ${S} which effectively changes the source tree causing some
unwanted re-compilations.  However, if do_compile of the recipe does not
produce new/different artefacts on every run (as commonly is and should
be the case) the re-compilation loop stops. Thus, you should usually see
only one re-compilation (if any) after which the source tree is
"stabilized" and no more re-compilations happen.

[YOCTO #8853]

(From OE-Core rev: a26becdf981b35d7ef8524f9e65c25a74b842f1d)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-28 15:55:50 +01:00
2016-03-26 08:06:58 +00:00
2014-01-02 12:58:54 +00:00

Poky
====

Poky is an integration of various components to form a complete prepackaged
build system and development environment. It features support for building
customised embedded device style images. There are reference demo images
featuring a X11/Matchbox/GTK themed UI called Sato. The system supports
cross-architecture application development using QEMU emulation and a
standalone toolchain and SDK with IDE integration.

Additional information on the specifics of hardware that Poky supports
is available in README.hardware. Further hardware support can easily be added
in the form of layers which extend the systems capabilities in a modular way.

As an integration layer Poky consists of several upstream projects such as 
BitBake, OpenEmbedded-Core, Yocto documentation and various sources of information 
e.g. for the hardware support. Poky is in turn a component of the Yocto Project.

The Yocto Project has extensive documentation about the system including a 
reference manual which can be found at:
    http://yoctoproject.org/documentation

OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.

For information about OpenEmbedded, see the OpenEmbedded website:
    http://www.openembedded.org/

Where to Send Patches
=====================

As Poky is an integration repository (built using a tool called combo-layer),
patches against the various components should be sent to their respective
upstreams:

bitbake:
    Git repository: http://git.openembedded.org/bitbake/
    Mailing list: bitbake-devel@lists.openembedded.org

documentation:
    Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/
    Mailing list: yocto@yoctoproject.org

meta-poky, meta-yocto-bsp:
    Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto(-bsp)
    Mailing list: poky@yoctoproject.org

Everything else should be sent to the OpenEmbedded Core mailing list.  If in
doubt, check the oe-core git repository for the content you intend to modify.
Before sending, be sure the patches apply cleanly to the current oe-core git
repository.

    Git repository: http://git.openembedded.org/openembedded-core/
    Mailing list: openembedded-core@lists.openembedded.org

Note: The scripts directory should be treated with extra care as it is a mix of
oe-core and poky-specific files.
S
Description
No description provided
Readme 261 MiB