<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jpuhlman</id>
	<title>Yocto Project - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jpuhlman"/>
	<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/Special:Contributions/Jpuhlman"/>
	<updated>2026-04-09T03:25:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Layer_Tooling&amp;diff=1707</id>
		<title>Layer Tooling</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Layer_Tooling&amp;diff=1707"/>
		<updated>2011-05-17T16:57:37Z</updated>

		<summary type="html">&lt;p&gt;Jpuhlman: /* Jeremy Puhlman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tasks ==&lt;br /&gt;
&lt;br /&gt;
Extracted from the brainstorming info below.&lt;br /&gt;
&lt;br /&gt;
=== 1.1 tasks ===&lt;br /&gt;
&lt;br /&gt;
* Show a parse error if a bbappend matches no existing bb [Dexuan]&lt;br /&gt;
* bitbake-layers: stop it displaying the warning message about not being run from the wrapper [Dexuan]&lt;br /&gt;
* bitbake-layers: extend it to show overridden (&amp;quot;cloaked&amp;quot;) recipes [Dexuan?]&lt;br /&gt;
* Update banner info to show layers being used and revisions/branches for each one if available [Dexuan]&lt;br /&gt;
* Dependency handling [Paul]&lt;br /&gt;
** Add metadata to layers - can go in layer.conf&lt;br /&gt;
*** Layer name&lt;br /&gt;
*** Layer version&lt;br /&gt;
*** Layer dependencies (as a list of layer names + minimum versions only)&lt;br /&gt;
** Add dependency/version check to sanity.bbclass&lt;br /&gt;
* Consider integrating Jeremy Puhlman&#039;s remote layers patch (see comments below) [Ke]&lt;br /&gt;
* Tool which merges multiple layer components in one repo (e.g. the poky repo situation) [Paul/Ke]&lt;br /&gt;
** Definition file that indicates what components come from where (git remote URI as well as subdirectory of that repo, and perhaps an optional pegged branch/rev?)&lt;br /&gt;
** For non-pegged components, may need to actually record latest revision integrated from the component?&lt;br /&gt;
** Simplify fetching and applying changes from upstream components onto the merged repo&lt;br /&gt;
** Enable splitting of a patch into separate parts for different components (use splitdiff for this?)&lt;br /&gt;
** Could be initially created with git-stitch-repo? (Depends on whether you want the history)&lt;br /&gt;
* Tool to merge (flatten) several layers into one [Paul/Dexuan]&lt;br /&gt;
** Take current layer config and apply all .bbappend / remove overridden .bb files and output to a separate directory&lt;br /&gt;
&lt;br /&gt;
=== Future tasks ===&lt;br /&gt;
&lt;br /&gt;
Nice to have - may be added in 1.1 time allowing but not mandatory:&lt;br /&gt;
&lt;br /&gt;
* Break out / make accessible functionality from OE&#039;s newcollection.bbclass to allow splitting recipes out to another layer&lt;br /&gt;
* Able to visualise dependencies between layers&lt;br /&gt;
* bitbake -e on steroids to highlight differences due to layer changes? (long term goal)&lt;br /&gt;
* Recipe maintenance tools - this is long term&lt;br /&gt;
&lt;br /&gt;
== Brainstorming submissions ==&lt;br /&gt;
&lt;br /&gt;
=== Richard Purdie ===&lt;br /&gt;
* There is no dependency information between layers (layer X depends on layer Y and Z)&lt;br /&gt;
* There is no version information present (layer X needs version A of layer Y)&lt;br /&gt;
* There is no layer &amp;quot;ABI&amp;quot; version number present in layers&lt;br /&gt;
* Layer specific sanity checks? (other types of sanity checks on Yocto 1.1 roadmap)&lt;br /&gt;
* Ability to fetch layers from other repositories&lt;br /&gt;
** Multi SCM?&lt;br /&gt;
** Use bitbake fetcher?&lt;br /&gt;
* Ability to generate repositories representing composited layers (Poky, RP has hacky scripts)&lt;br /&gt;
* Tool to seperate patch into one for different composited parts&lt;br /&gt;
* Ability to include partial components of repositories (e.g. only beagleboard from meta-ti)&lt;br /&gt;
* Tool to merge (flatten) several layers into one&lt;br /&gt;
* Able to visualise dependencies between layers&lt;br /&gt;
* When bitbake prints banner of branch/commit, need to cover all layer components present&lt;br /&gt;
* bitbake -e on steroids to highlight differences due to layer changes? (long term goal)&lt;br /&gt;
&lt;br /&gt;
Implementation thoughts:&lt;br /&gt;
&lt;br /&gt;
* This layer tooling probably belongs at a higher level on the stack than bitbake itself&lt;br /&gt;
* Maybe need to split into &amp;quot;bootstrap&amp;quot; steps (e.g where pseudo is established, layers downloaded etc)&lt;br /&gt;
* Need some kind of config file defining layer&#039;s properties or at least enhance layer.conf significantly&lt;br /&gt;
* git submodules and repo should be looked at but due to specific needs and ability to control tool evolution, likely need own tool.&lt;br /&gt;
** Paul says: am guessing a blocker for submodules (other than the fact that they look painful to deal with) is that they don&#039;t help us with the &amp;quot;part of another repo&amp;quot; thing; as well as being read-only.&lt;br /&gt;
&lt;br /&gt;
=== Martin Jansa ===&lt;br /&gt;
* Parsing error when ie foo_1.0.bbappend is found, but foo_1.0.bb in upper layer was upgraded to foo_1.1.bb&lt;br /&gt;
&lt;br /&gt;
=== Paul Eggleton / Chris Larson ===&lt;br /&gt;
&lt;br /&gt;
* Show easily which recipes are being used and which are overridden. We have bitbake-layers, but this clearly needs some extension. I think long term we would want to be able to analyse overrides across a set of layers to figure out where common stuff in non-core layers needs pushing up to oe-core. &lt;br /&gt;
&lt;br /&gt;
* Allow layer maintainers to easily pull a version of a recipe into their own layer if it&#039;s about to be removed from oe-core - with some complicated recipes that could be painful/annoying to pick out all the necessary files by hand. We have newcollection.bbclass in OE which does this, may be useful to break it out to a separate script somehow.&lt;br /&gt;
&lt;br /&gt;
* Recipe maintenance tools that take advantage of bitbake&#039;s parsing logic to aid blanket updates (e.g. variable renames). This should help mitigate the increased difficulty of having recipes spread out over multiple repositories when doing these kinds of updates.&lt;br /&gt;
** Chris says: This is non-trivial, but doable given zecke&#039;s ast implementation.  I expect we need an API function in the parse package to parse a string/file and hand back the AST nodes, which we could then manipulate, and write code to generate the file back out of the ast.&lt;br /&gt;
&lt;br /&gt;
=== Jeremy Puhlman ===&lt;br /&gt;
&lt;br /&gt;
[http://lists.linuxtogo.org/pipermail/openembedded-core/2011-April/001708.html Patch to add remote layers]&lt;br /&gt;
&lt;br /&gt;
Paul says: a good start but naturally we want to avoid the bits that hard-code variable values. I wonder about situations where people want their own versions of layers or to share remote layers (e.g. between an oe-core setup and a poky setup); however people can just use local layers for this.&lt;br /&gt;
&lt;br /&gt;
   Jeremy says: In reality they are setting &amp;quot;reasonable&amp;quot; defaults. Hardcoding implies something that is unchangeable. All the values are &amp;quot;set if unset&amp;quot;, so they can be changed in the bblayers.conf&lt;br /&gt;
   file. Prior to the introduction of layers, all the values were hardcoded, just in a bitbake.conf file, so you always had working fetchers. With out that the fetchers are basically broken until  &lt;br /&gt;
   after you have loaded up the layers. Given the fact that nearly every bitbake.conf file contains the same settings for defining fetchcmd and a like, simply having a reasonable default setting for &lt;br /&gt;
   the things the fetchers need is not really that terrible an idea irrespective of the remote layering.&lt;br /&gt;
&lt;br /&gt;
   As for the second question. I have some content tools that I am cleaning up that basically provide methods for defining layers and groups of layers together for mirroring and sharing. That might   &lt;br /&gt;
   address what your talking about there. They work along with the patch posted here, but could be modified to output things a bit differently if needed.&lt;br /&gt;
&lt;br /&gt;
Richard says:&lt;br /&gt;
http://lists.linuxtogo.org/pipermail/openembedded-core/2011-May/001940.html&lt;/div&gt;</summary>
		<author><name>Jpuhlman</name></author>
	</entry>
</feed>