<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.openembedded.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mwelchuk</id>
	<title>Openembedded.org - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.openembedded.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mwelchuk"/>
	<link rel="alternate" type="text/html" href="https://www.openembedded.org/wiki/Special:Contributions/Mwelchuk"/>
	<updated>2026-05-06T13:29:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Commit_Patch_Message_Guidelines&amp;diff=9895</id>
		<title>Commit Patch Message Guidelines</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Commit_Patch_Message_Guidelines&amp;diff=9895"/>
		<updated>2017-11-13T14:23:02Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: &amp;quot;Submitting Patches&amp;quot; documentation has moved. There&amp;#039;s also an HTML version provided now.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This set of guidelines is intended to help both the developer and reviewers of&lt;br /&gt;
changes determine reasonable patch headers and change commit messages. Often&lt;br /&gt;
when working with the code, you forget that not everyone is as familiar with the&lt;br /&gt;
problem and/or fix as you are. Often the next person in the code doesn&#039;t&lt;br /&gt;
understand what or why something is done so they quickly look at patch header&lt;br /&gt;
and commit messages. Unless these messages are clear it will be difficult to&lt;br /&gt;
understand the relevance of a given change and how future changes may impact&lt;br /&gt;
previous decisions.&lt;br /&gt;
&lt;br /&gt;
This policy refers both to patches that are being applied by recipes as well as&lt;br /&gt;
commit messages that are part of the source control system, usually git. A patch&lt;br /&gt;
file needs a header in order to describe the specific changes that are made&lt;br /&gt;
within that patch, while a commit message describes one or more changes to the&lt;br /&gt;
overall project or system. Both the patch headers and commit messages require&lt;br /&gt;
the same attention and basic details, however the purposes of the messages are&lt;br /&gt;
slightly different. A commit message documents all of the changes made as part&lt;br /&gt;
of a commit, while a patch header documents items specific to a single patch. In&lt;br /&gt;
many cases the patch header can also be used as the commit message.&lt;br /&gt;
&lt;br /&gt;
This policy does not cover the testing of the changes, the technical criteria&lt;br /&gt;
for accepting a patch, nor the style requirements for the technical changes.  See &lt;br /&gt;
the [http://www.openembedded.org/wiki/Styleguide Styleguide] for more information on style requirements.&lt;br /&gt;
&lt;br /&gt;
By following these guidelines we will have a better record of the problems and&lt;br /&gt;
solutions made over the course of development. It will also help establish a&lt;br /&gt;
clear provenance of all of the code and changes.&lt;br /&gt;
&lt;br /&gt;
   Draft version, changes from last approved version:&lt;br /&gt;
   * Revised General Information section to correct broken link&lt;br /&gt;
   * Clarify the &#039;&#039;Developer&#039;s Certificate of Origin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
&lt;br /&gt;
While specific to the Linux kernel development, the following could also be&lt;br /&gt;
considered a general guide for any Open Source development:&lt;br /&gt;
&lt;br /&gt;
https://www.linux.com/publications/how-participate-linux-community&lt;br /&gt;
&lt;br /&gt;
Many of the guidelines in this document are related to the items referenced in&lt;br /&gt;
the link above.&lt;br /&gt;
&lt;br /&gt;
Pay particular attention to section 5.3 that talks about patch preparation.&lt;br /&gt;
The key thing to remember is to break up your changes into logical sections.&lt;br /&gt;
Otherwise you run the risk of not being able to even explain the purpose of a&lt;br /&gt;
change in the patch headers!&lt;br /&gt;
&lt;br /&gt;
In addition section 5.4 explains the purpose of the Signed-off-by: tag line.  The&lt;br /&gt;
signed-off-by: tag line is the &#039;&#039;Developer&#039;s Certificate of Origin&#039;&#039;.  The full text&lt;br /&gt;
of which can be found in the Linux kernel&#039;s Documentation/SubmittingPatches.&lt;br /&gt;
&lt;br /&gt;
Pay particular attention to section 11 of &lt;br /&gt;
&lt;br /&gt;
https://www.kernel.org/doc/html/latest/process/submitting-patches.html&lt;br /&gt;
&lt;br /&gt;
Due to the importance of the &#039;&#039;Developer&#039;s Certificate of Origin&#039;&#039;, part of section 11&lt;br /&gt;
is copied below:&lt;br /&gt;
&lt;br /&gt;
   The sign-off is a simple line at the end of the explanation for the&lt;br /&gt;
   patch, which certifies that you wrote it or otherwise have the right to&lt;br /&gt;
   pass it on as an open-source patch.  The rules are pretty simple: if you&lt;br /&gt;
   can certify the below:&lt;br /&gt;
   &lt;br /&gt;
   Developer&#039;s Certificate of Origin 1.1&lt;br /&gt;
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;
   &lt;br /&gt;
   By making a contribution to this project, I certify that:&lt;br /&gt;
   &lt;br /&gt;
        (a) The contribution was created in whole or in part by me and I&lt;br /&gt;
            have the right to submit it under the open source license&lt;br /&gt;
            indicated in the file; or&lt;br /&gt;
   &lt;br /&gt;
        (b) The contribution is based upon previous work that, to the best&lt;br /&gt;
            of my knowledge, is covered under an appropriate open source&lt;br /&gt;
            license and I have the right under that license to submit that&lt;br /&gt;
            work with modifications, whether created in whole or in part&lt;br /&gt;
            by me, under the same open source license (unless I am&lt;br /&gt;
            permitted to submit under a different license), as indicated&lt;br /&gt;
            in the file; or&lt;br /&gt;
   &lt;br /&gt;
        (c) The contribution was provided directly to me by some other&lt;br /&gt;
            person who certified (a), (b) or (c) and I have not modified&lt;br /&gt;
            it.&lt;br /&gt;
   &lt;br /&gt;
        (d) I understand and agree that this project and the contribution&lt;br /&gt;
            are public and that a record of the contribution (including all&lt;br /&gt;
            personal information I submit with it, including my sign-off) is&lt;br /&gt;
            maintained indefinitely and may be redistributed consistent with&lt;br /&gt;
            this project or the open source license(s) involved.&lt;br /&gt;
   &lt;br /&gt;
   then you just add a line saying::&lt;br /&gt;
   &lt;br /&gt;
       Signed-off-by: Random J Developer &amp;lt;random@developer.example.org&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   using your real name (sorry, no pseudonyms or anonymous contributions.)&lt;br /&gt;
&lt;br /&gt;
== Patch Headers and Commit Messages ==&lt;br /&gt;
&lt;br /&gt;
There seems to always be a question or two surrounding what a person&lt;br /&gt;
should put in a patch header, or commit message.&lt;br /&gt;
&lt;br /&gt;
The general rules always apply, those being that there is a single line&lt;br /&gt;
short log or summary of the change (think of this as the subject when the patch&lt;br /&gt;
is e-mailed), and then the more detailed long log, and closure with tag lines&lt;br /&gt;
such as &amp;quot;Signed-off-by:&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Development ==&lt;br /&gt;
&lt;br /&gt;
A minimal patch or commit message would be of the format:&lt;br /&gt;
&lt;br /&gt;
   Short log / Statement of what needed to be changed.&lt;br /&gt;
   &lt;br /&gt;
   (Optional pointers to external resources, such as defect tracking)&lt;br /&gt;
   &lt;br /&gt;
   The intent of your change.&lt;br /&gt;
   &lt;br /&gt;
   (Optional, if it&#039;s not clear from above) how your change resolves the&lt;br /&gt;
   issues in the first part.&lt;br /&gt;
   &lt;br /&gt;
   Tag line(s) at the end.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   foobar: Adjusted the foo setting in bar&lt;br /&gt;
   &lt;br /&gt;
   When using foobar on systems with less than a gigabyte of RAM common&lt;br /&gt;
   usage patterns often result in an Out-of-memory condition causing&lt;br /&gt;
   slowdowns and unexpected application termination.&lt;br /&gt;
   &lt;br /&gt;
   Low-memory systems should continue to function without running into&lt;br /&gt;
   memory-starvation conditions with minimal cost to systems with more&lt;br /&gt;
   available memory.  High-memory systems will be less able to use the&lt;br /&gt;
   full extent of the system, a dynamically tunable option may be best,&lt;br /&gt;
   long-term.&lt;br /&gt;
   &lt;br /&gt;
   The foo setting in bar was decreased from X to X-50% in order to&lt;br /&gt;
   ensure we don&#039;t exhaust all system memory with foobar threads.&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Joe Developer &amp;lt;joe.developer@example.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimal commit message is good for new code development and simple changes.&lt;br /&gt;
&lt;br /&gt;
The single short log message indicates what needed to be changed. It should&lt;br /&gt;
begin with an indicator as to the primary item changed by this work,&lt;br /&gt;
followed by a short summary of the change. In the above case we&#039;re indicating&lt;br /&gt;
that we&#039;ve changed the &amp;quot;foobar&amp;quot; item, by &amp;quot;adjusting the foo setting in bar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The single short log message is analogous to the git &amp;quot;commit summary&amp;quot;. While no&lt;br /&gt;
maximum line length is specified by this policy, it is suggested that it remains&lt;br /&gt;
under 78 characters wherever possible.&lt;br /&gt;
&lt;br /&gt;
Optionally, you may include pointers to defects this change corrects. Unless&lt;br /&gt;
the defect format is specified by the component you are modifying, it is&lt;br /&gt;
suggested that you use a full URL to specify the reference to the defect&lt;br /&gt;
information. Generally these pointers will precede any long description, but as&lt;br /&gt;
an optional item it may be after the long description.&lt;br /&gt;
&lt;br /&gt;
For example, you might refer to an open source defect in the RPM project:&lt;br /&gt;
&lt;br /&gt;
   rpm: Adjusted the foo setting in bar&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;nowiki&amp;gt;[RPM Ticket #65] -- http://rpm5.org/cvs/tktview?tn=65,5&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   The foo setting in bar was decreased from X to X-50% in order to&lt;br /&gt;
   ensure we don&#039;t exhaust all system memory with foobar threads.&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Joe Developer &amp;lt;joe.developer@example.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You must then have a full description of the change. Specifying the intent of&lt;br /&gt;
your change and if necessary how the change resolves the issue.&lt;br /&gt;
&lt;br /&gt;
As mentioned above this is intended to answer the &amp;quot;what were you thinking&amp;quot;&lt;br /&gt;
questions down the road and to know what other impacts are likely to&lt;br /&gt;
result of the change needs to be reverted. It also allows for better&lt;br /&gt;
solutions if someone comes along later and agrees with paragraph 1&lt;br /&gt;
(the problem statement) and either disagrees with paragraph 2&lt;br /&gt;
(the design) or paragraph 3 (the implementation).&lt;br /&gt;
&lt;br /&gt;
Finally one or more tag lines should exist. Each developer responsible&lt;br /&gt;
for working on the patch is responsible for adding a Signed-off-by: tag line.&lt;br /&gt;
&lt;br /&gt;
It is not acceptable to have an empty or non-existent header, or just a single&lt;br /&gt;
line message. The summary and description is required for all changes.&lt;br /&gt;
&lt;br /&gt;
== Importing from Elsewhere ==&lt;br /&gt;
&lt;br /&gt;
If you are importing work from somewhere else, such as a cherry-pick from&lt;br /&gt;
another repository or a code patch pulled from a mailing list, the minimum patch&lt;br /&gt;
header or commit message is not enough. It does not clearly establish the&lt;br /&gt;
provenance of the code.&lt;br /&gt;
&lt;br /&gt;
The following specifies the additional guidelines required for importing changes&lt;br /&gt;
from elsewhere.&lt;br /&gt;
&lt;br /&gt;
By default you should keep the original author&#039;s summary and description,&lt;br /&gt;
along with any tag lines such as, &amp;quot;Signed-off-by:&amp;quot;. If the original change that&lt;br /&gt;
was imported does not have a summary and/or commit message from the original&lt;br /&gt;
author, it is still your responsibility to add the summary and commit message to&lt;br /&gt;
the patch header. Just as if you wrote the code, you should be able to clearly&lt;br /&gt;
explain what the change does. It is also necessary to document the original&lt;br /&gt;
author of the change. You should indicate the original author by simply stating&lt;br /&gt;
&amp;quot;written by&amp;quot; or &amp;quot;posted to the ... mailing list by&amp;quot;. You must not add a&lt;br /&gt;
Signed-off-by: tag line with their name, only the original author may add their&lt;br /&gt;
own Signed-off-by: tag line.&lt;br /&gt;
&lt;br /&gt;
It is also required that the origin of the work be fully documented. The origin&lt;br /&gt;
should be specified as part of the commit message in a way that an average&lt;br /&gt;
developer would be able to track down the original code. URLs should reference&lt;br /&gt;
original authoritative sources and not mirrors.&lt;br /&gt;
&lt;br /&gt;
If changes were required to resolve conflicts, they should be documented as&lt;br /&gt;
well.  When incorporating a commit or patch from an external source, changes to&lt;br /&gt;
the functionality not related to resolving conflicts should be made in a&lt;br /&gt;
second commit or patch.  This preserves the original external commit, and makes&lt;br /&gt;
the modifications clearly visible, and prevents confusion over the author of the&lt;br /&gt;
code.&lt;br /&gt;
&lt;br /&gt;
Finally you must add a &amp;quot;Signed-off-by:&amp;quot; tag line to indicate that you worked&lt;br /&gt;
with the patch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Example: Importing from Elsewhere Unmodified ===&lt;br /&gt;
&lt;br /&gt;
For example, if you were to pull in the patch from the above example unmodified:&lt;br /&gt;
&lt;br /&gt;
   foobar: Adjusted the foo setting in bar&lt;br /&gt;
   &lt;br /&gt;
   When using foobar on systems with less than a gigabyte of RAM common&lt;br /&gt;
   usage patterns often result in an Out-of-memory condition causing&lt;br /&gt;
   slowdowns and unexpected application termination.&lt;br /&gt;
   &lt;br /&gt;
   Low-memory systems should continue to function without running into&lt;br /&gt;
   memory-starvation conditions with minimal cost to systems with more&lt;br /&gt;
   available memory.  High-memory systems will be less able to use the&lt;br /&gt;
   full extent of the system, a dynamically tunable option may be best,&lt;br /&gt;
   long-term.&lt;br /&gt;
   &lt;br /&gt;
   The foo setting in bar was decreased from X to X-50% in order to&lt;br /&gt;
   ensure we don&#039;t exhaust all system memory with foobar threads.&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Joe Developer &amp;lt;joe.developer@example.com&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   The patch was imported from the OpenEmbedded git server&lt;br /&gt;
   (&amp;lt;nowiki&amp;gt;git://git.openembedded.org/openembedded&amp;lt;/nowiki&amp;gt;) as of commit id&lt;br /&gt;
   b65a0e0c84cf489bfa00d6aa6c48abc5a237100f.&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Your Name &amp;lt;your.name@openembedded.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above example shows a clear way for a developer to find the original source&lt;br /&gt;
of the change. It indicates that the OpenEmbedded developer simply integrated&lt;br /&gt;
the change into the system without making any further modifications.&lt;br /&gt;
&lt;br /&gt;
=== Example: Importing from Elsewhere Modified ===&lt;br /&gt;
&lt;br /&gt;
When importing a patch, occasionally changes have to be made in order to resolve&lt;br /&gt;
conflicts.  The following is an example of the commit message when the item needed&lt;br /&gt;
to be modified:&lt;br /&gt;
&lt;br /&gt;
   foobar: Adjusted the foo setting in bar&lt;br /&gt;
   &lt;br /&gt;
   When using foobar on systems with less than a gigabyte of RAM common&lt;br /&gt;
   usage patterns often result in an Out-of-memory condition causing&lt;br /&gt;
   slowdowns and unexpected application termination.&lt;br /&gt;
   &lt;br /&gt;
   Low-memory systems should continue to function without running into&lt;br /&gt;
   memory-starvation conditions with minimal cost to systems with more&lt;br /&gt;
   available memory.  High-memory systems will be less able to use the&lt;br /&gt;
   full extent of the system, a dynamically tunable option may be best,&lt;br /&gt;
   long-term.&lt;br /&gt;
   &lt;br /&gt;
   The foo setting in bar was decreased from X to X-50% in order to&lt;br /&gt;
   ensure we don&#039;t exhaust all system memory with foobar threads.&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Joe Developer &amp;lt;joe.developer@example.com&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   The patch was imported from the OpenEmbedded git server&lt;br /&gt;
   (&amp;lt;nowiki&amp;gt;git://git.openembedded.org/openembedded&amp;lt;/nowiki&amp;gt;) as of commit id&lt;br /&gt;
   b65a0e0c84cf489bfa00d6aa6c48abc5a237100f.&lt;br /&gt;
   &lt;br /&gt;
   A previous change had modified the memory threshold calculation,&lt;br /&gt;
   causing a conflict.  The conflict was resolved by preserving the&lt;br /&gt;
   memory threshold calculation from the existing implementation.&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Your Name &amp;lt;your.name@openembedded.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Patch Header Recommendations ==&lt;br /&gt;
&lt;br /&gt;
In order to keep track of patches and ultimately reduce the number of patches&lt;br /&gt;
that are required to be maintained, we need to track the status of the patches&lt;br /&gt;
that are created. The following items are specific to patches applied by recipes.&lt;br /&gt;
&lt;br /&gt;
In addition to the items mentioned above, we also want to track if it&#039;s&lt;br /&gt;
appropriate to get this particular patch into the upstream project. Since we&lt;br /&gt;
want to track this information, we need a consistent tag and status indicator&lt;br /&gt;
that can be searched.&lt;br /&gt;
&lt;br /&gt;
While adding this tracking information to the patch headers is currently&lt;br /&gt;
optional, it is highly recommended and some maintainers may require it.  It is&lt;br /&gt;
optional at this time so that it can be evaluated as to its usefulness over&lt;br /&gt;
time.  Existing patches will be updated with the tag as they are modified.&lt;br /&gt;
&lt;br /&gt;
As mentioned in the above, be sure to include any URL to bug tracking, mailing&lt;br /&gt;
lists or other reference material pertaining to the patch. Then add a new tag&lt;br /&gt;
&amp;quot;Upstream-Status:&amp;quot; which contains one of the following items:&lt;br /&gt;
&lt;br /&gt;
   &#039;&#039;&#039;Pending&#039;&#039;&#039;&lt;br /&gt;
   - No determination has been made yet or not yet submitted to upstream&lt;br /&gt;
&lt;br /&gt;
   &#039;&#039;&#039;Submitted&#039;&#039;&#039; [where]&lt;br /&gt;
   - Submitted to upstream, waiting approval&lt;br /&gt;
   - Optionally include where it was submitted, such as the author, mailing&lt;br /&gt;
     list, etc.&lt;br /&gt;
&lt;br /&gt;
   &#039;&#039;&#039;Accepted&#039;&#039;&#039;&lt;br /&gt;
   - Accepted in upstream, expect it to be removed at next update, include&lt;br /&gt;
     expected version info&lt;br /&gt;
&lt;br /&gt;
   &#039;&#039;&#039;Backport&#039;&#039;&#039;&lt;br /&gt;
   - Backported from new upstream version, because we are at a fixed version,&lt;br /&gt;
     include upstream version info&lt;br /&gt;
&lt;br /&gt;
   &#039;&#039;&#039;Denied&#039;&#039;&#039;&lt;br /&gt;
   - Not accepted by upstream, include reason in patch&lt;br /&gt;
&lt;br /&gt;
   &#039;&#039;&#039;Inappropriate [reason]&#039;&#039;&#039;&lt;br /&gt;
   - The patch is not appropriate for upstream, include a brief reason on the&lt;br /&gt;
     same line enclosed with []&lt;br /&gt;
     reason can be:&lt;br /&gt;
       not author (You are not the author and do not intend to upstream this,&lt;br /&gt;
                   source must be listed in the comments)&lt;br /&gt;
       native&lt;br /&gt;
       licensing&lt;br /&gt;
       configuration&lt;br /&gt;
       enable feature&lt;br /&gt;
       disable feature&lt;br /&gt;
       bugfix (add bug URL here)&lt;br /&gt;
       embedded specific&lt;br /&gt;
       no upstream (the upstream is no longer available -- dead project)&lt;br /&gt;
       other (give details in comments)&lt;br /&gt;
&lt;br /&gt;
The various &amp;quot;Inappropriate [reason]&amp;quot; status items are meant to indicate that the&lt;br /&gt;
person responsible for adding this patch to the system does not intend to&lt;br /&gt;
upstream the patch for a specific reason.  Unless otherwise noted, another&lt;br /&gt;
person could submit this patch to the upstream, if they do the status should be&lt;br /&gt;
changed to &amp;quot;Submitted [where]&amp;quot;, and an additional Signed-off-by: line added to&lt;br /&gt;
the patch by the person claiming responsibility for upstreaming.&lt;br /&gt;
&lt;br /&gt;
For example, if the patch has been submitted upstream:&lt;br /&gt;
&lt;br /&gt;
   rpm: Adjusted the foo setting in bar&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;nowiki&amp;gt;[RPM Ticket #65] -- http://rpm5.org/cvs/tktview?tn=65,5&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   The foo setting in bar was decreased from X to X-50% in order to&lt;br /&gt;
   ensure we don&#039;t exhaust all system memory with foobar threads.&lt;br /&gt;
   &lt;br /&gt;
   Upstream-Status: Submitted [rpm5-devel@rpm5.org]&lt;br /&gt;
   &lt;br /&gt;
   Signed-off-by: Joe Developer &amp;lt;joe.developer@example.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A future commit can change the value to &amp;quot;Accepted&amp;quot; or &amp;quot;Denied&amp;quot; as appropriate.&lt;br /&gt;
&lt;br /&gt;
=== CVE Patches ===&lt;br /&gt;
&lt;br /&gt;
In order to have a better control of vulnerabilities, patches that fix CVEs must contain the &amp;quot;CVE:&amp;quot; tag. This tag list all CVEs fixed by the patch. If more than one CVE is fixed, separate them using spaces.&lt;br /&gt;
&lt;br /&gt;
==== Example: CVE patch header ====&lt;br /&gt;
&lt;br /&gt;
This should be the header of patch that fixes grub2 CVE-2015-8370:&lt;br /&gt;
&lt;br /&gt;
   grub2: Fix CVE-2015-8370&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;nowiki&amp;gt;[No upstream tracking] -- https://bugzilla.redhat.com/show_bug.cgi?id=1286966&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   Back to 28; Grub2 Authentication&lt;br /&gt;
   &lt;br /&gt;
   Two functions suffer from integer underflow fault; the grub_username_get() and grub_password_get()located in&lt;br /&gt;
   grub-core/normal/auth.c and lib/crypto.c respectively. This can be exploited to obtain a Grub rescue shell.&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;nowiki&amp;gt;Upstream-Status: Accepted [http://git.savannah.gnu.org/cgit/grub.git/commit/?id=451d80e52d851432e109771bb8febafca7a5f1f2]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   CVE: CVE-2015-8370&lt;br /&gt;
   Signed-off-by: Joe Developer &amp;lt;joe.developer@example.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors in Patch and Commit Messages ==&lt;br /&gt;
&lt;br /&gt;
- Short log does not start with the file or component being modified.  Such as&lt;br /&gt;
&amp;quot;foo: Update to new upstream version 5.8.9&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- Avoid starting the summary line with a capital letter, unless the component&lt;br /&gt;
being referred to also begins with a capital letter.&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t have one huge patch, split your change into logical subparts. It&#039;s&lt;br /&gt;
easier to track down problems afterward using tools such as git bisect. It also&lt;br /&gt;
makes it easy for people to cherry-pick changes into things like stable branches.&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t simply translate your change into English for a commit log. The log&lt;br /&gt;
&amp;quot;Change compare from zero to one&amp;quot; is bad because it describes only the code&lt;br /&gt;
change in the patch; we can see that from reading the patch itself. Let the code&lt;br /&gt;
tell the story of the mechanics of the change (as much as possible), and let&lt;br /&gt;
your comment tell the other details -- i.e. what the problem was, how it&lt;br /&gt;
manifested itself (symptoms), and if necessary, the justification for why the&lt;br /&gt;
fix was done in manner that it was.  In other words, the long commit message&lt;br /&gt;
must describe *why* the change was needed (instead of what has changed).&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t start your commit log with &amp;quot;This patch...&amp;quot; -- we already know it is a patch.&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t repeat your short log in the long log. If you really really don&#039;t have&lt;br /&gt;
anything new and informational to add in as a long log, then don&#039;t put a long&lt;br /&gt;
log at all. This should be uncommon -- i.e. the only acceptable cases for no&lt;br /&gt;
long log would be something like &amp;quot;Documentation/README: Fix spelling mistakes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t put absolute paths to source files that are specific to your site, i.e.&lt;br /&gt;
if you get a compile error on &amp;quot;fs/exec.c&amp;quot; then tidy up the parts of the compile&lt;br /&gt;
output to just show that portion. We don&#039;t need to see that it was&lt;br /&gt;
/home/wally/src/git/oe-core/meta/classes/insane.bbclass or similar - that full&lt;br /&gt;
path has no value to others. Always reduce the path to something more&lt;br /&gt;
meaningful, such as oe-core/meta/classes/insane.bbclass.&lt;br /&gt;
&lt;br /&gt;
- Always use the most significant ramification of the change in the words of&lt;br /&gt;
your subject/shortlog. For example, don&#039;t say &amp;quot;fix compile warning in foo&amp;quot; when&lt;br /&gt;
the compiler warning was really telling us that we were dereferencing complete&lt;br /&gt;
garbage off in the weeds that could in theory cause an OOPS under some&lt;br /&gt;
circumstances. When people are choosing commits for backports to stable or&lt;br /&gt;
distro kernels, the shortlog will be what they use for an initial sorting&lt;br /&gt;
selection. If they see &amp;quot;Fix possible OOPS in....&amp;quot; then these people will look&lt;br /&gt;
closer, whereas they most likely will skip over simple warning fixes.&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t put in the full 20 or more lines of a backtrace when really it is just&lt;br /&gt;
the last 5 or so function calls that are relevant to the crash/fix. If the entry&lt;br /&gt;
point, or start of the trace is relevant (i.e. a syscall or similar), you can&lt;br /&gt;
leave that, and then replace a chunk of the intermediate calls in the middle&lt;br /&gt;
with a single [...]&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t include timestamps or other unnecessary information, unless they are&lt;br /&gt;
relevant to the situation (i.e. indicating an unacceptable delay in a driver&lt;br /&gt;
initialization etc.)&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t use links to temporary resources like pastebin and friends. The commit&lt;br /&gt;
message may be read long after this resource timed out.&lt;br /&gt;
&lt;br /&gt;
- Don&#039;t reference mirrors, but instead always reference original authoritative&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
- Avoid punctuation in the short log.&lt;br /&gt;
&lt;br /&gt;
[[Category:Policy]]&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Adding_a_new_Machine&amp;diff=2221</id>
		<title>Adding a new Machine</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Adding_a_new_Machine&amp;diff=2221"/>
		<updated>2010-03-10T14:36:36Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kernel configuration ==&lt;br /&gt;
&lt;br /&gt;
# Find out which kernel version your custom kernel is (e.g. 2.6.27)&lt;br /&gt;
# Extract the diff: &amp;lt;tt&amp;gt;diff -Nurd linux-2.6.27/ linux-2.6.27-mymachine/&amp;lt;/tt&amp;gt; (this step is optional if you already have a diff) &lt;br /&gt;
# Add &amp;lt;tt&amp;gt;DEFAULT_PREFERENCE_mymachine = &amp;quot;1&amp;quot;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;SRC_URI_append_mymachine = &amp;quot;file://mymachine.diff&amp;quot;&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;linux_2.6.27.bb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Put &amp;lt;tt&amp;gt;defconfig&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;recipes/linux/linux-2.6.27/mymachine/defconfig&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you really, really need to be &#039;&#039;special&#039;&#039; (which you really don&#039;t need, but companies seem to feel better when their name is plastered all over the place e.g. &amp;lt;tt&amp;gt;linux-mycompany_2.6.27.bb&amp;lt;/tt&amp;gt;) you can create your &#039;&#039;own&#039;&#039; kernel recipe with the naming options you mentioned, then please use &amp;lt;tt&amp;gt;linux.inc&amp;lt;/tt&amp;gt; to the basics working well. If even that is not &#039;&#039;special&#039;&#039; enough, then well, you are on your own.&lt;br /&gt;
&lt;br /&gt;
By reusing a &amp;lt;tt&amp;gt;linux_2.6.xx&amp;lt;/tt&amp;gt; recipe you can easily see what kind of patches other machines are applying and how issues with that kernel get solved.&lt;br /&gt;
&lt;br /&gt;
== General steps and traps ==&lt;br /&gt;
&lt;br /&gt;
Most of the time people that add new hardware to OE go through something like this (ARM example):&lt;br /&gt;
&lt;br /&gt;
# Add &amp;lt;tt&amp;gt;mymachine.conf&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;linux-mymachine_2.6.xx.bb&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;openmymachine.conf&amp;lt;/tt&amp;gt; distro&lt;br /&gt;
# Complain toolchain doesn&#039;t build, copy over versions from angstrom to get it fixed&lt;br /&gt;
# Complain their device doesn&#039;t boot, change defconfig to support EABI to get it fixed&lt;br /&gt;
# Complain NFS doesn&#039;t work, change defconfig to get that fixed&lt;br /&gt;
&lt;br /&gt;
The toolchain problems wouldn&#039;t have been there if people had used an existing, working distro like angstrom, the kernel issues mentioned above are all handled automagically by linux.inc.&lt;br /&gt;
&lt;br /&gt;
So people, please start by reusing existing things and creating your own stuff &#039;&#039;&#039;when need arises&#039;&#039;&#039;, not when NIH arises.&lt;br /&gt;
&lt;br /&gt;
== Further comments and information ==&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openembedded.org/usermanual/usermanual.html#commonuse_new_machine Adding a new Machine], Chapter 5. Common Use-cases/tasks, OpenEmbedded User Manual&lt;br /&gt;
* where available, don&#039;t forget to provide an URL to the machine&#039;s homepage in the machine configs for those who want to know more about it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev]]&lt;br /&gt;
[[Category:Machine]]&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Documentation&amp;diff=2009</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Documentation&amp;diff=2009"/>
		<updated>2010-01-01T13:11:44Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: Undo revision 2008 by 194.8.75.155 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation that relates to Openembedded.&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openembedded.org/usermanual/html OE User manual] [http://docs.openembedded.org/usermanual/usermanual.pdf (pdf)]  [http://docs.openembedded.org/usermanual/usermanual.html (html single-page)]&lt;br /&gt;
* [http://docs.openembedded.org/bitbake/html/ Bitbake Manual]&lt;br /&gt;
* [http://www.pokylinux.org/doc/poky-handbook.html Poky Handbook]&lt;br /&gt;
&lt;br /&gt;
Articles about Openembedded:&lt;br /&gt;
* [http://bec-systems.com/site/tag/openembedded articles at BEC Systems]&lt;br /&gt;
** [http://bec-systems.com/site/456/capture-oe-source-changes How to Capture OE Source Code Changes to a Package]&lt;br /&gt;
&lt;br /&gt;
Guides and HowTos:&lt;br /&gt;
* [http://www.kernel-labs.org/files/openembedded-guide/openembedded-guide.html OpenEmbedded Guide by Example]&lt;br /&gt;
* [http://www.uv-ac.de/openembedded/ OpenEmbedded HowTo]&lt;br /&gt;
* [http://free-electrons.com/docs/openembedded/ Using OpenEmbedded to build embedded Linux distributions]&lt;br /&gt;
&lt;br /&gt;
[[Category:User]]&lt;br /&gt;
[[Category:Dev]]&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Required_software&amp;diff=1816</id>
		<title>Required software</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Required_software&amp;diff=1816"/>
		<updated>2009-11-05T09:59:14Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: Ccache is no longer recommended for use when using OpenEmbedded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OpenEmbedded&#039;s Software Requirements =&lt;br /&gt;
&lt;br /&gt;
This page is the reference of what software is needed.  But [[OEandYourDistro]] is likely much faster in getting you that software actually installed.&lt;br /&gt;
&lt;br /&gt;
To use the OE build system the following software is required on your system:&lt;br /&gt;
* [http://www.python.org/ Python] (Version 2.4.0 or later)&lt;br /&gt;
** Note that you may also need certain development files for Python e.g. for bitbake&#039;s setup.py to work. Depending on the distribution you use you may want to look for a package called &amp;quot;python-dev&amp;quot;, &amp;quot;python-devel&amp;quot;, or similar.&lt;br /&gt;
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ .  It is a &amp;quot;testing release&amp;quot; and is not mirrored on the GNU mirrors.)&lt;br /&gt;
* [http://www.gnu.org/software/m4/m4.html GNU m4]&lt;br /&gt;
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)&lt;br /&gt;
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)&lt;br /&gt;
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)&lt;br /&gt;
* [http://invisible-island.net/diffstat/diffstat.html diffstat]&lt;br /&gt;
* [http://developer.berlios.de/projects/bitbake bitbake]&lt;br /&gt;
&lt;br /&gt;
== Tools to download source files ==&lt;br /&gt;
* wget &lt;br /&gt;
* curl &lt;br /&gt;
* ftp&lt;br /&gt;
* [http://www.nongnu.org/cvs/ cvs]&lt;br /&gt;
* [http://subversion.tigris.org/ subversion]&lt;br /&gt;
* [http://git.or.cz/index.html git]&lt;br /&gt;
&lt;br /&gt;
== Tools to verify integrity of the downloaded sources ==&lt;br /&gt;
* md5sum&lt;br /&gt;
* sha256sum&lt;br /&gt;
&lt;br /&gt;
== Tools to unpack sources ==&lt;br /&gt;
* tar&lt;br /&gt;
* bzip2&lt;br /&gt;
* gzip&lt;br /&gt;
* unzip&lt;br /&gt;
&lt;br /&gt;
== Tools to build the various *-doc packages==&lt;br /&gt;
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]&lt;br /&gt;
** I don&#039;t know which of these is preferred&lt;br /&gt;
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets&lt;br /&gt;
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called &amp;quot;sgmltools-lite&amp;quot; too&lt;br /&gt;
* [http://sources.redhat.com/docbook-tools/ docbook-utils]&lt;br /&gt;
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES&lt;br /&gt;
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]&lt;br /&gt;
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)&lt;br /&gt;
&lt;br /&gt;
== Other packages ==&lt;br /&gt;
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x&lt;br /&gt;
* [http://www.gnu.org/software/bison/bison.html Bison]&lt;br /&gt;
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels&lt;br /&gt;
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))&lt;br /&gt;
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)&lt;br /&gt;
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)&lt;br /&gt;
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)&lt;br /&gt;
* help2man - Create simple man pages from --help output&lt;br /&gt;
&lt;br /&gt;
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.&lt;br /&gt;
&lt;br /&gt;
[[Category:User]]&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Getting_started_with_OE-Classic&amp;diff=1815</id>
		<title>Getting started with OE-Classic</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Getting_started_with_OE-Classic&amp;diff=1815"/>
		<updated>2009-11-05T09:58:30Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: We no longer suggest using ccache as it has been fingered for breaking builds&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up the toolchain and doing a build =&lt;br /&gt;
&lt;br /&gt;
== Directory Structure ==&lt;br /&gt;
The base directory of your Openembedded environment (&amp;lt;nowiki&amp;gt;/stuff/&amp;lt;/nowiki&amp;gt;) is the location where sources will be checked out (or unpacked).&lt;br /&gt;
&lt;br /&gt;
* You must choose a location with &#039;&#039;&#039;no symlinks above it&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If you work in a chrooted environment and have ccache installed it is highly recommended to &#039;su - &amp;lt;username&amp;gt;&#039; after you have chrooted. Compilation may fail because ccache needs a valid &amp;lt;nowiki&amp;gt;$HOME&amp;lt;/nowiki&amp;gt;, which is usually set when using a user account. It is recommended that ccache is not installed on systems used to build OpenEmbedded as it has been known to introduce other subtle build failures.&lt;br /&gt;
&lt;br /&gt;
To create the directory structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ mkdir -p /stuff/build/conf&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Obtaining BitBake ==&lt;br /&gt;
To start using OE, you must first obtain the build tool it needs: &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to run bitbake without installing it, as a sibling directory of &amp;lt;nowiki&amp;gt;openembedded/&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;build/&amp;lt;/nowiki&amp;gt; directories. Indeed, as bitbake is written in python it does not need to be compiled. You&#039;ll just have to set the PATH variable so that the [[BitBake]] tools are accessible (see [[#Setup the environment|Setup the environment]] section).&lt;br /&gt;
&lt;br /&gt;
===Using packages===&lt;br /&gt;
&lt;br /&gt;
There is a BitBake package available for more and more distros - see [[OEandYourDistro]].&lt;br /&gt;
&lt;br /&gt;
===Using releases===&lt;br /&gt;
&lt;br /&gt;
Visit [http://developer.berlios.de/projects/bitbake/ BitBake homepage] and download tarball with latest release. For normal usage we suggest using 1.8.x (stable branch) versions. Unpack it to &#039;&#039;&#039;/stuff/bitbake/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Obtaining OpenEmbedded using GIT ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: &#039;&#039;Once upon a time OpenEmbedded was using Monotone for version control. If you have an OE Monotone repository on your computer, you should replace it with the Git repository.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: &#039;&#039;These are only brief instructions. For a longer description about using Git with OpenEmbedded refer to [[Git]] and [[GitPhraseBook]].&lt;br /&gt;
&lt;br /&gt;
The OpenEmbedded project resides in a Git repository. You can find it at &#039;&#039;git://git.openembedded.org/openembedded&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Web interface is: http://cgit.openembedded.org/&lt;br /&gt;
&lt;br /&gt;
To obtain Openembedded:&lt;br /&gt;
# Install git&lt;br /&gt;
# Go to the base directory of your OpenEmbedded environment&lt;br /&gt;
 $ cd /stuff/&lt;br /&gt;
# Checkout the repository&lt;br /&gt;
 $ git clone git://git.openembedded.org/openembedded&lt;br /&gt;
&lt;br /&gt;
or for the firewall challenged try&lt;br /&gt;
 $ git clone http://repo.or.cz/r/openembedded.git&lt;br /&gt;
&lt;br /&gt;
This is the data you&#039;ll be using for all the work.&lt;br /&gt;
&lt;br /&gt;
=== Updating OpenEmbedded ===&lt;br /&gt;
The .dev branch of OE is updated very frequently (as much as several times an hour). The distro branches are not updated as much but still fairly often. It seems good practice to update your OE tree at least daily. To do this, run&lt;br /&gt;
 $ git pull&lt;br /&gt;
(note: this must be done in the directory created by the checkout of openembedded. On this page, this directory is &amp;lt;tt&amp;gt;/stuff/openembedded&amp;lt;/tt&amp;gt;, but my checkout generated a directory &amp;lt;tt&amp;gt;/stuff/openembedded&amp;lt;/tt&amp;gt;. Check the name of your subdir, and use the name on your machine in the following examples)&lt;br /&gt;
&lt;br /&gt;
== Create local configuration ==&lt;br /&gt;
It&#039;s now time to create your local configuration.&lt;br /&gt;
While you could copy the default local.conf.sample like that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
$ cp openembedded/conf/local.conf.sample build/conf/local.conf&lt;br /&gt;
$ vi build/conf/local.conf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is actually recommended to start smaller and keep local.conf.sample in the background and add entries from there step-by-step as you understand and need them. Please, do not just edit build/conf/local.conf.sample but actually READ it (read it and then edit).&lt;br /&gt;
&lt;br /&gt;
For building a .dev branch, in your &amp;lt;nowiki&amp;gt;local.conf&amp;lt;/nowiki&amp;gt; file, you should have at least the following three entries. Example for the Angstrom distribution and the Openmoko gta01 machine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BBFILES = &amp;quot;/stuff/openembedded/recipes/*/*.bb&amp;quot;&lt;br /&gt;
DISTRO = &amp;quot;angstrom-2008.1&amp;quot;&lt;br /&gt;
MACHINE = &amp;quot;om-gta01&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you choose to install OE in your home directory, modify local.conf to refer to the OE paths as  /home/&amp;lt;username&amp;gt;/ rather than ~/. It does not find the *.bb packages otherwise.&lt;br /&gt;
&lt;br /&gt;
== Setup the environment ==&lt;br /&gt;
One of the four command sets below will need to be run every time you open a terminal for development. (You can automate this in ~/.profile, /etc/profile, or perhaps use a script to set the necessary variables for using [[BitBake]].)&lt;br /&gt;
&lt;br /&gt;
If you followed the recommendation above to use [[BitBake]] from svn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ export BBPATH=/stuff/build:/stuff/openembedded&lt;br /&gt;
$ export PATH=/stuff/bitbake/bin:$PATH&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you installed [[BitBake]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ export BBPATH=/stuff/build:/stuff/openembedded&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternative syntax for those using the tcsh shell (e.g FreeBSD):&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ setenv PATH &amp;quot;/stuff/bitbake/bin:&amp;quot;$PATH&lt;br /&gt;
$ setenv BBPATH &amp;quot;/stuff/build:/stuff/openembedded:&amp;quot;$BBPATH&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start building ==&lt;br /&gt;
The primary interface to the build system is the &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt; command (see the bitbake users manual). &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt; will download and patch stuff from the network, so it helps if you are on a well connected machine.&lt;br /&gt;
&lt;br /&gt;
Note that you should issue all bitbake commands from inside of the &amp;lt;nowiki&amp;gt;build/&amp;lt;/nowiki&amp;gt; directory, or you should override TMPDIR to point elsewhere (by default it goes to &amp;lt;nowiki&amp;gt;tmp/&amp;lt;/nowiki&amp;gt; relative to the directory you run the tools in).&lt;br /&gt;
&lt;br /&gt;
Here are some example invocations:&lt;br /&gt;
&lt;br /&gt;
Building a single package (e.g. nano):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake nano&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Building package sets (e.g. task-base):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake task-base&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Special note for&#039;&#039; &amp;lt;nowiki&amp;gt;task-base&amp;lt;/nowiki&amp;gt;: you may need additional setup for building this very one task. More details in [[ZaurusKernels]]&lt;br /&gt;
&lt;br /&gt;
Building a group of packages and deploying them into a rootfs image:&lt;br /&gt;
&lt;br /&gt;
GPE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake x11-gpe-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
X11:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake x11-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OPIE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake opie-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;NOTE:&#039;&#039;&#039; kergoth says it will take around 10GB of disk space to build an opie or gpe image for one architecture.&amp;lt;br&amp;gt;&lt;br /&gt;
sledge says: You can reduce it to ~4GB by [[Advanced_configuration|INHERIT += &amp;quot;rm_work&amp;quot;]])&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;NOTE:&#039;&#039;&#039; if you are using your custom kernel - set &amp;quot;Use the ARM EABI to compile the kernel (AEABI)&amp;quot; option in &amp;quot;Kernel Features&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
See the /stuff/openembedded/recipes/meta/ directory if you&#039;re curious about what meta/task and image targets exist.&lt;br /&gt;
&lt;br /&gt;
Building every package in the repository (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; This will take a &#039;&#039;very&#039;&#039; long time and needs approx. 35 GB disk space):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake world&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Building a single package, bypassing the long parse step (and therefore its dependencies--use with care):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake -b /stuff/openembedded/recipes/blah/blah.bb&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[Useful targets]] for a description of some of the more useful meta-packages. You will typically need at least one of the base images (&amp;lt;nowiki&amp;gt;bootstrap-image&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;opie-image&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;gpe-image&amp;lt;/nowiki&amp;gt;), and if and only if you&#039;re building for an [http://wiki.openzaurus.org/Main_Page OpenZaurus] target requiring an installer image (such as C3000), an additional &amp;lt;nowiki&amp;gt;pivotboot-image&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Output of the build process (temporary files, log files and the binaries) all ends up in the &amp;lt;nowiki&amp;gt;tmp&amp;lt;/nowiki&amp;gt; directory.  Most interesting is probably the &amp;lt;nowiki&amp;gt;tmp/work/&amp;lt;/nowiki&amp;gt; directory.  Just have a look around the [[DirectoryStructure]].            &lt;br /&gt;
&lt;br /&gt;
Images generated by building package groups like &amp;lt;nowiki&amp;gt;opie-image&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;pivotboot-image&amp;lt;/nowiki&amp;gt; are placed in the &amp;lt;nowiki&amp;gt;tmp/deploy/images/&amp;lt;/nowiki&amp;gt; directory. Individual ipkg packages are put in &amp;lt;nowiki&amp;gt;tmp/deploy/ipk&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Adding Packages ==&lt;br /&gt;
# Create [[bbfile]].&lt;br /&gt;
# Try building it locally.&lt;br /&gt;
# Fix eventual problems.&lt;br /&gt;
# Send .[[bbfile]] or an [[OePatch]] to the [http://wiki.openembedded.net/index.php/Mailing_Lists openembedded-devel mailing list]. Please note that changes should comply with the [[Commit_Policy | commit policy]].&lt;br /&gt;
&lt;br /&gt;
= Problems =&lt;br /&gt;
Try to solve problems first by checking that you have done everything right, that nothing has changed from this description and that you have the latest code (see [[GitPhraseBook]]). Look also in the log file (referenced in any error message you will receive). If you still have problems, try checking [[PossibleFailures]] and [http://www.openembedded.org/wiki/OeFaq#builderrors common build errors].  &lt;br /&gt;
Above links are dead, you can try the [[:Category:FAQ]].  If problems persist, ask on [[IRC]] or in the [[Mailing lists|openembedded mailing list]].&lt;br /&gt;
&lt;br /&gt;
The Openembedded metadata is changing constantly.  This implies several things:&lt;br /&gt;
&lt;br /&gt;
# Once you have a &amp;quot;known good&amp;quot; version that works well on your system, keep it!  To update, clone a new copy; don&#039;t overwrite that working version until it&#039;s known to be safe.&lt;br /&gt;
# To resolve build problems, &amp;quot;git pull&amp;quot; is your good friend.  Many times, the issues will already be fixed in the current tree.&lt;br /&gt;
# Not all metadata updates cause the local caches to update correctly.  Sometimes you&#039;ll need to remove the &amp;quot;.../tmp&amp;quot; work directory and rebuild from scratch.&lt;br /&gt;
# Similar issues apply to the package sources you download.&lt;br /&gt;
&lt;br /&gt;
= Portability issues =&lt;br /&gt;
Make sure to set &amp;lt;nowiki&amp;gt;TARGET_OS&amp;lt;/nowiki&amp;gt; to something other than linux in local.conf if your host isn&#039;t linux.&lt;br /&gt;
&lt;br /&gt;
GNU extensions to tools are often required.  Symlink GNU patch, make, and cp (from fileutils), chmod, sed, find, tar, awk into your OE development path.&lt;br /&gt;
&lt;br /&gt;
FreeBSD 4 users: Perl 5.0 is too old.  A more recent perl must be available as &amp;lt;nowiki&amp;gt;/usr/bin/perl&amp;lt;/nowiki&amp;gt;.  Unfortunately just having more recent perl in the path isn&#039;t good enough.  Some scripts are hard-coded for &amp;lt;nowiki&amp;gt;/usr/bin/perl&amp;lt;/nowiki&amp;gt;.  You can test for which perl you&#039;re using by typing perl -v.  see /usr/ports/UPDATING for instructions on updating perl. Don&#039;t forget to do a use.perl port as instructed in /usr/ports/UPDATING&lt;br /&gt;
&lt;br /&gt;
FreeBSD users: Set &amp;lt;nowiki&amp;gt;BUILD_OS&amp;lt;/nowiki&amp;gt; in local.conf to freebsdN where N is your major version number.  At least the cross gcc wants this.&lt;br /&gt;
&lt;br /&gt;
FreeBSD users: The build process of glibc uses a very long command line at some places.  Increase ARG_MAX to at least 131072, by editing /usr/sys/sys/syslimits.h and recompile your kernel (and reboot).&lt;br /&gt;
&lt;br /&gt;
= Productivity notes =&lt;br /&gt;
Use the interactive bitbake mode (&amp;quot;bitbake -i&amp;quot;) to speed up work when debugging or developing .bb files. Remember to run &amp;quot;parse&amp;quot; at the prompt first. Go!&lt;br /&gt;
&lt;br /&gt;
If you want to save some compile time or are interested in additional tweaks to local.conf take a look at the [[Advanced configuration]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:User]]&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=OEandYourDistro&amp;diff=1648</id>
		<title>OEandYourDistro</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=OEandYourDistro&amp;diff=1648"/>
		<updated>2009-09-04T11:37:32Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: Removed any mention of ccache as it&amp;#039;s fingered for breaking builds. Safely wrapped long commands.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Required software]] for the list of the software required by Openembedded.&lt;br /&gt;
&lt;br /&gt;
= Using OpenEmbedded on Linux systems =&lt;br /&gt;
&lt;br /&gt;
== deb-based distributions ==&lt;br /&gt;
&lt;br /&gt;
The easiest way is via [http://blog.leggewie.org/?p=39 apt-get&#039;able Openembedded] which will pull the OE meta-data for you and keep it up-to-date.  Plus, it makes sure all necessary software for cross-compilation is installed.  Easy as 1-2-3.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
==== Mandatory packages ====&lt;br /&gt;
&lt;br /&gt;
 apt-get install sed wget cvs subversion git-core \&lt;br /&gt;
    coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils \&lt;br /&gt;
    gawk python-pysqlite2 diffstat help2man make gcc build-essential g++&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On debian you may have to run &lt;br /&gt;
&lt;br /&gt;
  update-alternatives --config git (as root)&lt;br /&gt;
&lt;br /&gt;
and select /usr/bin/git-scm to provide git instead of /usr/bin/git.transition.  This is not necessary in sid&lt;br /&gt;
&lt;br /&gt;
==== Supplimentary packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install libxml2-utils xmlto python-psyco&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OPTIONAL: these packages and their dependencies need to be installed in order to build the bitbake documentation (warning: over 160MB of installed packages).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install docbook&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This package is necessary to build some packages (in particular the esound documentation needs it).&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
Ubuntu is based on Debian and instructions above for [[#deb-based distributions|Debian]] apply here as well. Make sure that you have the universe repositories in your apt configuration.&lt;br /&gt;
&lt;br /&gt;
* Check that /bin/sh (ls -l /bin/sh) is not symbolically linked to dash. &amp;quot;dash&amp;quot; is a POSIX compliant shell that is much smaller than &amp;quot;bash&amp;quot; -- however some broken shell scripts still make use of bash extensions while calling into /bin/sh.  To work around this issue call &amp;quot;&#039;&#039;sudo dpkg-reconfigure dash&#039;&#039;&amp;quot; and select No when it asks you to install dash as /bin/sh.&lt;br /&gt;
* You can also install Psyco Python JIT compiler to speed up BitBake. Psyco works on 32-bit x86 platforms only.  &amp;quot;&#039;&#039;aptitude install python-psyco&#039;&#039;&lt;br /&gt;
* there are known [[gcc issues in Intrepid and later]] when cross-compiling with OE&lt;br /&gt;
&lt;br /&gt;
== rpm-based distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Mandriva Linux ===&lt;br /&gt;
&lt;br /&gt;
Follow the Debian instructions, only using `urpmi` instead of `apt-get install`.  You can find it in the contrib section of any Mandriva mirror or seach for it using the Mandriva Club rpm database [http://rpms.mandrakeclub.com].  You may need libpythonV.V-devel for bitbake setup instead of python-dev.&lt;br /&gt;
If you&#039;re building a 2.6 kernel, you also need the glibc-static-devel package.&lt;br /&gt;
&lt;br /&gt;
with Mandriva Linux 2006, you need to issue the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
urpmi python python-devel python-psyco patch m4 sed bison make wget bzip2 \&lt;br /&gt;
cvs gawk glibc-devel gcc-c++ subversion sharutils coreutils docbook-utils openjade \&lt;br /&gt;
quilt pcre-devel unzip glibc-static-devel&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
==== openSUSE 11.1 ====&lt;br /&gt;
&lt;br /&gt;
Use zypper to install the required packages:&lt;br /&gt;
&lt;br /&gt;
  zypper in subversion git python help2man diffstat wget gcc gcc-c++ libstdc++ glibc-devel texinfo automake&lt;br /&gt;
&lt;br /&gt;
These packages may be useful as well: bison and [http://software.opensuse.org/search?baseproject=ALL&amp;amp;p=1&amp;amp;q=gcc33 gcc33] (for faster build using ASSUME_PROVIDED), gtk2-devel (in case your build will fail on missing gdk-pixbuf-csource), bc (for collie kernel), ncurses-devel (if you want to call kernel menuconfig). python psyco package is optional.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
==== Fedora Core 2/3  ====&lt;br /&gt;
Much of the following is probably already installed, but you can check with the following commands.  You may want to use the yum.conf located at http://www.fedorafaq.org/.  Note, this has not been tested yes as I am in the process of setting up a development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; yum install python patch m4 sed make docbook* openjade glibc-devel xmlto&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* psyco: Download psyco-1.4-src.tar.gz (or later) and extract it. Go to the psycho top-level directory and run: `python setup.py install`.&lt;br /&gt;
&lt;br /&gt;
* patch:  FC3 default version should be enough. Optionally, install SuSe 9.1 package of it.&lt;br /&gt;
&lt;br /&gt;
==== Fedora Core 4  ====&lt;br /&gt;
Almost all required packages for Openembedded are available in Fedora Core 4 and the Fedora Extras for Core 4. You can download them from &amp;lt;http://download.fedora.redhat.com/pub/fedora/linux/core&amp;gt; and &amp;lt;http://download.fedora.redhat.com/pub/fedora/linux/extras&amp;gt;. Check &amp;lt;http://download.fedora.redhat.com/pub/fedora/linux/core/updates/4&amp;gt; for updates on the Core 4 packages.&lt;br /&gt;
&lt;br /&gt;
Apart from the usual (native) development packages like gcc and binutils, you should check that you have the following RPM&#039;s installed: &lt;br /&gt;
&lt;br /&gt;
* bison&lt;br /&gt;
* docbook* packages&lt;br /&gt;
* libpcre&lt;br /&gt;
* m4&lt;br /&gt;
* make&lt;br /&gt;
* openjade&lt;br /&gt;
* patch&lt;br /&gt;
* PyQt&lt;br /&gt;
* python&lt;br /&gt;
* python-psyco&lt;br /&gt;
* sed&lt;br /&gt;
* xmlto&lt;br /&gt;
* quilt (not required as OE builds it by itself, but install it if you want to use gquilt)&lt;br /&gt;
&lt;br /&gt;
Use apt, synaptic, up2date or yum to automagically retrieve these packages or download and install them manually (lots of work).&lt;br /&gt;
&lt;br /&gt;
==== Fedora Core 5/6  ====&lt;br /&gt;
&lt;br /&gt;
Commands I used to install OE pre-requisites on FC5/6&lt;br /&gt;
&lt;br /&gt;
This long command will ensure all pre-requisites are installed (patch is 2.5.4, not 2.5.9, but appears to work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip \&lt;br /&gt;
unzip python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl \&lt;br /&gt;
docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel gcc binutils \&lt;br /&gt;
pcre pcre-devel git quilt groff linuxdoc-tools patch gcc gcc-c++ python-sqlite2 help2man&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or download the metapackage http://www.openembedded.org/dl/packages/rpm/openembedded-essential-1.1-1.noarch.rpm (may be out of date).&lt;br /&gt;
&lt;br /&gt;
then do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum localinstall openembedded-essential-1.1-1.noarch.rpm&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also rpm and src.rpm packages of bitbake 1.6.2 at http://www.openembedded.org/dl/packages/rpm/ pending a later version in Extras, currently 1.6.0.&lt;br /&gt;
&lt;br /&gt;
Update - Current FC6 version is patch-2.5.4-29.2.2 as of this writing and works-for-me (see revision history for build instructions if current patch does not work for you).&lt;br /&gt;
&lt;br /&gt;
I didn&#039;t install SGML tools.  Please add if you know how&lt;br /&gt;
&lt;br /&gt;
Update - Since about 2002 sgml-tools has apparently been replaced by linuxdoc-tools for FC.&lt;br /&gt;
&lt;br /&gt;
==== Fedora 7  ====&lt;br /&gt;
&lt;br /&gt;
This long command will ensure all pre-requisites are installed (patch is 2.5.4, not 2.5.9, but appears to work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip \&lt;br /&gt;
python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl \&lt;br /&gt;
docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel gcc binutils \&lt;br /&gt;
pcre pcre-devel git quilt groff linuxdoc-tools patch linuxdoc-tools gcc gcc-c++ \&lt;br /&gt;
help2man perl-ExtUtils-MakeMaker&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(if this is hard to copy from this HTML page, go to edit mode and copy from editor)&lt;br /&gt;
&lt;br /&gt;
==== Fedora 11  ====&lt;br /&gt;
&lt;br /&gt;
Fedora 11, compared to previous versions, brings the need to install &amp;quot;glibc-static&amp;quot; as well:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip \&lt;br /&gt;
python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl \&lt;br /&gt;
docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel glibc-static \&lt;br /&gt;
gcc binutils pcre pcre-devel git quilt groff linuxdoc-tools patch linuxdoc-tools \&lt;br /&gt;
gcc gcc-c++ help2man perl-ExtUtils-MakeMaker&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(if this is hard to copy from this HTML page, go to edit mode and copy from editor)&lt;br /&gt;
&lt;br /&gt;
=== CentOS 4.4 / Red Hat Enterprise Linux 4  ===&lt;br /&gt;
May also work for true EL4 or Scientific Linux - another RHEL rebuild&lt;br /&gt;
&lt;br /&gt;
Even with several optional and 3rd party yum repos enabled (centosplus, kbsingh, RPMforge/Dag, Dries) a number of required packages are too old or unavailable for CentOS4.   [It should be possible to use other package managers including apt/synaptic, up2date, and smart to get the required packages.  The following assumes yum.]&lt;br /&gt;
&lt;br /&gt;
I re-built the following SRPMS (with &amp;quot;$ rpmbuild --rebuild ...&amp;quot;):&lt;br /&gt;
* boost-1.33.1-10.fc5.src.rpm&lt;br /&gt;
* bitbake-1.6.2-1.src.rpm (Latest tarball from http://developer.berlios.de/projects/bitbake/ + modified spec from bitbake-1.6.0-2.fc7.src.rpm)&lt;br /&gt;
&lt;br /&gt;
Might also want to try the rpm and src.rpm packages of bitbake 1.6.2 at http://www.openembedded.org/dl/packages/rpm/ - I have not.&lt;br /&gt;
&lt;br /&gt;
Extra requirements for the builds included rpmdevtools, xmlto, and  lynx.&lt;br /&gt;
&lt;br /&gt;
I put packages in a local repo so I can do &amp;quot;yum install ...&amp;quot;, otherwise can do &amp;quot;yum localinstall foo.1.2.3.noarch.rpm ...&amp;quot;.  It may be necessary to temporarily set &amp;quot;gpgcheck=0&amp;quot; in /etc/yum.conf to avoid complaints about unsigned packages.&lt;br /&gt;
&lt;br /&gt;
For EL4 texi2html is available from the tetex package, currently tetex-2.0.2-22.EL4.7&lt;br /&gt;
&lt;br /&gt;
Note that the the metapackage http://www.openembedded.org/dl/packages/rpm/openembedded-essential-1.1-1.noarch.rpm&lt;br /&gt;
should work except that it depends on texi2html.&lt;br /&gt;
&lt;br /&gt;
Instead as root do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
yum install bison coreutils cvs docbook-utils gawk git-core python quilt rpmlib \&lt;br /&gt;
sed subversion tetex texinfo unzip wget&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ended up with the following set of relevant packages after several iterations of building/updating to get &amp;quot;bitbake nano&amp;quot; to complete successfully:&lt;br /&gt;
&lt;br /&gt;
* python-2.3.4-14.3&lt;br /&gt;
* m4-1.4.1-16&lt;br /&gt;
* make-3.80-6.EL4&lt;br /&gt;
* wget-1.10.2-0.40E&lt;br /&gt;
* curl-7.12.1-8.rhel4&lt;br /&gt;
* ftp-0.17-22&lt;br /&gt;
* cvs-1.11.17-9.RHEL4&lt;br /&gt;
* subversion-1.4.3-0.1.el4.rf&lt;br /&gt;
* tar-1.14-12.RHEL4&lt;br /&gt;
* bzip2-1.0.2-13.EL4.3&lt;br /&gt;
* gzip-1.3.3-16.rhel4&lt;br /&gt;
* unzip-5.51-7&lt;br /&gt;
* python-psyco-1.5-3.el4.kb&lt;br /&gt;
* perl-5.8.5-36.RHEL4&lt;br /&gt;
* texinfo-4.7-5.el4.2&lt;br /&gt;
* tetex-2.0.2-22.EL4.7&lt;br /&gt;
* diffstat-1.34-0_6.el4.at&lt;br /&gt;
* openjade-1.3.2-16_9.el4.at&lt;br /&gt;
* docbook-style-dsssl-1.78-4&lt;br /&gt;
* docbook-style-xsl-1.65.1-2&lt;br /&gt;
* docbook-dtds-1.0-25&lt;br /&gt;
* docbook-utils-0.6.14-4&lt;br /&gt;
* sed-4.1.2-5.EL4&lt;br /&gt;
* bison-1.875c-2&lt;br /&gt;
* bc-1.06-17.1&lt;br /&gt;
* glibc-devel-2.3.4-2.25&lt;br /&gt;
* gcc-3.4.6-3&lt;br /&gt;
* binutils-2.15.92.0.2-21&lt;br /&gt;
* pcre-4.5-3.2.RHEL4&lt;br /&gt;
* pcre-devel-4.5-3.2.RHEL4&lt;br /&gt;
* git-1.4.4.2-2.el4.kb&lt;br /&gt;
* bitbake-1.6.2-1&lt;br /&gt;
&lt;br /&gt;
=== ALT Linux ===&lt;br /&gt;
&lt;br /&gt;
You can read more about ALT Linux here: http://www.altlinux.com/en/&lt;br /&gt;
&lt;br /&gt;
You can use synaptic or aptitude to install packages. Or use apt-get as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install git-core python python-dev python-module-psyco python-modules-sqlite3 \&lt;br /&gt;
patch m4 sed bison make wget bzip2 cvs gawk gcc-c++ subversion sharutils coreutils \&lt;br /&gt;
docbook-utils openjade quilt libpcre-devel unzip glibc-devel glibc-devel-static \&lt;br /&gt;
help2man texi2html perl-devel&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For building bitbake manuals you have to install &#039;xmlto&#039; package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install xmlto&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* This is tested on ALD 4.0/4.1/5.0.&lt;br /&gt;
* gcc-c++ is virtual package and can be provided by gcc4.3-c++ (ALD 5.0) and gcc4.1-c++ (ALD 4.0/4.1). Just select higher version.&lt;br /&gt;
&lt;br /&gt;
=== Ark Linux 2008.1 ===&lt;br /&gt;
[http://www.arklinux.org/ Ark Linux] is a modern distribution well suited for Openembedded development. Footprint only 2.1G.&lt;br /&gt;
&lt;br /&gt;
Required steps:&lt;br /&gt;
&lt;br /&gt;
1) install required packages&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install devel-core diffstat texi2html cvs subversion git texinfo psyco python-devel \&lt;br /&gt;
                python-encodings python-sqlite help2man bitbake&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) upgrade&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get dist-upgrade &lt;br /&gt;
&lt;br /&gt;
The following packages will be REPLACED:&lt;br /&gt;
  texi2html (by texlive-texi2html)&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  texlive-texi2html&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) finally create your OE tree (see [[Getting started]] instructions). bitbake is already included, so you can skip that step.&lt;br /&gt;
&lt;br /&gt;
== other Linux distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Gentoo instructions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
emerge -n \&lt;br /&gt;
  psyco \&lt;br /&gt;
  patch \&lt;br /&gt;
  make \&lt;br /&gt;
  sed \&lt;br /&gt;
  dev-lang/python \&lt;br /&gt;
  m4 \&lt;br /&gt;
  bison \&lt;br /&gt;
  cvs \&lt;br /&gt;
  openjade \&lt;br /&gt;
  quilt \&lt;br /&gt;
  sgmltools-lite \&lt;br /&gt;
  docbook-xml-dtd \&lt;br /&gt;
  docbook-dsssl-stylesheets \&lt;br /&gt;
  xmlto \&lt;br /&gt;
  docbook-sgml-utils \&lt;br /&gt;
  libpcre \&lt;br /&gt;
  boost \&lt;br /&gt;
  subversion \&lt;br /&gt;
  texi2html \&lt;br /&gt;
  pysqlite&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then follow the instructions in [[Getting started]] for obtaining bitbake and start the build.&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux (Duke)  ===&lt;br /&gt;
&lt;br /&gt;
Most of the packages are available in the repositories.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sudo pacman -S psyco patch make sed python m4 bison cvs quilt sgmltools-lite docbook-xml \&lt;br /&gt;
xmlto pcre boost jade git texinfo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Arch Linux the install command is in /bin/install. Since most of Linux distribution assume that install is located in /usr/bin/install, you have to create a symlink:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sudo ln -s /bin/install /usr/bin/install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can build BitBake by using this PKGBUILD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pkgname=bitbake&lt;br /&gt;
pkgver=1.8.4&lt;br /&gt;
pkgrel=1&lt;br /&gt;
pkgdesc=&amp;quot;A simple tool for task execution derived from Gentoo&#039;s portage&amp;quot;&lt;br /&gt;
url=&amp;quot;http://developer.berlios.de/projects/bitbake/&amp;quot;&lt;br /&gt;
arch=(&#039;i686&#039;)&lt;br /&gt;
license=(&#039;GPL&#039; &#039;custom&#039;)&lt;br /&gt;
depends=(&#039;python&#039;)&lt;br /&gt;
source=(http://download.berlios.de/bitbake/${pkgname}-${pkgver}.tar.gz)&lt;br /&gt;
md5sums=(&#039;508d9a61c635d469be8facc95151158b&#039;)&lt;br /&gt;
&lt;br /&gt;
build() {&lt;br /&gt;
  cd ${startdir}/src/${pkgname}-${pkgver}&lt;br /&gt;
  python setup.py install --root=${startdir}/pkg&lt;br /&gt;
&lt;br /&gt;
  # Install vim extensions&lt;br /&gt;
  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/contrib/vim/ftdetect/bitbake.vim \&lt;br /&gt;
                ${startdir}/pkg/usr/share/vim/ftplugin/bitbake.vim&lt;br /&gt;
  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/contrib/vim/syntax/bitbake.vim \&lt;br /&gt;
                ${startdir}/pkg/usr/share/vim/syntax/bitbake.vim&lt;br /&gt;
&lt;br /&gt;
  # Handle MIT license&lt;br /&gt;
  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/doc/COPYING.MIT \&lt;br /&gt;
                ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING.MIT&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using OpenEmbedded on FreeBSD and other NON Linux Systems =&lt;br /&gt;
&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
== FreeBSD  ==&lt;br /&gt;
&lt;br /&gt;
* Python == /usr/ports/lang/python&lt;br /&gt;
* GNU Patch == /usr/ports/devel/patch&lt;br /&gt;
* GNU m4 == /usr/ports/devel/m4&lt;br /&gt;
* GNU make == /usr/ports/devel/gmake&lt;br /&gt;
* wget == /usr/ports/ftp/wget&lt;br /&gt;
* Psyco JIT Compiler == /usr/ports/devel/py-psyco&lt;br /&gt;
* GNU sed == /usr/ports/textproc/gsed&lt;br /&gt;
* Bison == /usr/ports/devel/bison&lt;br /&gt;
* GCC 2.95.3 == /usr/ports/lang/gcc295&lt;br /&gt;
* bc == already in FreeBSD&lt;br /&gt;
* PyQt == /usr/ports/x11-toolkits/py-qt&lt;br /&gt;
* glibc headers (ignore)&lt;br /&gt;
* subversion == /usr/ports/devel/subversion&lt;br /&gt;
* git == /usr/ports/devel/git&lt;br /&gt;
* pcre == /usr/ports/devel/pcre&lt;br /&gt;
&lt;br /&gt;
Ports has also has these: fileutils, jade, docbook, dsssl-docbook-modular, sgmltools&lt;br /&gt;
&lt;br /&gt;
== Using OpenEmbedded on Mac OS X ==&lt;br /&gt;
&lt;br /&gt;
By default OS X uses a filesystem that is &#039;&#039;&#039;not&#039;&#039;&#039; case sensitive. You need to ensure that at least your tmp directory is on a case sensitive filesystem or you may come across various packages that break, including the Linux kernel! These steps were carried out on a early 32 bit 10.5/Intel Mac - the install order matters for a couple of packages as does having them installed in a more normal location.&lt;br /&gt;
&lt;br /&gt;
# Register at [https://connect.apple.com ADC] and download and install Xcode&lt;br /&gt;
# Compile and install [http://www.gnu.org/software/gettext/ GNU gettext]&lt;br /&gt;
# Using CPAN install Locale::gettext&lt;br /&gt;
# Compile and install [http://www.gnu.org/software/help2man/ help2man 1.29] - newer versions will not build without hacks&lt;br /&gt;
# Compile and install [http://www.gnu.org/software/wget/ wget], [http://www.gnu.org/software/gawk/ gawk], [http://www.gnu.org/software/coreutils/ coreutils] and [http://git-scm.com/ git] - wget appears to not work if you install it in /usr/local so use --prefix=/usr also note OS X provides a different version of mktemp which functions differently, be careful not to overwrite this as OS X might need it&lt;br /&gt;
# If you are on a 32 bit Mac you can of course install [http://psyco.sourceforge.net/ psyco]&lt;br /&gt;
# Fixup your PATH variable for your build user so that /usr/local/bin (or where ever coreutils etc is installed) comes before the OS X version in /usr/bin&lt;br /&gt;
# Install GNU sed 3.0.2, this will give you a version of sed that allows you to build sed 4.1.5 - you will need to overwrite the one provided by OS X with --prefix=/usr and ensure you are using 4.1.5 not 3.0.2 as 3.0.2 does not provide various options you need&lt;br /&gt;
# Install getopt from [http://software.frodo.looijaard.name/getopt/download.php here] - modify WITHOUT_GETTEXT=0 to WITHOUT_GETTEXT=1 in the Makefile and add -DWITHOUT_GETTEXT=$(WITHOUT_GETTEXT) to the line beginning with CPPFLAGS=&lt;br /&gt;
&lt;br /&gt;
Now follow the Getting Started OpenEmbedded wiki guide. Unfortunately there are various issues building on OS X that will most likely prevent the toolchain from building.&lt;br /&gt;
&lt;br /&gt;
Unfinished - tbd&lt;br /&gt;
&lt;br /&gt;
= Using OpenEmbedded on Windows/Cygwin Systems =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Building Openembedded on Windows is currently unsupported, but [http://oe.linuxtogo.org/wiki/BuildOnCygwin work is in progress] to support buidling of meta-toolchain.bb on Windows/Cygwin hosts.&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Getting_started_with_OE-Classic&amp;diff=1080</id>
		<title>Getting started with OE-Classic</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Getting_started_with_OE-Classic&amp;diff=1080"/>
		<updated>2009-03-04T14:25:38Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: /* Adding Packages */  Adding link to commit policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
This page tells you how to get started with Openembedded, i.e. how to install OE and start building packages.  Before you proceed, please look at the important bits of [[Required software]] that must be installed on your system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT NOTES&#039;&#039;&#039;: this guide assumes that:&lt;br /&gt;
&lt;br /&gt;
* the base directory of your Openembedded environment is &#039;&#039;&#039;/stuff/&#039;&#039;&#039;&lt;br /&gt;
(As a normal user, you probably want to substitute this with /home/myuser/oe/stuff)&lt;br /&gt;
* you selected the &#039;&#039;&#039;org.openembedded.dev&#039;&#039;&#039; development branch&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You do not have to be root&#039;&#039;&#039; to build packages or distributions with Openembedded. It is even recommended &#039;&#039;&#039;to always work as user, not as root&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;org.openembedded.dev&amp;lt;/nowiki&amp;gt; is a development branch, therefore your build will be based on the contents of this development branch which may not be what you intended. See [[DevelopmentBranches]] for other available branches including versioned branches. You might want to use the stable branch, which is called &amp;lt;nowiki&amp;gt;org.openembedded.stable&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
One general-purpose distro is Angstrom, well maintained in both stable and development branches. More information about the Angstrom project can be found on [http://www.angstrom-distribution.org/ Angstrom homepage]&lt;br /&gt;
&lt;br /&gt;
Again, for the rest of these notes, replace &#039;&#039;&#039;/stuff/&#039;&#039;&#039; with the base directory of your Openembedded environment and &#039;&#039;&#039;org.openembedded.dev&#039;&#039;&#039; with the name of the branch that you selected.&lt;br /&gt;
&lt;br /&gt;
= Setting up the toolchain and doing a build =&lt;br /&gt;
&lt;br /&gt;
== Directory Structure ==&lt;br /&gt;
The base directory of your Openembedded environment (&amp;lt;nowiki&amp;gt;/stuff/&amp;lt;/nowiki&amp;gt;) is the location where sources will be checked out (or unpacked).&lt;br /&gt;
&lt;br /&gt;
* You must choose a location with &#039;&#039;&#039;no symlinks above it&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If you work in a chrooted environment it is highly recommended to &#039;su - &amp;lt;username&amp;gt;&#039; after you have chrooted. Otherwise compilation may fail because ccache needs a valid &amp;lt;nowiki&amp;gt;$HOME&amp;lt;/nowiki&amp;gt; - which is set when using a user account.&lt;br /&gt;
&lt;br /&gt;
To create the directory structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ mkdir -p /stuff/build/conf&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Obtaining BitBake ==&lt;br /&gt;
To start using OE, you must first obtain the build tool it needs: &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to run bitbake without installing it, as a sibling directory of &amp;lt;nowiki&amp;gt;openembedded/&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;build/&amp;lt;/nowiki&amp;gt; directories. Indeed, as bitbake is written in python it does not need compilation for being used. You&#039;ll just have to set the PATH variable so that the [[BitBake]] tools are accessible (see [[#Setup the environment|Setup the environment]] section).&lt;br /&gt;
&lt;br /&gt;
===Using packages===&lt;br /&gt;
&lt;br /&gt;
There is a BitBake package available for more and more distros - see [[OEandYourDistro]].&lt;br /&gt;
&lt;br /&gt;
===Using releases===&lt;br /&gt;
&lt;br /&gt;
Visit [http://developer.berlios.de/projects/bitbake/ BitBake homepage] and download tarball with latest release. For normal usage we suggest using 1.8.x (stable branch) versions. Unpack it to &#039;&#039;&#039;/stuff/bitbake/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Using Subversion===&lt;br /&gt;
&lt;br /&gt;
Go to the base directory of your Openembedded environment and checkout bitbake:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
$ svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ bitbake&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; for proxy handling, see [http://subversion.tigris.org/faq.html#proxy SVN FAQ]&lt;br /&gt;
&lt;br /&gt;
==== Updating bitbake ====&lt;br /&gt;
&lt;br /&gt;
Bitbake is being revised fairly often. Periodically it&#039;s a good idea to check the repository of [http://svn.berlios.de/viewcvs/bitbake/branches/ bitbake stable branches] to see if a new stable branch is available or if the current branch has been revised. Compare your existing bitbake directory with the latest bitbake branch in the repository. Your existing bitbake branch and its &#039;last changed revision&#039; number can be found as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /stuff/bitbake; svn info&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a new stable branch, you will want to move or delete your existing bitbake directory and repeat the process listed above under &amp;quot;To obtain bitbake&amp;quot;.  If there is no new branch, it is easy to update bitbake:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /stuff/bitbake; svn update&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Obtaining OpenEmbedded using GIT ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: &#039;&#039;Once upon a time OpenEmbedded was using Monotone for version control. If you have an OE Monotone repository on your computer, you should replace it with the Git repository.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: &#039;&#039;These are only brief instructions. For a longer description about using Git with OpenEmbedded refer to [[Git]] and [[GitPhraseBook]].&lt;br /&gt;
&lt;br /&gt;
The OpenEmbedded project resides in a Git repository. You can find it at &#039;&#039;git://git.openembedded.net/openembedded&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To obtain Openembedded:&lt;br /&gt;
# Install git&lt;br /&gt;
# Go to the base directory of your OpenEmbedded environment&lt;br /&gt;
 $ cd /stuff/&lt;br /&gt;
# Checkout the repository&lt;br /&gt;
 $ git clone git://git.openembedded.net/openembedded&lt;br /&gt;
&lt;br /&gt;
or for the firewall challenged try&lt;br /&gt;
 $ git clone http://repo.or.cz/r/openembedded.git&lt;br /&gt;
&lt;br /&gt;
This is the data you&#039;ll be using for all the work.&lt;br /&gt;
&lt;br /&gt;
=== Updating OpenEmbedded ===&lt;br /&gt;
The .dev branch of OE is updated very frequently (as much as several times an hour). The distro branches are not updated as much but still fairly often. It seems good practice to update your OE tree at least daily. To do this, run&lt;br /&gt;
 $ git pull&lt;br /&gt;
(note: this must be done in the directory created by the checkout of openembedded. On this page, this directory is &amp;lt;tt&amp;gt;/stuff/openembedded&amp;lt;/tt&amp;gt;, but my checkout generated a directory &amp;lt;tt&amp;gt;/stuff/openembedded&amp;lt;/tt&amp;gt;. Check the name of your subdir, and use the name on your machine in the following examples)&lt;br /&gt;
&lt;br /&gt;
== Create local configuration ==&lt;br /&gt;
It&#039;s now time to create your local configuration.&lt;br /&gt;
While you could copy the default local.conf.sample like that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
$ cp openembedded/conf/local.conf.sample build/conf/local.conf&lt;br /&gt;
$ vi build/conf/local.conf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is actually recommended to start smaller and keep local.conf.sample in the background and add entries from there step-by-step as you understand and need them. Please, do not just edit build/conf/local.conf.sample but actually READ it (read it and then edit).&lt;br /&gt;
&lt;br /&gt;
For building a .dev branch, in your &amp;lt;nowiki&amp;gt;local.conf&amp;lt;/nowiki&amp;gt; file, you should have at least the following three entries. Example for the Angstrom distribution and the Openmoko gta01 machine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BBFILES = &amp;quot;/stuff/openembedded/packages/*/*.bb&amp;quot;&lt;br /&gt;
DISTRO = &amp;quot;angstrom-2008.1&amp;quot;&lt;br /&gt;
MACHINE = &amp;quot;om-gta01&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you choose to install OE in your home directory, modify local.conf to refer to the OE paths as  /home/&amp;lt;username&amp;gt;/ rather than ~/. It does not find the *.bb packages otherwise.&lt;br /&gt;
&lt;br /&gt;
== Setup the environment ==&lt;br /&gt;
One of the four command sets below will need to be run every time you open a terminal for development. (You can automate this in ~/.profile, /etc/profile, or perhaps use a script to set the necessary variables for using [[BitBake]].)&lt;br /&gt;
&lt;br /&gt;
If you followed the recommendation above to use [[BitBake]] from svn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ export BBPATH=/stuff/build:/stuff/openembedded&lt;br /&gt;
$ export PATH=/stuff/bitbake/bin:$PATH&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you installed [[BitBake]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ export BBPATH=/stuff/build:/stuff/openembedded&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternative syntax for those using the tcsh shell (e.g FreeBSD):&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ setenv PATH &amp;quot;/stuff/bitbake/bin:&amp;quot;$PATH&lt;br /&gt;
$ setenv BBPATH &amp;quot;/stuff/build:/stuff/openembedded:&amp;quot;$BBPATH&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start building ==&lt;br /&gt;
The primary interface to the build system is the &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt; command (see the bitbake users manual). &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt; will download and patch stuff from the network, so it helps if you are on a well connected machine.&lt;br /&gt;
&lt;br /&gt;
Note that you should issue all bitbake commands from inside of the &amp;lt;nowiki&amp;gt;build/&amp;lt;/nowiki&amp;gt; directory, or you should override TMPDIR to point elsewhere (by default it goes to &amp;lt;nowiki&amp;gt;tmp/&amp;lt;/nowiki&amp;gt; relative to the directory you run the tools in).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bitbake&amp;lt;/tt&amp;gt; might complain that there is a problem with the setting in &amp;lt;tt&amp;gt;/proc/sys/vm/mmap_min_addr&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Needs to be set to zero. You can do it (as root) by the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(editing the file won&#039;t help). Alternatively, some systems provide the sysctl.conf file to set this permanently.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm.mmap_min_addr=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some example invocations:&lt;br /&gt;
&lt;br /&gt;
Building a single package (e.g. nano):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake nano&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Building package sets (e.g. task-base):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake task-base&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Special note for&#039;&#039; &amp;lt;nowiki&amp;gt;task-base&amp;lt;/nowiki&amp;gt;: you may need additional setup for building this very one task. More details in [[ZaurusKernels]]&lt;br /&gt;
&lt;br /&gt;
Building a group of packages and deploying them into a rootfs image:&lt;br /&gt;
&lt;br /&gt;
GPE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake gpe-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OPIE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake opie-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;NOTE:&#039;&#039;&#039; kergoth says it will take about 4GB of disk space to build an opie or gpe image for one architecture)&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;NOTE:&#039;&#039;&#039; if you are using your custom kernel - set &amp;quot;Use the ARM EABI to compile the kernel (AEABI)&amp;quot; option in &amp;quot;Kernel Features&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
See the /stuff/openembedded/packages/meta/ directory if you&#039;re curious about what meta/task and image targets exist.&lt;br /&gt;
&lt;br /&gt;
Building every package in the repository (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; This will take a &#039;&#039;very&#039;&#039; long time and needs approx. 35 GB disk space):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake world&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Building a single package, bypassing the long parse step (and therefore its dependencies--use with care):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake -b /stuff/openembedded/packages/blah/blah.bb&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[UsefulTargets]] for a description of some of the more useful meta-packages. You will typically need at least one of the base images (&amp;lt;nowiki&amp;gt;bootstrap-image&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;opie-image&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;gpe-image&amp;lt;/nowiki&amp;gt;), and if and only if you&#039;re building for an [http://wiki.openzaurus.org/Main_Page OpenZaurus] target requiring an installer image (such as C3000), an additional &amp;lt;nowiki&amp;gt;pivotboot-image&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Output of the build process (temporary files, log files and the binaries) all ends up in the &amp;lt;nowiki&amp;gt;tmp&amp;lt;/nowiki&amp;gt; directory.  Most interesting is probably the &amp;lt;nowiki&amp;gt;tmp/work/&amp;lt;/nowiki&amp;gt; directory.  Just have a look around the [[DirectoryStructure]].            &lt;br /&gt;
&lt;br /&gt;
Images generated by building package groups like &amp;lt;nowiki&amp;gt;opie-image&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;pivotboot-image&amp;lt;/nowiki&amp;gt; are placed in the &amp;lt;nowiki&amp;gt;tmp/deploy/images/&amp;lt;/nowiki&amp;gt; directory. Individual ipkg packages are put in &amp;lt;nowiki&amp;gt;tmp/deploy/ipk&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Adding Packages ==&lt;br /&gt;
# Create [[bbfile]].&lt;br /&gt;
# Try building it locally.&lt;br /&gt;
# Fix eventual problems.&lt;br /&gt;
# Send .[[bbfile]] or an [[OePatch]] to the [http://wiki.openembedded.net/index.php/Mailing_Lists openembedded-devel mailing list]. Please note that changes should comply with the [[Commit_Policy | commit policy]].&lt;br /&gt;
&lt;br /&gt;
= Problems =&lt;br /&gt;
Try to solve problems first by checking that you have done everything right, that nothing has changed from this description and that you have the latest code (see [[GitPhraseBook]]). Look also in the log file (referenced in any error message you will receive). If you still have problems, try checking [[PossibleFailures]] and [http://www.openembedded.org/wiki/OeFaq#builderrors common build errors].  &lt;br /&gt;
Above links are dead, you can try the [[:Category:FAQ]].  If problems persist, ask on [[IRC]] or in the [[Mailing lists|openembedded mailing list]].&lt;br /&gt;
&lt;br /&gt;
The Openembedded metadata is changing constantly.  This implies several things:&lt;br /&gt;
&lt;br /&gt;
# Once you have a &amp;quot;known good&amp;quot; version that works well on your system, keep it!  To update, clone a new copy; don&#039;t overwrite that working version until it&#039;s known to be safe.&lt;br /&gt;
# To resolve build problems, &amp;quot;git pull&amp;quot; is your good friend.  Many times, the issues will already be fixed in the current tree.&lt;br /&gt;
# Not all metadata updates cause the local caches to update correctly.  Sometimes you&#039;ll need to remove the &amp;quot;.../tmp&amp;quot; work directory and rebuild from scratch.&lt;br /&gt;
# Similar issues apply to the package sources you download.&lt;br /&gt;
&lt;br /&gt;
= Portability issues =&lt;br /&gt;
Make sure to set &amp;lt;nowiki&amp;gt;TARGET_OS&amp;lt;/nowiki&amp;gt; to something other than linux in local.conf if your host isn&#039;t linux.&lt;br /&gt;
&lt;br /&gt;
GNU extensions to tools are often required.  Symlink GNU patch, make, and cp (from fileutils), chmod, sed, find, tar, awk into your OE development path.&lt;br /&gt;
&lt;br /&gt;
FreeBSD 4 users: Perl 5.0 is too old.  A more recent perl must be available as &amp;lt;nowiki&amp;gt;/usr/bin/perl&amp;lt;/nowiki&amp;gt;.  Unfortunately just having more recent perl in the path isn&#039;t good enough.  Some scripts are hard-coded for &amp;lt;nowiki&amp;gt;/usr/bin/perl&amp;lt;/nowiki&amp;gt;.  You can test for which perl you&#039;re using by typing perl -v.  see /usr/ports/UPDATING for instructions on updating perl. Don&#039;t forget to do a use.perl port as instructed in /usr/ports/UPDATING&lt;br /&gt;
&lt;br /&gt;
FreeBSD users: Set &amp;lt;nowiki&amp;gt;BUILD_OS&amp;lt;/nowiki&amp;gt; in local.conf to freebsdN where N is your major version number.  At least the cross gcc wants this.&lt;br /&gt;
&lt;br /&gt;
FreeBSD users: The build process of glibc uses a very long command line at some places.  Increase ARG_MAX to at least 131072, by editing /usr/sys/sys/syslimits.h and recompile your kernel (and reboot).&lt;br /&gt;
&lt;br /&gt;
= Productivity notes =&lt;br /&gt;
Use the interactive bitbake mode (&amp;quot;bitbake -i&amp;quot;) to speed up work when debugging or developing .bb files. Remember to run &amp;quot;parse&amp;quot; at the prompt first. Go!&lt;br /&gt;
&lt;br /&gt;
If you want to save some compile time or are interested in additional tweaks to local.conf take a look at the [[AdvancedConfiguration]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:User]]&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=OEandYourDistro&amp;diff=814</id>
		<title>OEandYourDistro</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=OEandYourDistro&amp;diff=814"/>
		<updated>2008-11-18T11:35:43Z</updated>

		<summary type="html">&lt;p&gt;Mwelchuk: Undo revision 813 by 85.120.220.27 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[RequiredSoftware]] for the list of the software required by Openembedded.&lt;br /&gt;
&lt;br /&gt;
= Using OpenEmbedded on Linux systems =&lt;br /&gt;
&lt;br /&gt;
== deb-based distributions ==&lt;br /&gt;
&lt;br /&gt;
The easiest way is via [http://blog.leggewie.org/?p=39 apt-get&#039;able Openembedded] which will pull the OE meta-data for you and keep it up-to-date.  Plus, it makes sure all necessary software for cross-compilation is installed.  Easy as 1-2-3.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
==== Mandatory packages ====&lt;br /&gt;
&lt;br /&gt;
It is possible that not all software is available in a recent enough version for etch.  Try backports if necessary.&lt;br /&gt;
&lt;br /&gt;
 apt-get install ccache sed wget cvs subversion git-core \&lt;br /&gt;
    coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils \&lt;br /&gt;
    gawk python-pysqlite2 diffstat help2man&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On debian you may have to run &lt;br /&gt;
&lt;br /&gt;
  update-alternatives --config git (as root)&lt;br /&gt;
&lt;br /&gt;
and select /usr/bin/git-scm to provide git instead of /usr/bin/git.transition.  This is not necessary in sid&lt;br /&gt;
&lt;br /&gt;
==== Complementary packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install libxml2-utils xmlto python-psyco&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OPTIONAL: these packages and their dependencies need to be installed in order to build the bitbake documentation (warning: over 160MB of installed packages).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install docbook&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This package is necessary to build some packages (in particular the esound documentation needs it).&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
Ubuntu is based on Debian and instructions above for [[#deb-based distributions|Debian]] apply here as well. Make sure that you have the universe repositories in your apt configuration.&lt;br /&gt;
&lt;br /&gt;
* Check that /bin/sh (ls -l /bin/sh) is not symbolically linked to dash. &amp;quot;dash&amp;quot; is a POSIX compliant shell that is much smaller than &amp;quot;bash&amp;quot; -- however some broken shell scripts still make use of bash extensions while calling into /bin/sh.  To work around this issue call &amp;quot;&#039;&#039;sudo dpkg-reconfigure dash&#039;&#039;&amp;quot; and select No when it asks you to install dash as /bin/sh.&lt;br /&gt;
* You can also install Psyco Python JIT compiler to speed up BitBake. Psyco works on 32-bit x86 platforms only.  &amp;quot;&#039;&#039;aptitude install python-psyco&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== rpm-based distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Mandriva Linux ===&lt;br /&gt;
&lt;br /&gt;
Follow the Debian instructions, only using `urpmi` instead of `apt-get install`.  Also, `ccache` is not an official Mandriva package. You can find it in the contrib section of any Mandriva mirror or seach for it using the Mandriva Club rpm database [http://rpms.mandrakeclub.com].  You may need libpythonV.V-devel for bitbake setup instead of python-dev.&lt;br /&gt;
If you&#039;re building a 2.6 kernel, you also need the glibc-static-devel package.&lt;br /&gt;
&lt;br /&gt;
with Mandriva Linux 2006, you need to issue the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
urpmi python python-devel python-psyco ccache patch m4 sed bison make wget bzip2 \&lt;br /&gt;
cvs gawk glibc-devel gcc-c++ subversion sharutils coreutils docbook-utils openjade \&lt;br /&gt;
quilt pcre-devel unzip glibc-static-devel&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE instructions ===&lt;br /&gt;
&lt;br /&gt;
Use zypper to install the required packages:&lt;br /&gt;
&lt;br /&gt;
  zypper in subversion git python help2man diffstat wget gcc gcc-c++ libstdc++ glibc-devel&lt;br /&gt;
&lt;br /&gt;
These packages may be useful as well: ccache, bison and [http://software.opensuse.org/search?baseproject=ALL&amp;amp;p=1&amp;amp;q=gcc33 gcc33] (for faster build using ASSUME_PROVIDED), gtk2-devel (in case your build will fail on missing gdk-pixbuf-csource), bc (for collie kernel), ncurses-devel (if you want to call kernel menuconfig). python psyco package is optional.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
==== Fedora Core 2/3  ====&lt;br /&gt;
Much of the following is probably already installed, but you can check with the following commands.  You may want to use the yum.conf located at http://www.fedorafaq.org/.  Note, this has not been tested yes as I am in the process of setting up a development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; yum install python patch m4 sed make docbook* openjade glibc-devel xmlto&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `yum install ccache` (not required, also not a FC3 package)&lt;br /&gt;
&lt;br /&gt;
* psyco: Download psyco-1.4-src.tar.gz (or later) and extract it. Go to the psycho top-level directory and run: `python setup.py install`.&lt;br /&gt;
&lt;br /&gt;
* patch:  FC3 default version should be enough. Optionally, install SuSe 9.1 package of it.&lt;br /&gt;
&lt;br /&gt;
==== Fedora Core 4  ====&lt;br /&gt;
Almost all required packages for Openembedded are available in Fedora Core 4 and the Fedora Extras for Core 4. You can download them from &amp;lt;http://download.fedora.redhat.com/pub/fedora/linux/core&amp;gt; and &amp;lt;http://download.fedora.redhat.com/pub/fedora/linux/extras&amp;gt;. Check &amp;lt;http://download.fedora.redhat.com/pub/fedora/linux/core/updates/4&amp;gt; for updates on the Core 4 packages.&lt;br /&gt;
&lt;br /&gt;
Apart from the usual (native) development packages like gcc and binutils, you should check that you have the following RPM&#039;s installed: &lt;br /&gt;
&lt;br /&gt;
* bison&lt;br /&gt;
* ccache (not required, but advised to speed up building)&lt;br /&gt;
* docbook* packages&lt;br /&gt;
* libpcre&lt;br /&gt;
* m4&lt;br /&gt;
* make&lt;br /&gt;
* openjade&lt;br /&gt;
* patch&lt;br /&gt;
* PyQt&lt;br /&gt;
* python&lt;br /&gt;
* python-psyco&lt;br /&gt;
* sed&lt;br /&gt;
* xmlto&lt;br /&gt;
* quilt (not required as OE builds it by itself, but install it if you want to use gquilt)&lt;br /&gt;
&lt;br /&gt;
Use apt, synaptic, up2date or yum to automagically retrieve these packages or download and install them manually (lots of work).&lt;br /&gt;
&lt;br /&gt;
==== Fedora Core 5/6  ====&lt;br /&gt;
&lt;br /&gt;
Commands I used to install OE pre-requisites on FC5/6&lt;br /&gt;
&lt;br /&gt;
This long command will ensure all pre-requisites are installed (patch is 2.5.4, not 2.5.9, but appears to work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip python-psyco ccache perl texinfo texi2html diffstat openjade docbook-style-dsssl docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel gcc binutils pcre pcre-devel git quilt groff linuxdoc-tools patch gcc gcc-c++ python-sqlite2 help2man&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or download the metapackage http://www.openembedded.org/dl/packages/rpm/openembedded-essential-1.1-1.noarch.rpm (may be out of date).&lt;br /&gt;
&lt;br /&gt;
then do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum localinstall openembedded-essential-1.1-1.noarch.rpm&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also rpm and src.rpm packages of bitbake 1.6.2 at http://www.openembedded.org/dl/packages/rpm/ pending a later version in Extras, currently 1.6.0.&lt;br /&gt;
&lt;br /&gt;
Update - Current FC6 version is patch-2.5.4-29.2.2 as of this writing and works-for-me (see revision history for build instructions if current patch does not work for you).&lt;br /&gt;
&lt;br /&gt;
I didn&#039;t install SGML tools.  Please add if you know how&lt;br /&gt;
&lt;br /&gt;
Update - Since about 2002 sgml-tools has apparently been replaced by linuxdoc-tools for FC.&lt;br /&gt;
&lt;br /&gt;
==== Fedora 7  ====&lt;br /&gt;
&lt;br /&gt;
This long command will ensure all pre-requisites are installed (patch is 2.5.4, not 2.5.9, but appears to work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
su -c &amp;quot;yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip python-psyco ccache perl texinfo texi2html diffstat openjade docbook-style-dsssl docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel gcc binutils pcre pcre-devel git quilt groff linuxdoc-tools patch linuxdoc-tools gcc gcc-c++ help2man perl-ExtUtils-MakeMaker&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(if this is hard to copy from this HTML page, go to edit mode and copy from editor)&lt;br /&gt;
&lt;br /&gt;
=== CentOS 4.4 / Red Hat Enterprise Linux 4  ===&lt;br /&gt;
May also work for true EL4 or Scientific Linux - another RHEL rebuild&lt;br /&gt;
&lt;br /&gt;
Even with several optional and 3rd party yum repos enabled (centosplus, kbsingh, RPMforge/Dag, Dries) a number of required packages are too old or unavailable for CentOS4.   [It should be possible to use other package managers including apt/synaptic, up2date, and smart to get the required packages.  The following assumes yum.]&lt;br /&gt;
&lt;br /&gt;
I re-built the following SRPMS (with &amp;quot;$ rpmbuild --rebuild ...&amp;quot;):&lt;br /&gt;
* boost-1.33.1-10.fc5.src.rpm&lt;br /&gt;
* bitbake-1.6.2-1.src.rpm (Latest tarball from http://developer.berlios.de/projects/bitbake/ + modified spec from bitbake-1.6.0-2.fc7.src.rpm)&lt;br /&gt;
&lt;br /&gt;
Might also want to try the rpm and src.rpm packages of bitbake 1.6.2 at http://www.openembedded.org/dl/packages/rpm/ - I have not.&lt;br /&gt;
&lt;br /&gt;
Extra requirements for the builds included rpmdevtools, xmlto, and  lynx.&lt;br /&gt;
&lt;br /&gt;
I put packages in a local repo so I can do &amp;quot;yum install ...&amp;quot;, otherwise can do &amp;quot;yum localinstall foo.1.2.3.noarch.rpm ...&amp;quot;.  It may be necessary to temporarily set &amp;quot;gpgcheck=0&amp;quot; in /etc/yum.conf to avoid complaints about unsigned packages.&lt;br /&gt;
&lt;br /&gt;
For EL4 texi2html is available from the tetex package, currently tetex-2.0.2-22.EL4.7&lt;br /&gt;
&lt;br /&gt;
Note that the the metapackage http://www.openembedded.org/dl/packages/rpm/openembedded-essential-1.1-1.noarch.rpm&lt;br /&gt;
should work except that it depends on texi2html.&lt;br /&gt;
&lt;br /&gt;
Instead as root do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# yum install bison ccache coreutils cvs docbook-utils gawk git-core \&lt;br /&gt;
  python quilt rpmlib sed subversion tetex texinfo unzip wget&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ended up with the following set of relevant packages after several iterations of building/updating to get &amp;quot;bitbake nano&amp;quot; to complete successfully:&lt;br /&gt;
&lt;br /&gt;
* python-2.3.4-14.3&lt;br /&gt;
* m4-1.4.1-16&lt;br /&gt;
* make-3.80-6.EL4&lt;br /&gt;
* wget-1.10.2-0.40E&lt;br /&gt;
* curl-7.12.1-8.rhel4&lt;br /&gt;
* ftp-0.17-22&lt;br /&gt;
* cvs-1.11.17-9.RHEL4&lt;br /&gt;
* subversion-1.4.3-0.1.el4.rf&lt;br /&gt;
* tar-1.14-12.RHEL4&lt;br /&gt;
* bzip2-1.0.2-13.EL4.3&lt;br /&gt;
* gzip-1.3.3-16.rhel4&lt;br /&gt;
* unzip-5.51-7&lt;br /&gt;
* python-psyco-1.5-3.el4.kb&lt;br /&gt;
* ccache-2.4-1.2.el4.rf&lt;br /&gt;
* perl-5.8.5-36.RHEL4&lt;br /&gt;
* texinfo-4.7-5.el4.2&lt;br /&gt;
* tetex-2.0.2-22.EL4.7&lt;br /&gt;
* diffstat-1.34-0_6.el4.at&lt;br /&gt;
* openjade-1.3.2-16_9.el4.at&lt;br /&gt;
* docbook-style-dsssl-1.78-4&lt;br /&gt;
* docbook-style-xsl-1.65.1-2&lt;br /&gt;
* docbook-dtds-1.0-25&lt;br /&gt;
* docbook-utils-0.6.14-4&lt;br /&gt;
* sed-4.1.2-5.EL4&lt;br /&gt;
* bison-1.875c-2&lt;br /&gt;
* bc-1.06-17.1&lt;br /&gt;
* glibc-devel-2.3.4-2.25&lt;br /&gt;
* gcc-3.4.6-3&lt;br /&gt;
* binutils-2.15.92.0.2-21&lt;br /&gt;
* pcre-4.5-3.2.RHEL4&lt;br /&gt;
* pcre-devel-4.5-3.2.RHEL4&lt;br /&gt;
* git-1.4.4.2-2.el4.kb&lt;br /&gt;
* bitbake-1.6.2-1&lt;br /&gt;
&lt;br /&gt;
== other Linux distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Gentoo instructions ===&lt;br /&gt;
&lt;br /&gt;
On Gentoo 2008.0 the bitbake package is masked, so you&#039;ll need to update /etc/portage/package.keywords.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo &#039;dev-embedded/bitbake ~x86&#039; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
emerge -n \&lt;br /&gt;
  bitbake \&lt;br /&gt;
  psyco \&lt;br /&gt;
  ccache \&lt;br /&gt;
  patch \&lt;br /&gt;
  make \&lt;br /&gt;
  sed \&lt;br /&gt;
  dev-lang/python \&lt;br /&gt;
  m4 \&lt;br /&gt;
  bison \&lt;br /&gt;
  cvs \&lt;br /&gt;
  openjade \&lt;br /&gt;
  quilt \&lt;br /&gt;
  sgmltools-lite \&lt;br /&gt;
  docbook-xml-dtd \&lt;br /&gt;
  docbook-dsssl-stylesheets \&lt;br /&gt;
  xmlto \&lt;br /&gt;
  docbook-sgml-utils \&lt;br /&gt;
  libpcre \&lt;br /&gt;
  boost \&lt;br /&gt;
  subversion \&lt;br /&gt;
  texi2html&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ark Linux 2007.1 ===&lt;br /&gt;
[http://www.arklinux.org/ Ark Linux] is a modern distribution well suited for Openembedded development. Footprint only 2.1G.&lt;br /&gt;
&lt;br /&gt;
Required steps:&lt;br /&gt;
&lt;br /&gt;
1) install required packages&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get install devel-core diffstat texi2html cvs subversion git texinfo psyco python-devel python-encodings python-sqlite&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) upgrade&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get upgrade &lt;br /&gt;
&lt;br /&gt;
The following packages will be REPLACED:&lt;br /&gt;
  texi2html (by tetex-texi2html)&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  tetex-texi2html&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) help2man&lt;br /&gt;
&lt;br /&gt;
help2man is missing from the ArkLinux repositories.  The [http://www.gnu.org/software/help2man/ sources] must be configured, compiled and installed.  The compilation of help2man requires the installation of some additional packages:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gettext-devel gettext-tools perl-Locale-gettext&lt;br /&gt;
&lt;br /&gt;
4) finally create your OE tree and provide bitbake (see [[Getting Started]] instructions)&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux (Duke)  ===&lt;br /&gt;
&lt;br /&gt;
Most of the packages are available in the repositories.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sudo pacman -S psyco ccache patch make sed python m4 bison cvs quilt sgmltools-lite docbook-xml xmlto pcre boost jade git texinfo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Arch Linux the install command is in /bin/install. Since most of Linux distribution assume that install is located in /usr/bin/install, you have to create a symlink:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sudo ln -s /bin/install /usr/bin/install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can build BitBake by using this PKGBUILD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pkgname=bitbake&lt;br /&gt;
pkgver=1.8.4&lt;br /&gt;
pkgrel=1&lt;br /&gt;
pkgdesc=&amp;quot;A simple tool for task execution derived from Gentoo&#039;s portage&amp;quot;&lt;br /&gt;
url=&amp;quot;http://developer.berlios.de/projects/bitbake/&amp;quot;&lt;br /&gt;
arch=(&#039;i686&#039;)&lt;br /&gt;
license=(&#039;GPL&#039; &#039;custom&#039;)&lt;br /&gt;
depends=(&#039;python&#039;)&lt;br /&gt;
source=(http://download.berlios.de/bitbake/${pkgname}-${pkgver}.tar.gz)&lt;br /&gt;
md5sums=(&#039;508d9a61c635d469be8facc95151158b&#039;)&lt;br /&gt;
&lt;br /&gt;
build() {&lt;br /&gt;
  cd ${startdir}/src/${pkgname}-${pkgver}&lt;br /&gt;
  python setup.py install --root=${startdir}/pkg&lt;br /&gt;
&lt;br /&gt;
  # Install vim extensions&lt;br /&gt;
  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/contrib/vim/ftdetect/bitbake.vim \&lt;br /&gt;
                ${startdir}/pkg/usr/share/vim/ftplugin/bitbake.vim&lt;br /&gt;
  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/contrib/vim/syntax/bitbake.vim \&lt;br /&gt;
                ${startdir}/pkg/usr/share/vim/syntax/bitbake.vim&lt;br /&gt;
&lt;br /&gt;
  # Handle MIT license&lt;br /&gt;
  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/doc/COPYING.MIT \&lt;br /&gt;
                ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING.MIT&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using OpenEmbedded on FreeBSD and other NON Linux Systems =&lt;br /&gt;
&lt;br /&gt;
to be done, maybe there is some information in the [http://oe.linuxtog.org/wiki old wiki]&lt;br /&gt;
&lt;br /&gt;
== FreeBSD  ==&lt;br /&gt;
&lt;br /&gt;
* Python == /usr/ports/lang/python&lt;br /&gt;
* GNU Patch == /usr/ports/devel/patch&lt;br /&gt;
* GNU m4 == /usr/ports/devel/m4&lt;br /&gt;
* GNU make == /usr/ports/devel/gmake&lt;br /&gt;
* wget == /usr/ports/ftp/wget&lt;br /&gt;
* Psyco JIT Compiler == /usr/ports/devel/py-psyco&lt;br /&gt;
* ccache == /usr/ports/devel/ccache&lt;br /&gt;
* GNU sed == /usr/ports/textproc/gsed&lt;br /&gt;
* Bison == /usr/ports/devel/bison&lt;br /&gt;
* GCC 2.95.3 == /usr/ports/lang/gcc295&lt;br /&gt;
* bc == already in FreeBSD&lt;br /&gt;
* PyQt == /usr/ports/x11-toolkits/py-qt&lt;br /&gt;
* glibc headers (ignore)&lt;br /&gt;
* subversion == /usr/ports/devel/subversion&lt;br /&gt;
* git == /usr/ports/devel/git&lt;br /&gt;
* pcre == /usr/ports/devel/pcre&lt;br /&gt;
&lt;br /&gt;
Ports has also has these: fileutils, jade, docbook, dsssl-docbook-modular, sgmltools&lt;br /&gt;
&lt;br /&gt;
== Using OpenEmbedded on Mac OS X ==&lt;br /&gt;
&lt;br /&gt;
to be done, maybe there is some information in the [http://oe.linuxtog.org/wiki old wiki]&lt;br /&gt;
&lt;br /&gt;
= Using OpenEmbedded on Windows/Cygwin Systems =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Building Openembedded on Windows is currently unsupported, but [http://oe.linuxtogo.org/wiki/BuildOnCygwin work is in progress] to support buidling of meta-toolchain.bb on Windows/Cygwin hosts.&lt;/div&gt;</summary>
		<author><name>Mwelchuk</name></author>
	</entry>
</feed>