doc: fix gitweb link, mention 'deb' package format
[opendreambox.git] / doc / opendreambox.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
2   "http://www.w3.org/TR/html4/loose.dtd">  
3 <html > 
4 <head><title>opendreambox</title> 
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
6 <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> 
7 <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> 
8 <!-- html --> 
9 <meta name="src" content="opendreambox.tex"> 
10 <meta name="date" content="2014-09-10 02:55:00"> 
11 <link rel="stylesheet" type="text/css" href="opendreambox.css"> 
12 </head><body 
13 >
14 <div class="maketitle">
15                                                                   
16
17                                                                   
18                                                                   
19
20                                                                   
21
22 <h2 class="titleHead">opendreambox</h2>
23 <div class="author" ><span 
24 class="cmr-12">Andreas Oberritter </span><span 
25 class="cmtt-9">&#x003C;obi@opendreambox.org&#x003E;</span></div>
26 <br />
27 <div class="date" ><span 
28 class="cmr-12">September 2014</span></div>
29 </div>
30 <h3 class="likesectionHead"><a 
31  id="x1-1000"></a>Contents</h3>
32 <div class="tableofcontents">
33 <span class="sectionToc" >1 <a 
34 href="#x1-20001" id="QQ2-1-2">Introduction</a></span>
35 <br />&#x00A0;<span class="subsectionToc" >1.1 <a 
36 href="#x1-30001.1" id="QQ2-1-3">Target audience</a></span>
37 <br />&#x00A0;<span class="subsectionToc" >1.2 <a 
38 href="#x1-40001.2" id="QQ2-1-4">Supported products</a></span>
39 <br />&#x00A0;<span class="subsectionToc" >1.3 <a 
40 href="#x1-50001.3" id="QQ2-1-5">License</a></span>
41 <br />&#x00A0;<span class="subsectionToc" >1.4 <a 
42 href="#x1-60001.4" id="QQ2-1-6">Obtaining the source code</a></span>
43 <br />&#x00A0;<span class="subsectionToc" >1.5 <a 
44 href="#x1-70001.5" id="QQ2-1-7">Quick start</a></span>
45 <br />&#x00A0;<span class="subsectionToc" >1.6 <a 
46 href="#x1-80001.6" id="QQ2-1-8">Directory structure</a></span>
47 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >1.6.1 <a 
48 href="#x1-90001.6.1" id="QQ2-1-9">openembedded-core and meta-openembedded</a></span>
49 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >1.6.2 <a 
50 href="#x1-100001.6.2" id="QQ2-1-10">meta-opendreambox</a></span>
51 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >1.6.3 <a 
52 href="#x1-110001.6.3" id="QQ2-1-11">meta-dreambox</a></span>
53 <br /><span class="sectionToc" >2 <a 
54 href="#x1-120002" id="QQ2-1-12">Further readings</a></span>
55 <br /><span class="sectionToc" >3 <a 
56 href="#x1-130003" id="QQ2-1-13">Prerequisites</a></span>
57 <br />&#x00A0;<span class="subsectionToc" >3.1 <a 
58 href="#x1-140003.1" id="QQ2-1-14">Required software</a></span>
59 <br /><span class="sectionToc" >4 <a 
60 href="#x1-150004" id="QQ2-1-15">Major changes since previous public releases</a></span>
61 <br />&#x00A0;<span class="subsectionToc" >4.1 <a 
62 href="#x1-160004.1" id="QQ2-1-16">Changes since release 1.6</a></span>
63 <br />&#x00A0;<span class="subsectionToc" >4.2 <a 
64 href="#x1-170004.2" id="QQ2-1-17">Changes since release 2.0</a></span>
65 <br /><span class="sectionToc" >5 <a 
66 href="#x1-180005" id="QQ2-1-18">Known Issues</a></span>
67                                                                   
68
69                                                                   
70 <br /><span class="sectionToc" >6 <a 
71 href="#x1-190006" id="QQ2-1-19">Building OpenDreambox</a></span>
72 <br />&#x00A0;<span class="subsectionToc" >6.1 <a 
73 href="#x1-200006.1" id="QQ2-1-20">Makefile targets</a></span>
74 <br />&#x00A0;<span class="subsectionToc" >6.2 <a 
75 href="#x1-210006.2" id="QQ2-1-21">Configuration variables</a></span>
76 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >6.2.1 <a 
77 href="#x1-220006.2.1" id="QQ2-1-22">BB_NUMBER_THREADS</a></span>
78 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >6.2.2 <a 
79 href="#x1-230006.2.2" id="QQ2-1-23">MACHINE</a></span>
80 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >6.2.3 <a 
81 href="#x1-240006.2.3" id="QQ2-1-24">PARALLEL_MAKE</a></span>
82 <br />&#x00A0;<span class="subsectionToc" >6.3 <a 
83 href="#x1-250006.3" id="QQ2-1-25">Adding custom layers</a></span>
84 <br />&#x00A0;<span class="subsectionToc" >6.4 <a 
85 href="#x1-260006.4" id="QQ2-1-26">Adding custom options</a></span>
86 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >6.4.1 <a 
87 href="#x1-270006.4.1" id="QQ2-1-27">DISTRO_FEED_PREFIX</a></span>
88 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >6.4.2 <a 
89 href="#x1-280006.4.2" id="QQ2-1-28">DISTRO_FEED_URI</a></span>
90 <br />&#x00A0;&#x00A0;<span class="subsubsectionToc" >6.4.3 <a 
91 href="#x1-290006.4.3" id="QQ2-1-29">INHERIT</a></span>
92 <br />&#x00A0;<span class="subsectionToc" >6.5 <a 
93 href="#x1-300006.5" id="QQ2-1-30">Setting up a build directory</a></span>
94 <br />&#x00A0;<span class="subsectionToc" >6.6 <a 
95 href="#x1-310006.6" id="QQ2-1-31">Building a firmware image</a></span>
96 <br />&#x00A0;<span class="subsectionToc" >6.7 <a 
97 href="#x1-320006.7" id="QQ2-1-32">Building a package</a></span>
98 <br /><span class="sectionToc" >7 <a 
99 href="#x1-330007" id="QQ2-1-33">Development hints</a></span>
100 <br />&#x00A0;<span class="subsectionToc" >7.1 <a 
101 href="#x1-340007.1" id="QQ2-1-34">Cross-compilation of external software</a></span>
102 <br />&#x00A0;<span class="subsectionToc" >7.2 <a 
103 href="#x1-350007.2" id="QQ2-1-35">Coding style</a></span>
104 <br />&#x00A0;<span class="subsectionToc" >7.3 <a 
105 href="#x1-360007.3" id="QQ2-1-36">Package architecture</a></span>
106 <br /><span class="sectionToc" >8 <a 
107 href="#x1-370008" id="QQ2-1-37">Bug reports and patches</a></span>
108 </div>
109                                                                   
110
111                                                                   
112 <!--l. 54--><p class="noindent" >
113 <h3 class="sectionHead"><span class="titlemark">1   </span> <a 
114  id="x1-20001"></a>Introduction</h3>
115 <div class="flushleft" 
116 >
117 <!--l. 55--><p class="noindent" >
118  This document briefly describes the OpenDreambox distribution, an
119 embedded Linux distribution for Set-Top-Boxes manufactured by <a 
120 href="http://www.dream-multimedia-tv.de/" >Dream
121 Property GmbH</a>.
122 <!--l. 59--><p class="noindent" >OpenDreambox is based on the <a 
123 href="http://www.openembedded.org/" >OpenEmbedded</a> build framework, which uses
124 BitBake to transform build instructions into distributable firmare images and
125 software packages.
126 <!--l. 63--><p class="noindent" >The current version, OpenDreambox 2.2, is based on the <a 
127 href="https://www.yoctoproject.org/" >Yocto Project</a>, release
128 1.5.1 &#8221;Dora&#8221;, an umbrella project for OpenEmbedded and related tools.</div>
129 <!--l. 67--><p class="noindent" >
130 <h4 class="subsectionHead"><span class="titlemark">1.1   </span> <a 
131  id="x1-30001.1"></a>Target audience</h4>
132 <div class="flushleft" 
133 >
134 <!--l. 68--><p class="noindent" >
135  Developers familiar with previous versions of OpenDreambox or
136 OpenEmbedded in general.</div>
137 <!--l. 73--><p class="noindent" >
138 <h4 class="subsectionHead"><span class="titlemark">1.2   </span> <a 
139  id="x1-40001.2"></a>Supported products</h4>
140 <div class="flushleft" 
141 >
142 <!--l. 75--><p class="noindent" >
143  The current version includes support for the following products:
144                                                                   
145
146                                                                   
147 <div class="tabular"> <table id="TBL-2" class="tabular" 
148 cellspacing="0" cellpadding="0" rules="groups" 
149 ><colgroup id="TBL-2-1g"><col 
150 id="TBL-2-1"></colgroup><colgroup id="TBL-2-2g"><col 
151 id="TBL-2-2"></colgroup><tr 
152 class="hline"><td><hr></td><td><hr></td></tr><tr  
153  style="vertical-align:baseline;" id="TBL-2-1-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-1-1"  
154 class="td11"><span 
155 class="cmbx-10">Product name   </span></td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-1-2"  
156 class="td11"><span 
157 class="cmbx-10">Environment variable</span></td></tr><tr 
158 class="hline"><td><hr></td><td><hr></td></tr><tr  
159  style="vertical-align:baseline;" id="TBL-2-2-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-2-1"  
160 class="td11"> </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-2-2"  
161 class="td11"></td>
162 </tr><tr  
163  style="vertical-align:baseline;" id="TBL-2-3-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-3-1"  
164 class="td11">DM 500 HD         </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-3-2"  
165 class="td11"><span 
166 class="cmtt-9">MACHINE=dm500hd        </span></td>
167 </tr><tr  
168  style="vertical-align:baseline;" id="TBL-2-4-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-4-1"  
169 class="td11">DM 500 HD V2     </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-4-2"  
170 class="td11"><span 
171 class="cmtt-9">MACHINE=dm500hdv2      </span></td>
172 </tr><tr  
173  style="vertical-align:baseline;" id="TBL-2-5-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-5-1"  
174 class="td11">DM 800 HD SE     </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-5-2"  
175 class="td11"><span 
176 class="cmtt-9">MACHINE=dm800se        </span></td>
177 </tr><tr  
178  style="vertical-align:baseline;" id="TBL-2-6-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-6-1"  
179 class="td11">DM 800 HD SE V2</td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-6-2"  
180 class="td11"><span 
181 class="cmtt-9">MACHINE=dm800sev2      </span></td>
182 </tr><tr  
183  style="vertical-align:baseline;" id="TBL-2-7-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-7-1"  
184 class="td11">DM 7020 HD        </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-7-2"  
185 class="td11"><span 
186 class="cmtt-9">MACHINE=dm7020hd       </span></td>
187 </tr><tr  
188  style="vertical-align:baseline;" id="TBL-2-8-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-8-1"  
189 class="td11">DM 7020 HD V2   </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-8-2"  
190 class="td11"><span 
191 class="cmtt-9">MACHINE=dm7020hdv2     </span></td>
192 </tr><tr  
193  style="vertical-align:baseline;" id="TBL-2-9-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-9-1"  
194 class="td11">DM 7080             </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-9-2"  
195 class="td11"><span 
196 class="cmtt-9">MACHINE=dm7080         </span></td>
197 </tr><tr  
198  style="vertical-align:baseline;" id="TBL-2-10-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-10-1"  
199 class="td11">DM 8000 HD PVR</td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-10-2"  
200 class="td11"><span 
201 class="cmtt-9">MACHINE=dm8000         </span></td>
202 </tr><tr  
203  style="vertical-align:baseline;" id="TBL-2-11-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-11-1"  
204 class="td11">                </td><td  style="white-space:nowrap; text-align:left;" id="TBL-2-11-2"  
205 class="td11">                     </td>
206 </tr><tr 
207 class="hline"><td><hr></td><td><hr></td></tr><tr  
208  style="vertical-align:baseline;" id="TBL-2-12-"><td  style="white-space:nowrap; text-align:left;" id="TBL-2-12-1"  
209 class="td11">                </td>
210 </tr></table></div>
211 <!--l. 94--><p class="noindent" >Note, that not all of these platforms offer enough internal storage to actually flash a
212 generated firmware image. It might be possible to boot from external storage or
213 network, though.</div>
214 <!--l. 99--><p class="noindent" >
215 <h4 class="subsectionHead"><span class="titlemark">1.3   </span> <a 
216  id="x1-50001.3"></a>License</h4>
217                                                                   
218
219                                                                   
220 <div class="verbatim" id="verbatim-1">
221 Copyright&#x00A0;(c)&#x00A0;2010-2014&#x00A0;Dream&#x00A0;Property&#x00A0;GmbH,&#x00A0;Germany
222 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;http://www.dream-multimedia-tv.de/
223 &#x00A0;<br />Authors:
224 &#x00A0;<br />&#x00A0;&#x00A0;Andreas&#x00A0;Frisch&#x00A0;&#x003C;fraxinas@opendreambox.org&#x003E;
225 &#x00A0;<br />&#x00A0;&#x00A0;Andreas&#x00A0;Monzner&#x00A0;&#x003C;ghost@opendreambox.org&#x003E;
226 &#x00A0;<br />&#x00A0;&#x00A0;Andreas&#x00A0;Oberritter&#x00A0;&#x003C;obi@opendreambox.org&#x003E;
227 &#x00A0;<br />&#x00A0;&#x00A0;Mladen&#x00A0;Horvat&#x00A0;&#x003C;acid-burn@opendreambox.org&#x003E;
228 &#x00A0;<br />&#x00A0;&#x00A0;Stefan&#x00A0;Pluecken&#x00A0;&#x003C;thedoc@opendreambox.org&#x003E;
229 &#x00A0;<br />&#x00A0;&#x00A0;Stephan&#x00A0;Reichholf&#x00A0;&#x003C;reichi@opendreambox.org&#x003E;
230 &#x00A0;<br />
231 &#x00A0;<br />Permission&#x00A0;is&#x00A0;hereby&#x00A0;granted,&#x00A0;free&#x00A0;of&#x00A0;charge,&#x00A0;to&#x00A0;any&#x00A0;person&#x00A0;obtaining&#x00A0;a&#x00A0;copy
232 &#x00A0;<br />of&#x00A0;this&#x00A0;software&#x00A0;and&#x00A0;associated&#x00A0;documentation&#x00A0;files&#x00A0;(the&#x00A0;"Software"),&#x00A0;to&#x00A0;deal
233 &#x00A0;<br />in&#x00A0;the&#x00A0;Software&#x00A0;without&#x00A0;restriction,&#x00A0;including&#x00A0;without&#x00A0;limitation&#x00A0;the&#x00A0;rights
234 &#x00A0;<br />to&#x00A0;use,&#x00A0;copy,&#x00A0;modify,&#x00A0;merge,&#x00A0;publish,&#x00A0;distribute,&#x00A0;sublicense,&#x00A0;and/or&#x00A0;sell
235 &#x00A0;<br />copies&#x00A0;of&#x00A0;the&#x00A0;Software,&#x00A0;and&#x00A0;to&#x00A0;permit&#x00A0;persons&#x00A0;to&#x00A0;whom&#x00A0;the&#x00A0;Software&#x00A0;is
236 &#x00A0;<br />furnished&#x00A0;to&#x00A0;do&#x00A0;so,&#x00A0;subject&#x00A0;to&#x00A0;the&#x00A0;following&#x00A0;conditions:
237 &#x00A0;<br />
238 &#x00A0;<br />The&#x00A0;above&#x00A0;copyright&#x00A0;notice&#x00A0;and&#x00A0;this&#x00A0;permission&#x00A0;notice&#x00A0;shall&#x00A0;be&#x00A0;included&#x00A0;in
239 &#x00A0;<br />all&#x00A0;copies&#x00A0;or&#x00A0;substantial&#x00A0;portions&#x00A0;of&#x00A0;the&#x00A0;Software.
240 &#x00A0;<br />
241 &#x00A0;<br />THE&#x00A0;SOFTWARE&#x00A0;IS&#x00A0;PROVIDED&#x00A0;"AS&#x00A0;IS",&#x00A0;WITHOUT&#x00A0;WARRANTY&#x00A0;OF&#x00A0;ANY&#x00A0;KIND,&#x00A0;EXPRESS&#x00A0;OR
242 &#x00A0;<br />IMPLIED,&#x00A0;INCLUDING&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED&#x00A0;TO&#x00A0;THE&#x00A0;WARRANTIES&#x00A0;OF&#x00A0;MERCHANTABILITY,
243 &#x00A0;<br />FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR&#x00A0;PURPOSE&#x00A0;AND&#x00A0;NONINFRINGEMENT.&#x00A0;IN&#x00A0;NO&#x00A0;EVENT&#x00A0;SHALL&#x00A0;THE
244 &#x00A0;<br />AUTHORS&#x00A0;OR&#x00A0;COPYRIGHT&#x00A0;HOLDERS&#x00A0;BE&#x00A0;LIABLE&#x00A0;FOR&#x00A0;ANY&#x00A0;CLAIM,&#x00A0;DAMAGES&#x00A0;OR&#x00A0;OTHER
245 &#x00A0;<br />LIABILITY,&#x00A0;WHETHER&#x00A0;IN&#x00A0;AN&#x00A0;ACTION&#x00A0;OF&#x00A0;CONTRACT,&#x00A0;TORT&#x00A0;OR&#x00A0;OTHERWISE,&#x00A0;ARISING&#x00A0;FROM,
246 &#x00A0;<br />OUT&#x00A0;OF&#x00A0;OR&#x00A0;IN&#x00A0;CONNECTION&#x00A0;WITH&#x00A0;THE&#x00A0;SOFTWARE&#x00A0;OR&#x00A0;THE&#x00A0;USE&#x00A0;OR&#x00A0;OTHER&#x00A0;DEALINGS&#x00A0;IN
247 &#x00A0;<br />THE&#x00A0;SOFTWARE.
248 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;</div>
249 <!--l. 129--><p class="nopar" >
250 <!--l. 131--><p class="noindent" >
251 <h4 class="subsectionHead"><span class="titlemark">1.4   </span> <a 
252  id="x1-60001.4"></a>Obtaining the source code</h4>
253 <!--l. 132--><p class="noindent" >OpenDreambox uses the Git version control system. To obtain the source code, it is
254 required to install Git. See <a 
255 href="http://git-scm.com/" class="url" ><span 
256 class="cmtt-10">http://git-_scm.com/</span></a>.
257 <!--l. 135--><p class="noindent" >To initially download the source into the current directory, issue the following
258 command:
259 <!--l. 138--><p class="noindent" ><span 
260 class="cmtt-9">git clone -b dora git://git.opendreambox.org/git/opendreambox.git</span>
261 <!--l. 140--><p class="noindent" >The Git repository can be viewed online at:
262 <!--l. 142--><p class="noindent" ><a 
263 href="http://git.opendreambox.org/?p=opendreambox.git" class="url" ><span 
264 class="cmtt-10">http://git.opendreambox.org/?p=opendreambox.git</span></a>
265                                                                   
266
267                                                                   
268 <!--l. 144--><p class="noindent" >
269 <h4 class="subsectionHead"><span class="titlemark">1.5   </span> <a 
270  id="x1-70001.5"></a>Quick start</h4>
271 <!--l. 145--><p class="noindent" >For the impatient:
272 <!--l. 147--><p class="noindent" ><span 
273 class="cmtt-9">make -C opendreambox image</span>
274 <!--l. 149--><p class="noindent" >If this command fails, prerequisites my be missing. See section <a 
275 href="#x1-130003">3<!--tex4ht:ref: prerequisites --></a>.
276 <!--l. 151--><p class="noindent" >
277 <h4 class="subsectionHead"><span class="titlemark">1.6   </span> <a 
278  id="x1-80001.6"></a>Directory structure</h4>
279 <!--l. 152--><p class="noindent" >OpenDreambox consists of a set of layers containing build instructions. This meta
280 data is used by BitBake to download and compile source code and to assemble
281 installable software packages and firmware images.
282 <!--l. 156--><p class="noindent" >Currently, these layers are used, ordered by priority from highest to lowest:
283      <ul class="itemize1">
284      <li class="itemize"><span 
285 class="cmtt-9">meta-dreambox</span>
286      </li>
287      <li class="itemize"><span 
288 class="cmtt-9">meta-opendreambox</span>
289      </li>
290      <li class="itemize"><span 
291 class="cmtt-9">meta-qt5</span>
292      </li>
293      <li class="itemize"><span 
294 class="cmtt-9">meta-openembedded/meta-oe</span>
295      </li>
296      <li class="itemize"><span 
297 class="cmtt-9">meta-openembedded/meta-filesystems</span>
298      </li>
299      <li class="itemize"><span 
300 class="cmtt-9">meta-openembedded/meta-initramfs</span>
301      </li>
302      <li class="itemize"><span 
303 class="cmtt-9">meta-openembedded/meta-multimedia</span>
304      </li>
305      <li class="itemize"><span 
306 class="cmtt-9">meta-openembedded/meta-networking</span>
307      </li>
308      <li class="itemize"><span 
309 class="cmtt-9">meta-openembedded/meta-ruby</span>
310      </li>
311      <li class="itemize"><span 
312 class="cmtt-9">openembedded-core/meta</span></li></ul>
313                                                                   
314
315                                                                   
316 <!--l. 172--><p class="noindent" >If a recipe for the same package exists in multiple layers, then the higher priority
317 layer takes precedence over the lower priority layer.
318 <!--l. 176--><p class="noindent" >For example, if <span 
319 class="cmtt-9">libmad</span><span 
320 class="cmtt-9">_0.15.1b.bb </span>existed in both <span 
321 class="cmtt-9">meta-openembedded </span>and
322 <span 
323 class="cmtt-9">openembedded-core</span>, the recipe in <span 
324 class="cmtt-9">meta-openembedded </span>would be used, because
325 <span 
326 class="cmtt-9">openembedded-core </span>has lower priority.
327 <!--l. 181--><p class="noindent" ><span 
328 class="cmbx-10">NOTE: </span>This would still be true even if the version of <span 
329 class="cmtt-9">libmad </span>in <span 
330 class="cmtt-9">openembeded-core</span>
331 was higher than the version in <span 
332 class="cmtt-9">meta-openembedded</span>, unless <span 
333 class="cmtt-9">PREFERRED</span><span 
334 class="cmtt-9">_VERSION</span><span 
335 class="cmtt-9">_libmad</span>
336 was set to the version in <span 
337 class="cmtt-9">openembedded-core</span>. There is currently no way to prefer a
338 version of a lower priority layer, if the same version is present in a higher priority
339 layer.
340 <!--l. 187--><p class="noindent" >
341 <h5 class="subsubsectionHead"><span class="titlemark">1.6.1   </span> <a 
342  id="x1-90001.6.1"></a>openembedded-core and meta-openembedded</h5>
343 <!--l. 188--><p class="noindent" >These directories contain copies of Git repositories from git.openembedded.org,
344 including the OpenEmbedded-Core layer and the (Meta-)OpenEmbedded layers.
345 They get created automatically when building the distribution for the first
346 time.
347 <!--l. 192--><p class="noindent" >Throughout this document, the combination of these directories will be referred to as
348 OpenEmbedded.
349 <!--l. 195--><p class="noindent" >The latest changes to these Git repositories can be seen at:
350 <!--l. 197--><p class="noindent" ><a 
351 href="http://git.openembedded.org/openembedded-core-contrib/log/?h=obi/dora" class="url" ><span 
352 class="cmtt-10">http://git.openembedded.org/openembedded-_core-_contrib/log/?h=obi/dora</span></a>
353 <!--l. 199--><p class="noindent" ><a 
354 href="http://git.openembedded.org/meta-openembedded-contrib/log/?h=obi/dora" class="url" ><span 
355 class="cmtt-10">http://git.openembedded.org/meta-_openembedded-_contrib/log/?h=obi/dora</span></a>
356 <!--l. 201--><p class="noindent" >
357 <h5 class="subsubsectionHead"><span class="titlemark">1.6.2   </span> <a 
358  id="x1-100001.6.2"></a>meta-opendreambox</h5>
359 <!--l. 202--><p class="noindent" >This directory contains:
360      <ul class="itemize1">
361      <li class="itemize">Recipes   for   packages   written   specifically   for   the   OpenDreambox
362      distribution
363      </li>
364      <li class="itemize">Modifications to recipes from OpenEmbedded
365      </li>
366      <li class="itemize">Recipes   for   software   versions   older   than   those   available   from
367      OpenEmbedded
368      </li>
369      <li class="itemize">Recipes   for   software   versions   newer   than   those   available   from
370      OpenEmbedded</li></ul>
371                                                                   
372
373                                                                   
374 <!--l. 211--><p class="noindent" >
375 <h5 class="subsubsectionHead"><span class="titlemark">1.6.3   </span> <a 
376  id="x1-110001.6.3"></a>meta-dreambox</h5>
377 <!--l. 212--><p class="noindent" >The directory <span 
378 class="cmtt-9">meta-dreambox </span>contains Board Support Packages (BSP) for the
379 supported Dreambox models. This includes:
380      <ul class="itemize1">
381      <li class="itemize">Hardware drivers
382      </li>
383      <li class="itemize">Machine specific overrides
384      </li>
385      <li class="itemize">The Linux kernel
386      </li>
387      <li class="itemize">The boot loader
388      </li>
389      <li class="itemize">Splash images</li></ul>
390 <!--l. 223--><p class="noindent" >
391 <h3 class="sectionHead"><span class="titlemark">2   </span> <a 
392  id="x1-120002"></a>Further readings</h3>
393      <ul class="itemize1">
394      <li class="itemize">The Yocto Project Reference Manual: <a 
395 href="https://www.yoctoproject.org/docs/1.5.1/ref-manual/ref-manual.html" class="url" ><span 
396 class="cmtt-10">https://www.yoctoproject.org/docs/1.5.1/ref-_manual/ref-_manual.html</span></a></li></ul>
397 <!--l. 229--><p class="noindent" >
398 <h3 class="sectionHead"><span class="titlemark">3   </span> <a 
399  id="x1-130003"></a>Prerequisites</h3>
400 <!--l. 232--><p class="noindent" >
401 <h4 class="subsectionHead"><span class="titlemark">3.1   </span> <a 
402  id="x1-140003.1"></a>Required software</h4>
403 <!--l. 234--><p class="noindent" >The OpenEmbedded project provides a general list of prerequisites for many Linux
404 distributions and also for some other operating systems.
405                                                                   
406
407                                                                   
408      <ul class="itemize1">
409      <li class="itemize"><a 
410 href="http://www.openembedded.org/wiki/Getting\_started#Required\_software" class="url" ><span 
411 class="cmtt-10">http://www.openembedded.org/wiki/Getting\_started#Required\_software</span></a></li></ul>
412 <!--l. 241--><p class="noindent" >It is highly recommended to use Linux to build OpenDreambox. In theory, any recent
413 distribution will do, but not many distributions have been verified to build
414 OpenDreambox without errors. Tested distributions include:
415      <ul class="itemize1">
416      <li class="itemize">Debian 7.6 &#8221;Wheezy&#8221; [i386, amd64]
417      </li>
418      <li class="itemize">Ubuntu 14.04.1 LTS &#8221;Trusty Tahr&#8221; [amd64]</li></ul>
419                                                                   
420
421                                                                   
422 <!--l. 253--><p class="noindent" >
423 <h3 class="sectionHead"><span class="titlemark">4   </span> <a 
424  id="x1-150004"></a>Major changes since previous public releases</h3>
425 <!--l. 255--><p class="noindent" >
426 <h4 class="subsectionHead"><span class="titlemark">4.1   </span> <a 
427  id="x1-160004.1"></a>Changes since release 1.6</h4>
428      <ul class="itemize1">
429      <li class="itemize">Recipes were split across multiple layers and categorized.
430      </li>
431      <li class="itemize"><span 
432 class="cmtt-9">env.source  </span>has   been   replaced   by   two   files,   <span 
433 class="cmtt-9">bitbake.env  </span>and
434      <span 
435 class="cmtt-9">cross-compile.env</span>. The former sets a minimal environment that is needed
436      to execute bitbake. The latter creates machine-specific command aliases,
437      in order to compile external software.
438      </li>
439      <li class="itemize">All machines share a common <span 
440 class="cmtt-9">tmp </span>directory.
441      </li>
442      <li class="itemize"><span 
443 class="cmtt-9">$</span><span 
444 class="cmsy-9">{</span><span 
445 class="cmtt-9">MACHINE</span><span 
446 class="cmsy-9">}</span><span 
447 class="cmtt-9">/build </span>directories were renamed to <span 
448 class="cmtt-9">build/$</span><span 
449 class="cmsy-9">{</span><span 
450 class="cmtt-9">MACHINE</span><span 
451 class="cmsy-9">}</span>.
452      </li>
453      <li class="itemize">Kernel packages were renamed from <span 
454 class="cmtt-9">linux-$</span><span 
455 class="cmsy-9">{</span><span 
456 class="cmtt-9">MACHINE</span><span 
457 class="cmsy-9">} </span>to <span 
458 class="cmtt-9">linux-dreambox</span>.
459      </li>
460      <li class="itemize">Support for machines based on ATI Xilleon or IBM STB was dropped.</li></ul>
461 <!--l. 268--><p class="noindent" >
462 <h4 class="subsectionHead"><span class="titlemark">4.2   </span> <a 
463  id="x1-170004.2"></a>Changes since release 2.0</h4>
464      <ul class="itemize1">
465      <li class="itemize">Added support for DM7080.
466      </li>
467      <li class="itemize">If   a   recipe   changes,   the   corresponding   packages   will   be   rebuilt
468      automatically, in contrast to required manual PR bumps in the past.
469      </li>
470      <li class="itemize">Each machine uses its own tmp directory again, like before 2.0. However,
471      there is a shared <span 
472 class="cmtt-9">sstate-cache</span>, which allows to share already compiled
473      data between compatible machines. This impacts performance and size of
474      the build system, but improves reliability and consistency across builds.
475                                                                   
476
477                                                                   
478      </li>
479      <li class="itemize">Support for machines without FPU and kernel versions below 3.x was
480      dropped (DM800).
481      </li>
482      <li class="itemize">Layers under meta-bsp were combined into meta-dreambox.
483      </li>
484      <li class="itemize">Default package format switched from ipk (opkg) to deb (dpkg + apt).
485      </li>
486      <li class="itemize"><span 
487 class="cmtt-9">dreambox-image   </span>was    renamed    to    include    the    package    format
488      (<span 
489 class="cmtt-9">dreambox-image-deb</span>).</li></ul>
490 <!--l. 283--><p class="noindent" >
491 <h3 class="sectionHead"><span class="titlemark">5   </span> <a 
492  id="x1-180005"></a>Known Issues</h3>
493 <!--l. 285--><p class="noindent" >None.
494                                                                   
495
496                                                                   
497 <!--l. 289--><p class="noindent" >
498 <h3 class="sectionHead"><span class="titlemark">6   </span> <a 
499  id="x1-190006"></a>Building OpenDreambox</h3>
500 <!--l. 291--><p class="noindent" >In the top level directory, there is a <span 
501 class="cmtt-9">Makefile</span>, which is used to set up build
502 directories and to fetch or update all used repositories. The Makefile can
503 be influenced by environment variables, either by specifing them on the
504 command-line or by storing them in a file called <span 
505 class="cmtt-9">conf/make.conf</span>. It is not
506 recommended to edit the <span 
507 class="cmtt-9">Makefile </span>directly in order to avoid conflicts with future
508 updates.
509 <!--l. 298--><p class="noindent" >When the <span 
510 class="cmtt-9">Makefile </span>is run for the first time, the following steps will be executed:
511      <ul class="itemize1">
512      <li class="itemize">Creation of configuration files
513          <ul class="itemize2">
514          <li class="itemize"><span 
515 class="cmtt-9">bitbake.env</span>
516          </li>
517          <li class="itemize"><span 
518 class="cmtt-9">conf/opendreambox.conf</span>
519          </li>
520          <li class="itemize"><span 
521 class="cmtt-9">build/$</span><span 
522 class="cmsy-9">{</span><span 
523 class="cmtt-9">MACHINE</span><span 
524 class="cmsy-9">}</span><span 
525 class="cmtt-9">/conf/bblayers.conf</span>
526          </li>
527          <li class="itemize"><span 
528 class="cmtt-9">build/$</span><span 
529 class="cmsy-9">{</span><span 
530 class="cmtt-9">MACHINE</span><span 
531 class="cmsy-9">}</span><span 
532 class="cmtt-9">/conf/local.conf</span></li></ul>
533      </li>
534      <li class="itemize">Update or checkout of Git repositories
535          <ul class="itemize2">
536          <li class="itemize">OpenDreambox
537          </li>
538          <li class="itemize">BitBake
539          </li>
540          <li class="itemize">OpenEmbedded</li></ul>
541      </li></ul>
542 <!--l. 317--><p class="noindent" >
543 <h4 class="subsectionHead"><span class="titlemark">6.1   </span> <a 
544  id="x1-200006.1"></a>Makefile targets</h4>
545 <!--l. 318--><p class="noindent" >Run <span 
546 class="cmtt-9">make help </span>to get a list of targets of the top level Makefile, together with a brief
547 description.
548                                                                   
549
550                                                                   
551 <!--l. 320--><p class="noindent" >
552 <h4 class="subsectionHead"><span class="titlemark">6.2   </span> <a 
553  id="x1-210006.2"></a>Configuration variables</h4>
554 <!--l. 321--><p class="noindent" >
555 <h5 class="subsubsectionHead"><span class="titlemark">6.2.1   </span> <a 
556  id="x1-220006.2.1"></a>BB_NUMBER_THREADS</h5>
557 <!--l. 322--><p class="noindent" >Controls how many BitBake tasks may run at a time. Defaults to the number of cores
558 available on the build system.
559 <!--l. 325--><p class="noindent" >
560 <h5 class="subsubsectionHead"><span class="titlemark">6.2.2   </span> <a 
561  id="x1-230006.2.2"></a>MACHINE</h5>
562 <!--l. 326--><p class="noindent" >Controls the target machine to build packages for. See section <a 
563 href="#x1-40001.2">1.2<!--tex4ht:ref: products --></a> for a list of
564 supported products.
565 <!--l. 329--><p class="noindent" >
566 <h5 class="subsubsectionHead"><span class="titlemark">6.2.3   </span> <a 
567  id="x1-240006.2.3"></a>PARALLEL_MAKE</h5>
568 <!--l. 330--><p class="noindent" >Controls how many processes per recipe <span 
569 class="cmtt-9">make </span>may use. Defaults to the number of
570 cores available on the build system.
571 <!--l. 333--><p class="noindent" >
572 <h4 class="subsectionHead"><span class="titlemark">6.3   </span> <a 
573  id="x1-250006.3"></a>Adding custom layers</h4>
574 <!--l. 335--><p class="noindent" >It is possible to add custom layers to the build system. This can be done globally and
575 per machine. To add a layer globally, edit <span 
576 class="cmtt-9">conf/bblayers-ext.conf</span>. To add a
577 machine-specific layer, edit <span 
578 class="cmtt-9">conf/bblayers-$</span><span 
579 class="cmsy-9">{</span><span 
580 class="cmtt-9">MACHINE</span><span 
581 class="cmsy-9">}</span><span 
582 class="cmtt-9">-ext.conf</span>. Assuming that an
583 additional layer is available at <span 
584 class="cmtt-9">$</span><span 
585 class="cmsy-9">{</span><span 
586 class="cmtt-9">HOME</span><span 
587 class="cmsy-9">}</span><span 
588 class="cmtt-9">/custom-layer</span>, the entry to add to the file will
589 look like this:
590 <!--l. 341--><p class="noindent" ><span 
591 class="cmtt-9">BBLAYERS =+ "$</span><span 
592 class="cmsy-9">{</span><span 
593 class="cmtt-9">HOME</span><span 
594 class="cmsy-9">}</span><span 
595 class="cmtt-9">/custom-layer"</span>
596 <!--l. 343--><p class="noindent" >
597 <h4 class="subsectionHead"><span class="titlemark">6.4   </span> <a 
598  id="x1-260006.4"></a>Adding custom options</h4>
599 <!--l. 344--><p class="noindent" >It is possible to tweak a lot more options than those used by the <span 
600 class="cmtt-9">Makefile </span>by editing
601 <span 
602 class="cmtt-9">conf/local-ext.conf </span>or <span 
603 class="cmtt-9">conf/local-$</span><span 
604 class="cmsy-9">{</span><span 
605 class="cmtt-9">MACHINE</span><span 
606 class="cmsy-9">}</span><span 
607 class="cmtt-9">-ext.conf</span>.
608                                                                   
609
610                                                                   
611 <!--l. 347--><p class="noindent" >For example, if the firmware shall use the package feed built on the develoment
612 machine, which happens to be 192.168.1.1 and has a webserver configured to point to
613 <span 
614 class="cmtt-9">tmp/deploy/ipk</span>, a line like the following may be added:
615 <!--l. 351--><p class="noindent" ><span 
616 class="cmtt-9">DISTRO</span><span 
617 class="cmtt-9">_FEED</span><span 
618 class="cmtt-9">_URI = "http://192.168.1.1/$</span><span 
619 class="cmsy-9">{</span><span 
620 class="cmtt-9">DISTRO</span><span 
621 class="cmsy-9">}</span><span 
622 class="cmtt-9">/$</span><span 
623 class="cmsy-9">{</span><span 
624 class="cmtt-9">DISTRO</span><span 
625 class="cmtt-9">_VERSION</span><span 
626 class="cmsy-9">}</span><span 
627 class="cmtt-9">"</span>
628 <!--l. 353--><p class="noindent" >In general, any variable in OpenEmbedded that uses weak assignment (<span 
629 class="cmtt-9">?=</span>) may be
630 overridden from these files.
631 <!--l. 356--><p class="noindent" >The following sections list some commonly used options.
632 <!--l. 358--><p class="noindent" >
633 <h5 class="subsubsectionHead"><span class="titlemark">6.4.1   </span> <a 
634  id="x1-270006.4.1"></a>DISTRO_FEED_PREFIX</h5>
635 <!--l. 360--><p class="noindent" ><span 
636 class="cmtt-9">DISTRO</span><span 
637 class="cmtt-9">_FEED</span><span 
638 class="cmtt-9">_PREFIX </span>specifies the name of the package update feed. This name may be
639 chosen arbitarily.
640 <!--l. 363--><p class="noindent" >Default: <span 
641 class="cmtt-9">DISTRO</span><span 
642 class="cmtt-9">_FEED</span><span 
643 class="cmtt-9">_PREFIX = "remote"</span>
644 <!--l. 365--><p class="noindent" >
645 <h5 class="subsubsectionHead"><span class="titlemark">6.4.2   </span> <a 
646  id="x1-280006.4.2"></a>DISTRO_FEED_URI</h5>
647 <!--l. 367--><p class="noindent" ><span 
648 class="cmtt-9">DISTRO</span><span 
649 class="cmtt-9">_FEED</span><span 
650 class="cmtt-9">_URI </span>specifies the URI of the package update feed.
651 <!--l. 369--><p class="noindent" >Default: <span 
652 class="cmtt-9">DISTRO</span><span 
653 class="cmtt-9">_FEED</span><span 
654 class="cmtt-9">_URI = "http://my-distribution.example/remote-feed/"</span>
655 <!--l. 371--><p class="noindent" >
656 <h5 class="subsubsectionHead"><span class="titlemark">6.4.3   </span> <a 
657  id="x1-290006.4.3"></a>INHERIT</h5>
658 <!--l. 373--><p class="noindent" ><span 
659 class="cmtt-9">INHERIT </span>specifies bbclasses to include from a configuration file. Usually, this variable
660 gets appended to by using the <span 
661 class="cmtt-9">+= </span>operator.
662 <!--l. 376--><p class="noindent" >The OpenDreambox distribution automatically appends <span 
663 class="cmtt-9">"buildhistory recipe</span><span 
664 class="cmtt-9">_sanity"</span>
665 to <span 
666 class="cmtt-9">INHERIT</span>.
667 <!--l. 378--><p class="noindent" >Default: <span 
668 class="cmtt-9">INHERIT = ""</span>
669 <!--l. 380--><p class="noindent" ><span 
670 class="cmbx-10">Some examples:</span>
671 <!--l. 382--><p class="noindent" >Always build the latest versions of OpenDreambox-related projects from
672 Git:
673 <!--l. 384--><p class="noindent" ><span 
674 class="cmtt-9">INHERIT += "opendreambox-autorev"</span>
675 <!--l. 386--><p class="noindent" >Remove temporary files of previous versions of a recipe before a newer version gets
676 built:
677 <!--l. 388--><p class="noindent" ><span 
678 class="cmtt-9">INHERIT += "rm</span><span 
679 class="cmtt-9">_old</span><span 
680 class="cmtt-9">_work"</span>
681                                                                   
682
683                                                                   
684 <!--l. 390--><p class="noindent" >
685 <h4 class="subsectionHead"><span class="titlemark">6.5   </span> <a 
686  id="x1-300006.5"></a>Setting up a build directory</h4>
687 <!--l. 391--><p class="noindent" >To set up a build directory for e.g. <span 
688 class="cmbx-10">DM 7080 </span>run <span 
689 class="cmtt-9">make MACHINE=dm7080</span>. If
690 <span 
691 class="cmtt-9">MACHINE=dm7080 </span>has been set in <span 
692 class="cmtt-9">conf/make.conf </span>(default), you can simply run
693 <span 
694 class="cmtt-9">make </span>with no arguments instead. This will create and initialize the directory
695 <span 
696 class="cmtt-9">build/dm7080</span>.
697 <!--l. 395--><p class="noindent" >
698 <h4 class="subsectionHead"><span class="titlemark">6.6   </span> <a 
699  id="x1-310006.6"></a>Building a firmware image</h4>
700 <!--l. 396--><p class="noindent" >To build a firmware image for e.g. <span 
701 class="cmbx-10">DM 7080 </span>run <span 
702 class="cmtt-9">make MACHINE=dm7080 image</span>. If
703 <span 
704 class="cmtt-9">MACHINE=dm7080 </span>has been set in <span 
705 class="cmtt-9">conf/make.conf </span>(default), you can simply run <span 
706 class="cmtt-9">make</span>
707 <span 
708 class="cmtt-9">image </span>instead.
709 <!--l. 400--><p class="noindent" >
710 <h4 class="subsectionHead"><span class="titlemark">6.7   </span> <a 
711  id="x1-320006.7"></a>Building a package</h4>
712 <!--l. 401--><p class="noindent" >To build a single package, BitBake has to be used directly. First, the environment has
713 to be set up, in order to make BitBake available to the shell. This can be done with
714 the following command:
715 <!--l. 405--><p class="noindent" ><span 
716 class="cmtt-9">source bitbake.env</span>
717 <!--l. 407--><p class="noindent" >BitBake must be run from the machine&#8217;s build directory. For <span 
718 class="cmbx-10">DM 7080</span>
719 run:
720 <!--l. 409--><p class="noindent" ><span 
721 class="cmtt-9">cd build/dm7080</span>
722 <!--l. 411--><p class="noindent" >In order to build enigma2, run:
723 <!--l. 413--><p class="noindent" ><span 
724 class="cmtt-9">bitbake enigma2</span>.
725 <!--l. 415--><p class="noindent" >
726 <h3 class="sectionHead"><span class="titlemark">7   </span> <a 
727  id="x1-330007"></a>Development hints</h3>
728 <!--l. 417--><p class="noindent" >
729 <h4 class="subsectionHead"><span class="titlemark">7.1   </span> <a 
730  id="x1-340007.1"></a>Cross-compilation of external software</h4>
731 <!--l. 418--><p class="noindent" >OpenDreambox provides a script called <span 
732 class="cmtt-9">cross-compile.env</span>. Once run, the script will
733 create the following commands (shell aliases), aiming to ease cross-compilation of
734 external source trees:
735                                                                   
736
737                                                                   
738      <ul class="itemize1">
739      <li class="itemize"><span 
740 class="cmtt-9">oe</span><span 
741 class="cmtt-9">_autoreconf </span>- Calls OE&#8217;s version of <span 
742 class="cmtt-9">autoreconf</span>. Useful for projects based
743      on GNU autotools.
744      </li>
745      <li class="itemize"><span 
746 class="cmtt-9">oe</span><span 
747 class="cmtt-9">_runconf </span>- Calls <span 
748 class="cmtt-9">./configure </span>with parameters suitable for OE. Useful
749      for projects based on GNU autotools.
750      </li>
751      <li class="itemize"><span 
752 class="cmtt-9">oe</span><span 
753 class="cmtt-9">_runmake </span>-  Calls  <span 
754 class="cmtt-9">make </span>with  parameters  suitable  for  OE.  Useful  for
755      projects based on GNU autotools or GNU make.
756      </li>
757      <li class="itemize"><span 
758 class="cmtt-9">oe</span><span 
759 class="cmtt-9">_env </span>- Useful to execute arbitrary commands in the OE environment
760      (e.g. <span 
761 class="cmtt-9">oe</span><span 
762 class="cmtt-9">_env env</span>).
763      </li>
764      <li class="itemize"><span 
765 class="cmtt-9">oe</span><span 
766 class="cmtt-9">_setenv </span>- Exports the OE environment to the currently running shell
767      session.</li></ul>
768 <!--l. 429--><p class="noindent" >The script needs to know the target machine, which can be one of the supported
769 products (see <a 
770 href="#x1-40001.2">1.2<!--tex4ht:ref: products --></a>). Because the script adds aliases to your currently running shell
771 session, it has to be invoked using <span 
772 class="cmtt-9">source </span>or <span 
773 class="cmtt-9">. </span>(the dot operator), e.g.:
774 <!--l. 432--><p class="noindent" ><span 
775 class="cmtt-9">source cross-compile.env dm7080</span>
776 <!--l. 434--><p class="noindent" >The script may be called from any location, but must reside inside the OpenDreambox
777 Git tree. You may want to create a symlink to <span 
778 class="cmtt-9">cross-compile.env </span>somewhere in your
779 <span 
780 class="cmtt-9">PATH</span>.
781 <!--l. 437--><p class="noindent" >
782 <h4 class="subsectionHead"><span class="titlemark">7.2   </span> <a 
783  id="x1-350007.2"></a>Coding style</h4>
784 <!--l. 438--><p class="noindent" >Run <span 
785 class="cmtt-9">scripts/do</span><span 
786 class="cmtt-9">_stylize.sh </span>on new recipes to ensure proper coding style.
787 <!--l. 440--><p class="noindent" >
788 <h4 class="subsectionHead"><span class="titlemark">7.3   </span> <a 
789  id="x1-360007.3"></a>Package architecture</h4>
790 <!--l. 441--><p class="noindent" >Set <span 
791 class="cmtt-9">PACKAGE</span><span 
792 class="cmtt-9">_ARCH = "$</span><span 
793 class="cmsy-9">{</span><span 
794 class="cmtt-9">MACHINE</span><span 
795 class="cmtt-9">_ARCH</span><span 
796 class="cmsy-9">}</span><span 
797 class="cmtt-9">" </span>if either condition is met:
798      <ul class="itemize1">
799      <li class="itemize">The     recipe     uses     <span 
800 class="cmtt-9">COMBINED</span><span 
801 class="cmtt-9">_FEATURES</span>,     <span 
802 class="cmtt-9">MACHINE</span><span 
803 class="cmtt-9">_FEATURES    </span>or
804      <span 
805 class="cmtt-9">DREAMBOX</span><span 
806 class="cmtt-9">_FEATURES</span>.
807      </li>
808      <li class="itemize">The recipe uses <span 
809 class="cmtt-9">COMPATIBLE</span><span 
810 class="cmtt-9">_MACHINE</span>.
811                                                                   
812
813                                                                   
814      </li>
815      <li class="itemize">The recipe is part of <span 
816 class="cmtt-9">meta-dreambox</span>.</li></ul>
817 <!--l. 448--><p class="noindent" >
818 <h3 class="sectionHead"><span class="titlemark">8   </span> <a 
819  id="x1-370008"></a>Bug reports and patches</h3>
820 <!--l. 450--><p class="noindent" >Please send bug reports and patches to the Enigma2 development mailing list
821 <span 
822 class="cmtt-9">&#x003C;enigma2-devel@lists.elitedvb.net&#x003E;</span>.
823 <!--l. 452--><p class="noindent" >A comfortable way to create patches is to use <span 
824 class="cmtt-9">git format-patch</span>, after all changes
825 have been committed to your local copy of the repository.
826  
827 </body></html> 
828
829                                                                   
830
831