blob: dc75eb827b93191f1b50e744dbe9eb3fe988d238 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<chapter id='migration'>
6<title>Migrating to a Newer Yocto Project Release</title>
7
8 <para>
9 This chapter provides information you can use to migrate work to a
10 newer Yocto Project release. You can find the same information in the
11 release notes for a given release.
12 </para>
13
14<section id='general-migration-considerations'>
15 <title>General Migration Considerations</title>
16
17 <para>
18 Some considerations are not tied to a specific Yocto Project
19 release.
20 This section presents information you should consider when
21 migrating to any new Yocto Project release.
22 <itemizedlist>
23 <listitem><para><emphasis>Dealing with Customized Recipes</emphasis>:
24 Issues could arise if you take older recipes that contain
25 customizations and simply copy them forward expecting them
26 to work after you migrate to new Yocto Project metadata.
27 For example, suppose you have a recipe in your layer that is
28 a customized version of a core recipe copied from the earlier
29 release, rather than through the use of an append file.
30 When you migrate to a newer version of Yocto Project, the
31 metadata (e.g. perhaps an include file used by the recipe)
32 could have changed in a way that would break the build.
33 Say, for example, a function is removed from an include file
34 and the customized recipe tries to call that function.
35 </para>
36
37 <para>You could "forward-port" all your customizations in your
38 recipe so that everything works for the new release.
39 However, this is not the optimal solution as you would have
40 to repeat this process with each new release if changes
41 occur that give rise to problems.</para>
42
43 <para>The better solution (where practical) is to use append
44 files (<filename>*.bbappend</filename>) to capture any
45 customizations you want to make to a recipe.
46 Doing so, isolates your changes from the main recipe making
47 them much more manageable.
48 However, sometimes it is not practical to use an append
49 file.
50 A good example of this is when introducing a newer or older
51 version of a recipe in another layer.</para>
52 </listitem>
53 <listitem><para><emphasis>Updating Append Files</emphasis>:
54 Since append files generally only contain your customizations,
55 they often do not need to be adjusted for new releases.
56 However, if the <filename>.bbappend</filename> file is
57 specific to a particular version of the recipe (i.e. its
58 name does not use the % wildcard) and the version of the
59 recipe to which it is appending has changed, then you will
60 at a minimum need to rename the append file to match the
61 name of the recipe file.
62 A mismatch between an append file and its corresponding
63 recipe file (<filename>.bb</filename>) will
64 trigger an error during parsing.</para>
65 <para>Depending on the type of customization the append file
66 applies, other incompatibilities might occur when you
67 upgrade.
68 For example, if your append file applies a patch and the
69 recipe to which it is appending is updated to a newer
70 version, the patch might no longer apply.
71 If this is the case and assuming the patch is still needed,
72 you must modify the patch file so that it does apply.
73 </para></listitem>
74 </itemizedlist>
75 </para>
76</section>
77
78<section id='moving-to-the-yocto-project-1.3-release'>
79 <title>Moving to the Yocto Project 1.3 Release</title>
80
81 <para>
82 This section provides migration information for moving to the
83 Yocto Project 1.3 Release from the prior release.
84 </para>
85
86 <section id='1.3-local-configuration'>
87 <title>Local Configuration</title>
88
89 <para>
90 Differences include changes for
91 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
92 and <filename>bblayers.conf</filename>.
93 </para>
94
95 <section id='migration-1.3-sstate-mirrors'>
96 <title>SSTATE_MIRRORS</title>
97
98 <para>
99 The shared state cache (sstate-cache), as pointed to by
100 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>, by default
101 now has two-character subdirectories to prevent issues arising
102 from too many files in the same directory.
103 Also, native sstate-cache packages will go into a subdirectory named using
104 the distro ID string.
105 If you copy the newly structured sstate-cache to a mirror location
106 (either local or remote) and then point to it in
107 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>,
108 you need to append "PATH" to the end of the mirror URL so that
109 the path used by BitBake before the mirror substitution is
110 appended to the path used to access the mirror.
111 Here is an example:
112 <literallayout class='monospaced'>
113 SSTATE_MIRRORS = "file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH"
114 </literallayout>
115 </para>
116 </section>
117
118 <section id='migration-1.3-bblayers-conf'>
119 <title>bblayers.conf</title>
120
121 <para>
122 The <filename>meta-yocto</filename> layer consists of two parts
123 that correspond to the Poky reference distribution and the
124 reference hardware Board Support Packages (BSPs), respectively:
125 <filename>meta-yocto</filename> and
126 <filename>meta-yocto-bsp</filename>.
127 When running BitBake or Hob for the first time after upgrading,
128 your <filename>conf/bblayers.conf</filename> file will be
129 updated to handle this change and you will be asked to
130 re-run or restart for the changes to take effect.
131 </para>
132 </section>
133 </section>
134
135 <section id='1.3-recipes'>
136 <title>Recipes</title>
137
138 <para>
139 Differences include changes for the following:
140 <itemizedlist>
141 <listitem><para>Python function whitespace</para></listitem>
142 <listitem><para><filename>proto=</filename> in <filename>SRC_URI</filename></para></listitem>
143 <listitem><para><filename>nativesdk</filename></para></listitem>
144 <listitem><para>Task recipes</para></listitem>
145 <listitem><para><filename>IMAGE_FEATURES</filename></para></listitem>
146 <listitem><para>Removed recipes</para></listitem>
147 </itemizedlist>
148 </para>
149
150 <section id='migration-1.3-python-function-whitespace'>
151 <title>Python Function Whitespace</title>
152
153 <para>
154 All Python functions must now use four spaces for indentation.
155 Previously, an inconsistent mix of spaces and tabs existed,
156 which made extending these functions using
157 <filename>_append</filename> or <filename>_prepend</filename>
158 complicated given that Python treats whitespace as
159 syntactically significant.
160 If you are defining or extending any Python functions (e.g.
161 <filename>populate_packages</filename>, <filename>do_unpack</filename>,
162 <filename>do_patch</filename> and so forth) in custom recipes
163 or classes, you need to ensure you are using consistent
164 four-space indentation.
165 </para>
166 </section>
167
168 <section id='migration-1.3-proto=-in-src-uri'>
169 <title>proto= in SRC_URI</title>
170
171 <para>
172 Any use of <filename>proto=</filename> in
173 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
174 needs to be changed to <filename>protocol=</filename>.
175 In particular, this applies to the following URIs:
176 <itemizedlist>
177 <listitem><para><filename>svn://</filename></para></listitem>
178 <listitem><para><filename>bzr://</filename></para></listitem>
179 <listitem><para><filename>hg://</filename></para></listitem>
180 <listitem><para><filename>osc://</filename></para></listitem>
181 </itemizedlist>
182 Other URIs were already using <filename>protocol=</filename>.
183 This change improves consistency.
184 </para>
185 </section>
186
187 <section id='migration-1.3-nativesdk'>
188 <title>nativesdk</title>
189
190 <para>
191 The suffix <filename>nativesdk</filename> is now implemented
192 as a prefix, which simplifies a lot of the packaging code for
193 <filename>nativesdk</filename> recipes.
194 All custom <filename>nativesdk</filename> recipes and any
195 references need to be updated to use
196 <filename>nativesdk-*</filename> instead of
197 <filename>*-nativesdk</filename>.
198 </para>
199 </section>
200
201 <section id='migration-1.3-task-recipes'>
202 <title>Task Recipes</title>
203
204 <para>
205 "Task" recipes are now known as "Package groups" and have
206 been renamed from <filename>task-*.bb</filename> to
207 <filename>packagegroup-*.bb</filename>.
208 Existing references to the previous <filename>task-*</filename>
209 names should work in most cases as there is an automatic
210 upgrade path for most packages.
211 However, you should update references in your own recipes and
212 configurations as they could be removed in future releases.
213 You should also rename any custom <filename>task-*</filename>
214 recipes to <filename>packagegroup-*</filename>, and change
215 them to inherit <filename>packagegroup</filename> instead of
216 <filename>task</filename>, as well as taking the opportunity
217 to remove anything now handled by
218 <filename>packagegroup.bbclass</filename>, such as providing
219 <filename>-dev</filename> and <filename>-dbg</filename>
220 packages, setting
221 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>,
222 and so forth.
223 See the
224 "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
225 section for further details.
226 </para>
227 </section>
228
229 <section id='migration-1.3-image-features'>
230 <title>IMAGE_FEATURES</title>
231
232 <para>
233 Image recipes that previously included "apps-console-core"
234 in <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
235 should now include "splash" instead to enable the boot-up
236 splash screen.
237 Retaining "apps-console-core" will still include the splash
238 screen but generates a warning.
239 The "apps-x11-core" and "apps-x11-games"
240 <filename>IMAGE_FEATURES</filename> features have been removed.
241 </para>
242 </section>
243
244 <section id='migration-1.3-removed-recipes'>
245 <title>Removed Recipes</title>
246
247 <para>
248 The following recipes have been removed.
249 For most of them, it is unlikely that you would have any
250 references to them in your own
251 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>.
252 However, you should check your metadata against this list to be sure:
253 <itemizedlist>
254 <listitem><para><emphasis><filename>libx11-trim</filename></emphasis>:
255 Replaced by <filename>libx11</filename>, which has a negligible
256 size difference with modern Xorg.</para></listitem>
257 <listitem><para><emphasis><filename>xserver-xorg-lite</filename></emphasis>:
258 Use <filename>xserver-xorg</filename>, which has a negligible
259 size difference when DRI and GLX modules are not installed.</para></listitem>
260 <listitem><para><emphasis><filename>xserver-kdrive</filename></emphasis>:
261 Effectively unmaintained for many years.</para></listitem>
262 <listitem><para><emphasis><filename>mesa-xlib</filename></emphasis>:
263 No longer serves any purpose.</para></listitem>
264 <listitem><para><emphasis><filename>galago</filename></emphasis>:
265 Replaced by telepathy.</para></listitem>
266 <listitem><para><emphasis><filename>gail</filename></emphasis>:
267 Functionality was integrated into GTK+ 2.13.</para></listitem>
268 <listitem><para><emphasis><filename>eggdbus</filename></emphasis>:
269 No longer needed.</para></listitem>
270 <listitem><para><emphasis><filename>gcc-*-intermediate</filename></emphasis>:
271 The build has been restructured to avoid the need for
272 this step.</para></listitem>
273 <listitem><para><emphasis><filename>libgsmd</filename></emphasis>:
274 Unmaintained for many years.
275 Functionality now provided by
276 <filename>ofono</filename> instead.</para></listitem>
277 <listitem><para><emphasis>contacts, dates, tasks, eds-tools</emphasis>:
278 Largely unmaintained PIM application suite.
279 It has been moved to <filename>meta-gnome</filename>
280 in <filename>meta-openembedded</filename>.</para></listitem>
281 </itemizedlist>
282 In addition to the previously listed changes, the
283 <filename>meta-demoapps</filename> directory has also been removed
284 because the recipes in it were not being maintained and many
285 had become obsolete or broken.
286 Additionally, these recipes were not parsed in the default configuration.
287 Many of these recipes are already provided in an updated and
288 maintained form within the OpenEmbedded community layers such as
289 <filename>meta-oe</filename> and <filename>meta-gnome</filename>.
290 For the remainder, you can now find them in the
291 <filename>meta-extras</filename> repository, which is in the
292 Yocto Project
293 <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>.
294 </para>
295 </section>
296 </section>
297
298 <section id='1.3-linux-kernel-naming'>
299 <title>Linux Kernel Naming</title>
300
301 <para>
302 The naming scheme for kernel output binaries has been changed to
303 now include
304 <link linkend='var-PE'><filename>PE</filename></link> as part of the
305 filename:
306 <literallayout class='monospaced'>
307 KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
308 </literallayout>
309 </para>
310
311 <para>
312 Because the <filename>PE</filename> variable is not set by default,
313 these binary files could result with names that include two dash
314 characters.
315 Here is an example:
316 <literallayout class='monospaced'>
317 bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin
318 </literallayout>
319 </para>
320 </section>
321</section>
322
323<section id='moving-to-the-yocto-project-1.4-release'>
324 <title>Moving to the Yocto Project 1.4 Release</title>
325
326 <para>
327 This section provides migration information for moving to the
328 Yocto Project 1.4 Release from the prior release.
329 </para>
330
331 <section id='migration-1.4-bitbake'>
332 <title>BitBake</title>
333
334 <para>
335 Differences include the following:
336 <itemizedlist>
337 <listitem><para><emphasis>Comment Continuation:</emphasis>
338 If a comment ends with a line continuation (\) character,
339 then the next line must also be a comment.
340 Any instance where this is not the case, now triggers
341 a warning.
342 You must either remove the continuation character, or be
343 sure the next line is a comment.
344 </para></listitem>
345 <listitem><para><emphasis>Package Name Overrides:</emphasis>
346 The runtime package specific variables
347 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>,
348 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
349 <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>,
350 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>,
351 <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>,
352 <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>,
353 <link linkend='var-FILES'><filename>FILES</filename></link>,
354 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>,
355 and the pre, post, install, and uninstall script functions
356 <filename>pkg_preinst</filename>,
357 <filename>pkg_postinst</filename>,
358 <filename>pkg_prerm</filename>, and
359 <filename>pkg_postrm</filename> should always have a
360 package name override.
361 For example, use <filename>RDEPENDS_${PN}</filename> for
362 the main package instead of <filename>RDEPENDS</filename>.
363 BitBake uses more strict checks when it parses recipes.
364 </para></listitem>
365 </itemizedlist>
366 </para>
367 </section>
368
369 <section id='migration-1.4-build-behavior'>
370 <title>Build Behavior</title>
371
372 <para>
373 Differences include the following:
374 <itemizedlist>
375 <listitem><para><emphasis>Shared State Code:</emphasis>
376 The shared state code has been optimized to avoid running
377 unnecessary tasks.
378 For example, the following no longer populates the target
379 sysroot since that is not necessary:
380 <literallayout class='monospaced'>
381 $ bitbake -c rootfs <replaceable>some-image</replaceable>
382 </literallayout>
383 Instead, the system just needs to extract the output
384 package contents, re-create the packages, and construct
385 the root filesystem.
386 This change is unlikely to cause any problems unless
387 you have missing declared dependencies.
388 </para></listitem>
389 <listitem><para><emphasis>Scanning Directory Names:</emphasis>
390 When scanning for files in
391 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
392 the build system now uses
393 <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
394 instead of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
395 for the directory names.
396 In general, the values previously in
397 <filename>OVERRIDES</filename> are now in
398 <filename>FILESOVERRIDES</filename> as well.
399 However, if you relied upon an additional value
400 you previously added to <filename>OVERRIDES</filename>,
401 you might now need to add it to
402 <filename>FILESOVERRIDES</filename> unless you are already
403 adding it through the
404 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>
405 or <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
406 variables, as appropriate.
407 For more related changes, see the
408 "<link linkend='migration-1.4-variables'>Variables</link>"
409 section.
410 </para></listitem>
411 </itemizedlist>
412 </para>
413 </section>
414
415
416 <section id='migration-1.4-proxies-and-fetching-source'>
417 <title>Proxies and Fetching Source</title>
418
419 <para>
420 A new <filename>oe-git-proxy</filename> script has been added to
421 replace previous methods of handling proxies and fetching source
422 from Git.
423 See the <filename>meta-yocto/conf/site.conf.sample</filename> file
424 for information on how to use this script.
425 </para>
426 </section>
427
428 <section id='migration-1.4-custom-interfaces-file-netbase-change'>
429 <title>Custom Interfaces File (netbase change)</title>
430
431 <para>
432 If you have created your own custom
433 <filename>etc/network/interfaces</filename> file by creating
434 an append file for the <filename>netbase</filename> recipe,
435 you now need to create an append file for the
436 <filename>init-ifupdown</filename> recipe instead, which you can
437 find in the
438 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
439 at <filename>meta/recipes-core/init-ifupdown</filename>.
440 For information on how to use append files, see the
441 "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
442 in the Yocto Project Development Manual.
443 </para>
444 </section>
445
446 <section id='migration-1.4-remote-debugging'>
447 <title>Remote Debugging</title>
448
449 <para>
450 Support for remote debugging with the Eclipse IDE is now
451 separated into an image feature
452 (<filename>eclipse-debug</filename>) that corresponds to the
453 <filename>packagegroup-core-eclipse-debug</filename> package group.
454 Previously, the debugging feature was included through the
455 <filename>tools-debug</filename> image feature, which corresponds
456 to the <filename>packagegroup-core-tools-debug</filename>
457 package group.
458 </para>
459 </section>
460
461 <section id='migration-1.4-variables'>
462 <title>Variables</title>
463
464 <para>
465 The following variables have changed:
466 <itemizedlist>
467 <listitem><para><emphasis><filename>SANITY_TESTED_DISTROS</filename>:</emphasis>
468 This variable now uses a distribution ID, which is composed
469 of the host distributor ID followed by the release.
470 Previously,
471 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
472 was composed of the description field.
473 For example, "Ubuntu 12.10" becomes "Ubuntu-12.10".
474 You do not need to worry about this change if you are not
475 specifically setting this variable, or if you are
476 specifically setting it to "".
477 </para></listitem>
478 <listitem><para><emphasis><filename>SRC_URI</filename>:</emphasis>
479 The <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>,
480 <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>,
481 <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>,
482 and <filename>FILE_DIRNAME</filename> directories have been
483 dropped from the default value of the
484 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
485 variable, which is used as the search path for finding files
486 referred to in
487 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
488 If you have a recipe that relied upon these directories,
489 which would be unusual, then you will need to add the
490 appropriate paths within the recipe or, alternatively,
491 rearrange the files.
492 The most common locations are still covered by
493 <filename>${BP}</filename>, <filename>${BPN}</filename>,
494 and "files", which all remain in the default value of
495 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
496 </para></listitem>
497 </itemizedlist>
498 </para>
499 </section>
500
501 <section id='migration-target-package-management-with-rpm'>
502 <title>Target Package Management with RPM</title>
503
504 <para>
505 If runtime package management is enabled and the RPM backend
506 is selected, Smart is now installed for package download, dependency
507 resolution, and upgrades instead of Zypper.
508 For more information on how to use Smart, run the following command
509 on the target:
510 <literallayout class='monospaced'>
511 smart --help
512 </literallayout>
513 </para>
514 </section>
515
516 <section id='migration-1.4-recipes-moved'>
517 <title>Recipes Moved</title>
518
519 <para>
520 The following recipes were moved from their previous locations
521 because they are no longer used by anything in
522 the OpenEmbedded-Core:
523 <itemizedlist>
524 <listitem><para><emphasis><filename>clutter-box2d</filename>:</emphasis>
525 Now resides in the <filename>meta-oe</filename> layer.
526 </para></listitem>
527 <listitem><para><emphasis><filename>evolution-data-server</filename>:</emphasis>
528 Now resides in the <filename>meta-gnome</filename> layer.
529 </para></listitem>
530 <listitem><para><emphasis><filename>gthumb</filename>:</emphasis>
531 Now resides in the <filename>meta-gnome</filename> layer.
532 </para></listitem>
533 <listitem><para><emphasis><filename>gtkhtml2</filename>:</emphasis>
534 Now resides in the <filename>meta-oe</filename> layer.
535 </para></listitem>
536 <listitem><para><emphasis><filename>gupnp</filename>:</emphasis>
537 Now resides in the <filename>meta-multimedia</filename> layer.
538 </para></listitem>
539 <listitem><para><emphasis><filename>gypsy</filename>:</emphasis>
540 Now resides in the <filename>meta-oe</filename> layer.
541 </para></listitem>
542 <listitem><para><emphasis><filename>libcanberra</filename>:</emphasis>
543 Now resides in the <filename>meta-gnome</filename> layer.
544 </para></listitem>
545 <listitem><para><emphasis><filename>libgdata</filename>:</emphasis>
546 Now resides in the <filename>meta-gnome</filename> layer.
547 </para></listitem>
548 <listitem><para><emphasis><filename>libmusicbrainz</filename>:</emphasis>
549 Now resides in the <filename>meta-multimedia</filename> layer.
550 </para></listitem>
551 <listitem><para><emphasis><filename>metacity</filename>:</emphasis>
552 Now resides in the <filename>meta-gnome</filename> layer.
553 </para></listitem>
554 <listitem><para><emphasis><filename>polkit</filename>:</emphasis>
555 Now resides in the <filename>meta-oe</filename> layer.
556 </para></listitem>
557 <listitem><para><emphasis><filename>zeroconf</filename>:</emphasis>
558 Now resides in the <filename>meta-networking</filename> layer.
559 </para></listitem>
560 </itemizedlist>
561 </para>
562 </section>
563
564 <section id='migration-1.4-removals-and-renames'>
565 <title>Removals and Renames</title>
566
567 <para>
568 The following list shows what has been removed or renamed:
569 <itemizedlist>
570 <listitem><para><emphasis><filename>evieext</filename>:</emphasis>
571 Removed because it has been removed from
572 <filename>xserver</filename> since 2008.
573 </para></listitem>
574 <listitem><para><emphasis>Gtk+ DirectFB:</emphasis>
575 Removed support because upstream Gtk+ no longer supports it
576 as of version 2.18.
577 </para></listitem>
578 <listitem><para><emphasis><filename>libxfontcache / xfontcacheproto</filename>:</emphasis>
579 Removed because they were removed from the Xorg server in 2008.
580 </para></listitem>
581 <listitem><para><emphasis><filename>libxp / libxprintapputil / libxprintutil / printproto</filename>:</emphasis>
582 Removed because the XPrint server was removed from
583 Xorg in 2008.
584 </para></listitem>
585 <listitem><para><emphasis><filename>libxtrap / xtrapproto</filename>:</emphasis>
586 Removed because their functionality was broken upstream.
587 </para></listitem>
588 <listitem><para><emphasis>linux-yocto 3.0 kernel:</emphasis>
589 Removed with linux-yocto 3.8 kernel being added.
590 The linux-yocto 3.2 and linux-yocto 3.4 kernels remain
591 as part of the release.
592 </para></listitem>
593 <listitem><para><emphasis><filename>lsbsetup</filename>:</emphasis>
594 Removed with functionality now provided by
595 <filename>lsbtest</filename>.
596 </para></listitem>
597 <listitem><para><emphasis><filename>matchbox-stroke</filename>:</emphasis>
598 Removed because it was never more than a proof-of-concept.
599 </para></listitem>
600 <listitem><para><emphasis><filename>matchbox-wm-2 / matchbox-theme-sato-2</filename>:</emphasis>
601 Removed because they are not maintained.
602 However, <filename>matchbox-wm</filename> and
603 <filename>matchbox-theme-sato</filename> are still
604 provided.
605 </para></listitem>
606 <listitem><para><emphasis><filename>mesa-dri</filename>:</emphasis>
607 Renamed to <filename>mesa</filename>.
608 </para></listitem>
609 <listitem><para><emphasis><filename>mesa-xlib</filename>:</emphasis>
610 Removed because it was no longer useful.
611 </para></listitem>
612 <listitem><para><emphasis><filename>mutter</filename>:</emphasis>
613 Removed because nothing ever uses it and the recipe is
614 very old.
615 </para></listitem>
616 <listitem><para><emphasis><filename>orinoco-conf</filename>:</emphasis>
617 Removed because it has become obsolete.
618 </para></listitem>
619 <listitem><para><emphasis><filename>update-modules</filename>:</emphasis>
620 Removed because it is no longer used.
621 The kernel module <filename>postinstall</filename> and
622 <filename>postrm</filename> scripts can now do the same
623 task without the use of this script.
624 </para></listitem>
625 <listitem><para><emphasis><filename>web</filename>:</emphasis>
626 Removed because it is not maintained. Superseded by
627 <filename>web-webkit</filename>.
628 </para></listitem>
629 <listitem><para><emphasis><filename>xf86bigfontproto</filename>:</emphasis>
630 Removed because upstream it has been disabled by default
631 since 2007.
632 Nothing uses <filename>xf86bigfontproto</filename>.
633 </para></listitem>
634 <listitem><para><emphasis><filename>xf86rushproto</filename>:</emphasis>
635 Removed because its dependency in
636 <filename>xserver</filename> was spurious and it was
637 removed in 2005.
638 </para></listitem>
639 <listitem><para><emphasis><filename>zypper / libzypp / sat-solver</filename>:</emphasis>
640 Removed and been functionally replaced with Smart
641 (<filename>python-smartpm</filename>) when RPM packaging
642 is used and package management is enabled on the target.
643 </para></listitem>
644 </itemizedlist>
645 </para>
646 </section>
647</section>
648
649<section id='moving-to-the-yocto-project-1.5-release'>
650 <title>Moving to the Yocto Project 1.5 Release</title>
651
652 <para>
653 This section provides migration information for moving to the
654 Yocto Project 1.5 Release from the prior release.
655 </para>
656
657 <section id='migration-1.5-host-dependency-changes'>
658 <title>Host Dependency Changes</title>
659
660 <para>
661 The OpenEmbedded build system now has some additional requirements
662 on the host system:
663 <itemizedlist>
664 <listitem><para>Python 2.7.3+</para></listitem>
665 <listitem><para>Tar 1.24+</para></listitem>
666 <listitem><para>Git 1.7.8+</para></listitem>
667 <listitem><para>Patched version of Make if you are using
668 3.82.
669 Most distributions that provide Make 3.82 use the patched
670 version.</para></listitem>
671 </itemizedlist>
672 If the Linux distribution you are using on your build host
673 does not provide packages for these, you can install and use
674 the Buildtools tarball, which provides an SDK-like environment
675 containing them.
676 </para>
677
678 <para>
679 For more information on this requirement, see the
680 "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
681 section.
682 </para>
683 </section>
684
685 <section id='migration-1.5-atom-pc-bsp'>
686 <title><filename>atom-pc</filename> Board Support Package (BSP)</title>
687
688 <para>
689 The <filename>atom-pc</filename> hardware reference BSP has been
690 replaced by a <filename>genericx86</filename> BSP.
691 This BSP is not necessarily guaranteed to work on all x86
692 hardware, but it will run on a wider range of systems than the
693 <filename>atom-pc</filename> did.
694 <note>
695 Additionally, a <filename>genericx86-64</filename> BSP has
696 been added for 64-bit Atom systems.
697 </note>
698 </para>
699 </section>
700
701 <section id='migration-1.5-bitbake'>
702 <title>BitBake</title>
703
704 <para>
705 The following changes have been made that relate to BitBake:
706 <itemizedlist>
707 <listitem><para>
708 BitBake now supports a <filename>_remove</filename>
709 operator.
710 The addition of this operator means you will have to
711 rename any items in recipe space (functions, variables)
712 whose names currently contain
713 <filename>_remove_</filename> or end with
714 <filename>_remove</filename> to avoid unexpected behavior.
715 </para></listitem>
716 <listitem><para>
717 BitBake's global method pool has been removed.
718 This method is not particularly useful and led to clashes
719 between recipes containing functions that had the
720 same name.</para></listitem>
721 <listitem><para>
722 The "none" server backend has been removed.
723 The "process" server backend has been serving well as the
724 default for a long time now.</para></listitem>
725 <listitem><para>
726 The <filename>bitbake-runtask</filename> script has been
727 removed.</para></listitem>
728 <listitem><para>
729 <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>
730 and
731 <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>
732 are no longer added to
733 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
734 by default in <filename>bitbake.conf</filename>.
735 These version-specific <filename>PROVIDES</filename>
736 items were seldom used.
737 Attempting to use them could result in two versions being
738 built simultaneously rather than just one version due to
739 the way BitBake resolves dependencies.</para></listitem>
740 </itemizedlist>
741 </para>
742 </section>
743
744 <section id='migration-1.5-qa-warnings'>
745 <title>QA Warnings</title>
746
747 <para>
748 The following changes have been made to the package QA checks:
749 <itemizedlist>
750 <listitem><para>
751 If you have customized
752 <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link>
753 or <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link>
754 values in your configuration, check that they contain all of
755 the issues that you wish to be reported.
756 Previous Yocto Project versions contained a bug that meant
757 that any item not mentioned in <filename>ERROR_QA</filename>
758 or <filename>WARN_QA</filename> would be treated as a
759 warning.
760 Consequently, several important items were not already in
761 the default value of <filename>WARN_QA</filename>.
762 All of the possible QA checks are now documented in the
763 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
764 section.</para></listitem>
765 <listitem><para>
766 An additional QA check has been added to check if
767 <filename>/usr/share/info/dir</filename> is being installed.
768 Your recipe should delete this file within
769 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
770 if "make install" is installing it.
771 </para></listitem>
772 <listitem><para>
773 If you are using the buildhistory class, the check for the
774 package version going backwards is now controlled using a
775 standard QA check.
776 Thus, if you have customized your
777 <filename>ERROR_QA</filename> or
778 <filename>WARN_QA</filename> values and still wish to have
779 this check performed, you should add
780 "version-going-backwards" to your value for one or the
781 other variables depending on how you wish it to be handled.
782 See the documented QA checks in the
783 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
784 section.
785 </para></listitem>
786 </itemizedlist>
787 </para>
788 </section>
789
790 <section id='migration-1.5-directory-layout-changes'>
791 <title>Directory Layout Changes</title>
792
793 <para>
794 The following directory changes exist:
795 <itemizedlist>
796 <listitem><para>
797 Output SDK installer files are now named to include the
798 image name and tuning architecture through the
799 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
800 variable.</para></listitem>
801 <listitem><para>
802 Images and related files are now installed into a directory
803 that is specific to the machine, instead of a parent
804 directory containing output files for multiple machines.
805 The
806 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
807 variable continues to point to the directory containing
808 images for the current
809 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
810 and should be used anywhere there is a need to refer to
811 this directory.
812 The <filename>runqemu</filename> script now uses this
813 variable to find images and kernel binaries and will use
814 BitBake to determine the directory.
815 Alternatively, you can set the
816 <filename>DEPLOY_DIR_IMAGE</filename> variable in the
817 external environment.</para></listitem>
818 <listitem><para>
819 When buildhistory is enabled, its output is now written
820 under the
821 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
822 rather than
823 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>.
824 Doing so makes it easier to delete
825 <filename>TMPDIR</filename> and preserve the build history.
826 Additionally, data for produced SDKs is now split by
827 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>.
828 </para></listitem>
829 <listitem><para>
830 The <filename>pkgdata</filename> directory produced as
831 part of the packaging process has been collapsed into a
832 single machine-specific directory.
833 This directory is located under
834 <filename>sysroots</filename> and uses a machine-specific
835 name (i.e.
836 <filename>tmp/sysroots/<replaceable>machine</replaceable>/pkgdata</filename>).
837 </para></listitem>
838 </itemizedlist>
839 </para>
840 </section>
841
842 <section id='migration-1.5-shortened-git-srcrev-values'>
843 <title>Shortened Git <filename>SRCREV</filename> Values</title>
844
845 <para>
846 BitBake will now shorten revisions from Git repositories from the
847 normal 40 characters down to 10 characters within
848 <link linkend='var-SRCPV'><filename>SRCPV</filename></link>
849 for improved usability in path and file names.
850 This change should be safe within contexts where these revisions
851 are used because the chances of spatially close collisions
852 is very low.
853 Distant collisions are not a major issue in the way
854 the values are used.
855 </para>
856 </section>
857
858 <section id='migration-1.5-image-features'>
859 <title><filename>IMAGE_FEATURES</filename></title>
860
861 <para>
862 The following changes have been made that relate to
863 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>:
864 <itemizedlist>
865 <listitem><para>
866 The value of
867 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
868 is now validated to ensure invalid feature items are not
869 added.
870 Some users mistakenly add package names to this variable
871 instead of using
872 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
873 in order to have the package added to the image, which does
874 not work.
875 This change is intended to catch those kinds of situations.
876 Valid <filename>IMAGE_FEATURES</filename> are drawn from
877 <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
878 definitions,
879 <link linkend='var-COMPLEMENTARY_GLOB'><filename>COMPLEMENTARY_GLOB</filename></link>
880 and a new "validitems" varflag on
881 <filename>IMAGE_FEATURES</filename>.
882 The "validitems" varflag change allows additional features
883 to be added if they are not provided using the previous
884 two mechanisms.
885 </para></listitem>
886 <listitem><para>
887 The previously deprecated "apps-console-core"
888 <filename>IMAGE_FEATURES</filename> item is no longer
889 supported.
890 Add "splash" to <filename>IMAGE_FEATURES</filename> if you
891 wish to have the splash screen enabled, since this is
892 all that apps-console-core was doing.</para></listitem>
893 </itemizedlist>
894 </para>
895 </section>
896
897 <section id='migration-1.5-run'>
898 <title><filename>/run</filename></title>
899
900 <para>
901 The <filename>/run</filename> directory from the Filesystem
902 Hierarchy Standard 3.0 has been introduced.
903 You can find some of the implications for this change
904 <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873'>here</ulink>.
905 The change also means that recipes that install files to
906 <filename>/var/run</filename> must be changed.
907 You can find a guide on how to make these changes
908 <ulink url='http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530'>here</ulink>.
909 </para>
910 </section>
911
912 <section id='migration-1.5-removal-of-package-manager-database-within-image-recipes'>
913 <title>Removal of Package Manager Database Within Image Recipes</title>
914
915 <para>
916 The image <filename>core-image-minimal</filename> no longer adds
917 <filename>remove_packaging_data_files</filename> to
918 <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
919 This addition is now handled automatically when "package-management"
920 is not in
921 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
922 If you have custom image recipes that make this addition,
923 you should remove the lines, as they are not needed and might
924 interfere with correct operation of postinstall scripts.
925 </para>
926 </section>
927
928 <section id='migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time'>
929 <title>Images Now Rebuild Only on Changes Instead of Every Time</title>
930
931 <para>
932 The
933 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
934 and other related image
935 construction tasks are no longer marked as "nostamp".
936 Consequently, they will only be re-executed when their inputs have
937 changed.
938 Previous versions of the OpenEmbedded build system always rebuilt
939 the image when requested rather when necessary.
940 </para>
941 </section>
942
943 <section id='migration-1.5-task-recipes'>
944 <title>Task Recipes</title>
945
946 <para>
947 The previously deprecated <filename>task.bbclass</filename> has
948 now been dropped.
949 For recipes that previously inherited from this class, you should
950 rename them from <filename>task-*</filename> to
951 <filename>packagegroup-*</filename> and inherit packagegroup
952 instead.
953 </para>
954
955 <para>
956 For more information, see the
957 "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
958 section.
959 </para>
960 </section>
961
962 <section id='migration-1.5-busybox'>
963 <title>BusyBox</title>
964
965 <para>
966 By default, we now split BusyBox into two binaries:
967 one that is suid root for those components that need it, and
968 another for the rest of the components.
969 Splitting BusyBox allows for optimization that eliminates the
970 <filename>tinylogin</filename> recipe as recommended by upstream.
971 You can disable this split by setting
972 <link linkend='var-BUSYBOX_SPLIT_SUID'><filename>BUSYBOX_SPLIT_SUID</filename></link>
973 to "0".
974 </para>
975 </section>
976
977 <section id='migration-1.5-automated-image-testing'>
978 <title>Automated Image Testing</title>
979
980 <para>
981 A new automated image testing framework has been added
982 through the
983 <link linkend='ref-classes-testimage'><filename>testimage*.bbclass</filename></link>
984 class.
985 This framework replaces the older
986 <filename>imagetest-qemu</filename> framework.
987 </para>
988
989 <para>
990 You can learn more about performing automated image tests in the
991 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
992 section.
993 </para>
994 </section>
995
996 <section id='migration-1.5-build-history'>
997 <title>Build History</title>
998
999 <para>
1000 Following are changes to Build History:
1001 <itemizedlist>
1002 <listitem><para>
1003 Installed package sizes:
1004 <filename>installed-package-sizes.txt</filename> for an
1005 image now records the size of the files installed by each
1006 package instead of the size of each compressed package
1007 archive file.</para></listitem>
1008 <listitem><para>
1009 The dependency graphs (<filename>depends*.dot</filename>)
1010 now use the actual package names instead of replacing
1011 dashes, dots and plus signs with underscores.
1012 </para></listitem>
1013 <listitem><para>
1014 The <filename>buildhistory-diff</filename> and
1015 <filename>buildhistory-collect-srcrevs</filename>
1016 utilities have improved command-line handling.
1017 Use the <filename>--help</filename> option for
1018 each utility for more information on the new syntax.
1019 </para></listitem>
1020 </itemizedlist>
1021 For more information on Build History, see the
1022 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
1023 section.
1024 </para>
1025 </section>
1026
1027 <section id='migration-1.5-udev'>
1028 <title><filename>udev</filename></title>
1029
1030 <para>
1031 Following are changes to <filename>udev</filename>:
1032 <itemizedlist>
1033 <listitem><para>
1034 <filename>udev</filename> no longer brings in
1035 <filename>udev-extraconf</filename> automatically
1036 through
1037 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
1038 since this was originally intended to be optional.
1039 If you need the extra rules, then add
1040 <filename>udev-extraconf</filename> to your image.
1041 </para></listitem>
1042 <listitem><para>
1043 <filename>udev</filename> no longer brings in
1044 <filename>pciutils-ids</filename> or
1045 <filename>usbutils-ids</filename> through
1046 <filename>RRECOMMENDS</filename>.
1047 These are not needed by <filename>udev</filename> itself
1048 and removing them saves around 350KB.
1049 </para></listitem>
1050 </itemizedlist>
1051 </para>
1052 </section>
1053
1054 <section id='migration-1.5-removed-renamed-recipes'>
1055 <title>Removed and Renamed Recipes</title>
1056
1057 <itemizedlist>
1058 <listitem><para>
1059 The <filename>linux-yocto</filename> 3.2 kernel has been
1060 removed.</para></listitem>
1061 <listitem><para>
1062 <filename>libtool-nativesdk</filename> has been renamed to
1063 <filename>nativesdk-libtool</filename>.</para></listitem>
1064 <listitem><para>
1065 <filename>tinylogin</filename> has been removed.
1066 It has been replaced by a suid portion of Busybox.
1067 See the
1068 "<link linkend='migration-1.5-busybox'>BusyBox</link>" section
1069 for more information.</para></listitem>
1070 <listitem><para>
1071 <filename>external-python-tarball</filename> has been renamed
1072 to <filename>buildtools-tarball</filename>.
1073 </para></listitem>
1074 <listitem><para>
1075 <filename>web-webkit</filename> has been removed.
1076 It has been functionally replaced by
1077 <filename>midori</filename>.</para></listitem>
1078 <listitem><para>
1079 <filename>imake</filename> has been removed.
1080 It is no longer needed by any other recipe.
1081 </para></listitem>
1082 <listitem><para>
1083 <filename>transfig-native</filename> has been removed.
1084 It is no longer needed by any other recipe.
1085 </para></listitem>
1086 <listitem><para>
1087 <filename>anjuta-remote-run</filename> has been removed.
1088 Anjuta IDE integration has not been officially supported for
1089 several releases.</para></listitem>
1090 </itemizedlist>
1091 </section>
1092
1093 <section id='migration-1.5-other-changes'>
1094 <title>Other Changes</title>
1095
1096 <para>
1097 Following is a list of short entries describing other changes:
1098 <itemizedlist>
1099 <listitem><para>
1100 <filename>run-postinsts</filename>: Make this generic.
1101 </para></listitem>
1102 <listitem><para>
1103 <filename>base-files</filename>: Remove the unnecessary
1104 <filename>media/</filename><replaceable>xxx</replaceable> directories.
1105 </para></listitem>
1106 <listitem><para>
1107 <filename>alsa-state</filename>: Provide an empty
1108 <filename>asound.conf</filename> by default.
1109 </para></listitem>
1110 <listitem><para>
1111 <filename>classes/image</filename>: Ensure
1112 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
1113 supports pre-renamed package names.</para></listitem>
1114 <listitem><para>
1115 <filename>classes/rootfs_rpm</filename>: Implement
1116 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
1117 for RPM.</para></listitem>
1118 <listitem><para>
1119 <filename>systemd</filename>: Remove
1120 <filename>systemd_unitdir</filename> if
1121 <filename>systemd</filename> is not in
1122 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
1123 </para></listitem>
1124 <listitem><para>
1125 <filename>systemd</filename>: Remove
1126 <filename>init.d</filename> dir if
1127 <filename>systemd</filename> unit file is present and
1128 <filename>sysvinit</filename> is not a distro feature.
1129 </para></listitem>
1130 <listitem><para>
1131 <filename>libpam</filename>: Deny all services for the
1132 <filename>OTHER</filename> entries.
1133 </para></listitem>
1134 <listitem><para>
1135 <filename>image.bbclass</filename>: Move
1136 <filename>runtime_mapping_rename</filename> to avoid
1137 conflict with <filename>multilib</filename>.
1138 See
1139 <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993'><filename>YOCTO #4993</filename></ulink>
1140 in Bugzilla for more information.
1141 </para></listitem>
1142 <listitem><para>
1143 <filename>linux-dtb</filename>: Use kernel build system
1144 to generate the <filename>dtb</filename> files.
1145 </para></listitem>
1146 <listitem><para>
1147 <filename>kern-tools</filename>: Switch from guilt to
1148 new <filename>kgit-s2q</filename> tool.
1149 </para></listitem>
1150 </itemizedlist>
1151 </para>
1152 </section>
1153</section>
1154
1155<section id='moving-to-the-yocto-project-1.6-release'>
1156 <title>Moving to the Yocto Project 1.6 Release</title>
1157
1158 <para>
1159 This section provides migration information for moving to the
1160 Yocto Project 1.6 Release from the prior release.
1161 </para>
1162
1163
1164 <section id='migration-1.6-archiver-class'>
1165 <title><filename>archiver</filename> Class</title>
1166
1167 <para>
1168 The
1169 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
1170 class has been rewritten and its configuration has been simplified.
1171 For more details on the source archiver, see the
1172 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>"
1173 section in the Yocto Project Development Manual.
1174 </para>
1175 </section>
1176
1177 <section id='migration-1.6-packaging-changes'>
1178 <title>Packaging Changes</title>
1179
1180 <para>
1181 The following packaging changes have been made:
1182 <itemizedlist>
1183 <listitem><para>
1184 The <filename>binutils</filename> recipe no longer produces
1185 a <filename>binutils-symlinks</filename> package.
1186 <filename>update-alternatives</filename> is now used to
1187 handle the preferred <filename>binutils</filename>
1188 variant on the target instead.
1189 </para></listitem>
1190 <listitem><para>
1191 The tc (traffic control) utilities have been split out of
1192 the main <filename>iproute2</filename> package and put
1193 into the <filename>iproute2-tc</filename> package.
1194 </para></listitem>
1195 <listitem><para>
1196 The <filename>gtk-engines</filename> schemas have been
1197 moved to a dedicated
1198 <filename>gtk-engines-schemas</filename> package.
1199 </para></listitem>
1200 <listitem><para>
1201 The <filename>armv7a</filename> with thumb package
1202 architecture suffix has changed.
1203 The suffix for these packages with the thumb
1204 optimization enabled is "t2" as it should be.
1205 Use of this suffix was not the case in the 1.5 release.
1206 Architecture names will change within package feeds as a
1207 result.
1208 </para></listitem>
1209 </itemizedlist>
1210 </para>
1211 </section>
1212
1213 <section id='migration-1.6-bitbake'>
1214 <title>BitBake</title>
1215
1216 <para>
1217 The following changes have been made to
1218 <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>.
1219 </para>
1220
1221 <section id='migration-1.6-matching-branch-requirement-for-git-fetching'>
1222 <title>Matching Branch Requirement for Git Fetching</title>
1223
1224 <para>
1225 When fetching source from a Git repository using
1226 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
1227 BitBake will now validate the
1228 <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
1229 value against the branch.
1230 You can specify the branch using the following form:
1231 <literallayout class='monospaced'>
1232 SRC_URI = "git://server.name/repository;branch=<replaceable>branchname</replaceable>"
1233 </literallayout>
1234 If you do not specify a branch, BitBake looks
1235 in the default "master" branch.
1236 </para>
1237
1238 <para>
1239 Alternatively, if you need to bypass this check (e.g.
1240 if you are fetching a revision corresponding to a tag that
1241 is not on any branch), you can add ";nobranch=1" to
1242 the end of the URL within <filename>SRC_URI</filename>.
1243 </para>
1244 </section>
1245
1246 <section id='migration-1.6-bitbake-deps'>
1247 <title>Python Definition substitutions</title>
1248
1249 <para>
1250 BitBake had some previously deprecated Python definitions
1251 within its <filename>bb</filename> module removed.
1252 You should use their sub-module counterparts instead:
1253 <itemizedlist>
1254 <listitem><para><filename>bb.MalformedUrl</filename>:
1255 Use <filename>bb.fetch.MalformedUrl</filename>.
1256 </para></listitem>
1257 <listitem><para><filename>bb.fetch.encodeurl</filename>:
1258 Use <filename>bb.fetch.encodeurl</filename>.
1259 </para></listitem>
1260 <listitem><para><filename>bb.decodeurl</filename>:
1261 Use <filename>bb.fetch.decodeurl</filename>
1262 </para></listitem>
1263 <listitem><para><filename>bb.mkdirhier</filename>:
1264 Use <filename>bb.utils.mkdirhier</filename>.
1265 </para></listitem>
1266 <listitem><para><filename>bb.movefile</filename>:
1267 Use <filename>bb.utils.movefile</filename>.
1268 </para></listitem>
1269 <listitem><para><filename>bb.copyfile</filename>:
1270 Use <filename>bb.utils.copyfile</filename>.
1271 </para></listitem>
1272 <listitem><para><filename>bb.which</filename>:
1273 Use <filename>bb.utils.which</filename>.
1274 </para></listitem>
1275 <listitem><para><filename>bb.vercmp_string</filename>:
1276 Use <filename>bb.utils.vercmp_string</filename>.
1277 </para></listitem>
1278 <listitem><para><filename>bb.vercmp</filename>:
1279 Use <filename>bb.utils.vercmp</filename>.
1280 </para></listitem>
1281 </itemizedlist>
1282 </para>
1283 </section>
1284
1285 <section id='migration-1.6-bitbake-fetcher'>
1286 <title>SVK Fetcher</title>
1287
1288 <para>
1289 The SVK fetcher has been removed from BitBake.
1290 </para>
1291 </section>
1292
1293 <section id='migration-1.6-bitbake-console-output'>
1294 <title>Console Output Error Redirection</title>
1295
1296 <para>
1297 The BitBake console UI will now output errors to
1298 <filename>stderr</filename> instead of
1299 <filename>stdout</filename>.
1300 Consequently, if you are piping or redirecting the output of
1301 <filename>bitbake</filename> to somewhere else, and you wish
1302 to retain the errors, you will need to add
1303 <filename>2>&amp;1</filename> (or something similar) to the
1304 end of your <filename>bitbake</filename> command line.
1305 </para>
1306 </section>
1307
1308 <section id='migration-1.6-task-taskname-overrides'>
1309 <title><filename>task-</filename><replaceable>taskname</replaceable> Overrides</title>
1310
1311 <para>
1312 <filename>task-</filename><replaceable>taskname</replaceable> overrides have been
1313 adjusted so that tasks whose names contain underscores have the
1314 underscores replaced by hyphens for the override so that they
1315 now function properly.
1316 For example, the task override for
1317 <link linkend='ref-tasks-populate_sdk'><filename>do_populate_sdk</filename></link>
1318 is <filename>task-populate-sdk</filename>.
1319 </para>
1320 </section>
1321 </section>
1322
1323 <section id='migration-1.6-variable-changes'>
1324 <title>Changes to Variables</title>
1325
1326 <para>
1327 The following variables have changed.
1328 For information on the OpenEmbedded build system variables, see the
1329 "<link linkend='ref-variables-glos'>Variables Glossary</link>" Chapter.
1330 </para>
1331
1332 <section id='migration-1.6-variable-changes-TMPDIR'>
1333 <title><filename>TMPDIR</filename></title>
1334
1335 <para>
1336 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
1337 can no longer be on an NFS mount.
1338 NFS does not offer full POSIX locking and inode consistency
1339 and can cause unexpected issues if used to store
1340 <filename>TMPDIR</filename>.
1341 </para>
1342
1343 <para>
1344 The check for this occurs on startup.
1345 If <filename>TMPDIR</filename> is detected on an NFS mount,
1346 an error occurs.
1347 </para>
1348 </section>
1349
1350 <section id='migration-1.6-variable-changes-PRINC'>
1351 <title><filename>PRINC</filename></title>
1352
1353 <para>
1354 The <filename>PRINC</filename>
1355 variable has been deprecated and triggers a warning if
1356 detected during a build.
1357 For
1358 <link linkend='var-PR'><filename>PR</filename></link>
1359 increments on changes, use the PR service instead.
1360 You can find out more about this service in the
1361 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
1362 section in the Yocto Project Development Manual.
1363 </para>
1364 </section>
1365
1366 <section id='migration-1.6-variable-changes-IMAGE_TYPES'>
1367 <title><filename>IMAGE_TYPES</filename></title>
1368
1369 <para>
1370 The "sum.jffs2" option for
1371 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>
1372 has been replaced by the "jffs2.sum" option, which fits the
1373 processing order.
1374 </para>
1375 </section>
1376
1377 <section id='migration-1.6-variable-changes-COPY_LIC_MANIFEST'>
1378 <title><filename>COPY_LIC_MANIFEST</filename></title>
1379
1380 <para>
1381 The
1382 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
1383 variable must
1384 now be set to "1" rather than any value in order to enable
1385 it.
1386 </para>
1387 </section>
1388
1389 <section id='migration-1.6-variable-changes-COPY_LIC_DIRS'>
1390 <title><filename>COPY_LIC_DIRS</filename></title>
1391
1392 <para>
1393 The
1394 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
1395 variable must
1396 now be set to "1" rather than any value in order to enable
1397 it.
1398 </para>
1399 </section>
1400
1401 <section id='migration-1.6-variable-changes-PACKAGE_GROUP'>
1402 <title><filename>PACKAGE_GROUP</filename></title>
1403
1404 <para>
1405 The
1406 <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
1407 variable has been renamed to
1408 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>
1409 to more accurately reflect its purpose.
1410 You can still use <filename>PACKAGE_GROUP</filename> but
1411 the OpenEmbedded build system produces a warning message when
1412 it encounters the variable.
1413 </para>
1414 </section>
1415
1416 <section id='migration-1.6-variable-changes-variable-entry-behavior'>
1417 <title>Preprocess and Post Process Command Variable Behavior</title>
1418
1419 <para>
1420 The following variables now expect a semicolon separated
1421 list of functions to call and not arbitrary shell commands:
1422 <literallayout class='monospaced'>
1423 <link linkend='var-ROOTFS_PREPROCESS_COMMAND'>ROOTFS_PREPROCESS_COMMAND</link>
1424 <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'>ROOTFS_POSTPROCESS_COMMAND</link>
1425 <link linkend='var-SDK_POSTPROCESS_COMMAND'>SDK_POSTPROCESS_COMMAND</link>
1426 <link linkend='var-POPULATE_SDK_POST_TARGET_COMMAND'>POPULATE_SDK_POST_TARGET_COMMAND</link>
1427 <link linkend='var-POPULATE_SDK_POST_HOST_COMMAND'>POPULATE_SDK_POST_HOST_COMMAND</link>
1428 <link linkend='var-IMAGE_POSTPROCESS_COMMAND'>IMAGE_POSTPROCESS_COMMAND</link>
1429 <link linkend='var-IMAGE_PREPROCESS_COMMAND'>IMAGE_PREPROCESS_COMMAND</link>
1430 <link linkend='var-ROOTFS_POSTUNINSTALL_COMMAND'>ROOTFS_POSTUNINSTALL_COMMAND</link>
1431 <link linkend='var-ROOTFS_POSTINSTALL_COMMAND'>ROOTFS_POSTINSTALL_COMMAND</link>
1432 </literallayout>
1433 For migration purposes, you can simply wrap shell commands in
1434 a shell function and then call the function.
1435 Here is an example:
1436 <literallayout class='monospaced'>
1437 my_postprocess_function() {
1438 echo "hello" > ${IMAGE_ROOTFS}/hello.txt
1439 }
1440 ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
1441 </literallayout>
1442 </para>
1443 </section>
1444 </section>
1445
1446 <section id='migration-1.6-directory-layout-changes'>
1447 <title>Directory Layout Changes</title>
1448
1449 <para>
1450 The <filename>meta-hob</filename> layer has been removed from
1451 the top-level of the
1452 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
1453 The contents of this layer are no longer needed by the Hob
1454 user interface for building images and toolchains.
1455 </para>
1456 </section>
1457
1458 <section id='migration-1.6-package-test-ptest'>
1459 <title>Package Test (ptest)</title>
1460
1461 <para>
1462 Package Tests (ptest) are built but not installed by default.
1463 For information on using Package Tests, see the
1464 "<ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Setting up and running package test (ptest)</ulink>"
1465 section in the Yocto Project Development Manual.
1466 For information on the <filename>ptest</filename> class, see the
1467 "<link linkend='ref-classes-ptest'><filename>ptest.bbclass</filename></link>"
1468 section.
1469 </para>
1470 </section>
1471
1472 <section id='migration-1.6-build-changes'>
1473 <title>Build Changes</title>
1474
1475 <para>
1476 Separate build and source directories have been enabled
1477 by default for selected recipes where it is known to work
1478 (a whitelist) and for all recipes that inherit the
1479 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
1480 class.
1481 In future releases the
1482 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
1483 class will enable a separate build directory by default as
1484 well.
1485 Recipes building Autotools-based
1486 software that fails to build with a separate build directory
1487 should be changed to inherit from the
1488 <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link>
1489 class instead of the <filename>autotools</filename> class.
1490 </para>
1491 </section>
1492
1493 <section id='migration-1.6-building-qemu-native'>
1494 <title><filename>qemu-native</filename></title>
1495
1496 <para>
1497 <filename>qemu-native</filename> now builds without
1498 SDL-based graphical output support by default.
1499 The following additional lines are needed in your
1500 <filename>local.conf</filename> to enable it:
1501 <literallayout class='monospaced'>
1502 PACKAGECONFIG_pn-qemu-native = "sdl"
1503 ASSUME_PROVIDED += "libsdl-native"
1504 </literallayout>
1505 <note>
1506 The default <filename>local.conf</filename>
1507 contains these statements.
1508 Consequently, if you are building a headless system and using
1509 a default <filename>local.conf</filename> file, you will need
1510 comment these two lines out.
1511 </note>
1512 </para>
1513 </section>
1514
1515 <section id='migration-1.6-core-image-basic'>
1516 <title><filename>core-image-basic</filename></title>
1517
1518 <para>
1519 <filename>core-image-basic</filename> has been renamed to
1520 <filename>core-image-full-cmdline</filename>.
1521 </para>
1522
1523 <para>
1524 In addition to <filename>core-image-basic</filename> being renamed,
1525 <filename>packagegroup-core-basic</filename> has been renamed to
1526 <filename>packagegroup-core-full-cmdline</filename> to match.
1527 </para>
1528 </section>
1529
1530 <section id='migration-1.6-licensing'>
1531 <title>Licensing</title>
1532
1533 <para>
1534 The top-level <filename>LICENSE</filename> file has been changed
1535 to better describe the license of the various components of
1536 OE-Core.
1537 However, the licensing itself remains unchanged.
1538 </para>
1539
1540 <para>
1541 Normally, this change would not cause any side-effects.
1542 However, some recipes point to this file within
1543 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
1544 (as <filename>${COREBASE}/LICENSE</filename>) and thus the
1545 accompanying checksum must be changed from
1546 3f40d7994397109285ec7b81fdeb3b58 to
1547 4d92cd373abda3937c2bc47fbc49d690.
1548 A better alternative is to have
1549 <filename>LIC_FILES_CHKSUM</filename> point to a file
1550 describing the license that is distributed with the source
1551 that the recipe is building, if possible, rather than pointing
1552 to <filename>${COREBASE}/LICENSE</filename>.
1553 </para>
1554 </section>
1555
1556 <section id='migration-1.6-cflags-options'>
1557 <title><filename>CFLAGS</filename> Options</title>
1558
1559 <para>
1560 The "-fpermissive" option has been removed from the default
1561 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1562 value.
1563 You need to take action on individual recipes that fail when
1564 building with this option.
1565 You need to either patch the recipes to fix the issues reported by
1566 the compiler, or you need to add "-fpermissive" to
1567 <filename>CFLAGS</filename> in the recipes.
1568 </para>
1569 </section>
1570
1571 <section id='migration-1.6-custom-images'>
1572 <title>Custom Image Output Types</title>
1573
1574 <para>
1575 Custom image output types, as selected using
1576 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
1577 must declare their dependencies on other image types (if any) using
1578 a new
1579 <link linkend='var-IMAGE_TYPEDEP'><filename>IMAGE_TYPEDEP</filename></link>
1580 variable.
1581 </para>
1582 </section>
1583
1584 <section id='migration-1.6-do-package-write-task'>
1585 <title>Tasks</title>
1586
1587 <para>
1588 The <filename>do_package_write</filename> task has been removed.
1589 The task is no longer needed.
1590 </para>
1591 </section>
1592
1593 <section id='migration-1.6-update-alternatives-provider'>
1594 <title><filename>update-alternative</filename> Provider</title>
1595
1596 <para>
1597 The default <filename>update-alternatives</filename> provider has
1598 been changed from <filename>opkg</filename> to
1599 <filename>opkg-utils</filename>.
1600 This change resolves some troublesome circular dependencies.
1601 The runtime package has also been renamed from
1602 <filename>update-alternatives-cworth</filename>
1603 to <filename>update-alternatives-opkg</filename>.
1604 </para>
1605 </section>
1606
1607 <section id='migration-1.6-virtclass-overrides'>
1608 <title><filename>virtclass</filename> Overrides</title>
1609
1610 <para>
1611 The <filename>virtclass</filename> overrides are now deprecated.
1612 Use the equivalent class overrides instead (e.g.
1613 <filename>virtclass-native</filename> becomes
1614 <filename>class-native</filename>.)
1615 </para>
1616 </section>
1617
1618 <section id='migration-1.6-removed-renamed-recipes'>
1619 <title>Removed and Renamed Recipes</title>
1620
1621 <para>
1622 The following recipes have been removed:
1623 <itemizedlist>
1624 <listitem><para><filename>packagegroup-toolset-native</filename> -
1625 This recipe is largely unused.
1626 </para></listitem>
1627 <listitem><para><filename>linux-yocto-3.8</filename> -
1628 Support for the Linux yocto 3.8 kernel has been dropped.
1629 Support for the 3.10 and 3.14 kernels have been added
1630 with the <filename>linux-yocto-3.10</filename> and
1631 <filename>linux-yocto-3.14</filename> recipes.
1632 </para></listitem>
1633 <listitem><para><filename>ocf-linux</filename> -
1634 This recipe has been functionally replaced using
1635 <filename>cryptodev-linux</filename>.
1636 </para></listitem>
1637 <listitem><para><filename>genext2fs</filename> -
1638 <filename>genext2fs</filename> is no longer used by the
1639 build system and is unmaintained upstream.
1640 </para></listitem>
1641 <listitem><para><filename>js</filename> -
1642 This provided an ancient version of Mozilla's javascript
1643 engine that is no longer needed.
1644 </para></listitem>
1645 <listitem><para><filename>zaurusd</filename> -
1646 The recipe has been moved to the
1647 <filename>meta-handheld</filename> layer.
1648 </para></listitem>
1649 <listitem><para><filename>eglibc 2.17</filename> -
1650 Replaced by the <filename>eglibc 2.19</filename>
1651 recipe.
1652 </para></listitem>
1653 <listitem><para><filename>gcc 4.7.2</filename> -
1654 Replaced by the now stable
1655 <filename>gcc 4.8.2</filename>.
1656 </para></listitem>
1657 <listitem><para><filename>external-sourcery-toolchain</filename> -
1658 this recipe is now maintained in the
1659 <filename>meta-sourcery</filename> layer.
1660 </para></listitem>
1661 <listitem><para><filename>linux-libc-headers-yocto 3.4+git</filename> -
1662 Now using version 3.10 of the
1663 <filename>linux-libc-headers</filename> by default.
1664 </para></listitem>
1665 <listitem><para><filename>meta-toolchain-gmae</filename> -
1666 This recipe is obsolete.
1667 </para></listitem>
1668 <listitem><para><filename>packagegroup-core-sdk-gmae</filename> -
1669 This recipe is obsolete.
1670 </para></listitem>
1671 <listitem><para><filename>packagegroup-core-standalone-gmae-sdk-target</filename> -
1672 This recipe is obsolete.
1673 </para></listitem>
1674 </itemizedlist>
1675 </para>
1676 </section>
1677
1678 <section id='migration-1.6-removed-classes'>
1679 <title>Removed Classes</title>
1680
1681 <para>
1682 The following classes have become obsolete and have been removed:
1683 <itemizedlist>
1684 <listitem><para><filename>module_strip</filename>
1685 </para></listitem>
1686 <listitem><para><filename>pkg_metainfo</filename>
1687 </para></listitem>
1688 <listitem><para><filename>pkg_distribute</filename>
1689 </para></listitem>
1690 <listitem><para><filename>image-empty</filename>
1691 </para></listitem>
1692 </itemizedlist>
1693 </para>
1694 </section>
1695
1696 <section id='migration-1.6-reference-bsps'>
1697 <title>Reference Board Support Packages (BSPs)</title>
1698
1699 <para>
1700 The following reference BSPs changes occurred:
1701 <itemizedlist>
1702 <listitem><para>The BeagleBoard
1703 (<filename>beagleboard</filename>) ARM reference hardware
1704 has been replaced by the BeagleBone
1705 (<filename>beaglebone</filename>) hardware.
1706 </para></listitem>
1707 <listitem><para>The RouterStation Pro
1708 (<filename>routerstationpro</filename>) MIPS reference
1709 hardware has been replaced by the EdgeRouter Lite
1710 (<filename>edgerouter</filename>) hardware.
1711 </para></listitem>
1712 </itemizedlist>
1713 The previous reference BSPs for the
1714 <filename>beagleboard</filename> and
1715 <filename>routerstationpro</filename> machines are still available
1716 in a new <filename>meta-yocto-bsp-old</filename> layer in the
1717 <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink>
1718 at
1719 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/'>http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/</ulink>.
1720 </para>
1721 </section>
1722</section>
1723
1724<section id='moving-to-the-yocto-project-1.7-release'>
1725 <title>Moving to the Yocto Project 1.7 Release</title>
1726
1727 <para>
1728 This section provides migration information for moving to the
1729 Yocto Project 1.7 Release from the prior release.
1730 </para>
1731
1732 <section id='migration-1.7-changes-to-setting-qemu-packageconfig-options'>
1733 <title>Changes to Setting QEMU <filename>PACKAGECONFIG</filename> Options in <filename>local.conf</filename></title>
1734
1735 <para>
1736 The QEMU recipe now uses a number of
1737 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
1738 options to enable various optional features.
1739 The method used to set defaults for these options means that
1740 existing
1741 <filename>local.conf</filename> files will need to be be
1742 modified to append to <filename>PACKAGECONFIG</filename> for
1743 <filename>qemu-native</filename> and
1744 <filename>nativesdk-qemu</filename> instead of setting it.
1745 In other words, to enable graphical output for QEMU, you should
1746 now have these lines in <filename>local.conf</filename>:
1747 <literallayout class='monospaced'>
1748 PACKAGECONFIG_append_pn-qemu-native = " sdl"
1749 PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
1750 </literallayout>
1751 </para>
1752 </section>
1753
1754 <section id='migration-1.7-minimum-git-version'>
1755 <title>Minimum Git version</title>
1756
1757 <para>
1758 The minimum
1759 <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> version required
1760 on the build host is now 1.7.8 because the
1761 <filename>--list</filename> option is now required by
1762 BitBake's Git fetcher.
1763 As always, if your host distribution does not provide a version of
1764 Git that meets this requirement, you can use the
1765 <filename>buildtools-tarball</filename> that does.
1766 See the
1767 "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
1768 section for more information.
1769 </para>
1770 </section>
1771
1772 <section id='migration-1.7-autotools-class-changes'>
1773 <title>Autotools Class Changes</title>
1774
1775 <para>
1776 The following
1777 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
1778 class changes occurred:
1779 <itemizedlist>
1780 <listitem><para><emphasis>
1781 A separate build directory is now used by default:</emphasis>
1782 The <filename>autotools</filename> class has been changed
1783 to use a directory for building
1784 (<link linkend='var-B'><filename>B</filename></link>),
1785 which is separate from the source directory
1786 (<link linkend='var-S'><filename>S</filename></link>).
1787 This is commonly referred to as
1788 <filename>B != S</filename>, or an out-of-tree build.</para>
1789 <para>If the software being built is already capable of
1790 building in a directory separate from the source, you
1791 do not need to do anything.
1792 However, if the software is not capable of being built
1793 in this manner, you will
1794 need to either patch the software so that it can build
1795 separately, or you will need to change the recipe to
1796 inherit the
1797 <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link>
1798 class instead of the <filename>autotools</filename> class.
1799 </para></listitem>
1800 <listitem><para><emphasis>
1801 The <filename>--foreign</filename> option is
1802 no longer passed to <filename>automake</filename> when
1803 running <filename>autoconf</filename>:</emphasis>
1804 This option tells <filename>automake</filename> that a
1805 particular software package does not follow the GNU
1806 standards and therefore should not be expected
1807 to distribute certain files such as
1808 <filename>ChangeLog</filename>,
1809 <filename>AUTHORS</filename>, and so forth.
1810 Because the majority of upstream software packages already
1811 tell <filename>automake</filename> to enable foreign mode
1812 themselves, the option is mostly superfluous.
1813 However, some recipes will need patches for this change.
1814 You can easily make the change by patching
1815 <filename>configure.ac</filename> so that it passes
1816 "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>.
1817 See
1818 <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'>this commit</ulink>
1819 for an example showing how to make the patch.
1820 </para></listitem>
1821 </itemizedlist>
1822 </para>
1823 </section>
1824
1825 <section id='migration-1.7-binary-configuration-scripts-disabled'>
1826 <title>Binary Configuration Scripts Disabled</title>
1827
1828 <para>
1829 Some of the core recipes that package binary configuration scripts
1830 now disable the scripts due to the
1831 scripts previously requiring error-prone path substitution.
1832 Software that links against these libraries using these scripts
1833 should use the much more robust <filename>pkg-config</filename>
1834 instead.
1835 The list of recipes changed in this version (and their
1836 configuration scripts) is as follows:
1837 <literallayout class='monospaced'>
1838 directfb (directfb-config)
1839 freetype (freetype-config)
1840 gpgme (gpgme-config)
1841 libassuan (libassuan-config)
1842 libcroco (croco-6.0-config)
1843 libgcrypt (libgcrypt-config)
1844 libgpg-error (gpg-error-config)
1845 libksba (ksba-config)
1846 libpcap (pcap-config)
1847 libpcre (pcre-config)
1848 libpng (libpng-config, libpng16-config)
1849 libsdl (sdl-config)
1850 libusb-compat (libusb-config)
1851 libxml2 (xml2-config)
1852 libxslt (xslt-config)
1853 ncurses (ncurses-config)
1854 neon (neon-config)
1855 npth (npth-config)
1856 pth (pth-config)
1857 taglib (taglib-config)
1858 </literallayout>
1859 Additionally, support for <filename>pkg-config</filename> has been
1860 added to some recipes in the previous list in the rare cases
1861 where the upstream software package does not already provide
1862 it.
1863 </para>
1864 </section>
1865
1866 <section id='migration-1.7-glibc-replaces-eglibc'>
1867 <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title>
1868
1869 <para>
1870 Because <filename>eglibc</filename> and
1871 <filename>glibc</filename> were already fairly close, this
1872 replacement should not require any significant changes to other
1873 software that links to <filename>eglibc</filename>.
1874 However, there were a number of minor changes in
1875 <filename>glibc 2.20</filename> upstream that could require
1876 patching some software (e.g. the removal of the
1877 <filename>_BSD_SOURCE</filename> feature test macro).
1878 </para>
1879
1880 <para>
1881 <filename>glibc 2.20</filename> requires version 2.6.32 or greater
1882 of the Linux kernel.
1883 Thus, older kernels will no longer be usable in conjunction with it.
1884 </para>
1885
1886 <para>
1887 For full details on the changes in <filename>glibc 2.20</filename>,
1888 see the upstream release notes
1889 <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'>here</ulink>.
1890 </para>
1891 </section>
1892
1893 <section id='migration-1.7-kernel-module-autoloading'>
1894 <title>Kernel Module Autoloading</title>
1895
1896 <para>
1897 The
1898 <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link>
1899 variable is now deprecated and a new
1900 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
1901 variable should be used instead.
1902 Also,
1903 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
1904 must now be used in conjunction with a new
1905 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
1906 variable.
1907 The new variables no longer require you to specify the module name
1908 as part of the variable name.
1909 This change not only simplifies usage but also allows the values
1910 of these variables to be appropriately incorporated into task
1911 signatures and thus trigger the appropriate tasks to re-execute
1912 when changed.
1913 You should replace any references to
1914 <filename>module_autoload_*</filename> with
1915 <filename>KERNEL_MODULE_AUTOLOAD</filename>, and add any modules
1916 for which <filename>module_conf_*</filename> is specified to
1917 <filename>KERNEL_MODULE_PROBECONF</filename>.
1918 </para>
1919
1920 <para>
1921 For more information, see the
1922 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
1923 and
1924 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
1925 variables.
1926 </para>
1927 </section>
1928
1929 <section id='migration-1.7-qa-check-changes'>
1930 <title>QA Check Changes</title>
1931
1932 <para>
1933 The following changes have occurred to the QA check process:
1934 <itemizedlist>
1935 <listitem><para>
1936 Additional QA checks <filename>file-rdeps</filename>
1937 and <filename>build-deps</filename> have been added in
1938 order to verify that file dependencies are satisfied
1939 (e.g. package contains a script requiring
1940 <filename>/bin/bash</filename>) and build-time dependencies
1941 are declared, respectively.
1942 For more information, please see the
1943 "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>"
1944 chapter.
1945 </para></listitem>
1946 <listitem><para>
1947 Package QA checks are now performed during a new
1948 <link linkend='ref-tasks-package_qa'><filename>do_package_qa</filename></link>
1949 task rather than being part of the
1950 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
1951 task.
1952 This allows more parallel execution.
1953 This change is unlikely to be an issue except for highly
1954 customized recipes that disable packaging tasks themselves
1955 by marking them as <filename>noexec</filename>.
1956 For those packages, you will need to disable the
1957 <filename>do_package_qa</filename> task as well.
1958 </para></listitem>
1959 <listitem><para>
1960 Files being overwritten during the
1961 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
1962 task now trigger an error instead of a warning.
1963 Recipes should not be overwriting files written to the
1964 sysroot by other recipes.
1965 If you have these types of recipes, you need to alter them
1966 so that they do not overwrite these files.</para>
1967 <para>You might now receive this error after changes in
1968 configuration or metadata resulting in orphaned files
1969 being left in the sysroot.
1970 If you do receive this error, the way to resolve the issue
1971 is to delete your
1972 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
1973 or to move it out of the way and then re-start the build.
1974 Anything that has been fully built up to that point and
1975 does not need rebuilding will be restored from the shared
1976 state cache and the rest of the build will be able to
1977 proceed as normal.
1978 </para></listitem>
1979 </itemizedlist>
1980 </para>
1981 </section>
1982
1983 <section id='migration-1.7-removed-recipes'>
1984 <title>Removed Recipes</title>
1985
1986 <para>
1987 The following recipes have been removed:
1988 <itemizedlist>
1989 <listitem><para>
1990 <filename>x-load</filename>:
1991 This recipe has been superseded by
1992 U-boot SPL for all Cortex-based TI SoCs.
1993 For legacy boards, the <filename>meta-ti</filename>
1994 layer, which contains a maintained recipe, should be used
1995 instead.
1996 </para></listitem>
1997 <listitem><para>
1998 <filename>ubootchart</filename>:
1999 This recipe is obsolete.
2000 A <filename>bootchart2</filename> recipe has been added
2001 to functionally replace it.
2002 </para></listitem>
2003 <listitem><para>
2004 <filename>linux-yocto 3.4</filename>:
2005 Support for the linux-yocto 3.4 kernel has been dropped.
2006 Support for the 3.10 and 3.14 kernels remains, while
2007 support for version 3.17 has been added.
2008 </para></listitem>
2009 <listitem><para>
2010 <filename>eglibc</filename> has been removed in favor of
2011 <filename>glibc</filename>.
2012 See the
2013 "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>"
2014 section for more information.
2015 </para></listitem>
2016 </itemizedlist>
2017 </para>
2018 </section>
2019
2020 <section id='migration-1.7-miscellaneous-changes'>
2021 <title>Miscellaneous Changes</title>
2022
2023 <para>
2024 The following miscellaneous change occurred:
2025 <itemizedlist>
2026 <listitem><para>
2027 The build history feature now writes
2028 <filename>build-id.txt</filename> instead of
2029 <filename>build-id</filename>.
2030 Additionally, <filename>build-id.txt</filename>
2031 now contains the full build header as printed by
2032 BitBake upon starting the build.
2033 You should manually remove old "build-id" files from your
2034 existing build history repositories to avoid confusion.
2035 For information on the build history feature, see the
2036 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
2037 section.
2038 </para></listitem>
2039 </itemizedlist>
2040 </para>
2041 </section>
2042</section>
2043
2044<section id='moving-to-the-yocto-project-1.8-release'>
2045 <title>Moving to the Yocto Project 1.8 Release</title>
2046
2047 <para>
2048 This section provides migration information for moving to the
2049 Yocto Project 1.8 Release from the prior release.
2050 </para>
2051
2052 <section id='migration-1.8-removed-recipes'>
2053 <title>Removed Recipes</title>
2054
2055 <para>
2056 The following recipes have been removed:
2057 <itemizedlist>
2058 <listitem><para><filename>owl-video</filename>:
2059 Functionality replaced by <filename>gst-player</filename>.
2060 </para></listitem>
2061 <listitem><para><filename>gaku</filename>:
2062 Functionality replaced by <filename>gst-player</filename>.
2063 </para></listitem>
2064 <listitem><para><filename>gnome-desktop</filename>:
2065 This recipe is now available in
2066 <filename>meta-gnome</filename> and is no longer needed.
2067 </para></listitem>
2068 <listitem><para><filename>gsettings-desktop-schemas</filename>:
2069 This recipe is now available in
2070 <filename>meta-gnome</filename> and is no longer needed.
2071 </para></listitem>
2072 <listitem><para><filename>python-argparse</filename>:
2073 The <filename>argparse</filename> module is already
2074 provided in the default Python distribution in a
2075 package named <filename>python-argparse</filename>.
2076 Consequently, the separate
2077 <filename>python-argparse</filename> recipe is no
2078 longer needed.
2079 </para></listitem>
2080 <listitem><para><filename>telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control</filename>:
2081 All these recipes have moved to
2082 <filename>meta-oe</filename> and are consequently no
2083 longer needed by any recipes in OpenEmbedded-Core.
2084 </para></listitem>
2085 <listitem><para><filename>linux-yocto_3.10</filename> and <filename>linux-yocto_3.17</filename>:
2086 Support for the linux-yocto 3.10 and 3.17 kernels has been
2087 dropped.
2088 Support for the 3.14 kernel remains, while support for
2089 3.19 kernel has been added.
2090 </para></listitem>
2091 <listitem><para><filename>poky-feed-config-opkg</filename>:
2092 This recipe has become obsolete and is no longer needed.
2093 Use <filename>distro-feed-config</filename> from
2094 <filename>meta-oe</filename> instead.
2095 </para></listitem>
2096 <listitem><para><filename>libav 0.8.x</filename>:
2097 <filename>libav 9.x</filename> is now used.
2098 </para></listitem>
2099 <listitem><para><filename>sed-native</filename>:
2100 No longer needed.
2101 A working version of <filename>sed</filename> is expected
2102 to be provided by the host distribution.
2103 </para></listitem>
2104 </itemizedlist>
2105 </para>
2106 </section>
2107
2108 <section id='migration-1.8-bluez'>
2109 <title>BlueZ 4.x / 5.x Selection</title>
2110
2111 <para>
2112 Proper built-in support for selecting BlueZ 5.x in preference
2113 to the default of 4.x now exists.
2114 To use BlueZ 5.x, simply add "bluez5" to your
2115 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
2116 value.
2117 If you had previously added append files
2118 (<filename>*.bbappend</filename>) to make this selection, you can
2119 now remove them.
2120 </para>
2121
2122 <para>
2123 Additionally, a
2124 <link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link>
2125 class has been added to make selection of the appropriate bluetooth
2126 support within a recipe a little easier.
2127 If you wish to make use of this class in a recipe, add something
2128 such as the following:
2129 <literallayout class='monospaced'>
2130 inherit bluetooth
2131 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
2132 PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
2133 PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
2134 </literallayout>
2135 </para>
2136 </section>
2137
2138 <section id='migration-1.8-kernel-build-changes'>
2139 <title>Kernel Build Changes</title>
2140
2141 <para>
2142 The kernel build process was changed to place the source
2143 in a common shared work area and to place build artifacts
2144 separately in the source code tree.
2145 In theory, migration paths have been provided for most common
2146 usages in kernel recipes but this might not work in all cases.
2147 In particular, users need to ensure that
2148 <filename>${S}</filename> (source files) and
2149 <filename>${B}</filename> (build artifacts) are used
2150 correctly in functions such as
2151 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2152 and
2153 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
2154 For kernel recipes that do not inherit from
2155 <filename>kernel-yocto</filename> or include
2156 <filename>linux-yocto.inc</filename>, you might wish to
2157 refer to the <filename>linux.inc</filename> file in the
2158 <filename>meta-oe</filename> layer for the kinds of changes you
2159 need to make.
2160 For reference, here is the
2161 <ulink url='http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee'>commit</ulink>
2162 where the <filename>linux.inc</filename> file in
2163 <filename>meta-oe</filename> was updated.
2164 </para>
2165
2166 <para>
2167 Recipes that rely on the kernel source code and do not inherit
2168 the module classes might need to add explicit dependencies on
2169 the <filename>do_shared_workdir</filename> kernel task, for example:
2170 <literallayout class='monospaced'>
2171 do_configure[depends] += "virtual/kernel:do_shared_workdir"
2172 </literallayout>
2173 </para>
2174 </section>
2175
2176 <section id='migration-1.8-ssl'>
2177 <title>SSL 3.0 is Now Disabled in OpenSSL</title>
2178
2179 <para>
2180 SSL 3.0 is now disabled when building OpenSSL.
2181 Disabling SSL 3.0 avoids any lingering instances of the POODLE
2182 vulnerability.
2183 If you feel you must re-enable SSL 3.0, then you can add an
2184 append file (<filename>*.bbappend</filename>) for the
2185 <filename>openssl</filename> recipe to remove "-no-ssl3"
2186 from
2187 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>.
2188 </para>
2189 </section>
2190
2191 <section id='migration-1.8-default-sysroot-poisoning'>
2192 <title>Default Sysroot Poisoning</title>
2193
2194 <para>
2195 <filename>gcc's</filename> default sysroot and include directories
2196 are now "poisoned".
2197 In other words, the sysroot and include directories are being
2198 redirected to a non-existent location in order to catch when
2199 host directories are being used due to the correct options not
2200 being passed.
2201 This poisoning applies both to the cross-compiler used within the
2202 build and to the cross-compiler produced in the SDK.
2203 </para>
2204
2205 <para>
2206 If this change causes something in the build to fail, it almost
2207 certainly means the various compiler flags and commands are not
2208 being passed correctly to the underlying piece of software.
2209 In such cases, you need to take corrective steps.
2210 </para>
2211 </section>
2212
2213 <section id='migration-1.8-rebuild-improvements'>
2214 <title>Rebuild Improvements</title>
2215
2216 <para>
2217 Changes have been made to the
2218 <link linkend='ref-classes-base'><filename>base</filename></link>,
2219 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>,
2220 and
2221 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
2222 classes to clean out generated files when the
2223 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2224 task needs to be re-executed.
2225 </para>
2226
2227 <para>
2228 One of the improvements is to attempt to run "make clean" during
2229 the <filename>do_configure</filename> task if a
2230 <filename>Makefile</filename> exists.
2231 Some software packages do not provide a working clean target
2232 within their make files.
2233 If you have such recipes, you need to set
2234 <link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link>
2235 to "1" within the recipe, for example:
2236 <literallayout class='monospaced'>
2237 CLEANBROKEN = "1"
2238 </literallayout>
2239 </para>
2240 </section>
2241
2242 <section id='migration-1.8-qa-check-and-validation-changes'>
2243 <title>QA Check and Validation Changes</title>
2244
2245 <para>
2246 The following QA Check and Validation Changes have occurred:
2247 <itemizedlist>
2248 <listitem><para>
2249 Usage of <filename>PRINC</filename>
2250 previously triggered a warning.
2251 It now triggers an error.
2252 You should remove any remaining usage of
2253 <filename>PRINC</filename> in any recipe or append file.
2254 </para></listitem>
2255 <listitem><para>
2256 An additional QA check has been added to detect usage of
2257 <filename>${D}</filename> in
2258 <link linkend='var-FILES'><filename>FILES</filename></link>
2259 values where
2260 <link linkend='var-D'><filename>D</filename></link> values
2261 should not be used at all.
2262 The same check ensures that <filename>$D</filename> is used
2263 in
2264 <filename>pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm</filename>
2265 functions instead of <filename>${D}</filename>.
2266 </para></listitem>
2267 <listitem><para>
2268 <link linkend='var-S'><filename>S</filename></link> now
2269 needs to be set to a valid value within a recipe.
2270 If <filename>S</filename> is not set in the recipe, the
2271 directory is not automatically created.
2272 If <filename>S</filename> does not point to a directory
2273 that exists at the time the
2274 <link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link>
2275 task finishes, a warning will be shown.
2276 </para></listitem>
2277 <listitem><para>
2278 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2279 is now validated for correct formatting of multiple
2280 licenses.
2281 If the format is invalid (e.g. multiple licenses are
2282 specified with no operators to specify how the multiple
2283 licenses interact), then a warning will be shown.
2284 </para></listitem>
2285 </itemizedlist>
2286 </para>
2287 </section>
2288
2289 <section id='migration-1.8-miscellaneous-changes'>
2290 <title>Miscellaneous Changes</title>
2291
2292 <para>
2293 The following miscellaneous changes have occurred:
2294 <itemizedlist>
2295 <listitem><para>
2296 The <filename>send-error-report</filename> script now
2297 expects a "-s" option to be specified before the server
2298 address.
2299 This assumes a server address is being specified.
2300 </para></listitem>
2301 <listitem><para>
2302 The <filename>oe-pkgdata-util</filename> script now
2303 expects a "-p" option to be specified before the
2304 <filename>pkgdata</filename> directory, which is now
2305 optional.
2306 If the <filename>pkgdata</filename> directory is not
2307 specified, the script will run BitBake to query
2308 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
2309 from the build environment.
2310 </para></listitem>
2311 </itemizedlist>
2312 </para>
2313 </section>
2314</section>
2315
2316</chapter>
2317<!--
2318vim: expandtab tw=80 ts=4
2319-->